23 Oct PKI for the Mystified Introduction to Public Key Infrastructure and Cryptography Ivaylo Kostadinov
23 Oct DCOCE Der-kot-chee Digital Certificate Operation in a Complex Environment
23 Oct The DCOCE project DCOCE is about authentication with digital certificates Digital certificates use Public Key Infrastructure (PKI) –PKI is very secure –but can be difficult to administer –and a lot of people don't understand it too well
23 Oct Aim of this talk Improve the understanding of the fundamentals of encryption and public key encryption –So that people can then go on and be confident with: PKI PGP SSL (e.g. using a credit card on-line) Encrypting documents (and ) Signing documents (and ) Deciding whether a signature is good or not I won’t use any maths!
23 Oct Parts of this talk Define a few terms Symmetric keys –(A demonstration) –Breaking (or cracking) encrypted information Asymmetric keys Signing things with keys Trusting keys
23 Oct A few terms: Authentication The act of verifying that an electronic identity (username, login name etc.) is being employed by the person to whom it was issued –Strictly it should mean "establishing the validity of something, such as an identity". –(The procedure as indicated by the definition above can be very difficult indeed, but PKI attempts to do this.)
23 Oct A few terms: Authentication
23 Oct A few terms: Authorisation Associating rights or capabilities with a subject Authorisation usually comes after authentication –i.e. once the service knows who it is (Authenticated), it then proceeds to decide what that person/subject can do (Authorisation)
23 Oct What is Public Key Infrastructure? A key is like a code sheet A public key is an odd concept –why would you reveal your secret code in public? We need to understand symmetric keys and asymmetric keys
23 Oct Symmetric encryption SubstitutionTransposition Easy to understand the principles etc. …
23 Oct Symmetric encryption The (almost) technical explanation Encryption Decryption Plaintext Ciphertext Key and encryption algorithm
23 Oct Demonstration
23 Oct Demonstration Algorithm = ‘Write (or read) the letters behind the boxes’. Key = ‘The boxes on this particular sheet’ (or some plotting data for their positions). You and your correspondent need to have the key… …and it needs to be secret from all other spies.
23 Oct Example using the Data Encryption Standard (DES) Symmetric encryption On a computer… $> des -e “Mary had a little lamb” output.des Enter key: oucskey Enter key again: oucskey $> The result: $> cat output.des !¢ðuýåćßÞf 謶׀ עжТφẸỆ≈∞▪ﲑ $>
23 Oct Example using the Data Encryption Standard (DES) continued… Symmetric encryption $> des -d output.des text.des Enter key: oucskey Enter key again: oucskey $>cat text.des Mary had a little lamb $> To decrypt:
23 Oct Example using the Data Encryption Standard (DES) continued… Symmetric encryption $> des -d output.des text.des Enter key: oucsquay Enter key again: oucsquay Corrupted file or wrong key $>cat text.des uýåćß#¬`謶׀ φẸỆעжТ עжТ $> Trying to decrypt with the wrong key:
23 Oct How safe are encryption algorithms anyway? Example using (DES) continued… Symmetric encryption Attacking a cipher What about a ‘brute force’ attack? i.e. ‘guessing’ at the key “oucskey” DES algorithm has a 56-bit key. Therefore, there are 2 56 = 72,057,594,037,900,000 different keys 834 days at a billion keys per second But for a typed key, effectively 96 8 (83 days)
23 Oct How safe are encryption algorithms anyway? –Established algorithms should remain sound –Safety is dependent on key length Symmetric encryption Attacking a cipher
23 Oct Symmetric encryption Demonstration
23 Oct So you have to have the same key as your correspondent – is that a problem? –How do you send the key safely? –Do I try to exchange keys before I communicate? How many keys will I need to communicate with everyone? –You need a key for everyone! Symmetric encryption Some issues
23 Oct Symmetric encryption What makes it symmetric?
23 Oct Asymmetric encryption Then there was asymmetric encryption –Whitfield Diffie and Martin Hellman (1975) –(Ellis and Cox, 1973) –A key pair is constructed using some complicated maths (the keys are not the same) –Each party has two keys (public and private) –Anything encrypted with key1 can only be decrypted with key2 –Asymmetric!
23 Oct Decryption Asymmetric encryption Plaintext Ciphertext Encryption Key 1 and encryption algorithm
23 Oct Plaintext Ciphertext Encryption Key 1 and encryption algorithm If Key 1 = private, Key2 must be corresponding public If Key 1 = public, Key2 must be corresponding private Key 2 and encryption algorithm Decryption Asymmetric encryption
23 Oct Public and private keys Keys exist in pairs –Keep one private (very secret) and 'publish' one –Public keys can exist on certificates Encryption can be done by either key –If it is your key pair, you can use the private key –Anyone else can use the public key to encrypt something
Asymmetric encryption Demonstration Public key Private key 23 February Complex maths!
23 Oct Asymmetric encryption Demonstration
23 Oct Asymmetric encryption Demonstration ‘s public key bb 58 a2 ff ce 8e 3d 4b 59 6a 8c 8c ef 9c 64 2e a5 c3 2d 30 d2 5a c6 3a 2e dc c0 a4 24 1d 74 ce fd bf a 4f b8 99 6d df 04 d0 c5 1a 2b e5 12 b8 0c e6 e1 54 ab cf b 8e d7 b1 b9 f1 1e df 1b f d3 d7 bd 57 eb 5a 75 f2 ee ca 7f c4 d5 73 0e e6 69 7f b0 cd 69 c3 67 2f 1d 9a 5a 16 f6 03 3c 68 5c 91 c4 d
23 Oct Private keys Extremely secret! If you send something encrypted by a private key, it can be read by everyone, but they know it came from you. –Authentication
23 Oct Public keys Not at all secret! –Widely available, but must be trusted –May be supplied as part of a certificate If you send something using a public key, it can only be read by the entity to which it is addressed. –Secure communications e.g. SSL
23 Oct How can I trust a public key? Someone can use a public key to prove their identity to me –but only if I trust that public key –there's public keys out there that say they belong to George Bush etc. So if someone I trusted endorsed (signed) that public key –hold that thought for a moment - we’ll come back to this...
23 Oct Signing things with keys Asymmetric keys can be used to sign things –encrypt a bit of text with your private key (can be attached 'securely' to the 'document') –people can de-crypt it with the public key and know that it was signed by you What?…
23 Oct Signing things with keys You need to know something about hashes… –Message digests or one way hash functions distil the information contained in a file (very small or very large) into a single large number (usually between 128 and 256 bits in length) So, you can actually add the hash value to the file somehow and then sign (or encrypt) that hash value with your private key.
23 Oct Signing things with keys Very important document. Blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, Very important document. Blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, Alg.
23 Oct How can I trust a public key? Put that public key on a certificate (There are other ways, but this is PKI) Get someone you trust to sign the certificate –If the certificate is tampered with, the signature is broken Organisations who sign public keys/certificates are called Certification Authorities (CA)
23 Oct Public Key Infrastructure You create a key pair Put one key of the pair on a certificate Send the certificate (request) to the CA Present yourself or identify yourself to the Registration Authority (RA) The RA tells the CA that you are OK The CA sends you the signed certificate
23 Oct Summary of PKI
23 Oct Public Key Infrastructure Now you have a signed certificate, people and services can trust that you are who you say you are Present your certificate to a service Tell them something encrypted by your private key They like your certificate and know it is you
23 Oct Public Key Infrastructure You keep your private key very secret –Obey the rules for this! Your public key is on the certificate Services must trust the CA Your certificate will have an expiry date –after which you may have to re-visit the RA Your certificate can be revoked at any time
Authentication using certificates and public/private keys Web server Hello Mary had a little lamb End user Mary had a little lamb Mary had a little lamb Mary had a little lamb Client authentication OK. The server is happy that the end user is Mr Bloggs himself!
23 Oct Public Key Infrastructure Asymmetric encryption = public/private keys Symmetric encryption is faster –but how do you deliver the keys Asymmetric encryption is used in SSL –Secure Sockets Layer, very common Also used in client authentication (less common, at the moment)
Authentication using certificates and public/private keys Web server End user Challenge Phrase (Random message) Encryption protocols Encryption protocols OK Random connection identifier (server) Public CA key OK!Or client may not have CA public key (receives message that certificate is not known) | Cancel | Always Trust | Trust this time | Setting up the session and server authentication Challenge Phrase (Random message) Random connection identifier (server) Server pub. key and cert.
Authentication using certificates and public/private keys Web server End user Public CA key Setting up the session and server authentication Challenge Phrase (Random message) Random connection identifier (server) Master session key Symmetric key pairs (Encrypted) Server pub. key and cert.
Authentication using certificates and public/private keys Web server End user Public CA key Setting up the session and server authentication Challenge Phrase (Random message) Random connection identifier (server) Master session key ReadWrite Symmetric key pairs Random connection identifier (server) Symmetric key pairs ReadWrite Random connection identifier (server) Challenge Phrase (Random message) Challenge Phrase (Random message) Then client authentication begins! (as we looked at before) Server pub. key and cert.
23 Oct PKI for the Mystified A Non-technical Introduction to Public Key Infrastructure and Cryptography Please tell me you’re not still mystified!