230 likes | 429 Views
Lecture 9: Email Security via PGP. CS 436/636/736 Spring 2012 Nitesh Saxena. Course Admin . HW3 Posted Due at 11am Apr 12 (next Thursday). Email Security. Email is one of the most widely used and regarded network services By default, email communication is NOT “secure”
E N D
Lecture 9: Email Security via PGP CS 436/636/736 Spring 2012 Nitesh Saxena
Course Admin • HW3 Posted • Due at 11am Apr 12 (next Thursday) Lecture 9 - Email Security via PGP
Email Security • Email is one of the most widely used and regarded network services • By default, email communication is NOT “secure” • may be inspected either in transit, or by suitably privileged users on destination system • may be impersonated/spoofed Lecture 9 - Email Security via PGP
Email 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 - Email Security via PGP
Pretty Good Privacy (PGP) • Open source, freely available software package for secure e-mail • De facto standard for secure email • 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 - Email Security via PGP
PGP Operation – Authentication Just use digital signatures: • Sender creates message • Generates a digital signature for the message • Use SHA-1 to generate 160-bit hash of message • Signed hash with RSA (or DSA) using sender's private key, and is attached to message • Receiver uses RSA (or DSA) with sender's public key to decrypt and recover hash code • Receiver verifies received message using hash of it and compares with decrypted hash code Lecture 9 - Email Security via PGP
PGP Operation – Confidentiality • Sender generates a message • Generates a128-bit random number as session key • Encrypts the message using CAST-128 / IDEA / 3DES in CBC mode with session key • Session key encrypted using RSA with recipient's public key and attached to the msg • Can also use El Gamal • Receiver uses RSA with private key to decrypt and recover session key • Session key is used to decrypt message Lecture 9 - Email 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 - Email Security via PGP
PGP Operation – Compression • PGP compresses messages to save space for e-mail 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 - Email Security via PGP
PGP Operation – Email Compatibility • When using PGP will have binary data (8-bit octets) to send (encrypted message, etc) • However, email 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 - Email Security via PGP
PGP Operation – Summary Lecture 9 - Email 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 - Email 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 - Email 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 - Email Security via PGP
PGP Message Format Lecture 9 - Email Security via PGP
PGP Message Generation Lecture 9 - Email Security via PGP
PGP Message Reception Lecture 9 - Email 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 - Email 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 - Email Security via PGP
PGP Key Distribution Issues • Original intention was that all e-mail 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 - Email Security via PGP
PGP in Practice • PGP plugins available • Standalone Email clients • Browser (e.g., FireGPG) Lecture 9 - Email Security via PGP
Summary • have considered: • secure email • PGP Lecture 9 - Email Security via PGP
References • Chapter 18 of Stallings Lecture 9 - Email Security via PGP