[cap-talk] "Secure Bookmark" terminology and Phoolproof Phishing Preventing from CMU

Mark S. Miller markm at cs.jhu.edu
Thu Sep 7 23:35:50 CDT 2006


Eric Jacobs wrote:
> On Thu, 07 Sep 2006 19:35:17 -0700
> "Mark S. Miller" <markm at cs.jhu.edu> wrote:
> 
>> Your text above clearly states "user-assigned", but you still think spoofing 
>> is an issue. Why does it matter if an attacker correctly guesses that my 
>> petname for Amazon.com is "Amazon"? What attack does this enable?
> 
> It still enables spoofing of the UI - e.g., simulating a pop-up window. 

The attacker would need to get the user to mistake the attacker's pop-up for 
the petname tool display. Petname systems do indeed rely on trusted path -- 
the user needs to be able to distinguish the rendering of a petname by his 
user agent from pixels rendered by the attacker. This is a valid criticism of 
petname systems when deployed on current legacy platforms. Perhaps this is 
what the authors have in mind?


> This
> can probably be resolved, but I'd think it would take a great deal of
> redesigning GUI systems from a security perspective. 

Yes. The issue is not whether the attacker can guess the petname -- petname 
systems assume this. The issue is whether there's a trusted path.

In any case, the next paragraph of their paper states:

# Dhamija and Tygar propose Dynamic Security Skins (DSS) to enable a user to
# authenticate the server [10, 9]. In their system, a server opens a
# user-customized popup window that displays an image only the correct server
# can produce. Similar to YURL, this approach relies on the user to perform
# the verification.

Ignoring the "Similar to" above, DSS can provide a degree of trusted path on 
legacy platforms, and they indeed rely on the attacker not being able to guess 
the skin. On legacy platforms, under some plausible assumptions, one could use 
DSS to provide an adequately trusted path for use of a petname system. The 
combination would rely *only* on the attacker not being able to guess the 
skin. If they can't, then it doesn't matter whether they guess the petname.


> In addition, I expect
> that users will need _some_ incentive for making sure they are spoof-proof
> (kinda like a good driver's discount, eh?)

Perhaps, but for incentives to be effective, it must first be possible for 
users to operate securely.


> Passwords are the real problem though. If they can be replaced or augmented
> with crypto, as this project is doing, I think that would improve security in
> a big way.

Yes.


>> For more on petnames, please see 
>> <https://www.financialcryptography.com/mt/archives/000499.html>.

See also <http://www.w3.org/2005/Security/usability-ws/papers/02-hp-petname/> 
and section 3.5 of my thesis <http://www.erights.org/talks/thesis/>.

>> (Note: when 
>> discussing petname systems, "nickname" refers to a distinct concept. To avoid 
>> confusion, please do not refer to petnames as nicknames. Thanks.)
> 
> What's the difference?

Petnames and nicknames are both human meaningful.

Petnames are context dependent -- Alice and Bob may each have their own 
petname for Carol, perhaps "Mom" and "Honey" respectively, and are chosen by 
them. Carol's nickname is the name she says she goes by, perhaps "Carol". 
Carol's nickname is context-free -- as in when she makes her choice of "Carol" 
public.

Petnames are securely collision free -- Alice maintains her own petname 
mapping so that only Carol is listed as her "Mom". OTOH, many people may 
choose the nickname "Carol", so they are not collision-free.

Nicknames are useful for discovery, as when you google for "Don" (try it). 
Alan's Client Utility used nicknames for discovery. Once introduced by a 
discovery service to an entity allegedly with the nickname "Don", you can 
determine if this is indeed the nickname of the entity you've been introduced 
to by asking it "Do you go by Don?". A "yes" authenticates the nickname, since 
a nickname as designator cannot provide any further assurance. However, once 
discovered, you can corroborate the discovery by trying to find a petname path 
from yourself to the same entity (such as "Stanford's Don"), at which point 
you have some assurance about who or what you've discovered.

Lambda names are like petnames in that they are human meaningful, chosen by 
the user, and securely collision-free within the user's context: if "Mom" is 
Alice's lambda name for Carol, then it still designates only Carol. The 
difference is that lambda names are only used to designate, whereas petnames 
are also used to indicate what has been designated. Lambda names can therefore 
be many-to-one, so Alice might also use "Mrs. Jones" as a lambda name for 
Carol. When Alice says "Mom" to her user agent, it's still unambiguous who she 
means. However, if Carol's identity needs to be communicated to Alice, it 
would now be ambiguous how her user should render this to her. (This isn't 
fatal -- for example, Alice lambda names may be implicitly prioritized, or the 
user agent could show all matches. But it is a difference.)

-- 
Text by me above is hereby placed in the public domain

     Cheers,
     --MarkM


More information about the cap-talk mailing list