23 oct 20081 pki for the mystified introduction to public key infrastructure and cryptography ivaylo...

45
23 Oct 2008 1 PKI for the Mystified Introduction to Public Key Infrastructure and Cryptography Ivaylo Kostadinov

Upload: isaac-victor-morris

Post on 16-Dec-2015

218 views

Category:

Documents


2 download

TRANSCRIPT

23 Oct 2008 1

PKI for the Mystified

Introduction to Public Key Infrastructure and Cryptography

Ivaylo Kostadinov

23 Oct 2008 2

DCOCE

Der-kot-chee

Digital Certificate Operation in a Complex Environment

23 Oct 2008 3

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 2008 4

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 email)

• Signing documents (and email)

• Deciding whether a signature is good or not

• I won’t use any maths!

23 Oct 2008 5

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 2008 6

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 2008 7

A few terms: Authentication

23 Oct 2008 8

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 2008 9

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 2008 10

Symmetric encryption

• Substitution • Transposition

Easy to understand the principles

etc. …

23 Oct 2008 11

Symmetric encryptionThe (almost) technical explanation

Encryption

Decryption

Pla

inte

xt

Cip

hert

ext

Keyand encryption algorithm

23 Oct 2008 12

Demonstration

23 Oct 2008 13

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 2008 14

• Example using the Data Encryption Standard (DES)

Symmetric encryptionOn a computer…

$> des -e “Mary had a little lamb” output.desEnter key: oucskeyEnter key again: oucskey$>

• The result:$> cat output.des!¢ðuýåćßÞf 謶׀ עжТφẸỆ≈∞▪ري$>

23 Oct 2008 15

• Example using the Data Encryption Standard (DES) continued…

Symmetric encryption

$> des -d output.des text.desEnter key: oucskeyEnter key again: oucskey$>cat text.desMary had a little lamb$>

• To decrypt:

23 Oct 2008 16

• Example using the Data Encryption Standard (DES) continued…

Symmetric encryption

$> des -d output.des text.desEnter key: oucsquayEnter key again: oucsquay

Corrupted file or wrong key$>cat text.desuýåćß#¬`謶׀ φẸỆעжТ עжТ$>

• Trying to decrypt with the wrong key:

23 Oct 2008 17

• How safe are encryption algorithms anyway?

• Example using (DES) continued…

Symmetric encryptionAttacking 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 256 = 72,057,594,037,900,000different keys

• 834 days at a billion keys per second

• But for a typed key, effectively 968 (83 days)

23 Oct 2008 18

• How safe are encryption algorithms anyway?– Established algorithms should remain sound

– Safety is dependent on key length

Symmetric encryptionAttacking a cipher

23 Oct 2008 19

Symmetric encryptionDemonstration

23 Oct 2008 20

• 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 encryptionSome issues

23 Oct 2008 21

Symmetric encryption

• What makes it symmetric?

23 Oct 2008 22

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 2008 23

Decryption

Asymmetric encryptionP

lain

text

Cip

hert

ext

Encryption

Key 1 andencryption algorithm

23 Oct 2008 24

Pla

inte

xt

Cip

hert

ext

Encryption

Key 1 andencryption algorithm

If Key 1 = private, Key2 must be corresponding publicIf Key 1 = public, Key2 must be corresponding private

Key 2 andencryption algorithm

Decryption

Asymmetric encryption

23 Oct 2008 25

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 encryptionDemonstration

Public key

Private key

23 February 2004 26

Complexmaths!

23 Oct 2008 27

Asymmetric encryptionDemonstration

23 Oct 2008 28

Asymmetric encryptionDemonstration ‘s public key

30 81 89 02 81 81 00 bb 58 a2 ff ce 8e 3d 4b 59

6a 8c 8c 68 52 62 ef 9c 64 2e 94 43 a5 c3 2d 30

d2 5a c6 3a 2e dc c0 a4 24 1d 74 ce 08 46 53 fd

bf 00 50 83 5a 4f 48 63 b8 99 6d df 04 d0 c5 1a

2b e5 12 b8 0c e6 e1 54 ab cf 79 74 3b 8e d7 b1

b9 f1 1e 11 03 94 df 1b 69 13 8f 14 32 d3 d7 bd

57 eb 5a 75 f2 ee 66 30 ca 7f 55 52 c4 d5 73 0e

03 89 e6 69 7f b0 cd 69 c3 67 2f 1d 9a 5a 16 f6

03 3c 68 5c 91 c4 d3 02 03 01 00 01

23 Oct 2008 29

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 2008 30

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 2008 31

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 2008 32

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 2008 33

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 2008 34

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. <975764138552>

23 Oct 2008 35

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 2008 36

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 2008 37

Summary of PKI

23 Oct 2008 38

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 2008 39

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

Webserver

HelloMary had

a little lamb

End user

Mary hada little lamb

Mary hada little lamb

Mary hada little lamb

Client authentication

OK. The server is happy that the end user is Mr Bloggs himself!

23 Oct 2008 41

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

Webserver

End user

Challenge Phrase(Random message)

Encryptionprotocols Encryption

protocols OK

Random connectionidentifier (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 connectionidentifier (server)

Server pub. key and cert.

Authentication using certificates and public/private keys

Webserver

End user Public CA key

Setting up the session and server authentication

Challenge Phrase(Random message)

Random connectionidentifier (server)

Master session key

Symmetric keypairs

(Encrypted)

Server pub. key and cert.

Authentication using certificates and public/private keys

Webserver

End user Public CA key

Setting up the session and server authentication

Challenge Phrase(Random message)

Random connectionidentifier (server)

Master session key

ReadWrite

Symmetric keypairs

Random connectionidentifier (server)

Symmetric keypairs

Read WriteRandom connectionidentifier (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 2008 45

PKI for the MystifiedA Non-technical Introduction to Public Key Infrastructure and Cryptography

Please tell me you’re not still mystified!