GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — [RFC] Deprecate HTTP Digest authentication · Issue #24325 · symfony/symfony

[RFC] Deprecate HTTP Digest authentication #24325

New issue
Copy link
New issue
Copy link
Closed
Closed
[RFC] Deprecate HTTP Digest authentication#24325
Copy link
Labels
RFCRFC = Request For Comments (proposals about features that you want to be discussed)RFC = Request For Comments (proposals about features that you want to be discussed)Security

Description

@javiereguiluz
javiereguiluz
opened on Sep 26, 2017
Issue body actions
Q A
Bug report? no
Feature request? no
BC Break report? no
RFC? yes
Symfony version 3.4

We've been discussing this internally and we want to know the opinion of the community. In short, "HTTP Basic" is better because you can hash the password with Bcrypt ... but "HTTP Digest" sends the HA1=MD5(username:realm:password). Even if it's not the password in clear, if you get access to the HA1 value, you can log in in the application. So, "HTTP Digest" is generally considered less secure than any other authentication mechanism.

Reacted by Christophe Coevoet, Grégoire Pineau, Kévin Dunglas, Joel Wurtz, Bastien Jaillot, Maxime Steinhausser, Sebastiaan Stok, Lynn, Alessandro Lai, Adrian Zmenda and 1 more

Activity

  1. javiereguiluz
    added
    RFCRFC = Request For Comments (proposals about features that you want to be discussed)RFC = Request For Comments (proposals about features that you want to be discussed)
    Security
    on Sep 26, 2017
  2. stof commented on Sep 26, 2017

    @stof
    stof
    on Sep 26, 2017
    Member
    More actions

    And the HA1 cannot be stored hashed, because it is used in a second hash involving the expiry time

  3. lyrixx commented on Sep 26, 2017

    @lyrixx
    lyrixx
    on Sep 26, 2017
    Member
    More actions

    👍

  4. javiereguiluz commented on Sep 26, 2017

    @javiereguiluz
    javiereguiluz
    on Sep 26, 2017
    MemberAuthor
    More actions

    @damienalexandre given the importance of this change, could you please add a comment about your downvote? Is this authentication something that you or your company or some project you know need? Thanks!

  5. dunglas commented on Sep 26, 2017

    @dunglas
    dunglas
    on Sep 26, 2017
    Member
    More actions

    👍, it may cause some interoperability issues with legacy systems, but the modern web must use HTTPS and not this kind of strategies.

  6. damienalexandre commented on Sep 26, 2017

    @damienalexandre
    damienalexandre
    on Sep 26, 2017
    Contributor
    More actions

    @javiereguiluz just removed my 👎 because I read too fast and mixed up HTTP Basic and HTTP Digest 😋 😬

    Reacted by Javier Eguiluz, Grégoire Pineau, Bastien Jaillot, Sebastiaan Stok and Jason Schilling
    Reacted by Sebastiaan Stok, Jérôme Tamarelle and Jason Schilling
  7. chalasr commented on Sep 26, 2017

    @chalasr
    chalasr
    on Sep 26, 2017
    Member
    More actions

    👍

  8. ogizanagi commented on Sep 26, 2017

    @ogizanagi
    ogizanagi
    on Sep 26, 2017
    Contributor
    More actions

    See #24335

  9. raziel057 commented on Sep 26, 2017

    @raziel057
    raziel057
    on Sep 26, 2017
    Contributor
    More actions

    It would be great to explain to security audit firm why Basic Authentication is better. On the last project that have been audited they considered that HTTP Basic needed to be changed to Digest...

    Even if you arguments are exact and understood from technical guys it can be disturbing for Project Managers or other people that just read this kind of articles: https://en.wikipedia.org/wiki/Digest_access_authentication

    I think it would be important to document the fact that Basic used with Bcrypt is better and illustrate with an example as a best practice.

  10. dunglas commented on Sep 26, 2017

    @dunglas
    dunglas
    on Sep 26, 2017
    Member
    More actions

    I think it would be important to document the fact that Basic used with Bcrypt is better and illustrate with an example as a best practice.

    In HTTP (without HTTPS), Digest is better. But with Let's Encrypt and CloudFlare, there is no point using Digest anymore.

  11. fabpot
    added a commit that references this issue on Sep 26, 2017

    feature #24335 [Security][SecurityBundle] Deprecate the HTTP digest a…

    b5103a2
  12. fabpot
    closed this as completedon Sep 26, 2017
  13. stof commented on Sep 27, 2017

    @stof
    stof
    on Sep 27, 2017
    Member
    More actions

    @raziel057 the way Digest works forces you to store the password or the HA1 in clear. A leak of them allows to forge a valid digest auth (if the HA1 is stored, it would require a custom client side implementation as browsers are taking the password as input and compute a HA1, but attackers can afford this, especially given that this may simply mean using a custom build of their browser changing the digest auth to bypass the HA1 computation itself and treat the input as HA1 directly).
    Security audit firms should not accept a storage in clear, meaning they should not consider Digest auth as acceptable.

    HTTP Basic over HTTP is indeed not safe against MitM, but the same argument applies for form login (which is why browsers are pushing towards HTTPS btw)

  14. raziel057 commented on Sep 27, 2017

    @raziel057
    raziel057
    on Sep 27, 2017
    Contributor
    More actions

    @stof Thanks for your explanations which could be used as a reply for Security Auditors. In my case it was obviously authentication over HTTPS.

  15. mschafr commented on Nov 15, 2021

    @mschafr
    mschafr
    on Nov 15, 2021
    More actions

    I know this is a rather old conversation. Nevertheless, I came across the need for Digest authentication in my SmartHome automation project. Some control devices (wifi switches, heating control units) still require this authentication scheme and updates on their side are not to be expected. As the symfony software component is only communicating with these devices over a secure home network, there are no security concerns to be taken into account. Is there a way to re-include the client-side DigestAuthenticationListener again, maybe in the form of a plugin?

  16. dunglas commented on Nov 15, 2021

    @dunglas
    dunglas
    on Nov 15, 2021
    Member
    More actions

    Yes you can easily create a plugin ("bundle") for that: https://symfony.com/doc/current/security/custom_authenticator.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCRFC = Request For Comments (proposals about features that you want to be discussed)RFC = Request For Comments (proposals about features that you want to be discussed)Security

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.