2009-08-31 21:58What attacks do key signing parties make harder?It is often assumed that key signing parties make certain attacks against cryptographic identities harder, but do people who participate in those parties really understand what those attacks are and why they are made harder? For instance, some groups require that government-issued ID is used, whereas others think this is unnecessary. Or if you check someone’s ID and they give you a keyslip with someone else’s email address on (but they can intercept emails to that person), then why bother encrypting the signature on that key when you send it to them? Alternatively, if they can’t read that person’s emails, then what is the danger in sending the message unencrypted? I don’t claim to have perfect answers for these questions, but I have been thinking about them and come up with some little scenarios which I find useful for comparing the relative strength of various systems. By presenting and discussing these scenarios below, then, I may at least provide a starting point for people to develop these ideas further. What the web saysObviously before trying to come up with my own solution to these problems, I searched the web to see what other people had written. I did manage to find one page which gave some little scenarios, but I felt they didn’t justify every facet of the process. For consistency with my own scenarios, I will present here these scenarios I found, but in my own style.
Implicit in this scenario is that there is alternative situation in which Bob could work out, with some confidence, which key was Cathy’s. What is necessary is for Cathy to have previously taken part in other key signing parties where people checked that the name on her keyslip was the one she used to introduce herself. Cathy’s key would then have lots of signatures on it, attesting to the fact that it belonged to someone called Cathy, which is the name she had given when she met Bob. Alice’s fake key, however, would not have these signatures, unless she had spent some time using a fake identity of “Cathy” at key signing parties to get signatures on her fake Cathy key. In this precise situation, where Alice only meets Cathy at the same time as Cathy meets Bob, it is unlikely that Alice would be able to construct such a seemingly trustworthy key in time to fool Bob. Taking this scenario one hypothetical step further, there is the potential problem of stalker Alice going around calling herself Cathy (having previously met and become obsessed with Cathy) and building up a key that has lots of signatures on it, so that when Cathy introduces herself to Bob, Alice can overhear his email address and send him her fake key at the same time as Cathy. Perhaps Alice can even block Cathy’s out-going email, without Cathy’s knowledge, in which case Bob would have a difficult time realising that anything was wrong. However, if “Cathy” was Cathy’s legal name (or perhaps a name suitably connected to her legal name), then by demanding that some form of legal identification was presented before a signature is given, it would be that much harder for Alice to generate a believable fake key. Of course, Alice could get her legal name changed, but this might make people suspicious and make it easier for her to get caught. The second scenario given on the web page I found went like this:
It is true that Bob could reject the fake key based on the fact that it hasn’t been signed by anyone, just like in the previous example where he rejected the key that Alice made which was supposedly Cathy’s. However, if Alice actually did want to send a “here is my new key” message then regardless of which email address she used and how many signatures it had, as long as it was signed by her old key, then Bob should trust it. This scenario, then, is perhaps less helpful for understanding the issues involved. What I sayTo understand some of the cases which the above scenarios don’t deal with, I have come up with some scenarios of my own which I present and analyse below.
This is effectively the Man in the Middle attack for emails, and shows that a key should not be trusted just because it arrives from someone whose name and email address you recognise. The first thing to point out here is that if Bob and Carol had exchanged keyslips when they exchanged names, then they would not have had to send keys to each other using email. Alternatively they could have looked up each others’ keys on a keyserver using the names and email addresses they knew as search terms. This is vulnerable to the same attacks as mentioned before, in terms of Alice impersonating Carol in various ways.
Although the technology of the attack is the same as last time, social aspects are easier if Carol uses a nickname. Assuming there is no government-issued ID for nicknames, Carol cannot prove (and so Alice does not need to prove) that the key she generates is associated with Carol’s nickname. Alice’s key may have been signed by hundreds of people who have checked that her legal name really is Alice, but Bob would have to ignore all those signatures on Alice’s key when working out whether the email he received was from Carol (whose real name he doesn’t know). As such, the signatures on Carol’s key, even if it reached Bob in an email, would be worthless, and so key signing parties would have been pointless for Carol. If instead of a nickname Carol had given Bob a keyslip, then the key signing parties Carol had attended would again have been pointless, as Bob wouldn’t need to check the signatures to trust the key he was given effectively by hand. What GPG saysIt is perhaps useful at this point to see how the technology was designed to be used by the people who implemented it. The gpg program contains instructions to help you when you are recording how carefully you have checked the identity of the person whose key you are signing, and those instructions, with the various options you can choose, are below: Your selection? (enter `?’ for more information): ? When you sign a user ID on a key, you should first verify that the key belongs to the person named in the user ID. It is useful for others to know how carefully you verified this. “0” means you make no particular claim as to how carefully you verified the key. “1” means you believe the key is owned by the person who claims to own it but you could not, or did not verify the key at all. This is useful for a “persona” verification, where you sign the key of a pseudonymous user. “2” means you did casual verification of the key. For example, this could mean that you verified the key fingerprint and checked the user ID on the key against a photo ID. “3” means you did extensive verification of the key. For example, this could mean that you verified the key fingerprint with the owner of the key in person, and that you checked, by means of a hard to forge document with a photo ID (such as a passport) that the name of the key owner matches the name in the user ID on the key, and finally that you verified (by exchange of email) that the email address on the key belongs to the key owner. Note that the examples given above for levels 2 and 3 are only examples. In the end, it is up to you to decide just what “casual” and “extensive” mean to you when you sign other keys. If you don’t know what the right answer is, answer “0”. The fact that each individual user of the program has to decide what the numbers 2 and 3 mean would suggest that they are of little practical value, but presumably they are useful at least among certain groups of users who share a common policy. Perhaps one day the software will become easier to use, and the ideas will become easier to explain, so that casual users can at least get some of the privacy benefit available to more advanced users. That just leaves one question. What do you do when a stranger stops you in the street and gives you a keyslip, and then leaves before you can ask any questions? Trackbacks
Trackback specific URI for this entry
No Trackbacks
|
QuicksearchCategoriesSyndicate This BlogBlog Administration |