On 4/11/12 12:54 AM, Jesse Ruderman wrote:

1) If a site sends an STS header, and the user has any data (cookies,
passwords, etc) that are not https-only, immediately mark that data as
https-only. (This helps if a site uses STS, but the user's privacy
settings cause the password storage to outlive the STS storage.)

Seems reasonable, because if STS is in effect the browser shouldn't ever be talking to it over plain-old http, right? [At least to a first approximation, sounds like there may be some details to think though?]

2) When clearing history, retain the STS bit if any other data
associated with the site is retained. For example, in the common case
of clearing all history other than passwords, retain the STS bits for
sites that have passwords stored. (This accomplishes roughly the same
thing as #1.)

This will probably be hard to implement in practice, since we don't have a singular or fast way to check if we know anything about site X.

3) If you have a password stored for http, and you log into the same
site using https, move the password to https-only. (This helps if a
site moves from http to https, but does not set STS.)

This is likely to be a problem... For example, as Twitter was in the process of adding SSL I had frustrations where there were different ways to login, some SSL and some not. And because the password manager strictly enforces protocol matching, you'd be SOL.

OTOH, this is a frequent enough problem that I would like to look into ways of having the password manager give the user a way to use an existing login when similar enough. eg https://site.com vs http://site.com, www.foo.com vs foo.com, etc.

4) If an identical password is stored for both any http site and any
https site, stop autofilling it on the http site. Instead, provide a
way for users to instruct the browser to fill it in (e.g. an infobar).

Possibly... Though I suspect most people will see it as a "whatever button."

I wonder if this should just be more general: if we see history for the SSL version of the site, offer to redirect over to SSL. Though that probably doesn't work for a lot of sites. So perhaps offer if you're (1) on not-SSL and (2) there's SSL history and (3) there's any password field (stored or not).

5) If an identical password is stored for both any http site and any
https site, and it is not used on the http site for 16 months, expire
the http version. (This helps in cases where the hostname has changed,
e.g. from mail.google.com to www.google.com, and the security level
has also changed.)

We store time-of-last-use, so this wouldn't be too hard to implement.

6) When connected to an untrusted wireless network, don't fill in passwords.

Someone needs to define "untrusted", but sure. ISTR Windows 7+ already has such a notion. Might be able to usefully approximate this in the browser by keeping track of which networks you've used in the last X days, and treating new networks as untrusted.

7) When connected to an untrusted wireless network, refuse to make any
insecure connections. If the user really wants to open an insecure
search result, they can open it in a separate browsing session.

That's going to be a hard sell! :)


One additional mitigation: refuse to autofill within iframes. Bulk harvesting would seem harder (or at least slower) if an attacker if forced to cause new windows/tabs to open. Well, maybe... I guess if you're allowing page modifications, one just needs a window.onload handler to navigate to the next site on the list. [Insert side discussion here about stealing login-cookies from site's you're already logged into.]

Justin
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security

Reply via email to