Lecture 9: Security via PGP CS 436/636/736 Spring 2012 Nitesh Saxena
Course Admin HW3 Posted – Due at 11am Apr 12 (next Thursday) Lecture 9 - Security via PGP
Security is one of the most widely used and regarded network services By default, communication is NOT “secure” – may be inspected either in transit, or by suitably privileged users on destination system – may be impersonated/spoofed Lecture 9 - Security via PGP
Security Enhancements Confidentiality – protection from disclosure Authentication – of sender of message Message integrity – protection from modification Non-repudiation of origin – protection from denial by sender Lecture 9 - Security via PGP
Pretty Good Privacy (PGP) Open source, freely available software package for secure De facto standard for secure Developed by Phil Zimmermann Selected best available crypto algorithms to use Runs on a variety of platforms like Unix, PC, Macintosh and other systems Originally free (now also have commercial versions available) Lecture 9 - Security via PGP
PGP Operation – Authentication Just use digital signatures: 1.Sender creates message 2.Generates a digital signature for the message 3.Use SHA-1 to generate 160-bit hash of message 4.Signed hash with RSA (or DSA) using sender's private key, and is attached to message 5.Receiver uses RSA (or DSA) with sender's public key to decrypt and recover hash code 6.Receiver verifies received message using hash of it and compares with decrypted hash code Lecture 9 - Security via PGP
PGP Operation – Confidentiality 1.Sender generates a message 2.Generates a128-bit random number as session key 3.Encrypts the message using CAST-128 / IDEA / 3DES in CBC mode with session key 4.Session key encrypted using RSA with recipient's public key and attached to the msg 1.Can also use El Gamal 5.Receiver uses RSA with private key to decrypt and recover session key 6.Session key is used to decrypt message Lecture 9 - Security via PGP
PGP Operation – Confidentiality & Authentication Can use both services on the same message – create signature & attach it to the message – encrypt both message & signature – attach RSA (or El Gamal) encrypted session key This sequence is preferred because --one can store the plaintext message/file and its signature --no need to decrypt the message/file again and again Lecture 9 - Security via PGP
PGP Operation – Compression PGP compresses messages to save space for transmission and storage By default, PGP compresses message after signing but before encrypting – so can store uncompressed message & signature for later verification – Encryption after compression strengthens security (because compression has less redundancy) uses ZIP compression algorithm Lecture 9 - Security via PGP
PGP Operation – Compatibility When using PGP will have binary data (8-bit octets) to send (encrypted message, etc) However, was designed only for text Hence PGP must encode raw binary data into printable ASCII characters uses radix-64 algorithm – maps 3 bytes to 4 printable chars – also appends a CRC PGP also segments messages if too big (maximum length 50,000 octets) Lecture 9 - Security via PGP
PGP Operation – Summary Lecture 9 - Security via PGP
PGP Session Keys Need a session key for each message – of varying sizes: 56-bit DES, 128-bit CAST or IDEA, 168-bit Triple-DES Uses random inputs taken from – actual keys hit – keystroke timing of a user – mouse movement Lecture 9 - Security via PGP
PGP Public & Private Keys Since many public/private keys may be in use, need to identify which is actually used to encrypt session key in a message – Could send full public-key with every message – But, this is inefficient Rather use a key identifier based on key – is least significant 64-bits of the key – will very likely be unique also use key ID in signatures Lecture 9 - Security via PGP
PGP Key Rings each PGP user has a pair of keyrings: – public-key ring contains all the public-keys of other PGP users known to this user, indexed by key ID – private-key ring contains the public/private key pair(s) for this user, indexed by key ID & encrypted keyed from a hashed passphrase security of private keys thus depends on the pass-phrase security Lecture 9 - Security via PGP
PGP Message Format Lecture 9 - Security via PGP
PGP Message Generation Lecture 9 - Security via PGP
PGP Message Reception Lecture 9 - Security via PGP
PGP Key Distribution Public keys for encrypting session keys / verifying signatures. Private keys for decrypting session keys / creating signatures. Where do these keys come from and on what basis can they be trusted? Lecture 9 - Security via PGP
PGP Key Distribution PGP adopts a trust model called the web of trust. No centralized authority Individuals sign one another’s public keys, these “certificates” are stored along with keys in key rings. PGP computes a trust level for each public key in key ring. Users interpret trust level for themselves. Lecture 9 - Security via PGP
PGP Key Distribution Issues Original intention was that all users would contribute to web of trust. Reality is that this web is sparsely populated. How should security-unaware users assign and interpret trust levels? Later versions of PGP support X.509 certs. Lecture 9 - Security via PGP
PGP in Practice PGP plugins available – Standalone clients – Browser (e.g., FireGPG) Lecture 9 - Security via PGP
Summary have considered: – secure – PGP Lecture 9 - Security via PGP
References Chapter 18 of Stallings Lecture 9 - Security via PGP