ID-kaardist 100%

3,777 views
3,536 views

Published on

Kuidas kasutada ID-kaardil olevaid võtmeid erineva tarkvaraga

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

  • Be the first to like this

No Downloads
Views
Total views
3,777
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ID-kaardist 100%

  1. 1. ID-kaardist 100% Tartu 2009 Martin Paljak / martin.paljak.pri.ee 1
  2. 2. ID-kaart ja selle infrastruktuur on kõige odavam ja kõige turvalisem kohe kasutatav vahend Eesti IT lahenduste turvamisel. 2
  3. 3. Kes? • Vabavaralise kiipkaarditarkvara torkija aastast 2003 • OpenSC - OSS Eesti ID-kaardi draiver • Pinpadi tugi OSS softis • Võib sõimata, et mõnel platvormil kaart nii niglalt töötab või tänada, et mõnel üldse töötab. 3
  4. 4. Millest jutt? • “Mida peaks iga (ID-kaardi) tarkvara arendaja teadma ID-kaardi tarkvara komponentidest” • Mis on ID-kaardil • Kuidas kaardil olev jõuab rakendustesse • Mida tuntud ja vähemtuntud rakendused teevad • Kuidas (vähemtuntud) tarkvara ID-kaardiga räägib 4
  5. 5. Mis on kaardil • Isikuandmete fail (ebahuvitav) • 2x kaardil genereeritud 1024b RSA salajast võtit “2346267345273468354127346981236459182213847619283469183764596723817263871623871263871638612387615” • 2x X509 sertifikaati, Sertifitseerimiskeskusest Võti “Martin Paljak, 38207162722, martin.paljak@eesti.ee” • 2x PIN koodi (4/5..12 märki) • 1x PUK kood (8..12 märki) 5
  6. 6. ID-kaardiga saab ... 6
  7. 7. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) 6
  8. 8. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada 6
  9. 9. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada • Arvutisse logida 6
  10. 10. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada • Arvutisse logida • ... 6
  11. 11. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada • Arvutisse logida • ... • OpenSSH 6
  12. 12. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada • Arvutisse logida • ... • OpenSSH • OpenVPN 6
  13. 13. ID-kaardiga saab ... • Brauseriga panka/e-riiki logida (SSL/TLS) • Dokumente ja makseid allkirjastada • Arvutisse logida • ... • OpenSSH • OpenVPN • GnuPGP 6
  14. 14. “ID-kaardil olevaid RSA võtmeid on mõninga vaevaga võimalik kasutada paljudes rakendustes, mis tegelevad RSA võtmetega ja sellega parandada süsteemi turvalisust” 7
  15. 15. “Kuidas jõuab RSA allkiri rakendusse?” 8
  16. 16. OpenSSL OpenVPN OpenSSH Veebis allkirjastamise pluginad Outlook DigiDoc client NSS Internet Explorer FirefoxThunderbird CryptoAPI PKCS#11 Keychain CDSA Rakenduste krüptoliides Tokend OpenSC BaseCSP minidriver ID-kaardi draiver PC/SC CT-API OpenCT Kaardilugeja raamistik Kaardilugeja draiver PCMCI CCID USB Kaardilugeja ID-kaart 9
  17. 17. ID-kaardi tarkvara on ... • Komponendid (platvormi) krüptoliidestele • CryptoAPI, PKCS#11, Tokend/CDSA • Custom rakendustarkvara • ID-kaardi utiliit, DigiDoc client, DigiDoc crypto • Custom veebilehitseja pluginad • Digiallkirjastamiseks 10
  18. 18. Kust saab • https://id.eesti.ee/trac - uus ja roosa; ametlik OSS • http://installer.id.ee - vana ja kärav; ametlik • http://ideelabor.ee/id-kaart - vana ja alternatiivne, OSS 11
  19. 19. Windows Firefox Explorer Plugin Plugin Thunderbird DigiDoc Outlook Utiliit PKCS#11 CryptoAPI OpenSC BaseCSP minidraiver cardlib CT-API PC/SC CCID IFDHandler Reader Reader 12
  20. 20. Linux Firefox Thunderbird Plugin DigiDoc Utiliit PKCS#11 Cardlib OpenSC CT-API OpenCT PC/SC CT-API CCID IFDHandler Reader Reader Reader Reader 13
  21. 21. Mac OS X Firefox Safari Plugin Plugin Thunderbird DigiDoc Mail.app Utiliit CDSA PKCS#11 Securityd Cardlib OpenSC Tokend PC/SC CCID IFDHandler Reader Reader 14
  22. 22. Tähelepanekuid • Windows ja Mac püüavad pakkuda kõrgemaid API-sid • Ainus universaalne API on PKCS#11 • Iga veebilehe omanik võib enda allkirjastamise plugina välja mõelda 15
  23. 23. Tähelepanekud 2 • Jalgratast pole mõtet leiutada, kasutada on krüpteteegid ja API-d • Mitte kõikide teekide autorid pole mõelnud kiipkaardiga suhtlemisele (OpenSSL) 16
  24. 24. “Milleks ja kuidas tarkvara ID-kaarti kasutab?” 17
  25. 25. Brauserid 18
  26. 26. 19
  27. 27. • Standard: autentimisvõtit SSL/TLS ühenduse autentimisel • Kehtib kogu brauseris realiseeritud X509 ja PKI kupatus 19
  28. 28. • Standard: autentimisvõtit SSL/TLS ühenduse autentimisel • Kehtib kogu brauseris realiseeritud X509 ja PKI kupatus • Custom: allkirjavõtit (mingi dokumendi) räsi allkirjastamiseks. • Tehniline vidin allkirja kätte saamiseks veebilehe kaudu 19
  29. 29. • Internet Explorer: CryptoAPI • Firefox: PKCS#11 • Safari: CDSA/Keychain • Google Chrome: CryptoAPI ja ... ? • Opera: tutkit 20
  30. 30. Meilikliendid 21
  31. 31. • Standard: S/MIME kaudu e-mailide krüpteerimisel ja signeerimisel autentimisvõtmega • See EI OLE digiallkiri • Standard: SSL/TLS IMAP/POP3 jaoks • Kah standard?: PGP abil e-mailide krüpteerimist ja signeerimist autentimisvõtmega 22
  32. 32. • Outlook: CryptoAPI • Thunderbird: PKCS#11 • Mail.app: CDSA/Keychain • PGP pluginad: tutkit 23
  33. 33. SSH: Windows • PuttySC PKCS#11 liidesega klient • PuttySC “SSH agent” ja WinSCP • http://www.risacher.org/putty-cac/putty.exe • http://www.risacher.org/putty-cac/pageant.exe • http://winscp.net/download/winscp425.exe 24
  34. 34. putty.exe 25
  35. 35. 26
  36. 36. 27
  37. 37. SSH võtme lisamine $ echo “ssh-rsa AAAX....” >> ~/.ssh/authorized_keys2 • kaks > märki • ~/.ssh kataloogil õigused 700! • authorized_keys2 faili lõpus newline! 28
  38. 38. 29
  39. 39. 30
  40. 40. pageant.exe 31
  41. 41. 32
  42. 42. winscp.exe 33
  43. 43. 34
  44. 44. 34
  45. 45. 34
  46. 46. 35
  47. 47. 36
  48. 48. SSH: Linux (Ubuntu) • PKCS#11 patch OpenSSH jaoks • Originaal http://www.openssh.org • Patch: http://sites.google.com/site/alonbarlev/openssh-pkcs11 • Combo: http://martin.paljak.pri.ee/download/openssh-pkcs11.tar.gz 37
  49. 49. Paigaldamine: $ sudo apt-get install libpkcs11-helper1-dev libssl-dev build-essential $ wget http://martin.paljak.pri.ee/download/openssh-pkcs11.tar.gz $ tar xzvf openssh-pkcs11.tar.gz $ ./configure --with-pkcs11 && make && sudo make install ### OpenSSH konfimisel on palju teisi võtmeid samuti 38
  50. 50. Kasutamine $ ssh -# /usr/lib/onepin-opensc-pkcs11.so martin@paljak.pri.ee $ ssh-keygen -K /usr/lib/onepin-opensc-pkcs11.so $ ssh-add -K /usr/lib/onepin-opensc-pkcs11.so -I ‘XX’ 39
  51. 51. Avaliku võtme lugemine $ ssh-keygen -K /usr/lib/onepin-opensc-pkcs11.so | grep ssh-rsa $ pkcs15-tool --read-ssh-key 1 | tail -1 40
  52. 52. Tähelepanekud • SSH protokoll ei ole SSL • SSH ei sõltu sertifikaatidest vaid ligipääsust privaatvõtmele • Kõik näited tehtud aegunud kaartidega 41
  53. 53. SSH kokkuvõtteks • Serveris lubada ainult RSA võtmetega autentimine • RSAAuthentication yes PasswordAuthentication no • “SSH on vaese mehe VPN” • tunnelid, SOCKS proxy • Võtmed ei lähe jalutama ja ligipääsu annad inimesele, mitte võtmele 42
  54. 54. PKCS#11 moodulid • C:WINDOWSsystem32onepin-opensc-pkcs11.dll • /usr/lib/onepin-opensc-pkcs11.so • /Library/OpenSC/lib/onepin-opensc-pkcs11.so 43
  55. 55. TrueCrypt • http://www.truecrypt.com • “TrueCrypt supports PKCS#11 tokens” • PKCS#11 pole liides mälupulgale 44
  56. 56. Ära krüpti ID-kaardiga • Kui kaarti ei saa kasutada, ei saa andmetele ligi • Krüptimiseks kasutada varundatavaid võtmeid 45
  57. 57. OpenVPN • OpenVPN toetab PKCS#11 mooduleid • Võimalusi on väga palju. • $ openvpn --show-pkcs11-ids /usr/lib/onepin-opensc-pkcs11.so 46
  58. 58. Veel tarkvara • engine_pkcs11 - võimalik oelmasolev OpenSSL tarkvara panna kasutama ID- kaardi võtmeid väikese vaevaga • pam_pkcs11 - võimalik ligipääsu Linux masinatele kontrollida ID-kaardi võtmetega • gnupg-pkcs11-scd - võimalik PKCS#11 kaudu kasutada ID-kaardi võtmeid GnuPG PGP lahenduses 47
  59. 59. Stunnel • http://www.stunnel.org • Üldine SSL/TLS tunneldaja • engine_pkcs11 + stunnel = ID-kaardiga tunnelid 48
  60. 60. Veel tarkvara 2 • GnuTLS - PKCS#11 toega teek. • cURL - ID-kaardi toega; arendajatele • Hea allikas: http://sites.google.com/site/alonbarlev/open-source • Alon Bar-Lev, OpenSC dev 49
  61. 61. reklaam: OpenID.ee • Võimalik kasutajaid identifitseerida ja autentida ID-kaardi ja mobiil-ID kaudu ilma HTTPS-ita, ilma paroolideta. • 80/20 reegel: kapakohila koerafoorum ja veel 80% veebidest ei vaja HTTPS-i ega jaksa realiseerida mID tuge • OpenID tugi paljudes veebilahendustes kohe olemas: Wordpress, Drupal, Joomla jne 50
  62. 62. Küsimusi? • On veel tarkvara, mis võiks kasutada ID- kaarti? 51
  63. 63. Aitäh! 52

×