Upload
martin-paljak
View
3.349
Download
0
Embed Size (px)
DESCRIPTION
Kuidas kasutada ID-kaardil olevaid võtmeid erineva tarkvaraga
Citation preview
ID-kaart ja selle infrastruktuur on kõige odavam ja kõige turvalisem kohe kasutatav
vahend Eesti IT lahenduste turvamisel.
2
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
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
Mis on kaardil
• Isikuandmete fail (ebahuvitav)
• 2x kaardil genereeritud 1024b RSA salajast võtit“2346267345273468354127346981236459182213847619283469183764596723817263871623871263871638612387615”
• 2x X509 sertifikaati, SertifitseerimiskeskusestVõti ⇔ “Martin Paljak, 38207162722, [email protected]”
• 2x PIN koodi (4/5..12 märki)
• 1x PUK kood (8..12 märki)
5
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
6
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
• Arvutisse logida
6
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
• Arvutisse logida
• ...
6
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
• Arvutisse logida
• ...
• OpenSSH
6
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
• Arvutisse logida
• ...
• OpenSSH
• OpenVPN
6
ID-kaardiga saab ...
• Brauseriga panka/e-riiki logida (SSL/TLS)
• Dokumente ja makseid allkirjastada
• Arvutisse logida
• ...
• OpenSSH
• OpenVPN
• GnuPGP
6
“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
KaardilugejaKaardilugeja draiver
Kaardilugeja raamistikPC/SC CT-API OpenCT
PCMCI USBCCID
ID-kaart
CryptoAPI CDSAKeychainPKCS#11BaseCSP minidriverOpenSC
TokendID-kaardi draiver
Rakenduste krüptoliidesFirefoxInternet Explorer Thunderbird
Outlook DigiDoc clientVeebis allkirjastamise pluginadOpenSSHOpenVPNOpenSSL
NSS
9
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
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
Windows
Reader
PC/SC
CCID IFDHandler
Reader
CT-API
OpenSC
PKCS#11
BaseCSP
CryptoAPI
minidraiver
DigiDoc Outlook
Thunderbird
ExplorerPlugin
FirefoxPlugin
Utiliit
cardlib
12
Linux
Reader
PC/SC
CCID IFDHandler
Reader
CT-API
OpenSC
PKCS#11
DigiDoc
ThunderbirdFirefoxPlugin
Utiliit
OpenCT CT-API
Reader Reader
Cardlib
13
Mac OS X
Reader
PC/SC
CCID IFDHandler
Reader
OpenSC
PKCS#11Securityd
CDSA
Tokend
DigiDoc Mail.app
Thunderbird
SafariPlugin
FirefoxPlugin
Utiliit
Cardlib
14
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
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
• Standard: autentimisvõtit SSL/TLS ühenduse autentimisel
• Kehtib kogu brauseris realiseeritud X509 ja PKI kupatus
19
• 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
• Internet Explorer: CryptoAPI
• Firefox: PKCS#11
• Safari: CDSA/Keychain
• Google Chrome: CryptoAPI ja ... ?
• Opera: tutkit
20
• 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
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
SSH võtme lisamine
• kaks > märki
• ~/.ssh kataloogil õigused 700!
• authorized_keys2 faili lõpus newline!
$ echo “ssh-rsa AAAX....” >> ~/.ssh/authorized_keys2
28
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
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
Kasutamine$ ssh -# /usr/lib/onepin-opensc-pkcs11.so [email protected]
$ ssh-keygen -K /usr/lib/onepin-opensc-pkcs11.so$ ssh-add -K /usr/lib/onepin-opensc-pkcs11.so -I ‘XX’
39
$ ssh-keygen -K /usr/lib/onepin-opensc-pkcs11.so | grep ssh-rsa
Avaliku võtme lugemine
$ pkcs15-tool --read-ssh-key 1 | tail -1
40
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
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
PKCS#11 moodulid
• C:\WINDOWS\system32\onepin-opensc-pkcs11.dll
• /usr/lib/onepin-opensc-pkcs11.so
• /Library/OpenSC/lib/onepin-opensc-pkcs11.so
43
TrueCrypt
• http://www.truecrypt.com
• “TrueCrypt supports PKCS#11 tokens”
• PKCS#11 pole liides mälupulgale
44
Ära krüpti ID-kaardiga
• Kui kaarti ei saa kasutada, ei saa andmetele ligi
• Krüptimiseks kasutada varundatavaid võtmeid
45
OpenVPN
• OpenVPN toetab PKCS#11 mooduleid
• Võimalusi on väga palju.
• $ openvpn --show-pkcs11-ids /usr/lib/onepin-opensc-pkcs11.so
46
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
Stunnel
• http://www.stunnel.org
• Üldine SSL/TLS tunneldaja
• engine_pkcs11 + stunnel = ID-kaardiga tunnelid
48
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
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