Analiza kvalitete kriptografskih sustava sa nepoznatim kriptoalgoritmima Tonimir Ki šasondi, dipl.inf  prof.dr.sc. Željko ...
Tema rada: <ul><li>Utvrditi dali je moguće utvrditi korišteni kriptoalgoritam iz kriptirane poruke ako je korišten popular...
Element promatranja: Promatramo simetrične sustave: C = f(M,K) -> M = f(C,K)‏ f -> aes, des, 3des, bf, tf, rc4 M -> tekst ...
Element promatranja: Software: dm-crypt/LUKS TrueCrypt GnuPG OpenSSL ...
dm-crypt/LUKS Open Source disk enkripcija pod Linux baziranim OS. ~# cryptsetup luksDump /dev/sda2  LUKS header informatio...
TrueCrypt TrueCrypt – Multiplatform disk enkripcija ~#  truecrypt -vl /dev/mapper/truecrypt0: Volume: /dev/sda3 Type: Norm...
GnuPG GnuPG -> Multiplatform -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.9 (GNU/Linux)‏ jA0EAwMCvRtDZw+LN1hgycBqQ9zXPb...
GnuPG GnuPG -> Multiplatform -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.9 (GNU/Linux)‏ jA0EAwMCvRtDZw+LN1hgycBqQ9zXPb...
GnuPG RFC 2440 ->  http://www.ietf.org/rfc/rfc2440.txt Algorithm Identifier -> Numeric ~$ gpg --list-packets cuc.txt.asc  ...
GnuPG Ref: RFC 2440 1  ← IDEA 2  ← 3DES 3  ← CAST5 4  ← Blowfish 7  ← AES (128)‏ 8  ← AES192 9  ← AES256 10 ← Twofish
OpenSSL ~/openssl$ openssl enc -aes-256-cbc -in file -out file.enc enter aes-256-cbc encryption password: Verifying - ente...
Isplativost za štite : Postoji više napada koji mogu zaobići disk enkripciju: Uvjet: Računalo radi (locked) ili je u sleep...
Implementacije: Nepoznati algoritam otežava kriptoanalizu U većini slučajeva – može se doznati iz sadržaja i nije adekvatn...
Implementacije:
Grafički prikaz: Vlastita implementacija toolkita za analizu kriptosadržaja u pythonu: Analiza kriptoteksta, entropijska a...
0x00, File dump – redukcija na 7 :
Blowfish u ECB modu – redukcija na 7 :
Blowfish u CBC načinu – redukcija na 7 :
Implementacija algoritma: Sekvencijalni načini rada – ECB odavaju mogućnost analize sadržaja (npr, 0x00, 0xFF itd.)‏ Prazn...
Slabost vjerodostojnica: Lozinke ili Passfraze koje se koriste za kriptografske ključeve su slabije nego što ljudi vjeruju...
Analiza korisničkih lozinki: e ainsrtoludmckgphvbfyzjw   'qxSA&quot;CETMNBP`ILRDG /HFKOWUVJZ^X.YQ2&+,48!()1{:?03#9567=%$@|...
Učinkovitost kriptoanaliti čkih  napada: Napadi na algoritam: Kriptoanalitički napad = 2^64 -> 2^63 2^64/2^63 =  2 AES192 ...
Efekt sinergije: <ul><li>Sve navedene ranjivosti imaju sinergijski učinak. </li></ul><ul><li>Određena količina “mikroranji...
Umjesto zaključka: <ul><li>Kvalitetna  implementacija  kriptosustava je iznimno bitna, koristite preporuke prakse (NIST, N...
Hvala <ul><li>Pitanja? </li></ul><ul><li>[email_address]   [email_address]   </li></ul>
Upcoming SlideShare
Loading in …5
×

CUC2009

645 views
587 views

Published on

CUC2009 prezentacija

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
645
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CUC2009

  1. 1. Analiza kvalitete kriptografskih sustava sa nepoznatim kriptoalgoritmima Tonimir Ki šasondi, dipl.inf prof.dr.sc. Željko Hutinski 2009
  2. 2. Tema rada: <ul><li>Utvrditi dali je moguće utvrditi korišteni kriptoalgoritam iz kriptirane poruke ako je korišten popularan software za enkripciju </li></ul><ul><li>Na koji način implementacija kriptoalgoritma zaslužna za ukupnu sigurnost sustava </li></ul><ul><li>Koji su ostali elementi koji utječu na sigurnost </li></ul>
  3. 3. Element promatranja: Promatramo simetrične sustave: C = f(M,K) -> M = f(C,K)‏ f -> aes, des, 3des, bf, tf, rc4 M -> tekst C -> kriptotekst K -> ključ Uvijek pretpostavljamo Kerckhoffov princip -> Sustav je siguran ako poznajemo C,f
  4. 4. Element promatranja: Software: dm-crypt/LUKS TrueCrypt GnuPG OpenSSL ...
  5. 5. dm-crypt/LUKS Open Source disk enkripcija pod Linux baziranim OS. ~# cryptsetup luksDump /dev/sda2 LUKS header information for /dev/sda2 Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 .... Key Slot 0: ENABLED ....
  6. 6. TrueCrypt TrueCrypt – Multiplatform disk enkripcija ~# truecrypt -vl /dev/mapper/truecrypt0: Volume: /dev/sda3 Type: Normal Size: 743836745728 bytes Encryption algorithm: AES Mode of operation: LRW Read-only: No Hidden volume protected: No
  7. 7. GnuPG GnuPG -> Multiplatform -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.9 (GNU/Linux)‏ jA0EAwMCvRtDZw+LN1hgycBqQ9zXPb8VQRdBXMB1lxdMVeKtz6V4VctbmMctHUQhZtKOZ0gfCi1M3cpqP.....Wi/s/yzqQRP8dtgn/skgxEZHfs3HEuprpzrifaf9RNuyV284xfJooN8KI9uVB0g/omtnZeWl73EacbeKJO4I4Pcp5Q870JA== =EanM -----END PGP MESSAGE-----
  8. 8. GnuPG GnuPG -> Multiplatform -----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.9 (GNU/Linux)‏ jA0EAwMCvRtDZw+LN1hgycBqQ9zXPb8VQRdBXMB1lxdMVeKtz6V4VctbmMctHUQhZtKOZ0gfCi1M3cpqP.....Wi/s/yzqQRP8dtgn/skgxEZHfs3HEuprpzrifaf9RNuyV284xfJooN8KI9uVB0g/omtnZeWl73EacbeKJO4I4Pcp5Q870JA == =EanM -----END PGP MESSAGE----- Base64 Encoding
  9. 9. GnuPG RFC 2440 -> http://www.ietf.org/rfc/rfc2440.txt Algorithm Identifier -> Numeric ~$ gpg --list-packets cuc.txt.asc :symkey enc packet: version 4, cipher 3, s2k 3, hash 2 salt e6200e71482390e9, count 65536 (96)‏ gpg: CAST5 encrypted data Enter passphrase: gpg: Interrupt caught ... exiting
  10. 10. GnuPG Ref: RFC 2440 1 ← IDEA 2 ← 3DES 3 ← CAST5 4 ← Blowfish 7 ← AES (128)‏ 8 ← AES192 9 ← AES256 10 ← Twofish
  11. 11. OpenSSL ~/openssl$ openssl enc -aes-256-cbc -in file -out file.enc enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password: ~/openssl$ openssl enc -d -aes-256-ecb -in file.enc -out file.dec enter aes-256-ecb decryption password: bad decrypt 5653 :error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:461:
  12. 12. Isplativost za štite : Postoji više napada koji mogu zaobići disk enkripciju: Uvjet: Računalo radi (locked) ili je u sleepu te napadač ima fizički pristup stroju Cold boot attacks Evil maid attacks (npr, Bootkits) Keyloggeri i sl.
  13. 13. Implementacije: Nepoznati algoritam otežava kriptoanalizu U većini slučajeva – može se doznati iz sadržaja i nije adekvatna zaštita Ručna implementacija – Dodatno otežavanje kriptoanalize Koristite javno poznate i provjerene algoritme Fizički pristup automatski podrazumijeva mogućnost proboja
  14. 14. Implementacije:
  15. 15. Grafički prikaz: Vlastita implementacija toolkita za analizu kriptosadržaja u pythonu: Analiza kriptoteksta, entropijska analiza... Vizualizacija pomoću SciPy Redukcija sadržaja + koloracija po byteu.
  16. 16. 0x00, File dump – redukcija na 7 :
  17. 17. Blowfish u ECB modu – redukcija na 7 :
  18. 18. Blowfish u CBC načinu – redukcija na 7 :
  19. 19. Implementacija algoritma: Sekvencijalni načini rada – ECB odavaju mogućnost analize sadržaja (npr, 0x00, 0xFF itd.)‏ Prazni segmenti diska, poznata zaglavlja datoteka, poznate datoteke... Omogućavamo napadaču “Chosen-plaintext” napad, kad zapravo mislimo da imamo “Ciphertext only” napad Koristite CBC ili GCM na čin rada!
  20. 20. Slabost vjerodostojnica: Lozinke ili Passfraze koje se koriste za kriptografske ključeve su slabije nego što ljudi vjeruju. 128 bitni ključ = 16 byteova (16 znakova)‏ ASCII = 94 printabilna znaka (161 non-printabilna)‏ Realno – Manje od 37% ukupnog spektra U praksi = 112 bitni ključ
  21. 21. Analiza korisničkih lozinki: e ainsrtoludmckgphvbfyzjw 'qxSA&quot;CETMNBP`ILRDG /HFKOWUVJZ^X.YQ2&+,48!()1{:?03#9567=%$@|*;_<}][>~ perica22 perica22! (a0, a0! …)
  22. 22. Učinkovitost kriptoanaliti čkih napada: Napadi na algoritam: Kriptoanalitički napad = 2^64 -> 2^63 2^64/2^63 = 2 AES192 - > Kompleksnost napada 2^192 -> CPT napad 2^176 -> 65536x jednostavnije -> 100k god. / 65536 = 1.5god.
  23. 23. Efekt sinergije: <ul><li>Sve navedene ranjivosti imaju sinergijski učinak. </li></ul><ul><li>Određena količina “mikroranjivosti” prilikom izrade sustava može biti kobna. </li></ul><ul><li>Ranjivosti imaju sinergijski učinak, a ukupna zaštita je na razini najslabije. </li></ul>
  24. 24. Umjesto zaključka: <ul><li>Kvalitetna implementacija kriptosustava je iznimno bitna, koristite preporuke prakse (NIST, NSA, BSI) </li></ul><ul><li>Koristite pravilne načine rada za šifre </li></ul><ul><li>Koristite implementacije koje su provjerene i standardizirane (OpenSSL, BouncyCastle itd…), NE koristite “vlastite” ili “wikipedia” algoritme </li></ul><ul><li>Koristite kvalitetne lozinke i ne koristite ih na više lokacija, pazite gdje upisujete lozinke! </li></ul>
  25. 25. Hvala <ul><li>Pitanja? </li></ul><ul><li>[email_address] [email_address] </li></ul>

×