On Thu, May 29, 2014 at 2:03 PM, Andrew Sutherland <
asutherl...@asutherland.org> wrote:

> This is a good proposal, thank you.  To restate my understanding, I think
> the key points of this versus the proposal I've made here or the variant in
> the https://bugzil.la/874346#c11 ISPDB proposal are:
>
> * If we don't know the domain should have a valid certificate, let it have
> an invalid certificate.
>

Right. But, I would make the decision of whether to allow an invalid
certificate only at configuration time, instead of every time you connect
to the server like Thunderbird does. Though you'd have to solve the problem
of dealing with a server that changed from one untrusted certificate to
another.



> * Preload more of the ISPDB on the device or maybe just an efficient
> mechanism for indicating a domain requires a valid certificate.
>

Right.


> * Do not provide strong (any?) guarantees about the ISPDB being able to
> indicate the current invalid certificate the server is expected to use.
>

Right. It would be better for us to spend more effort improving security
for secure servers that are trying to do something reasonable, instead of
spending time papering over fundamental security problems with the server.


> It's not clear what decision you'd advocate in the event we are unable to
> make a connection to the ISPDB server.  The attacker does end up in an
> interesting situation where if we tighten up the autoconfig mechanism and
> do not implement subdomain guessing (https://bugzil.la/823640), an
> attacker denying access to the ISPDB ends up forcing the user to perform
> manual account setup.  I'm interested in your thoughts here.
>

I think guessing is a bad idea in almost any/every situation because it is
easy to guess wrong (and/or get tricked) and really screw up the user's
config.

Maybe it would be better to crowdsource configuration information much like
location services do: get a few users to opt-in to
reporting/verifying/voting on a mapping of MX records to server settings so
that you can build a big centralized database of configuration data for
(basically) every mail server in existence. Then, when users get
auto-configured with that crowdsourced data, have them report back on
whether the automatic configuration worked.

Until we could do that, it seems reasonable to just make sure that ISPDB
has the configuration data for the most common commodity email providers in
the target markets for FirefoxOS, since FirefoxOS is primarily a
consumer-oriented product.



> Implementation-wise I understand your suggestion to be leaning more
> towards a static implementation, although dynamic mechanisms are possible.
>  The ISPDB currently intentionally uses static files checked into svn for
> implementation simplicity/security, a decision I agree with.  The exception
> is our MX lookup mechanism at
> https://mx.thunderbird.net/dns/mx/mozilla.com
>


> I should note that the current policy for the ISPDB has effectively been
> "try and get people to host their own autoconfig entries with an advocacy
> angle which includes rejecting submissions."  What's you've suggested here
> (and I on comment 11) implies a substantiative change to that.  This seems
> reasonable to me and when I raised the question about whether such changes
> would be acceptable to Thunderbird last year, people generally seemed to
> either not care or be on board:
>

It seems like you would be able to answer this as part of the scan of the
internet, by trying to retrieve the self-hosted autoconfig file if it is
available. I suspect you will find that almost nobody is self-hosting it.

I should also note that I think the automation to populate the ISPDB is
> still likely to require sizable engineering effort but is likely to have
> positive externalities in terms of drastically increasing our autoconfig
> coverage and allowing us to reduce the duration of the autoconfig probing
> process.  For example, we could establish direct mappings for all dreamhost
> mail clusters.
>

Autopopulating all the autoconfig information is a lot of work, I'm sure.
But, it should be possible to create good heuristics for deciding whether
to accept certs issued by untrusted issuers in an email app. For example,
if you don't have the (full) autoconfig data for an MX server, you could
try creating an SMTP connection to the server(s) indicated in the MX
records and then use STARTTLS to switch to TLS. If you successfully
validate the certificate from that SMTP server, then assume that the
IMAP/POP/LDAP/etc. servers use valid certificates too, even if you don't
know what those servers are.

Again, I think if you made sure that GMail, Outlook.com, Yahoo Mail, 163.com,
Fastmail, TuffMail, and the major analogs in the B2G markets were all
marked "TLS-only-with-valid-certificate" then I think a huge percentage of
users would be fully protected from whatever badness allowing cert error
overrides would cause.

Or, perhaps you could just create a whitelist of servers that are allowed
to have cert error overrides, and seed it with only our partners' mail
server hostnames and call it a day. Perhaps doing this would allow us to
reset the priority of the stuff above to something more reasonable.

Cheers,
Brian
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to