0x1A Great Papers in Computer Security

Slides:



Advertisements
Similar presentations
Block Cipher Modes of Operation and Stream Ciphers
Advertisements

ECE454/CS594 Computer and Network Security
“Advanced Encryption Standard” & “Modes of Operation”
CS470, A.SelcukStream Ciphers1 CS 470 Introduction to Applied Cryptography Instructor: Ali Aydin Selcuk.
Wireless Security By Robert Peterson M.S. C.E. Cryptographic Protocols University of Florida College of Information Sciences & Engineering.
CSE  Wired Equivalent Privacy (WEP) ◦ first security protocol defined in  Wi-Fi Protected Access (WPA) ◦ defined by Wi-Fi Alliance 
Your Wireless Network has No Clothes CS 395T William A. Arbaugh, Narendar Shankar, Y.C. Justin Wan.
WEP 1 WEP WEP 2 WEP  WEP == Wired Equivalent Privacy  The stated goal of WEP is to make wireless LAN as secure as a wired LAN  According to Tanenbaum:
Wireless Security Ryan Hayles Jonathan Hawes. Introduction  WEP –Protocol Basics –Vulnerability –Attacks –Video  WPA –Overview –Key Hierarchy –Encryption/Decryption.
1 MD5 Cracking One way hash. Used in online passwords and file verification.
WEP Weaknesses Or “What on Earth does this Protect” Roy Werber.
1 Enhancing Wireless Security with WPA CS-265 Project Section: 2 (11:30 – 12:20) Shefali Jariwala Student ID
COMP4690, HKBU1 Security of COMP4690: Advanced Topic.
Intercepting Mobiles Communications: The Insecurity of Danny Bickson ACNS Course, IDC Spring 2007.
How To Not Make a Secure Protocol WEP Dan Petro.
Wired Equivalent Privacy (WEP)
Security in Wireless LAN Layla Pezeshkmehr CS 265 Fall 2003-SJSU Dr.Mark Stamp.
Vulnerability In Wi-Fi By Angus U CS 265 Section 2 Instructor: Mark Stamp.
Kemal AkkayaWireless & Network Security 1 Department of Computer Science Southern Illinois University Carbondale Wireless and Network Security Lecture.
RC4 1 RC4 RC4 2 RC4  Invented by Ron Rivest o “RC” is “Ron’s Code” or “Rivest Cipher”  A stream cipher  Generate keystream byte at a step o Efficient.
Foundations of Network and Computer Security J J ohn Black Lecture #34 Dec 5 th 2007 CSCI 6268/TLEN 5831, Fall 2007.
Department of Computer Science Southern Illinois University Carbondale Wireless and Network Security Lecture 9: IEEE
WIRELESS NETWORK SECURITY. Hackers Ad-hoc networks War Driving Man-in-the-Middle Caffe Latte attack.
Security – Wired Equivalent Privacy (WEP) By Shruthi B Krishnan.
Computer Security CS 426 Lecture 3
Wireless Security Issues David E. Hudak, Ph.D. Senior Software Architect Karlnet, Inc.
WLAN What is WLAN? Physical vs. Wireless LAN
How Things Goes Wrong: Misuse of Cryptography in Secure System Design
Mobile and Wireless Communication Security By Jason Gratto.
Wireless security & privacy Authors: M. Borsc and H. Shinde Source: IEEE International Conference on Personal Wireless Communications 2005 (ICPWC 2005),
9/01/2010CS 686 Stream Cipher EJ Jung CS 686 Special Topics in CS Privacy and Security.
Cryptography and Network Security Chapter 6. Multiple Encryption & DES  clear a replacement for DES was needed theoretical attacks that can break it.
Slide 1 Stream Ciphers uBlock ciphers generate ciphertext Ciphertext(Key,Message)=Message  Key Key must be a random bit sequence as long as message uIdea:
COEN 350 Mobile Security. Wireless Security Wireless offers additional challenges: Physical media can easily be sniffed. War Driving Legal? U.S. federal.
CS555Spring 2012/Topic 51 Cryptography CS 555 Topic 5: Pseudorandomness and Stream Ciphers.
Intercepting Mobile Communications: The Insecurity of Nikita Borisov Ian Goldberg David Wagner UC Berkeley Zero-Knowledge Sys UC Berkeley Presented.
Stream Ciphers Making the one-time pad practical.
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Stream Cipher July 2011.
NSRI1 Security of Wireless LAN ’ Seongtaek Chee (NSRI)
CWSP Guide to Wireless Security Chapter 2 Wireless LAN Vulnerabilities.
WEP Protocol Weaknesses and Vulnerabilities
COEN 350 Mobile Security. Wireless Security Wireless offers additional challenges: Physical media can easily be sniffed. War Driving Legal? U.S. federal.
WEP AND WPA by Kunmun Garabadu. Wireless LAN Hot Spot : Hotspot is a readily available wireless connection.  Access Point : It serves as the communication.
Wireless LAN Security. Security Basics Three basic tools – Hash function. SHA-1, SHA-2, MD5… – Block Cipher. AES, RC4,… – Public key / Private key. RSA.
WEP, WPA, and EAP Drew Kalina. Overview  Wired Equivalent Privacy (WEP)  Wi-Fi Protected Access (WPA)  Extensible Authentication Protocol (EAP)
3DES and Block Cipher Modes of Operation CSE 651: Introduction to Network Security.
Multiple Encryption & DES  clearly a replacement for DES was needed Vulnerable to brute-force key search attacks Vulnerable to brute-force key search.
Intercepting Mobiles Communications: The Insecurity of ► Paper by Borisov, Goldberg, Wagner – Berkley – MobiCom 2001 ► Lecture by Danny Bickson.
Hacking Wireless Networks (Part II – WEP & WPA)
Wireless Security: The need for WPA and i By Abuzar Amini CS 265 Section 1.
CS 6431 Security Protocols Vitaly Shmatikov.
Wireless Security Rick Anderson Pat Demko. Wireless Medium Open medium Broadcast in every direction Anyone within range can listen in No Privacy Weak.
Slide 1 Vitaly Shmatikov CS 378 (In)Security of b.
How To Not Make a Secure Protocol WEP Dan Petro.
Vitaly Shmatikov CS 361S Introduction to Stream Ciphers Attacks on CSS, WEP, MIFARE.
Giuseppe Bianchi Warm-up example WEP. Giuseppe Bianchi WEP lessons  Good cipher is far from being enough  You must make good USAGE of cipher.
Wired Equivalent Privacy (WEP) Chris Overcash. Contents What is WEP? What is WEP? How is it implemented? How is it implemented? Why is it insecure? Why.
University of Malawi, Chancellor College
WLAN Security1 Security of WLAN Máté Szalay
COEN 350 Mobile Security. Wireless Security Wireless offers additional challenges: Physical media can easily be sniffed. War Driving Legal? U.S. federal.
Slide 1 Vitaly Shmatikov CS 378 Stream Ciphers. slide 2 Stream Ciphers uRemember one-time pad? Ciphertext(Key,Message)=Message  Key Key must be a random.
EECS  Wired Equivalent Privacy (WEP) ◦ first security protocol defined in  Wi-Fi Protected Access (WPA) ◦ defined by Wi-Fi Alliance 
Wireless LAN Security Daniel Reichle Seminar Security Protocols and Applications SS2003.
หัวข้อบรรยาย Stream cipher RC4 WEP (in)security LFSR CSS (in)security.
How crypto fails in practice? CSS, WEP, MIFARE classic
Cryptography Lecture 16.
CSE 4905 WiFi Security I WEP (Wired Equivalent Privacy)
How crypto fails in practice? CSS and WEP
RC4 RC
Presentation transcript:

0x1A Great Papers in Computer Security CS 380S 0x1A Great Papers in Computer Security Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs380s/

Stream Ciphers One-time pad: Ciphertext(Key,Message)=MessageKey Key must be a random bit sequence as long as message Idea: replace “random” with “pseudo-random” Use a pseudo-random number generator (PRNG) PRNG takes a short, truly random secret seed and expands it into a long “random-looking” sequence E.g., 128-bit seed into a 106-bit pseudo-random sequence Ciphertext(Key,Msg)=IV, MsgPRNG(IV,Key) Message processed bit by bit (unlike block cipher) No efficient algorithm can tell this sequence from truly random

Stream Cipher Terminology The seed of pseudo-random generator typically consists of initialization vector (IV) and key The key is a secret known only to the sender and the recipient, not sent with the ciphertext IV is usually sent with the ciphertext The pseudo-random bit stream produced by PRNG(IV,key) is referred to as keystream Encrypt message by XORing with keystream ciphertext = message  keystream

Properties of Stream Ciphers Usually very fast (faster than block ciphers) Used where speed is important: WiFi, DVD, RFID, VoIP Unlike one-time pad, stream ciphers do not provide perfect secrecy Only as secure as the underlying PRNG If used properly, can be as secure as block ciphers PRNG must be cryptographically secure

Weaknesses of Stream Ciphers No integrity Associativity & commutativity: (XY)Z=(XZ)Y (M1PRNG(seed))  M2 = (M1M2)  PRNG(seed) Known-plaintext attack is very dangerous if keystream is ever repeated Self-cancellation property of XOR: XX=0 (M1PRNG(seed))  (M2PRNG(seed)) = M1M2 If attacker knows M1, then easily recovers M2 Most plaintexts contain enough redundancy that knowledge of M1 or M2 is not necessary to recover both from M1M2

How Random is “Random?”

Cryptographically Secure PRNG Next-bit test: given N bits of the pseudo-random sequence, predict (N+1)st bit Probability of correct prediction should be very close to 1/2 for any efficient adversarial algorithm (means what?) PRNG state compromise Even if attacker learns complete or partial state of the PRNG, he should not be able to reproduce the previously generated sequence … or future sequence, if there’ll be future random seed(s) Common PRNGs are not cryptographically secure

LFSR: Linear Feedback Shift Register  Example: 4-bit LFSR b0 b1 b2 b3 add to pseudo-random sequence Key is used as the seed For example, if the seed is 1001, the generated sequence is 1001101011110001001… Repeats after 15 bits (24-1)

Content Scrambling System (CSS) DVD encryption scheme from Matsushita and Toshiba Each player has its own PLAYER KEY (409 player manufacturers, each has its player key) KEY DATA BLOCK contains disk key encrypted with 409 different player keys: EncryptDiskKey(DiskKey) EncryptPlayerKey1(DiskKey) … EncryptPlayerKey409(DiskKey) This helps attacker verify his guess of disk key What happens if even a single player key is compromised? Each DVD is encrypted with a disk-specific 40-bit DISK KEY

Attack on CSS Decryption Scheme [Frank Stevenson] “1” seeded in 1st bit LFSR-17  16 key bits …    disk key Decrypted title key  +mod 256 … 24 key bits LFSR-25 invert “1” seeded in 4th bit carry EncryptDiskKey(DiskKey) stored on disk  Encrypted title key Table-based “mangling”  Given known 40-bit plaintext, repeat the following 5 times (once for each plaintext byte): guess the byte output by the sum of the two LFSRs; use known ciphertext to verify – this takes O(28)  For each guessed output byte, guess 16 bits contained in LFSR-17 – this takes O(216)  Clock out 24 bits out of LFSR-17, use subtraction to determine the corresponding output bits of LFSR-25 – this reveals all of LFSR-25 except the highest bit  “Roll back” 24 bits, try both possibilities – this takes O(2)  Clock out 16 more bits out of both LFSRs, verify the key This attack takes O(225)

DeCSS In CSS, disk key is encrypted under hundreds of different player keys… including Xing, a software DVD player Reverse engineering the object code of Xing revealed its decryption key Recall that every CSS disk contains the master disk key encrypted under Xing’s key One bad player  entire system is broken! Easy-to-use DeCSS software

DeCSS Aftermath DVD CCA sued Jon Lech Johansen (“DVD Jon”), one of DeCSS authors - eventually dropped Publishing DeCSS code violates copyright Underground distribution as haikus and T-shirts “Court to address DeCSS T-Shirt: When can a T-shirt become a trade secret? When it tells you how to copy a DVD.” - From Wired News

RC4 Designed by Ron Rivest for RSA in 1987 Simple, fast, widely used SSL/TLS for Web security, WEP for wireless Byte array S[256] contains a permutation of numbers from 0 to 255 i = j := 0 loop i := (i+1) mod 256 j := (j+S[i]) mod 256 swap(S[i],S[j]) output (S[i]+S[j]) mod 256 end loop

RC4 Initialization Divide key K into L bytes for i = 0 to 255 do S[i] := i j := 0 j := (j+S[i]+K[i mod L]) mod 256 swap(S[i],S[j]) Key can be any length up to 2048 bits Generate initial permutation from key K To use RC4, usually prepend initialization vector (IV) to the key IV can be random or a counter RC4 is not random enough… First byte of generated sequence depends only on 3 cells of state array S - this can be used to extract the key! To use RC4 securely, RSA suggests discarding first 256 bytes Fluhrer-Mantin-Shamir attack

N. Borisov, I. Goldberg, D. Wagner Intercepting Mobile Communications: The Insecurity of 802.11 (MOBICOM 2001)

BSS (infrastructure) mode 802.11b Overview Standard for wireless networks (IEEE 1999) Two modes: infrastructure and ad hoc BSS (infrastructure) mode IBSS (ad hoc) mode

Access Point SSID Service Set Identifier (SSID) is the “name” of the access point By default, access point broadcasts its SSID in plaintext “beacon frames” every few seconds Default SSIDs are easily guessable Manufacturer’s defaults: “linksys”, “tsunami”, etc. This gives away the fact that access point is active Access point settings can be changed to prevent it from announcing its presence in beacon frames and from using an easily guessable SSID But then every user must know SSID in advance

WEP: Wired Equivalent Privacy Special-purpose protocol for 802.11b Intended to make wireless as secure as wired network Goals: confidentiality, integrity, authentication Assumes that a secret key is shared between access point and client Uses RC4 stream cipher seeded with 24-bit initialization vector and 40-bit key Terrible design choice for wireless environment

Shared-Key Authentication Prior to communicating data, access point may require client to authenticate Access Point Client beacon unauthenticated & unassociated OR probe request Passive eavesdropper recovers RC4(IV,K), can respond to any subsequent challenge without knowing K authenticated & unassociated challenge IV, challengeRC4(IV,K) association request authenticated & associated association response

How WEP Works no integrity! (IV, shared key) used as RC4 seed Must never be repeated (why?) There is no key update protocol, so security relies on never repeating IV 24 bits 40 bits IV sent in the clear Worse: changing IV with each packet is optional! CRC-32 checksum is linear in : if attacker flips some plaintext bits, he knows which bits of CRC to flip to produce the same checksum no integrity!

RC4 Is a Bad Choice for Wireless Stream ciphers require synchronization of key streams on both ends of connection This is not suitable when packet losses are common WEP solution: a separate seed for each packet Can decrypt a packet even if a previous packet was lost But number of possible seeds is not large enough! RC4 seed = 24-bit initialization vector + fixed key Assuming 1500-byte packets at 11 Mbps, 224 possible IVs will be exhausted in about 5 hours Seed reuse is deadly for stream ciphers

Recovering Keystream Get access point to encrypt a known plaintext Send spam, access point will encrypt and forward it Get victim to send an email with known content If attacker knows plaintext, it is easy to recover keystream from ciphertext C  M = (MRC4(IV,key))  M = RC4(IV,key) Not a problem if this keystream is not re-used Even if attacker doesn’t know plaintext, can exploit regularities (plaintexts are not random) For example, IP packet structure is very regular

Keystream Will Be Re-Used In WEP, repeated IV means repeated keystream Busy network will repeat IVs often Many cards reset IV to 0 when re-booted, then increment by 1  expect re-use of low-value IVs If IVs are chosen randomly, expect repetition in O(212) due to birthday paradox Recover keystream for each IV, store in a table (KnownM  RC4(IV,key))  KnownM = RC4(IV,key) Wait for IV to repeat, decrypt and enjoy plaintext (M’  RC4(IV,key))  RC4(IV,key) = M’

It Gets Worse Misuse of RC4 in WEP is a design flaw with no fix Longer keys do not help! The problem is re-use of IVs, their size is fixed (24 bits) Attacks are passive and very difficult to detect Perfect target for the Fluhrer et al. attack on RC4 Attack requires known IVs of a special form WEP sends IVs in plaintext Generating IVs as counters or random numbers will produce enough “special” IVs in a matter of hours This results in key recovery (not just keystream) Can decrypt even ciphertexts whose IV is unique

Fixing the Problem Extensible Authentication Protocol (EAP) Developers can choose their own authentication method Passwords (Cisco EAP-LEAP), public-key certificates (Microsoft EAP-TLS), passwords OR certificates (PEAP), etc. 802.11i standard fixes 802.11b problems Patch (TKIP): still RC4, but encrypts IVs and establishes new shared keys for every 10 KBytes transmitted No keystream re-use, prevents exploitation of RC4 weaknesses Use same network card, only upgrade firmware Long-term: AES in CCMP mode, 128-bit keys, 48-bit IVs Block cipher (in special mode) instead of stream cipher Requires new network card hardware

Hacking MIFARE Chips Multi-year project on evaluating security of MIFARE cards at Radboud University in Holland http://www.ru.nl/ds/research/rfid/ MIFARE = case study in how not to design cryptographic authentication systems The following slides are from Peter Van Rossum

MIFARE Chips Series of chips used in contactless smart cards Developed by NXP Semiconductors in the Netherlands Very common in transport payment cards MIFARE Classic: 80% of the market Over 1 billion sold, over 200 million in use

Memory Structure of the Card uid, manufacturer data 1 data 2 data 3 key A, access conditions, key B 4 data 1 5 data 6 data 64 blocks 16 sectors 7 key A,access conditions, key B 60 data 15 61 data 62 data 63 key A, access conditions, key B 48 bits 48 bits 16 bytes

Challenge-Response in CRYPTO1 Tag Reader LFSR stream: Initial state of the LFSR is the key ai := ki i ∈ [0,47] Shift nT + uid into the LFSR ai+48 := L(ai,…,ai+47) + nTi + uidi i ∈ [0,31] Shift nR into the LFSR ai+48 := L(ai,…,ai+47) + nRi-32 i ∈ [32,63] After authentication, LFSR keeps shifting ai+48 := L(ai,…,ai+47) i ∈ [64, ∞) Keystream: bi := f(ai+9,ai+11,…,ai+47) i ∈ [32, ∞) uid auth(block) pick nT nT pick nR Generated by PRNG aR:=suc64(nT) {nR,aR} check aR aT:=suc96(nR) {aT} check aT auth. ok auth. ok

PRNG in CRYPTO1 32-bit nonces Linear feedback shift register 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 32-bit nonces Linear feedback shift register 16-bit internal state Period 216 – 1 = 65535 Feedback: L16(x0,x1,…,x15) := x0+x2+x3+x5 Successor: suc(x0,x1,…,x31) := (x1,x2,…,x30,L16(x16,x17,…,x31))

Replay Attack [Gans, Hoepman, Garcia] Good challenge-response authentication requires some form of “freshness” in each session For example, timestamp or strong (pseudo)randomness MIFARE Classic: no clock + weak randomness “Random” challenges repeat a few times per hour Eavesdrop and record communication session When challenge repeats, send known plaintext, extract keystream, use it to decrypt recorded communication that used the same challenge

Extracting the Key (Reader Only) Acquire keystream Observe authentication  keystream 1 to 3 authentication sessions – takes microseconds Invert the filter function Keystream  internal state of LFSR Approx. 226 operations – take seconds Roll back (“unshift”) the LFSR Problem: bad PRNG design Internal state of LFSR at any time  seed (key) Cryptographically secure PRNG should not allow rollback and recovery of the seed even if state is compromised

Acquiring Keystream Tag Reader Intercepted communication: nT, {aR}, {aT} visible to attacker {aR} = suc64(nT), {aT} = suc96(nT) 64 keystream bits Access to reader only: nT under attacker control {aR} = suc64(nT) visible to attacker 32 keystream bits uid auth(block) pick nT nT pick nR aR:=suc64(nT) {nR,aR} check aR aT:=suc96(nT) {aT} check aT auth. ok auth. ok

Inverting the Filter Function # # # # # # # # # # # # # # # # # # # # keystream: 01100111100110110 #################### 00000000000000000000 00000000000000000001 00000000000000000011 00000000000000000100 00000000000000000110 … produces ‘odd’ keystream 0 # ################### # 0 0000000000000000000 0 0 0000000000000000000 1 0 0000000000000000001 0 0000000000000000011 1 0 0000000000000000100 0 … produces ‘odd’ keystream 01 ## ################## # 00 000000000000000000 1 00 000000000000000001 1 00 000000000000000111 0 00 000000000000000111 1 00 000000000000001000 … produces ‘odd’ keystream 010 219 Filter function only depends only on 20 odd bits of input  easily inverted Compute ‘odd’ bits of LFSR using table and deduce ‘even’ bits (linear relation) OR Compute ‘odd’ and ‘even’ bits of LFSR using tables separately and combine tables

Rolling Back the LFSR Feedback: L(x0,x1,…,x47) := x0+x5+x9+x10+x12+x14 LFSR stream: Initial state of the LFSR is the key ai := ki i ∈ [0,47] Shift nT + uid into the LFSR ai+48 := L(ai,…,ai+47) + nTi + uidi i ∈ [0,31] Shift nR into the LFSR ai+48 := L(ai,…,ai+47) + nRi-32 i ∈ [32,63] After authentication, LFSR keeps shifting ai+48 := L(ai,…,ai+47) i ∈ [64, ∞) Keystream: bi := f(ai+9,ai+11,…,ai+47) i∈ℕ Inverting feedback: R(x1,…,x47,x48) := x5+x9+x10+x12+x14 +x15+x17+x19+x24+x25+x27+x29+x35+x39 +x41+x43+x48 R(x1,…,x47,L(x0,x1,…,x47)) = x0 Inverting LFSR stream: Unshift LFSR until end of authentication ai = R(ai+1,…,ai+48) i ∈ [64, ∞) Unshift nR from the LFSR ai = R(ai+1,…,ai+48) + nRi-32 i ∈ [32,63] = R(ai+1,…,ai+48) + {nR}i-32 + bi = R(ai+1,…,ai+48) + {nR}i-32 + f(ai+9,…,ai+47) Unshift nT + uid from the LFSR ai = R(ai+1,…,ai+48) + nTi + uidi i ∈ [0,31] Key is the initial state of the LFSR ki = ai i ∈ [0,47]

Summary: Weaknesses of CRYPTO1 Stream cipher with 48-bit internal state Enables brute-force attack Weak 16-bit random number generator Enables chosen-plaintext attack and replay attack Authentication protocol leaks keystream Weak “one-way” filter function is easy to invert + simple LFSR structure Enables “rolling back” the internal state to recover key 64-bit keystream  recover unique key 32-bit keystream  216 candidate keys

Extracting the Key (Card Only) Parity bit of plaintext is encrypted with the same bit of the keystream as the next bit of plaintext “One-time” pad is used twice If parity bit is wrong, encrypted error message is sent before authentication Opens the door to card-only guessing attacks (chosen-plaintext, chosen-ciphertext) – why? Wireless-only attack Recover secret key from the card in seconds Result: full cloning