Onion Information
Certifikat javnog ključa, certifikacijska tijela i sigurni poslužitelj - GASERI
Certifikat javnog ključa, certifikacijska tijela i sigurni poslužitelj - Note - Skup algoritama za šifriranje čije korištenje se preporuča kod rada sa TLS/SSL certifikatima mijenja se iz godine u godinu kako se pronalaze sigurnosni propusti...
Onion Details
Page Clicks: 0
First Seen: 03/15/2024
Last Indexed: 10/23/2024
Onion Content
Preskoči na sadržaj Certifikat javnog ključa, certifikacijska tijela i sigurni poslužitelj Note Skup algoritama za šifriranje čije korištenje se preporuča kod rada sa TLS/SSL certifikatima mijenja se iz godine u godinu kako se pronalaze sigurnosni propusti u njima i kako procesna moć računala raste pa je dobro kod postavljanja TLS-a/SSL-a provjeriti aktualne najbolje prakse, primjerice one koje navodi Qualys SLL Labs , autor SSL Server Testa i SSL Client Testa . Certifikat javnog ključa je elektronički dokument kojim se dokazuje posjedovanje javnog ključa. Certifikat sadrži informacije o ključu, subjektu koji je vlasnik ključa i digitalni potpis tijela koje je provjerilo sadržaj certifikata (tzv. izdavatelj certifikata, engl. certificate issuer ). Ako je potpis valjan i ako softver koji radi s certifikatima vjeruje izdavatelju, tada je moguće ostvariti sigurnu komunikaciju sa subjektom koji je vlasnik ključa. Popisi izdavatelja kojima se vjeruje variraju među softverima; primjerice, u službenim razvojnim dokumentima web preglednika moguće je pronaći popise izdavatelja certifikata kojima vjeruju Mozilla Firefox i Google Chrome . Također, popis izdavatelja kojima se vjeruje varira i kroz vrijeme pa, primjerice, izdavatelj besplatnih TLS/SSL certifikata Let's Encrypt od kraja srpnja 2018. godine ima povjerenje svih važnijih programa, uključujući Microsoft, Google, Apple, Mozillu, Oracle i Blackberry . Certifikati javnog ključa standardizirani su od strane Sektora za standardizaciju Međunarodne telekomunikacijske unije (ITU-T) 1988. godine pod nazivom X.509 . Standard X.509 je također opisan u RFC-u 5280 pod naslovom Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile . Više informacija o standardu može se pronaći na Wikipedijinoj stranici X.509 . Stvaranje samopotpisanih certifikata Generiranje samopotpisanog certifikata (engl. self-signed certificate ) zbog složenosti zahtjeva uporabu više opcija i parametara. Idući primjer pokazuje generiranje datoteke privatnog ključa mojkljuc.pem i datoteke mojcertifikat.pem u kojoj su sadržani javni ključ i certifikat javnog ključa. Generiranje zahtjeva za potpisivanjem i potpisivanje zahtjeva vršimo opcijom req , a parametar -x509 znači da se radi o certifikatima koji slijede ITU-T standard X.509. Moguće je odrediti broj dana valjanosti certifikata (u ovom slučaju jedna godina, znači 365), te hoće li ključ biti šifriran (opcija -nodes isključuje šifriranje). Pri stvaranju certifikata potrebno je odgovoriti na nekoliko pitanja kojima se u certifikat unose informacije o vlasniku. $ openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout mojkljuc.pem -out mojcertifikat.pem Generating a RSA private key .............................................++++ ...................................................++++ writing new private key to 'mojcertifikat.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.' , the field will be left blank. ---- Country Name ( 2 letter code ) [ AU ] : State or Province Name ( full name ) [ Some-State ] : Locality Name ( eg, city ) [] : Organization Name ( eg, company ) [ Internet Widgits Pty Ltd ] : Organizational Unit Name ( eg, section ) [] : Common Name ( e.g. server FQDN or YOUR name ) [] : Email Address [] : Mi ćemo se ograničiti samo na osnovno korištenje ove naredbe, a za dodatne opcije proučite req(1ssl) . Pregled i provjera valjanosti certifikata Stvoreni certifikat možemo pregledati opcijom x509 : $ openssl x509 -in mojcertifikat.pem -noout -text Certificate: Data: Version: 3 ( 0x2 ) Serial Number: 6f:63:28:30:2c:2b:10:f3:ab:5c:91:50:27:76:97:7c:72:fc:a0:9c Signature Algorithm: sha256WithRSAEncryption Issuer: C = AU, ST = Some-State, O = Internet Widgits Pty Ltd Validity Not Before: Jun 8 17 :13:57 2019 GMT Not After : Jun 7 17 :13:57 2020 GMT Subject: C = AU, ST = Some-State, O = Internet Widgits Pty Ltd Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: ( 4096 bit ) Modulus: 00 :aa:b7:ca:a7:9d:23:dc:fc:1d:c8:6c:00:64:d7: 27 :f1:91:c5:2a:e9:13:0d:ce:b3:3c:02:68:0e:70: 9c:33:fa:3c:f0:dc:3d:e4:cc:1f:73:f3:a1:46:d9: ( ... ) Exponent: 65537 ( 0x10001 ) X509v3 extensions: X509v3 Subject Key Identifier: 39 :E7:75:1C:26:F9:E7:0B:34:8A:A8:9D:AF:A9:43:B4:78:19:98:2D X509v3 Authority Key Identifier: keyid:39:E7:75:1C:26:F9:E7:0B:34:8A:A8:9D:AF:A9:43:B4:78:19:98:2D X509v3 Basic Constraints: critical CA:TRUE Signature Algorithm: sha256WithRSAEncryption 40 :dc:7e:ad:3f:1d:b6:22:08:2c:ac:71:a7:d0:46:32:66:9c: ce:24:c8:83:50:c2:8b:30:69:a4:40:b7:17:ce:8f:ab:75:ee: 71 :68:d2:61:3d:55:07:6c:e8:52:c6:88:f4:09:86:3a:98:de: ( ... ) Za provjeru valjanosti certifikata koristi se opcija verify . Ukoliko lokalna instalacija OpenSSL-a prepozna certifikat i on ima potpis izdavatelja kojem se vjeruje, vraća se povratna poruka OK . $ openssl verify valjani-certifikat.pem OK Ukoliko se pak pronađe problem sa certifikatom, javlja se obavijest o tome uz kratak opis problema, primjerice: $ openssl verify sampotpisani-certifikat.pem error 18 at 0 depth lookup:self signed certificate Ovdje certifikat nije valjan jer je samopotpisan. Ukoliko se ne napravi iznimka, OpenSSL neće sampotpisani certifikat označiti kao valjan. Certifikati su najčešće predodređeni za konkretni vremenski period, te OpenSSL javlja grešku ukoliko je taj period istekao. $ openssl verify istekli-certifikat.pem error 10 at 0 depth lookup:certificate has expired Dio poruke at 0 depth znači da je pogreška pronađena na samom certifikatu koji se provjerava, a ne negdje dalje u lancu potpisa. Primjerice, može se dogoditi i da istekne certifikat nekog od autoriteta certifikata koji je potpisao certifikat koji se provjerava, certifikat autoriteta certifikata koji je potpisao certifikat koji se provjerava itd. Pretvorba formata certifikata Standard PKCS #8 PKCS #8: Private-Key Information Syntax Standard je standardna sintaksa za pohranu privatnih ključeva. Posljednja verzija 1.2 standardizirana je u RFC-u 5208 pod naslovom Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2 . Proširenje standarda predloženo je u RFC-u 5958 . OpenSSL u zadanim postavkama već zapisuje privatne ključeve u formatu PKCS #8, a dodatno je moguće kod zapisivanja ključeve šifrirati. Ako nismo odabrali šifrirati privatni ključ kod stvaranja, pretvorbu u šifrirani oblik vršimo naredbom: $ openssl pkcs8 -topk8 -in mojkljuc.pem -out mojkljuc.pem.enc Enter Encryption Password: Verifying - Enter Encryption Password: $ cat mojkljuc.pem.enc -----BEGIN ENCRYPTED PRIVATE KEY----- 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 -----END ENCRYPTED PRIVATE KEY----- Formati PEM i DER Ključevi koje smo stvorili zapisani su u zadanom formatu Privacy-Enhanced Mail (PEM), standardiziranom u RFC-u 7468 pod naslovom Textual Encodings of PKIX, PKCS, and CMS Structures . Ključeve je moguće zapisati i u formatu Distinguished Encoding Rules (DER), koji koristi ASN.1 za zapis struktura podataka kompatibilan s formatom PKCS #1 RSAPrivateKey za tajni ključ i SubjectPublicKeyInfo za certifikat. ( Public Key Cryptography Standards (PKCS) je skup standarada za kriptografiju javnog ključa koje je objavila kompanija RSA Security .) Pretvorbu ključeva iz formata PEM u format DER vršimo opcijom rsa na način: $ openssl rsa -in...