Challenges: Simon Says

July 23, 2005 by Ping

Time for another challenge.  Today, I’d like to describe what I call the “Simon Says” problem.

A Simon Says problem occurs when the safe course of action requires the user to respond to the absence of a stimulus.

(”Simon Says” refers to the children’s game in which a leader calls out commands to a group of players.  Any command that begins with “Simon says” must be followed, and any command that does not begin with “Simon says” must not be followed.  If the leader says “Simon says, touch your toes,” anyone who doesn’t touch their toes immediately is out of the game, but if the leader says only “Touch your toes,” anyone who touches their toes is out of the game.)

Typically a leader will try to catch people out with a rapid-fire series of “Simon says” commands to get players into the habit of responding quickly, then a plain command.  What makes the game tricky is that the players have to notice the absence of the words “Simon says.” Noticing the absence of something is tricky, especially if the missing thing is unrelated to the primary task (in the case of the game, the words “Simon says” are unrelated to the command).

User interfaces often present a similar challenge.  When an interface has some sort of security indicator (like a padlock icon, for example), the indicator really means “You can do things normally,” and when the indicator is missing the user is supposed to be cautious.  That’s a Simon Says problem.

Visa’s “Verified by Visa” program, which adds an extra password-checking step to online credit card purchases, tries to fight spoofing by asking the user to supply a secret phrase that will be displayed on password forms.  The idea is that only Visa knows the secret phrase, so if you see the phrase you know that it’s really Visa asking for your password, not an impostor.  Visa isn’t the only one — several financial institutions are trying out schemes like this.  But again, such schemes present the user with a Simon Says problem.  The absence of the secret phrase is supposed to cause the user to mentally sound the alarm.

The “Simon Says” game and login-spoofing attacks both exploit an especially severe form of the Simon Says problem, in which the user is expected to respond to the absence of something with the absence of an action.  Such a situation is doubly troublesome for humans.

Phishing attacks combine the Obedience to Authority problem with the Simon Says problem.  In order for a user to successfully evade a phishing attack, using current browsers or even with many of the proposed anti-phishing tools, a very weak stimulus (the lack of something) has to override a strong impulse (the compulsion to obey an authority).  The odds are stacked against the user.

Is a Simon Says problem solved simply by inverting the sense of the indicator?  Sometimes, but it might not be that easy.  For example, if browsers showed a lack-of-encryption indicator instead of an encryption-present indicator, that would probably be an improvement.  But since (at least for now), most web sessions are not encrypted, the lack-of-encryption indicator would be on most of the time.  A loud indicator such as the one shown by TrustBar might come to be ignored after a while.  And a warning dialog would be next to useless, since many users have had lots of practice clicking “OK” as quickly as possible without reading.  A better strategy might be to always show some type of indicator and have it look obviously right when things are right and obviously wrong when things are wrong.

Nothing Causes Action

Gregory Bateson pointed out long ago that Nothing can be a cause. So the non-arrival of a message may convey significant information. (As Bateson puts it, it is “a difference that makes a difference”.)

It can, but i claim it’s a terrible way to convey information to humans.

 
 

Is a Simon Says problem solved simply by inverting the sense of the indicator? Sometimes, but it might not be that easy. For example, if browsers showed a lack-of-encryption indicator instead of an encryption-present indicator, that would probably be an improvement. But since (at least for now), most web sessions are not encrypted, the lack-of-encryption indicator would be on most of the time.

the only robust solution is to make encryption and authentication the norm as you suggest; any deviation from that would be considered an exceptional and rare event. this is Hard ™ - changing long familiar user behavior.

the processing cost of encryption is now close to negligable: VIA’s C5P core can process 1,832,151,000 bytes of AES ECB / sec (half that for CBC) for instance. [this is also less susceptible to side channel attacks like cache timing and power usage]

the expensive and most vulnerable step in the process will be key distribution for trusted parties - i’m not sure how identity management would be implemented for a process and large and varied as software development and distribution.

microsoft released something interesting recently:
http://www.identityblog.com/stories/2005/05/13/TheLawsOfIdentity.html
“The Laws of Identity”

the inclusion of “Directed Identity” is interesting and probably relevant.

 

I think the real issue is that people rely on the DNS for solving the identity problem. Petnames, directories (I think Cameron’s work is probably relevant here) and the ultimate elimination of the DNS will solve this problem.

Once we have a petname-only world, we have a solution that satisfies your criteria of showing some type of indicator that is obviously right or wrong. Of course that depends on one’s definition of right and wrong. I’m assuming that a Petname is about as right as you can get, and the absence of a petname is about as wrong as you can get (at least, for humans).

In terms of your own work, it comes down to the principle of least surprise: “is the site I’m looking at the one *I* *named* in that label?” Petnames all but guarantee this to be case. DNS cannot, but people assume it can, and are frequently surprised when DNS does not meet expectations.

 

Its a nice idea, but is missing one clear consequence - the only way possible to make encryption/authenication the norm is to make it easy to get. If its easy to get then the bad guys can easily get it and there is no difference noticable to the average user. Cost is far less of an issue for sellers than ease of use, and for customers cost isn’t an issue at all so all they see is how easy/hard it is to use and make a decision based on that.
What about all the random webpages about someones pet cat or last holiday photos - are you expecting these to be encrypted and authenticated too??? These make up far more of the www than corporate sites.

“A better strategy might be to always show some type of indicator and have it look obviously right when things are right and obviously wrong when things are wrong.” I’d suggest that being able to define what is “obviously wrong” and what is “obviously right” (with nothing missed out in the middle) is far more important than how you display it to the user. Once you can define it you can code it and build it into the system that the wrong ones aren’t allowed to work at all.

And petnames, while a good idea, still need to rely on some form of central, unique identifier (like DNS) which can be attacked.

Once you can define it you can code it and build it into the system that the wrong ones aren’t allowed to work at all.

Right. If it’s possible to detect a situation that is definitely an attack, then the software can simply prohibit it. The trickier problems have to do with things like SSL, where encryption is safer but (as you pointed out) it’s not currently practical to expect every website to use encryption.

And petnames, while a good idea, still need to rely on some form of central, unique identifier (like DNS) which can be attacked.

No, they don’t. Petnames are labels for unforgeable keys. No central coordination is necessary to use petnames.