On the Security of RC4 in TLS
Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering, Jacob Schuldt Royal Holloway, University of London University of Illinois at Chicago http://www.isg.rhul.ac.uk/tls/
On the Security of RC4 in TLS Nadhem AlFardan, Dan Bernstein, Kenny - - PowerPoint PPT Presentation
On the Security of RC4 in TLS Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering, Jacob Schuldt Royal Holloway, University of London University of Illinois at Chicago http://www.isg.rhul.ac.uk/tls/ Agenda Brief overview of
Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering, Jacob Schuldt Royal Holloway, University of London University of Illinois at Chicago http://www.isg.rhul.ac.uk/tls/
2
3
4
5
6
7
8
begin for i = 0 to 255 do S[i] ← i end j ← 0 for i = 0 to 255 do j ← j + S[i] + K[i mod keylen] mod 256 swap(S[i], S[j]) end i, j ← 0 end begin i ← i + 1 mod 256 j ← j + S[i] mod 256 swap(S[i], S[j]) Z ← S[ S[i] + S[j] mod 256 ] return Z end
9
SSL Pulse: Webserver TLS support Browser TLS support (out-of-the-box) TLS v1.1 TLS v1.1 TLS v1.0 TLS v1.0 TLS v1.0
10
11
1 128
1 256 + cr 2562
1 256 + 1 2562
12
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 1
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 2
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 3
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 4
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 5
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 6
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 7
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 8
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 9
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 10
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 11
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 12
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 13
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 14
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 15
Probability
0.003906
Byte value
0.003950 0.003878
0.003878 0.00390625 0.00395 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 255 Probability Byte value [0...255] Ciphertext distribution at position 16
Probability
0.003906
Byte value
0.003950 0.003878
29
30
31
32
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
33
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
34
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
35
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
36
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
37
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
38
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
39
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
40
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
41
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
42
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
43
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
44
0%# 20%# 40%# 60%# 80%# 100%# 0# 32# 64# 96# 128# 160# 192# 224# 256# Recovery(rate( Byte(posi/on(
45
46
i : keystream byte position mod 256 Byte pair Condition on i Probability (0, 0) i = 1 2−16(1 + 2−9) (0, 0) i 6= 1, 255 2−16(1 + 2−8) (0, 1) i 6= 0, 1 2−16(1 + 2−8) (i + 1, 255) i 6= 254 2−16(1 + 2−8) (255, i + 1) i 6= 1, 254 2−16(1 + 2−8) (255, i + 2) i 6= 0, 253, 254, 255 2−16(1 + 2−8) (255, 0) i = 254 2−16(1 + 2−8) (255, 1) i = 255 2−16(1 + 2−8) (255, 2) i = 0, 1 2−16(1 + 2−8) (129, 129) i = 2 2−16(1 + 2−8) (255, 255) i 6= 254 2−16(1 2−8) (0, i + 1) i 6= 0, 255 2−16(1 2−8)
47
48
0%# 20%# 40%# 60%# 80%# 100%# 0# 1# 2# 3# 4# 5# 6# 7# 8# 9# 10# 11# 12# 13# 14# Recovery(rate( Plaintext(copies(2mes(2^30( Recovery of 16 byte cookie Recovery of individual bytes
49
50
51
52
53
54
0.387%' 0.388%' 0.389%' 0.390%' 0.391%' 0.392%' 0.393%' 0.394%' 0.395%' 0' 32' 64' 96' 128' 160' 192' 224' 256' Probability* Byte*value*