Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Alice & Bob: public key cryptography 101 - PFC12

Joshua Thijssen
September 15, 2012
220

Alice & Bob: public key cryptography 101 - PFC12

Joshua Thijssen

September 15, 2012
Tweet

Transcript

  1. Alice & Bob PFCongres - Utrecht - NLD 15 september,

    2012 Public key cryptography 101
  2. Joshua Thijssen Freelance consultant, developer en trainer @ NoxLogic /

    Techademy Ontwikkeling in PHP, Python, Perl, C, Java. Lead developer van saffire. Blog: http://adayinthelifeof.nl Email: jthijssen@noxlogic.nl Twitter: @jaytaph 2
  3. Een introductie in public key cryptografie 3

  4. 4 Zonder cryptografie zou er geen internet bestaan zoals we

    dat vandaag kennen. (echt waar)
  5. 5

  6. Maak kennis met Alice, en Bob. 5 Hey Bob! ‘lo

    Alice!
  7. “slechte” encryptie algoritmes 6 http://www.flickr.com/photos/dpwk/1714014449/in/pool-1621478@N23/

  8. “algoritme”: A = 1, B = 2, C = 3,

    ...., Z = 26 7
  9. ciphertext: 12, 1, 13, 5 “algoritme”: A = 1, B

    = 2, C = 3, ...., Z = 26 7
  10. ciphertext: 12, 1, 13, 5 “algoritme”: A = 1, B

    = 2, C = 3, ...., Z = 26 = L A M E 7
  11. 8

  12. 8 ciphertext:        

  13. 8 ciphertext:        

     = W I N G D I N G S
  14. “algoritme”: c = m + k mod 26 9 http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg

  15. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  16. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  17. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F Ciphertext (k=2): E Q F G http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  18. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F Ciphertext (k=2): E Q F G Ciphertext (k=-1): B M C D http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  19. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F Ciphertext (k=2): E Q F G Ciphertext (k=-1): B M C D Ciphertext (k=0): C O D E http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  20. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F Ciphertext (k=2): E Q F G Ciphertext (k=-1): B M C D Ciphertext (k=0): C O D E Ciphertext (k=26): C O D E http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  21. “algoritme”: c = m + k mod 26 9 Bericht:

    C O D E Ciphertext (k=1): D P E F Ciphertext (k=2): E Q F G Ciphertext (k=-1): B M C D Ciphertext (k=0): C O D E Ciphertext (k=26): C O D E Ciphertext (k=52): C O D E http://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Caesar3.svg
  22. 10

  23. ➡ Sleutel is makkelijk te raden 10

  24. ➡ Sleutel is makkelijk te raden ➡ Sleutel moet naar

    Bob worden verzonden. 10
  25. ➡ Sleutel is makkelijk te raden ➡ Sleutel moet naar

    Bob worden verzonden. ➡ Deterministic. 10
  26. ➡ Sleutel is makkelijk te raden ➡ Sleutel moet naar

    Bob worden verzonden. ➡ Deterministic. ➡ Gevoelig voor frequentie analyse. 10
  27. 11

  28. ➡ De frequentie van iedere letter in het Nederlands kan

    worden gezet als een percentage. 11
  29. ➡ De frequentie van iedere letter in het Nederlands kan

    worden gezet als een percentage. ➡ ‘E’ is 18.9%. de ‘Q’ maar 0.009%. 11
  30. ➡ De frequentie van iedere letter in het Nederlands kan

    worden gezet als een percentage. ➡ ‘E’ is 18.9%. de ‘Q’ maar 0.009%. ➡ In het engels: ‘E’ = 12.7%, ‘Z’ = 0.074%. 11
  31. Wilhelmus van Nassouwe ben ik, van Duitsen bloed, den vaderland

    getrouwe blijf ik tot in den dood. Een Prinse van Oranje ben ik, vrij onverveerd, den Koning van Hispanje heb ik altijd geëerd. 12
  32. 13

  33. 14

  34. 15

  35. 16

  36. 17

  37. 18

  38. Determinisme en de toepassing van frequency analyse kunnen gezien worden

    als “een slechte zaak” 18
  39. 19

  40. ➡ Voorgaande voorbeelden waren symmetrische encrypties. 19

  41. ➡ Voorgaande voorbeelden waren symmetrische encrypties. ➡ Dezelfde sleutel wordt

    gebruikt voor zowel encrypt als decryptie. 19
  42. ➡ Voorgaande voorbeelden waren symmetrische encrypties. ➡ Dezelfde sleutel wordt

    gebruikt voor zowel encrypt als decryptie. ➡ Goede symmetrische encrypties: AES, Blowfish, (3)DES, IDEA. 19
  43. ➡ Voorgaande voorbeelden waren symmetrische encrypties. ➡ Dezelfde sleutel wordt

    gebruikt voor zowel encrypt als decryptie. ➡ Goede symmetrische encrypties: AES, Blowfish, (3)DES, IDEA. ➡ Ze zijn over het algemeen snel en veilig. 19
  44. 20

  45. Vraag: 20

  46. Vraag: Hoe zend Alice de sleutel op een veilige manier

    over naar Bob als iedereen meeluisterd? 20
  47. Een ander encryptie systeem: Asymmetrische encryptie of “public key encryption”.

    21
  48. Twee sleutels: public key - beschikbaar voor iedereen. Voor op

    je blog, als signature in je emails etc.. private key - Alleen voor jou! 22
  49. http://upload.wikimedia.org/wikipedia/commons/f/f9/Public_key_encryption.svg 23

  50. Het is NIET mogelijk om het bericht de DEcrypten met

    dezelfde sleutel die gebruikt is om het bericht te ENcrypten. 24
  51. Encryptie met de publieke sleutel: - alleen de prive sleutel

    (en dus Alice) kan decrypten. - bericht is alleen voor Alice bestemd. 25
  52. Encryptie met de publieke sleutel: - alleen de prive sleutel

    (en dus Alice) kan decrypten. - bericht is alleen voor Alice bestemd. 25 Encryptie met de prive sleutel: - alleen de publieke sleutel (en dus iedereen) kan decrypten. - Het bericht is gegarandeerd afkomstig van Alice.
  53. Symmetrisch ✓ snel. ✓ niet reken intensief. ✓ voor kleine

    en grote berichten. ✗ sleutel moet worden verzonden naar Bob. Asymmetrisch ✓ sleutel hoeft niet overgezonden te worden. ✓ kan gebruikt worden voor encryptie en signen. ✗ reken intensief. ✗ alleen geschikt voor kleine berichten. 26
  54. A: Gebruik een symmetrisch encryptie voor het (grote) bericht en

    versleutel de sleutel met een asymetrische encryptie. 27 Q: Hoe zend Alice de sleutel op een veilige manier over naar Bob?
  55. Hybride ✓ snel ✓ niet reken intensief ✓ geschikt voor

    grote en kleine berichten. ✓ veilige uitwissingen van sleutels 28
  56. Hybride ✓ snel ✓ niet reken intensief ✓ geschikt voor

    grote en kleine berichten. ✓ veilige uitwissingen van sleutels 28
  57. + Hybride ✓ snel ✓ niet reken intensief ✓ geschikt

    voor grote en kleine berichten. ✓ veilige uitwissingen van sleutels 28
  58. + http://www.zastavki.com/pictures/1152x864/2008/Animals_Cats_Small_cat_005241_.jpg Hybride ✓ snel ✓ niet reken intensief ✓

    geschikt voor grote en kleine berichten. ✓ veilige uitwissingen van sleutels 28 =
  59. MAAR HOE WERKT HET? 29

  60. RSA 30

  61. RSA Ron Rivest, Adi Shamir, Leonard Adleman 30

  62. RSA Ron Rivest, Adi Shamir, Leonard Adleman 30 1978

  63. RSA Ron Rivest, Adi Shamir, Leonard Adleman 30 1978 Pierre

    de Fermat, Leonard Euler 17e - 18e eeuw
  64. Public key encryptie is gebaseerd op het feit dat het

    praktisch onmogelijk is om een groot getal (van 2 priemgetallen) terug te refactoren naar diezelfde twee priemgetallen. 31
  65. Public key encryptie is gebaseerd op het feit dat het

    praktisch onmogelijk is om een groot getal (van 2 priemgetallen) terug te refactoren naar diezelfde twee priemgetallen. Priemgetal is een nummer deelbaar door 1 en zichzelf: 2, 3, 5, 7, 11, 13, 17, 19 etc... 31
  66. 32

  67. “groot” getal: P * Q = 221 32

  68. “groot” getal: P * Q = 221 maar we kunnen

    P en Q niet teruggekeken dmv een formule. 32
  69. “groot” getal: P * Q = 221 maar we kunnen

    P en Q niet teruggekeken dmv een formule. (13 en 17) 32
  70. 33

  71. ➡ Er is geen bewijs dat het kan, maar er

    is ook geen bewijs dat het omgelijk is. 33
  72. ➡ Er is geen bewijs dat het kan, maar er

    is ook geen bewijs dat het omgelijk is. ➡ Brute-force decryptie is altijd mogelijk (snellere machines, betere algoritmes etc) 33
  73. 34 This is mathness! No, this is RSAAAA!

  74. 35

  75. 35 ➡ p = (groot) priem getal

  76. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p)
  77. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p) ➡ n = p . q (bit lengte van de RSA sleutel)
  78. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p) ➡ n = p . q (bit lengte van de RSA sleutel) ➡ φ = (p-1) . (q-1) (het φ dingetje heet phi (faai))
  79. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p) ➡ n = p . q (bit lengte van de RSA sleutel) ➡ φ = (p-1) . (q-1) (het φ dingetje heet phi (faai)) ➡ e = ggd(e, φ) = 1
  80. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p) ➡ n = p . q (bit lengte van de RSA sleutel) ➡ φ = (p-1) . (q-1) (het φ dingetje heet phi (faai)) ➡ e = ggd(e, φ) = 1 ➡ d = (d . e) mod φ = 1
  81. 35 ➡ p = (groot) priem getal ➡ q =

    (groot) priem getal (maar niet te dicht bij p) ➡ n = p . q (bit lengte van de RSA sleutel) ➡ φ = (p-1) . (q-1) (het φ dingetje heet phi (faai)) ➡ e = ggd(e, φ) = 1 ➡ d = (d . e) mod φ = 1
  82. Stap 1: kies de getallen P and Q ‣ P

    = ? | Q = ? | N = ? | Phi = ? | e = ? | d = ? 36
  83. Stap 1: kies de getallen P and Q ‣ P

    = 11 ‣ P = ? | Q = ? | N = ? | Phi = ? | e = ? | d = ? 36
  84. Stap 1: kies de getallen P and Q ‣ P

    = 11 ‣ Q = 3 ‣ P = ? | Q = ? | N = ? | Phi = ? | e = ? | d = ? 36
  85. Stap 2: bereken N and Phi ‣ P = 11

    | Q = 3 | N = ? | Phi = ? | e = ? | d = ? 37
  86. ➡ N = P . Q = 11 . 3

    = 33 Stap 2: bereken N and Phi ‣ P = 11 | Q = 3 | N = ? | Phi = ? | e = ? | d = ? 37
  87. ➡ N = P . Q = 11 . 3

    = 33 ➡ φ = (11-1) . (3-1) = 10 . 2 = 20 Stap 2: bereken N and Phi ‣ P = 11 | Q = 3 | N = ? | Phi = ? | e = ? | d = ? 37
  88. ➡ N = P . Q = 11 . 3

    = 33 ➡ φ = (11-1) . (3-1) = 10 . 2 = 20 Stap 2: bereken N and Phi ‣ P = 11 | Q = 3 | N = ? | Phi = ? | e = ? | d = ? 37 33 decimaal is 100001 in binair == 6 bit sleutel
  89. Stap 3: zoek een ‘e’ ‣ P = 11 |

    Q = 3 | N = 33 | Phi = 20 | e = ? | d = ? 38
  90. Stap 3: zoek een ‘e’ ‣ e = 3 ‣

    P = 11 | Q = 3 | N = 33 | Phi = 20 | e = ? | d = ? 38
  91. Stap 3: zoek een ‘e’ ‣ e = 3 ‣

    ggd(e, φ) = 1 ==> ggd(3, 20) = 1 ‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = ? | d = ? 38
  92. Stap 3: zoek een ‘e’ ‣ e = 3 ‣

    ggd(e, φ) = 1 ==> ggd(3, 20) = 1 ‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = ? | d = ? 38 Fermat nummer: 2 + 1 2 n
  93. Stap 3: zoek een ‘e’ ‣ e = 3 ‣

    ggd(e, φ) = 1 ==> ggd(3, 20) = 1 ‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = ? | d = ? 38 Fermat nummer: 2 + 1 2 n Fermat priemgetal: Fermat nummer dat ook een priemgetal is: 3, 5, 17, 257, 65537 Uit studie blijkt dat 98.5% van de RSA sleutels het getal 65537 voor ‘e’ kiezen.
  94. ‣ P = 11 | Q = 3 | N

    = 33 | Phi = 20 | e = 3 | d = ? Stap 4: zoek een ‘d’ 39
  95. ‣ P = 11 | Q = 3 | N

    = 33 | Phi = 20 | e = 3 | d = ? Stap 4: zoek een ‘d’ ‣ Extended Euclidean Algorithm geeft 7 39
  96. ‣ P = 11 | Q = 3 | N

    = 33 | Phi = 20 | e = 3 | d = ? Stap 4: zoek een ‘d’ ‣ Extended Euclidean Algorithm geeft 7 ‣ brute force: (e.d mod φ = 1) 39
  97. ‣ P = 11 | Q = 3 | N

    = 33 | Phi = 20 | e = 3 | d = ? Stap 4: zoek een ‘d’ ‣ Extended Euclidean Algorithm geeft 7 ‣ brute force: (e.d mod φ = 1) 3 . 1 = 3 mod 20 = 3 3 . 2 = 6 mod 20 = 6 3 . 3 = 9 mod 20 = 9 3 . 4 = 12 mod 20 = 12 3 . 5 = 15 mod 20 = 15 3 . 6 = 18 mod 20 = 18 3 . 7 = 21 mod 20 = 1 3 . 8 = 24 mod 20 = 4 3 . 9 = 27 mod 20 = 7 3.10 = 30 mod 20 = 10 39
  98. ‣ P = 11 | Q = 3 | N

    = 33 | Phi = 20 | e = 3 | d = 7 40
  99. Klaar! ➡ public key = (n, e) = (33, 3)

    ➡ private key = (n, d) = (33, 7) ‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = 7 40
  100. 41 jthijssen@debian-jth:~$ openssl rsa -text -noout -in server.key

  101. 41 jthijssen@debian-jth:~$ openssl rsa -text -noout -in server.key Private-Key: (256

    bit) modulus: 00:c2:d0:c4:1f:6f:78:16:82:d1:0c:dd:5a:af:de:f2:ff:31:c6: 9b:3b:9f:e8:24:2a:5c:06:56:ea:d7:7c:c6:19 publicExponent: 65537 (0x10001) privateExponent: 22:8f:fd:2b:82:90:30:96:36:d6:6c:73:09:5e:a9:87:73:6e: 2d:d4:d5:78:fc:3b:20:ea:0d:02:e5:2b:cb:3d prime1: 00:f0:49:fd:91:18:01:53:92:8f:87:d7:2b:c8:19:7d:17 prime2: 00:cf:8d:a1:3b:93:af:61:77:8f:c9:8f:1d:aa:8d:b4:4f exponent1: 00:e1:d8:c9:89:bc:84:52:a6:a8:5d:47:32:91:6a:d3:95 exponent2: 5a:88:b1:fa:d5:d9:db:8f:16:a6:5a:0a:1b:ba:42:1b coefficient: 00:99:fa:de:80:d4:ee:f3:69:59:e5:8a:72:ad:e5:30:3d
  102. 41 jthijssen@debian-jth:~$ openssl rsa -text -noout -in server.key n e

    d p q d mod (p-1) e mod (q-1) (inverse q) mod p Private-Key: (256 bit) modulus: 00:c2:d0:c4:1f:6f:78:16:82:d1:0c:dd:5a:af:de:f2:ff:31:c6: 9b:3b:9f:e8:24:2a:5c:06:56:ea:d7:7c:c6:19 publicExponent: 65537 (0x10001) privateExponent: 22:8f:fd:2b:82:90:30:96:36:d6:6c:73:09:5e:a9:87:73:6e: 2d:d4:d5:78:fc:3b:20:ea:0d:02:e5:2b:cb:3d prime1: 00:f0:49:fd:91:18:01:53:92:8f:87:d7:2b:c8:19:7d:17 prime2: 00:cf:8d:a1:3b:93:af:61:77:8f:c9:8f:1d:aa:8d:b4:4f exponent1: 00:e1:d8:c9:89:bc:84:52:a6:a8:5d:47:32:91:6a:d3:95 exponent2: 5a:88:b1:fa:d5:d9:db:8f:16:a6:5a:0a:1b:ba:42:1b coefficient: 00:99:fa:de:80:d4:ee:f3:69:59:e5:8a:72:ad:e5:30:3d
  103. Versleutelen van een bericht: c = me mod n ontcijferen

    van een bericht: m = cd mod n 42
  104. private key = (n,d) = (33, 7): public key =

    (n,e) = (33, 3): m = 13, 20, 15, 5 13^7 mod 33 = 7 20^7 mod 33 = 26 15^7 mod 33 = 27 5^7 mod 33 = 14 c = 7, 26, 27,14 43
  105. private key = (n,d) = (33, 7): public key =

    (n,e) = (33, 3): m = 13, 20, 15, 5 13^7 mod 33 = 7 20^7 mod 33 = 26 15^7 mod 33 = 27 5^7 mod 33 = 14 c = 7, 26, 27,14 43 c = 7, 26, 27,14 7^3 mod 33 = 13 26^3 mod 33 = 20 27^3 mod 33 = 15 14^3 mod 33 =5 m = 13, 20, 15, 5
  106. 44

  107. ➡ Een bericht is een “nummer” 44

  108. ➡ Een bericht is een “nummer” ➡ Een bericht moet

    tussen 2 en n-1 liggen. 44
  109. ➡ Een bericht is een “nummer” ➡ Een bericht moet

    tussen 2 en n-1 liggen. ➡ Deterministisch, dus we moeten een (random) padding schema gebruiken om het non- deterministisch te maken. 44
  110. 45

  111. ➡ Public Key Cryptography Standard #1 45

  112. ➡ Public Key Cryptography Standard #1 ➡ Pads data met

    (random) bytes tot n bits in lengte (v1.5 or OAEP/v2.x). 45
  113. ➡ Public Key Cryptography Standard #1 ➡ Pads data met

    (random) bytes tot n bits in lengte (v1.5 or OAEP/v2.x). ➡ Gebruik altijd de laatste versie! (v2.1) 45
  114. Data = 4E636AF98E40F3ADCFCCB698F4E80B9F 0002257F48FD1F1793B7E5E02306F2D3228F5C95ADF5F31566729F132AA12009 E3FC9B2B475CD6944EF191E3F59545E671E474B555799FE3756099F044964038 B16B2148E9A2F9C6F44BB5C52E3C6C8061CF694145FAFDB24402AD1819EACEDF 4A36C6E4D2CD8FC1D62E5A1268F496004E636AF98E40F3ADCFCCB698F4E80B9F 3D2AB25B1EB667A40F504CC4D778EC399A899C8790EDECEF062CD739492C9CE5 8B92B9ECF32AF4AAC7A61EAEC346449891F49A722378E008EFF0B0A8DBC6E621 EDC90CEC64CF34C640F5B36C48EE9322808AF8F4A0212B28715C76F3CB99AC7E

    609787ADCE055839829E0142C44B676D218111FFE69F9D41424E177CBA3A435B http://www.di-mgt.com.au/rsa_alg.html#pkcs1schemes 46
  115. 47 Praktische applicaties met PKE

  116. HTTPS 48

  117. ➡HTTP over TLS (previously SSL). HTTPS 48

  118. ➡HTTP over TLS (previously SSL). ➡Zeg maar: een encryptie laag

    over http. HTTPS 48
  119. ➡HTTP over TLS (previously SSL). ➡Zeg maar: een encryptie laag

    over http. ➡Hybride encryptie. HTTPS 48
  120. HTTPS 49

  121. ➡Daadwerkelijke encryptie methodiek wordt besloten tussen de browser en de

    server. HTTPS 49
  122. ➡Daadwerkelijke encryptie methodiek wordt besloten tussen de browser en de

    server. ➡Symmetrische encryptie (AES-256 etc) HTTPS 49
  123. ➡Daadwerkelijke encryptie methodiek wordt besloten tussen de browser en de

    server. ➡Symmetrische encryptie (AES-256 etc) ➡Maar beide zijden hebben dezelfde sleutel nodig. Hoe zenden we deze sleutel over? HTTPS 49
  124. HTTPS 50

  125. ➡Sleutel wordt verzonden in een public key ge- encrypt bericht.

    HTTPS 50
  126. ➡Sleutel wordt verzonden in een public key ge- encrypt bericht.

    ➡Maar welke publieke sleutel? HTTPS 50
  127. ➡Sleutel wordt verzonden in een public key ge- encrypt bericht.

    ➡Maar welke publieke sleutel? ➡Deze is opgeslagen in de server’s SSL certificaat. HTTPS 50
  128. 51 jthijssen@debian-jth:~$ openssl x509 -text -noout -in github.pem Certificate: Data:

    Version: 3 (0x2) Serial Number: 0e:77:76:8a:5d:07:f0:e5:79:59:ca:2a:9d:50:82:b5 Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV CA-1 Validity Not Before: May 27 00:00:00 2011 GMT Not After : Jul 29 12:00:00 2013 GMT Subject: businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/ 1.3.6.1.4.1.311.60.2.1.2=California/serialNumber=C3268102, C=US, ST=California, L=San Francisco, O=GitHub, Inc., CN=github.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:ed:d3:89:c3:5d:70:72:09:f3:33:4f:1a:72:74: d9:b6:5a:95:50:bb:68:61:9f:f7:fb:1f:19:e1:da: 04:31:af:15:7c:1a:7f:f9:73:af:1d:e5:43:2b:56: 09:00:45:69:4a:e8:c4:5b:df:c2:77:52:51:19:5b: d1:2b:d9:39:65:36:a0:32:19:1c:41:73:fb:32:b2: 3d:9f:98:ec:82:5b:0b:37:64:39:2c:b7:10:83:72: cd:f0:ea:24:4b:fa:d9:94:2e:c3:85:15:39:a9:3a: f6:88:da:f4:27:89:a6:95:4f:84:a2:37:4e:7c:25: 78:3a:c9:83:6d:02:17:95:78:7d:47:a8:55:83:ee: 13:c8:19:1a:b3:3c:f1:5f:fe:3b:02:e1:85:fb:11: 66:ab:09:5d:9f:4c:43:f0:c7:24:5e:29:72:28:ce: d4:75:68:4f:24:72:29:ae:39:28:fc:df:8d:4f:4d: 83:73:74:0c:6f:11:9b:a7:dd:62:de:ff:e2:eb:17: e6:ff:0c:bf:c0:2d:31:3b:d6:59:a2:f2:dd:87:4a: 48:7b:6d:33:11:14:4d:34:9f:32:38:f6:c8:19:9d: f1:b6:3d:c5:46:ef:51:0b:8a:c6:33:ed:48:61:c4: 1d:17:1b:bd:7c:b6:67:e9:39:cf:a5:52:80:0a:f4: ea:cd Exponent: 65537 (0x10001)
  129. HTTPS 52

  130. ➡Browser zend lijst met encryptie methodieken. HTTPS 52

  131. ➡Browser zend lijst met encryptie methodieken. ➡Server beslist welke er

    wordt gebruikt. HTTPS 52
  132. ➡Browser zend lijst met encryptie methodieken. ➡Server beslist welke er

    wordt gebruikt. ➡Server zend certificaten. HTTPS 52
  133. ➡Browser zend lijst met encryptie methodieken. ➡Server beslist welke er

    wordt gebruikt. ➡Server zend certificaten. ➡Client zend een “session key” ge-encrypt door de PKE sleutel uit het certificaat. HTTPS 52
  134. ➡Browser zend lijst met encryptie methodieken. ➡Server beslist welke er

    wordt gebruikt. ➡Server zend certificaten. ➡Client zend een “session key” ge-encrypt door de PKE sleutel uit het certificaat. ➡Server en client gebruiken de “session key” voor symmetrische encryptie. HTTPS 52
  135. HTTPS 53

  136. ➡Dus: Public/private encryptie wordt gebruikt om een tweede (betere!?) encryptie

    op te zetten. HTTPS 53
  137. ➡Dus: Public/private encryptie wordt gebruikt om een tweede (betere!?) encryptie

    op te zetten. ➡SSL/TLS is een aparte presentatie (en is iets complexer) HTTPS 53
  138. ➡Dus: Public/private encryptie wordt gebruikt om een tweede (betere!?) encryptie

    op te zetten. ➡SSL/TLS is een aparte presentatie (en is iets complexer) ➡http://www.moserware.com/2009/06/first-few- milliseconds-of-https.html HTTPS 53
  139. http://torontoemerg.files.wordpress.com/2010/09/spam.gif http://change-your-ip.com/wp-content/uploads/image/nigerian_419_scam.jpg 54

  140. 55

  141. Vragen: 56

  142. ➡ Heeft Bill deze email echt verzonden? Vragen: 56

  143. ➡ Heeft Bill deze email echt verzonden? ➡ Hoe weten

    we of iemand anders dit bericht voor ons heeft gelezen (postbode?) Vragen: 56
  144. ➡ Heeft Bill deze email echt verzonden? ➡ Hoe weten

    we of iemand anders dit bericht voor ons heeft gelezen (postbode?) ➡ Hoe weten we zeker dat de inhoud authentiek is? Vragen: 56
  145. ➡ Heeft Bill deze email echt verzonden? ➡ Hoe weten

    we of iemand anders dit bericht voor ons heeft gelezen (postbode?) ➡ Hoe weten we zeker dat de inhoud authentiek is? ➡ We gebruiken signing! Vragen: 56
  146. 57

  147. ➡ Signing van een bericht betekend het toevoegen van een

    signature (“digitale handtekening”) dat de authenticiteit van het bericht waarborgt. 57
  148. ➡ Signing van een bericht betekend het toevoegen van een

    signature (“digitale handtekening”) dat de authenticiteit van het bericht waarborgt. ➡ Zoals md5 or sha1, wanneer het bericht veranderd, veranderd de handtekening. 57
  149. ➡ Signing van een bericht betekend het toevoegen van een

    signature (“digitale handtekening”) dat de authenticiteit van het bericht waarborgt. ➡ Zoals md5 or sha1, wanneer het bericht veranderd, veranderd de handtekening. ➡ Dit werkt omdat Alice en alleen Alice de private key heeft om de signature te maken. 57
  150. http://en.wikipedia.org/wiki/File:Digital_Signature_diagram.svg 58

  151. 59

  152. ➡ GPG / PGP: Applicatie voor signen en/of encrypten van

    data (of emails). 59
  153. ➡ GPG / PGP: Applicatie voor signen en/of encrypten van

    data (of emails). ➡ Probeer het zelf met b.v. Thunderbird’s Enigmail extensie. 59
  154. ➡ GPG / PGP: Applicatie voor signen en/of encrypten van

    data (of emails). ➡ Probeer het zelf met b.v. Thunderbird’s Enigmail extensie. ➡ Publieke sleutels kunnen verzonden/ gevonden worden op key-servers dus je hoeft niet elke keer je eigen publieke sleutel mee te sturen. 59
  155. 60

  156. ‣ Iedereen kan emails versturen die ALLEEN JIJ kunt lezen.

    60
  157. ‣ Iedereen kan emails versturen die ALLEEN JIJ kunt lezen.

    ‣ Iedereen kan verifieren dat JIJ een email hebt gestuurd en dat het authentiek is. 60
  158. ‣ Iedereen kan emails versturen die ALLEEN JIJ kunt lezen.

    ‣ Iedereen kan verifieren dat JIJ een email hebt gestuurd en dat het authentiek is. ‣ Waarom is dit niet standaard? 60
  159. 61

  160. SSH 62

  161. ➡ Public key authenticatie SSH 62

  162. ➡ Public key authenticatie ➡ Omdat jij geen wachtwoorden kunt

    onthouden en verzinnen. SSH 62
  163. ➡ ssh-keygen ➡ kopieeer id_rsa.pub naar de server’s ~/.ssh/ authorized_keys

    ➡ Makkelijk voor tools / scripts. ➡ Makkelijk voor jou (geen wachtwoorden te onthouden) ➡ Beter security model. 63
  164. ➡ Domain Key Identified Mail (spam protectie) ➡ BitCoin ➡

    IPSEC / PKI ➡ DRM 64
  165. 65 Pro-tips: (gratis)

  166. 66

  167. ➡ Geen eigen encryptie “uitvinden”. Het gaat NIET veilig zijn

    en het ZAL falen. 66
  168. ➡ Geen eigen encryptie “uitvinden”. Het gaat NIET veilig zijn

    en het ZAL falen. ➡ Encryptie is zo sterk als de zwakste link, en 9 van de 10 keer bij jij die link. 66
  169. ➡ Geen eigen encryptie “uitvinden”. Het gaat NIET veilig zijn

    en het ZAL falen. ➡ Encryptie is zo sterk als de zwakste link, en 9 van de 10 keer bij jij die link. ➡ Encrypties evolueren. Gebruik vandaag niet wat je 10 jaar geleden gebruikt. 66
  170. ➡ Geen eigen encryptie “uitvinden”. Het gaat NIET veilig zijn

    en het ZAL falen. ➡ Encryptie is zo sterk als de zwakste link, en 9 van de 10 keer bij jij die link. ➡ Encrypties evolueren. Gebruik vandaag niet wat je 10 jaar geleden gebruikt. ➡ Alle encrypties zullen uiteindelijk gekraakt worden! 66
  171. ➡ Geen eigen encryptie “uitvinden”. Het gaat NIET veilig zijn

    en het ZAL falen. ➡ Encryptie is zo sterk als de zwakste link, en 9 van de 10 keer bij jij die link. ➡ Encrypties evolueren. Gebruik vandaag niet wat je 10 jaar geleden gebruikt. ➡ Alle encrypties zullen uiteindelijk gekraakt worden! ➡ Volg altijd de best practices. 66
  172. http://farm1.static.flickr.com/73/163450213_18478d3aa6_d.jpg Vragen? 67

  173. http://joind.in/7074 68 Vind me op twitter: @jaytaph Vind me voor

    development en training: www.noxlogic.nl Vind me op email: jthijssen@noxlogic.nl Vind me op blogs: www.adayinthelifeof.nl