An Identity Crisis
Toby, , a Cairn Terrier of Distinction, dutifully encrypts all the email he sends his pal Violet. Violet is thrilled to receive email that she believes isn’t junk, but her joy is short lived. Toby keeps wanting her assistance in moving $1,000,000 through various Caribbean bank accounts! Or insists that she claim the $5,000,000 that a newly discovered uncle, Indian Buffet, has left her. What is going on?
There is mischief afoot. For Attila the Hound has also learnt how to encrypt email and is masquerading as Toby. Attila pulls Violet’s public key (it is public!) from a directory, and then sends her (encrypted) email that looks like this:
Subject: Funtestic Finencial Oppurchoonity!
Dear Mr. Violet,
Sir, I beseechfully writes to tell you...
[No, you can’t do this by using Outlook. I think. But you can with Notepad and a few of lines of code].
SMTP Servers (tuned and debugged for nearly 30 years) use the venerable SMTP protocol to reliably push billions of email messages around the planet 24 hours a day. SMTP is simple, insanely successful, eminently spoof-able and rather insecure. SMTP has no concept of verifiable sender identity. Attila the Hound can send Violet email (encrypted or not) claiming to be Iron Man and she has no way of knowing him from Robert Downey Jr. Encryption keeps your email from prying eyes, but it can’t save you from actors.
What are Violet and Toby to do? Attila is putting a strain on their friendship. Toby & Violet face an identity crisis.
Something you have, Something you know
Toby asks Grandma Asha for help. He regularly applies her practical everyday wisdom to difficult engineering problems.
In my experience, says Grandma, you prove or assert your identity using:
- Something you have: Your driver’s license, your passport [token]
- Something you know: Your social security number, your mother’s maiden name [secret]
- Your signature.
And the lights blaze in Toby’s ingenious head.
The Digital Signature
To prove and assert his identity, Toby uses a blend of Grandma’s suggestions.
First, he creates a (public, private) key pair (see previous post for an overview of key pairs and asymmetric encryption). The private key is a secret that only Toby knows (and has). If he can prove to Violet that he knows this secret, he can prove to her that he is Toby!
Toby demonstrates his knowledge of his private key by using it to encrypt data both he and Violet have access to – the email he is about to send her. If Violet successfully decrypts the email using Toby’s public key, then Violet knows that Toby must have encrypted the email. This is because the only data Violet can decrypt using Toby’s public key – is data encrypted using Toby’s private key! Asymmetric encryption is genius.
But wait, isn’t asymmetric encryption slow? Not a problem, growls the canine cryptographer.
- Toby creates a cryptographic hash or digital fingerprint of his email.
- He encrypts the hash with his private key. This will prove to Violet that the email is really from him. Encrypting the practically unique digital fingerprint of the email is as good as encrypting the email itself.
- He attaches the encrypted hash to the email.
- He names his creation a digital signature.
- Toby has signed the email with his private key.
Violet verifies Toby’s identity by verifying his digital signature:
- Violet creates a cryptographic hash of the email she receives.
- She decrypts Toby’s digital signature using his public key. This gives her Toby’s version of the hash.
- She compares her version of the hash with Toby’s
- If the two match, she can confidently state that:
- Toby sent her the email
- Nobody tampered with or altered the email after Toby signed it. If they had, her version of the cryptographic hash – the digital fingerprint – would be different from what came in the digital signature.
But where does Violet get Toby’s public key? Violet could look it up in a directory, but does not have to. The performance conscious Toby saves her the extra round trip by sending his public key along with the email itself. Public keys are designed for broad dissemination, so this is safe.
How do you send secure email?
To send secure email, you:
- Sign it with your private key [so the recipient knows you sent it, and nobody else tampered with it]
- THEN encrypt it with the recipient’s public key [so nobody but the recipient can read it].
And you are done, right? Wrong.
Spoofing Public Keys
For the cunning Attila can also generate his own (public, private) key pair. He uses this pair to continue pretending that he is Toby:
- Like before, Attila creates an email that claims to be from Toby.
- He signs the email with his (Attila’s) private key
- Then he attaches his (Attila’s) public key to the email
Violet receives Attila’s email and runs through her validation procedure. As Attila expected, everything checks out. The digital signature matches! Violet accepts Attila’s email as what it claims to be – an email from her pal Toby .
Then, Attila’s mentor, Prof. Moriarty, joins the fun. Moriarty figures out that he can intercept Toby’s emails to Violet, but is frustrated because they are encrypted. So, the wily Professor hacks into the public directory that hosts Violet’s public key, and replaces Violet’s public key with his own. Toby is none the wiser as he downloads what he believes to be Violet’s public key. He encrypts email he is sure is for Violet’s eyes only, but will in reality be read by Prof. Moriarty.
Prof. Moriarty reads Toby’s insightful commentary on support vector machines with great interest. Then he re-encrypts the email using Violet’s public key (which he has kept), and forwards it to Violet.
And so we arrive at our next conundrum:
- How does Violet know that the public key she used to verify Toby’s digital signature on his email– is really Toby’s?
- How does Toby know that the public key he used to encrypt his email to Violet – is really Violet’s?
Anybody can generate a public, private key pair. Directories can be hacked and spoofed.
In this cruel, untrusting world, who attests that a proffered public key is the genuine public half of a subject’s (public,private key) pair? Who do you trust? How do you trust?
Unfortunately, tonight’s episode must end on that cliffhanging note. Tune in next time for the exciting tale of two X509 Certificates.