Msmtp: About Authentication Methods
marlam.de
marlam.de
https://bugzilla.mozilla.org/show_bug.cgi?id=472823
https://bugs.chromium.org/p/chromium/issues/detail?id=116047...
Why? Because I can't trust all the 100s of companies and I login to, and their 1000s of employees. I don't want them to choose storing my password securely or not. I want them to be forced to do that. Like I choose "HTTPS everywhere", I want to choose "SCRAM-SHA-512 everywhere" or similar.
It's technology that has to provide me guarantees, and user education must only complement that.
Unfortunately we are far from that. Passwords are flying plaintext-inside-HTTPS, with various risks:
* database storing passwords insecurely
* passwords being stolen on the authenticating server (either because of server being pwned or from internal eyes).
* passwords flying fully in plaintext (no TLS) in the internal network behind the authenticating server.
* self-signed HTTPS MITM attacks on already self-signed-cert websites (especially dangerous on intranet websites inside companies; you'd be surprised how difficult it is to setup proper PKI and internal CAs).
But if the authentication server gets the plaintext password, it can validate it against the old CRAM-MD5 storage, see that it matches, and then update the storage to SCRAM-SHA-1 on the fly. The entire process is invisible to the user, who gets a security upgrade in the process.
There's another class of use-cases, where a service needs to authenticate a user based on a token from another service. But for this, it's better to dispense with passwords entirely and instead go to something like Kerberos, where the authentication service gives you tokens in lieu of any password information.
I consider this an advantage. I know how the password is stored, and if the service wants to update the storage, than it has to ask me to reset my password. If it doesn't ask me so, how can I know that they are up to date?
> The entire process is invisible to the user, who gets a security upgrade in the process
or never gets a security upgrade, and he has no idea.
If you actually wanted to build one of these today you would not build one of those toy digest systems, you'd use a PAKE such as OPAQUE https://tools.ietf.org/html/draft-irtf-cfrg-opaque-01
But arguably instead of dedicating effort to trying to "fix" password authentication it's better to just do much less of it. On the web that means much more WebAuthn.
† This mistaken inversion happens a lot. When working on the British railways there is supposed to be an assessment of the safest practical method of performing the work. What used to be known as "red zone" working, where there are still trains using the railway while you work on it, is inherently dangerous and to be avoided. Red zone should be a last resort. But in practice what you will routinely find after a red zone accident is that they picked red zone not out of necessity but simply their planners had fallen into a habit of always justifying this unsafe practice rather than choose methods that might delay things, inconvenience workers or require purchasing equipment. It had become their first resort instead.
Do you know if/when it is considered for implementing in the major browsers? Given that even SHA256 digest implementation is missing and that OPAQUE seems much harder to implement, I wouldn't be surprised if it takes another decade.
Regarding not using passwords at all, unfortunately this is not something I can use as a web user with 100s of logins.
For a web browser, as I wrote, the correct thing is to push hard for WebAuthn.
You are correct that as a user, today, you are obliged to have some sort of password store if you want reasonable security, but that's a constraint imposed by the past, rather than a way forward.
Educating users not to do insecure things doesn't really scale well, and hasn't exactly had a great track record. Defence in depth, however, is a well-established and successful security strategy.
Why TMTP? https://mnmnotmail.org/rationale.html
Protocol draft: https://github.com/networkimprov/mnm/blob/master/Protocol.md
Twitter: https://twitter.com/mnmnotmail
> Organizations that need to let certain members hear from the general public, or communicate with untrusted (perhaps anonymous) customers, may establish a separate service instance for that purpose.
Rather than throwing away all existing email clients and servers, couldn't this be achieved by configuring an inbound mail rule to drop all email from addresses that aren't in your address book (and from servers that don't support DKIM)?
It doesn't seem very meaningful to say "Users should only receive messages from approved senders, unless they need to receive messages from unapproved senders". Email is useful precisely because it doesn't have the extra step of requiring users to manually add an address to their address book before receiving a message from a new contact, such as a receipt from an online purchase.
One of its features is that your correspondence does not transit a TMTP server operated by a third party. As with HTTP, its client connects directly to the ultimate host.
Re "users should only receive..." TMTP allows arbitrary content only from approved senders, and limited content from others (see Ping & GroupInvite). There's no manual addition to your address book on the receiver's part.
Suppose that the major email service providers and client developers agreed that from a certain date, all emails received from addresses that a user had not seen before would be truncated to 256 plaintext Unicode characters. The client UI would offer the option to whitelist that sender for future messages, which would also cause the existing message to be displayed in full.
I think we'll see better results by defining and implementing a simple new protocol that addresses all of the significant security and productivity problems with email.
Note, the current draft isn't a 1.0 candidate; there's more to come, for instance meta-messages.
At least 100M users have already seen intra-office email replaced with chatrooms. (Which, altho it solves the phishing issue, has created new productivity problems.)
TMTP doesn't have to replace SMTP overnight to be successful.
I'll leave it at that; thanks for the discussion!
Found the answers there. SCRAM helps by adding independent checks on server identity and channel security.
So: if you 100% trust the TLS CA, cert, and implementation then indeed, nothing gained. But 100% trust is risky in cyber security...