OpenSSL
Sisukord
- 1 Sissejuhatus
- 2 Kontrollsummade arvutamine
- 3 Andmete krüptimine
- 4 Sertifikaadipäringu moodustamine
- 5 Endasigneeritud sertifikaadi moodustamine
- 6 Wildcard sertifikaadipäringu moodustamine
- 7 Šiffrid
- 8 TLSv1
- 9 OSCP
- 10 Süsteemi koormustest
- 11 Parooli räsi arvutamine
- 12 PKCS#12
- 13 Märkused
- 14 Kasulikud lisamaterjalid
Sissejuhatus
OpenSSL http://www.openssl.org/ on vaba tarkvaraline Secure Sockets Layer (SSL v2/v3) ja Transport Layer Security (TLS v1) protokollide implementatsioon. OpenSSL tarkvara sisaldab nii utiliite kui teeke, mis sobivad nt erinevates programmeerimiskeeltes OpenSSL funktsionaalsuse kasutamiseks.
Tänapäeval on OpenSSL iseseisev tarkava, kusjuures ta põhineb Eric A. Young ja Tim J. Hudson poolt arendatud SSLeay teegil.
OpenSSL hetkel kasutusel olevat versiooni näeb käsuga
# openssl version OpenSSL 0.9.8n 24 Mar 2010
Kontrollsummade arvutamine
- SHA1
$ openssl dgst -sha1 /etc/fstab SHA1(/etc/fstab)= d3e23e40e9dcefcba35052dfdca2ba2bdcfba2eb
- MD5
$ openssl dgst -md5 /etc/fstab MD5(/etc/fstab)= 88d91737675acdb76fd5777f1a45400a
Andmete krüptimine
- base64, kusjuures tegu on nö teisendusega, mitte krüptimisega, echo -n ütleb mitte lisada reavahetust tulemuse lõppu
$ echo "Loomaaed" | openssl enc -base64 TG9vbWFhZWQK $ echo TG9vbWFhZWQK | openssl enc -base64 -d Loomaaed
- AES
$ openssl enc -aes-256-cbc -a -salt -in /etc/fstab -out /tmp/fstab.crypted enter aes-256-cbc encryption password: Verifying - enter aes-256-cbc encryption password: $ openssl enc -d -aes-256-cbc -a -in /tmp/fstab.crypted -out /tmp/fstab enter aes-256-cbc decryption password:
Sertifikaadipäringu moodustamine
Sõltuvalt vajadustest võib kasutada avalikku teenust pakkuva PKI asutuse teenuseid, moodustada ise oma PKI (nt tarkvara TinyCA abil, http://tinyca.sm-zone.net/) või lihtsalt genereerida sama veebiserveri sertifikaadile vastava salajase võtmega allkirjastatud veebiserveri sertifikaat - endasigneeritud sertifikaat (ingl. k. self-signed certificate)
$ openssl req -nodes -new -keyout www.loomaaed.tartu.ee.key -newkey rsa:1024 > www.loomaaed.tartu.ee.csr ... Country Name (2 letter code) [AU]: EE State or Province Name (full name) [Some-State]: Tartu Locality Name (eg, city) []:Tartu Organization Name (eg, company) [Internet Widgits Pty Ltd]: Tartu Loomaaed Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: www.loomaaed.tartu.ee Email Address []:
kus
- CN - common name, peab langema kokku selle teenuse aadressis kasutatava domeenimega, kus sertifikaati kasutama kavatsetakse hakata
- parooli küsimusele vastata Enteriga.
Endasigneeritud sertifikaadi moodustamine
Endasigneeritud (ingl. k. self-signed) sertifikaadi tekitamiseks sobib öelda
$ openssl x509 -req -days 3650 -in www.loomaaed.tartu.ee.csr -signkey www.loomaaed.tartu.ee.key \ -out www.loomaaed.tartu.ee.crt
Moodustatud sertifikaadi sisu saab esitada öeldes
$ openssl x509 -in www.loomaaed.tartu.ee.crt -noout -text
Wildcard sertifikaadipäringu moodustamine
Wildcard sertifikaat erineb nö tavalisest sertifikaadist selle poolest, et CN väärtuseks ei ole üks konkreetne domeeninimi, vaid nt
CN=*.loomaaed.tartu.ee
mis tabab kõiki neljanda taseme nimesid, nt mail.loomaaed.tartu.ee, www.loomaaed.tartu.ee jne, aga mitte pop3.mail.loomaaed.tartu.ee.
Sertfikaadi moodustamiseks sobib öelda nt
TODO
Šiffrid
$ openssl ciphers -v 'HIGH:MEDIUM:!ADH:!SSLv2' DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
TLSv1
Klient
TODO
Server
TODO
OSCP
Klient
TODO
Server
TODO
Süsteemi koormustest
openssl utiliidi abils saab teha süsteemile koormustesti, nt kasutades RSA algoritmi
$ openssl speed rsa -multi 4 ... timing function used: sign verify sign/s verify/s rsa 512 bits 0.000100s 0.000008s 9981.7 126197.5 rsa 1024 bits 0.000462s 0.000020s 2162.9 49540.8 rsa 2048 bits 0.002469s 0.000062s 405.0 16227.5 rsa 4096 bits 0.015087s 0.000204s 66.3 4908.0
kus
- rsa -
- multi 4 - käivitatakse kõrvuti neli openssl protsessi
Parooli räsi arvutamine
man -l /usr/share/man/man1/passwd.1ssl.gz
$ openssl passwd -1 -salt FuuD4O1n parool $1$FuuD4O1n$C5GFPLbrf4acwHd8new5
PKCS#12
PKCS#12 faili omaduste esitamiseks sobib öelda
$ openssl pkcs12 -in failinimi.p12 -info -noout Enter Import Password: MAC Iteration 1024 MAC verified OK PKCS7 Data Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 1024 PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 1024 Certificate bag
C ertificate bag
Märkused
- Privaatse võtme ja sertifikaadi klappimise kontrolliks sobib öelda
# openssl x509 -in /etc/ssl/certs/cyrus-imap.pem -noout -modulus | md5sum 0dbf4513a3ecf45d64fff50776c1d1ad - # openssl rsa -in /etc/ssl/private/cyrus-imap.key -noout -modulus | md5sum 0dbf4513a3ecf45d64fff50776c1d1ad -
- avaliku võtme omaduste küsimine
$ cat voti.pem -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxSrHPphy8fR9ryqnJqXvk8clh TMcUM1ce03mec/8l8VW6Z8I0n5dcytAfJogJ03aaNcgxIkft8S1z8cYTDhkMGKKT GpeMntYTQ9eVW1yjWWCWRM6B2U0U0ezQ44Aysl393t4BCofmSzOUJZQduinojkiI PgqwokpuOfi61E+qjwIDAQAB -----END PUBLIC KEY-----
$ openssl rsa -pubin -in voti.pem -noout -text Modulus (1024 bit): 00:b1:4a:b1:cf:a6:1c:bc:7d:1f:6b:ca:a9:c9:a9: 7b:e4:f1:c9:61:4c:c7:14:33:57:1e:d3:79:9e:73: ff:25:f1:55:ba:67:c2:34:9f:97:5c:ca:d0:1f:26: 88:09:d3:76:9a:35:c8:31:22:47:ed:f1:2d:73:f1: c6:13:0e:19:0c:18:a2:93:1a:97:8c:9e:d6:13:43: d7:95:5b:5c:a3:59:60:96:44:ce:81:d9:4d:14:d1: ec:d0:e3:80:32:b2:5d:fd:de:de:01:0a:87:e6:4b: 33:94:25:94:1d:ba:29:e8:8e:48:88:3e:0a:b0:a2: 4a:6e:39:f8:ba:d4:4f:aa:8f Exponent: 65537 (0x10001)