63
ID-kaardist 100% Tartu 2009 Martin Paljak / martin.paljak.pri.ee 1

ID-kaardist 100%

Embed Size (px)

DESCRIPTION

Kuidas kasutada ID-kaardil olevaid võtmeid erineva tarkvaraga

Citation preview

ID-kaardist 100%Tartu 2009

Martin Paljak / martin.paljak.pri.ee

1

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 ...

6

ID-kaardiga saab ...

• Brauseriga panka/e-riiki logida (SSL/TLS)

6

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

“Kuidas jõuab RSA allkiri rakendusse?”

8

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

“Milleks ja kuidas tarkvara ID-kaarti kasutab?”

17

Brauserid

18

19

• 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

Meilikliendid

21

• 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

• Outlook: CryptoAPI

• Thunderbird: PKCS#11

• Mail.app: CDSA/Keychain

• PGP pluginad: tutkit

23

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

putty.exe

25

26

27

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

29

30

pageant.exe

31

32

winscp.exe

33

34

34

34

35

36

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

Küsimusi?

• On veel tarkvara, mis võiks kasutada ID-kaarti?

51

Aitäh!

52