Varne spletne storitve z uporabo x.509 certifikatov in SSL/TLS povezave
Upcoming SlideShare
Loading in...5
×
 

Varne spletne storitve z uporabo x.509 certifikatov in SSL/TLS povezave

on

  • 1,755 views

 

Statistics

Views

Total Views
1,755
Views on SlideShare
1,746
Embed Views
9

Actions

Likes
0
Downloads
5
Comments
0

5 Embeds 9

https://si0.twimg.com 3
https://twitter.com 2
https://www.linkedin.com 2
http://www.slideshare.net 1
http://www.linkedin.com 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Varne spletne storitve z uporabo x.509 certifikatov in SSL/TLS povezave Varne spletne storitve z uporabo x.509 certifikatov in SSL/TLS povezave Document Transcript

    • Varne spletne storitve z uporabo X.509 certifikatov in SSL/TLSpovezave Oto Brglez, junij 2011
    • PovzetekV seminarski nalogi bom predstavil X.509 certifikate in njihovo uporabo pri varni SSL/TLSpovezavi. Seminarska naloga bo v prvem delu predstavila ključne pojme in njihovodelovanje v drugem delu pa prikaže primer delovanja spletne strani, ki uporabljaavtentifikacijo z uporabo podpisanih certifikatov. Naloga opisuje tudi primer konfiguracijeApache HTTP strežnika za delo z certifikati na operacijskem sistemu Ubuntu (10.4 LTS).Seminarska naloga je bila sestavljena za predmed Varnost in Zaščita podatkov na FERIMB. Junij 2011.AbstractThis project is intended to introduce reader into X.509 certificates and their useage withSSL/TLS connection. Project at first introduces reader to security topic. Later it showsdemonstration of certificate based application and in the end it shows how to configureApache HTTP server to use secure connection and client certificates for single sign onauthentication.
    • Oto Brglez! Varne spletne storitveKazalo Transport Layer Security (TLS) in Secure Sockets Layer (SSL)! 3 Delovanje TLS protokola! 3 Zaupljive organizacije - Certification Authorities (CA)! 4 Ponudniki! 4 X.509! 4 Certifikati! 4 Spletna aplikacija za demonstracijo delovanja - MeSecure! 5 Delovanje! 5 Javni - nevarovan - pogled! 5 Zasebni - varovan - pogled! 6 Zasebni dostop za uporabnike certifikata! 7 Konfiguracija strežnika za uporabo X.509! 9 Generiranje lastne zaupljive organizacije / Certificate Authority (CA)! 9 Priprava strežniškega certifikata! 10 Priprava SSL/TLS klientovega certifikata za avtentifikacijo! 11 Konfiguracija spletnega strežnika Apache! 12 Zaključek! 13 Viri! 13 2
    • Oto Brglez! Varne spletne storitveTransport Layer Security (TLS) in Secure Sockets Layer(SSL)TLS in njegov predhodnjih SSL sta kriptografska protokola, ki omogočata varno kriptiranopovezavo preko spleta. TLS in SSL povezavi kriptirata segmente omrežne povezave“transportnega sloja”. Oba protokola uporabljata simetrično kriptografijo za zagotavljanjezasebnosti ter kombinacijo javno/zasebnega ključa.TLS in SSL protokola sta uporabljena za varno komunikacijo pri spletne brskanju,elektronski pošti, elektronskih faksih, komunikacijskih protokolih in VoIP sistemih. TLS jeIETF protokol, ki ga definira RFC 5246 in je zasnovan na na predhodnjiku SSL kateregaspecifikacijo je razvilo podjetje Netscape.Delovanje TLS protokolaTLS protokol med strežnikom in odjemalcem poteka v večih varnih korakih in takoonemogoča prisluškovanje povezavi oziroma posredovanju tretji osebi/storitviStrežnik in odjemalec med sabo komunicirata z uporabo t.i “handshaking” procedure -rokovalne procedure. Med proceduro klient se klient in strežnik strinjata z različnimiparametri za vzpostavitev varne povezave.• Sporazumevanje/rokovanje se začne, ko se klient poveže na strežnik, ki podpira TLS in le ta zahteva vzpostavitev varne povezave. V tem koraku pošlje strežniku tudi seznam podprtih mehanizmov kodiranja, ki jih razume (“hash funkcij” in algoritmov).• Iz nabora podprtih mehanizmov strežnik izbere tistega, ki je najmočnejši oziroma izbere tistega, ki je nastavljen kot najmočnejši na strežniku. O svoji odločitvi obvesti klienta• Strežnik pošlje nazaj svojo identiteto v obliki digitalnega certifikata. Certifikat običajno vsebuje ime strežnika, podatke o zaupljivi organizaciji (Certificate Authority - CA) in strežnikov javni ključ.• Klient lahko ob prejetju odgovora preveri pri zaupljivi organizaciji (CA) veljavnost digitalnega potrdila. Ob neuspešni veljavnosti potrdila je lahko povezava prekinjena oziroma se lahko nadaljuje ob opozorilu.• Za generiranje varnih sejnih ključev klient kriptira naključno število z strežnikovim javnim ključem. Rezultat v naslednjem koraku posreduje strežniku. Strežnik je edina entiteta, ki lahko dekriptira vsebino z uporabo svojega zasebnega ključa• Z uporabo naključega števila obe strani generirata sredstva za kriptiranje in dekriptiranje.S tem je zaključeno rokovanje in obe strani lahko sedaj uporabljata varno povezavo, ki jekriptirana/dekriptirana z uporabo sredstev, ki sta jih pridobili ob zadnjem koraku. Varnapovezava je mogoča do prekinitve povezave.Če katerikoli od zgornjih korakov spodleti, se varna povezava med obema stranema nevzpostavi.Trenutna aktualna različica protokola SSL je 3.0, oblikovana leta 1996. Aktualna različicaprotokola TLS je 1.2 (SSL 3.3) med drugim omogoča kombinacijo MD5/SHA-1enosmernega kodiranja vsebine. 3
    • Oto Brglez! Varne spletne storitveZaupljive organizacije - Certification Authorities (CA)V kriptograviji je CA organizacija, ki izdaja digitalna potrdila. CA je organizacija, ki ji obestranki (strežnik/odjemalec) zaupata kot tretji osebi, ki sodeluje med komunikacijo. Kot delinfrastrukture javnega ključa (PKI), CA preveri z registracijsko avtoriteto RA informacijestranke pri izdaji digitalnega potrdila.Odvisno od implementacije PKI, certifikati vključujejo lastnikov javni ključ, datum potekacertifikata, ime avtorja in druge podatke. Veljavnost certifikata se(lahko) vedno preveri privrhnjem izdajatelju. Večina CA za svoje storitve zaračunava, obstajajo pa tudi CA-ji katerihstoritve so brezplačne.Za potrebe razvoja velikokrat pri izdaji digitalnih potrdil ustvarimo svoj “CA” oziromasimuliramo svoj CA. Tako so strežniška potrdila podpisana pri isti entiteti, ki jih tudiuporablja.PonudnikiPrimer CA organizacije v Sloveniji je Poštarca (Pošta Slovenije). ki omogoča kvalificiranoizdajo in potrjevanje digitalnih ključev za pravne in fizične osebe. Poštarca tako ponujakvalificirana digitalna podtrila, ki so namenjena posameznikom in pravnim oseban zavarno opravljanje storitev. Vsa digitalna potrdila, ki jih izdajo sami oziroma preko njih drugeorganizacije so tako vredne zaupanja.Ponudniki CA po svetu so globalni ali lokalni in poleg CA storitev opravljajo še druge. Čeželi podjetje postati CA mora prestajati redne varnostne revizije (primer WebTrust forCertificate Authorities), da je lahko zapisano v seznamu varnih izdajateljev v spletnihbrskalnikih. V sodobnem spletnem brskalniku je preko 50 root CA-jev. Največji ponudnikCA storitev z svojimi podizvajalci je VeriSign z 47% tržnim deležemX.509V kriptografiji je X.509 ITU-T standard za PKI (public key infrastrucutre) infrastrukturo zasingle sing-on (SSO) - enotno prijavo in PMI (Privilage Management Infrastructure). X.509specificira med drugim standarde za javne ključe, zavrnjene ključe, atributske certifikate inalgoritme za certificiranje/validacijo.X.509 je bil zasnovan leta 1988 skupaj z X.500 standardom. Predpostavlja striktnohierarhični sistem zaupljivih organizacij (CA) za izdajo certifikatov. Kar je sicer drugače“web of trust” modelu kot je recimo PGP, kjer je lahko vsakdo (ne samo CA) podpisovalecin validator tujih ključev.CertifikatiV certifikatnem sistemu X.509, CA izda potrdilo, ki vsebuje kavni ključ z specifičnim DN(Distingushed name) v X.500 tradiciji oziroma AN (Alternative name) kot recimo emailnaslov ali DNS zapis.Izdani certifikati se namestijo po organizaciji v poštne odjemalce, spletne brskalnike indrugo programsko opremo. Certifikati so sicer med računalniki prenosljivi, običajno sozaščiteni z geslom. Običajni certifikati za spletne brskalnike so kodirani v PEM formatu, kiuporablja ASCII znake potem pa so kodirani še v binarni PKCS#12 format (certifikati imajoobičajno končnico *.p12). Certifikate lahko namestimo lokalno v brskalnik ali globalno nasistem dosegljivo vsem oziroma specifičnemu uporabniku sistema. 4
    • Oto Brglez! Varne spletne storitveSpletna aplikacija za demonstracijo delovanja -MeSecureMeSecure je preprosta odprtokodna spletna aplikacija, ki omogoča prikaz podatkovdigitalnih potrdil, ki sem jo napisal v jeziku PHP in vsebuje tudi konfiguracijo ApacheHTTP strežnika za uporabo X.509 certifikatov z TLS/SSL v3. Izvorna koda projekta jedosegljiva na spletu na naslovu https://github.com/otobrglez/MeSecure.DelovanjeSpletna stran deluje na naslovu http://mesecure.banka.si (domena je seveda interna in jedosegljiva samo znotraj omrežja samo za potrebe testiranja/razvoja). Aplikacija prikaže zuporabo PHP-ja strežniške spremenljivke, ki jih Apache dobi iz varne seje (prikazuje$_SERVER spremenljivko).Aplikacija je konfigurirana tako, da ima javni pogled na http://mesecure.banka.si/, dokaterega lahko pridemo vsi brez TLS/SSL povezave. Varni pogled na https://mesecure.banka.si/ kjer je uporabljena TLS/SSL povezava in pot znotraj varnega pogledana katerem je zahtevan zasebni certifikat z ustreznimi vrednostmi na https://mesecure.banka.si/secure/.Delovanje spletne aplikacije je bilo preizkušeno na brskalnikih Google Chrome 11.0 inMozilla Firefox 5.0 na operacijskem sistemu Mac OS X 10.6.7. Na strežniku pa z Ubuntu10.4.2 LTS (Server) in spletnim strežnikom Apache 2.2.14 z PHP 5.3.2 in OpenSSL 0.9.8.Virtualizirano na VMWare Fusion 2.0.Javni - nevarovan - pogledPri javnem pogledu so vidne vse običajne spremenljivke, ki vsebujejo recimoHTTP_HOST=mesecure.banka.si, SERVER_PORT= 80. Brskalnik stran prikaže kot vsakodrugo. Slika 1. Slika aplikacije. Javni pogled aplikacije Slika 2. Slika informacij o strani v Google Chrome 5
    • Oto Brglez! Varne spletne storitveZasebni - varovan - pogledPri prvi menjavi javnega v zasebni pogled se zgodi vzpostavitev varne povezave, kjer namstrežnik ponudi svoj certifikat - ki pa sem ga podpisal sam, zato nas na to “varnostnonapako” seveda sistem opozori.Po sprejemu certifikata se vzpostavi varna povezava, katere podatki so so prikazani naspletni strani. Med temi podatki vidimo, da se uporablja SSL_CIPHER=dhe-rsa-aes256-sha, SSL_PROTOCOL=v3, da je certifikat podpisan iz moje strani kot “MeSecure CA” indrugo. Slika 4. Varnostno opozorilo, ki nas opozori, da je Slika 5. Podatki o strani certifikat nepodpisan s strani veljavne CA in da mu kot razkrijejo informacije o napaki in takemu ni priporočljivo zaupati. dodatne informacije o ključu, ki se uporablja za šifrirano povezavoPo uspešnem sprejemu strežniškega certifikata lahko le tega sprejmemo za vednooziroma lahko dodamo izjemo, ki bo vedno dovolila sprejem nepodpisanega certifikata zato spletno mesto. V primeru, da bi imel strežnik veljaven certifikat se omenjena napakanebi pojavila in bi brskalnik jasno pokazal, da gre za zaščiteno spletno stran. 6
    • Oto Brglez! Varne spletne storitveZasebni dostop za uporabnike certifikataOb obisku poti, ki je zavarovana z uporabo zasebnega certifikata se v brskalniku pokažeokno, ki nam omogoča izbor poljubnega/specifičnega zasebnega certifikata s pomočjokaterega lahko vstopimo v stran. Spletna aplikacija zahteva veljavni zasebni certifikat, kivsebuje vsebino MeSecure. V primeru, da certifikata ne posedujemo nam je dostop dostrani onemogočen.Certifikat običajno prejmemo od svoje organizacije in ga namestimo v brskalnik in/alisistem. Sam sem ga namestil v Apple Keychain, program, ki je del sistema Apple OS X inje namenjen opravljanju certifikatov, gesel in drugih identitet.Slika 6. Dodajanje PKCS#12 zasebnega certifikata v Apple Keychain. Pri dodajanjumoramo vpisati geslo certifikata.Slika 7. Pregled uvoženega certifikata, ki sem ga izdal kot MeSecure CAPo uspešnem uvozu certifikata lahko ponovno obiščem spletno stran in na seznamucertifikatov izberem “Oto Brglez - MeSecure Certifikat”, ki je veljaven certifikat za dostopdo spletne strani. 7
    • Oto Brglez! Varne spletne storitveSpletna aplikacija MeSecure mi sedaj z uporabo PHP funkcije openssl_x509_parseodkodira klientov certifikat in prikaže uporabnikovo ime in vrednosti, ki so shranjene vključu. Le te vrednosti lahko kasneje uporabimo za nadalnjo avtentifikacijo uporabnika.Slika 8. Ogled zasebnega certifikata znotraj spletne aplikacije. S pomočjo teh podatkovlahko gradimo sledeče varnostne tokove. 8
    • Oto Brglez! Varne spletne storitveKonfiguracija strežnika za uporabo X.509Navodila so pripravljena za operacijski sistem Ubuntu in OpenSSL orodja. Principi zaizdajo certifikatov so v osnovi podobni, vendar lahko uporabimo različna orodja.Generiranje lastne zaupljive organizacije / Certificate Authority (CA)Priprava zasebnega CA ključa in zasebnega CA X.509 certifikata.Ustvarimo zasebni ključ dolžine 2048 z imenom my-ca.key# openssl genrsa -des3 -out my-ca.key 2048Ustvarimo nov X.509 certifikat, ki bo veljal 10 let. Pri izdaji novega certifikata moramopaziti da za Common Name uporabimo veljaven FDQN strežnika (V mojem primerumesecure.banka.si)# openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crtCertifikat si lahko pogledamo z slednjim ukazom# openssl x509 -in my-ca.crt -text -noout--- IZPIS ---Certificate: Data: Version: 3 (0x2) Serial Number: 8e:8f:e6:60:e8:f0:f0:fa Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=Some-State, L=Maribor, O=MeSecure, OU=Certificate Authority,CN=MeSecure CA/emailAddress=hostmaster@mesecure.com Validity Not Before: Jun 2 03:31:23 2011 GMT Not After : May 30 03:31:23 2021 GMT Subject: C=US, ST=Some-State, L=Maribor, O=MeSecure, OU=Certificate Authority,CN=MeSecure CA/emailAddress=hostmaster@mesecure.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): 00:c5:11:3a:40:92:3c:4c:8a:04:73:4a:d1:c9:96: b2:a3:c9:47:41:65:95:ff:b4:c0:24:1d:c3:41:2f: ... odstranjeno zaradi preglednosti.... 69:71:da:6a:60:d8:d7:10:23:29:7b:fa:c5:c5:e2: 4e:bd Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 9D:82:73:C9:2B:4F:C2:63:2E:38:B5:D4:BB:4A:74:92:5E:2F:FF:13 X509v3 Authority Key Identifier: keyid:9D:82:73:C9:2B:4F:C2:63:2E:38:B5:D4:BB:4A:74:92:5E:2F:FF:13 DirName:/C=US/ST=Some-State/L=Maribor/O=MeSecure/OU=CertificateAuthority/CN=MeSecure CA/emailAddress=hostmaster@mesecure.com serial:8E:8F:E6:60:E8:F0:F0:FA X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha1WithRSAEncryption 45:d0:01:81:d6:fa:32:dc:4f:b6:ec:37:d4:7d:13:1f:21:e1:! ... odstranjeno zaradi preglednosti .... ca:24:c1:fc--- /IZPIS --- 9
    • Oto Brglez! Varne spletne storitvePriprava strežniškega certifikataSedaj moramo pripraviti X.509 certifikat in pripadajoči zasebni ključ. Certifikat bomonaredili tako, da bomo izdali “Certificate request” - zahtevo po certifikatu, ki jo bomo potempodpisali s svojo CA. Seveda bo to za produkcijo naredila zunanja CA.Generiranje zasebnega RSA s 1024 modus biti. Nova datoteka ima ime mars-server.key# openssl genrsa -des3 -out mars-server.key 1024Generiranje certifikata kot novo zahtevo.# openssl req -new -key mars-server.key -out mars-server.csrPodpis certifikata z našim CA. Dobimo mars-server.crt certifikat.# openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkeymy-ca.key -CAcreateserial -days 3650Dobljeni certifikat si lahko pogledamo.# openssl x509 -in mars-server.crt -text -noout--- IZPIS ---Certificate: Data: Version: 1 (0x0) Serial Number: cf:d1:e6:ed:85:7a:8a:71 Signature Algorithm: sha1WithRSAEncryption Issuer: C=US, ST=Some-State, L=Maribor, O=MeSecure, OU=Certificate Authority,CN=MeSecure CA/emailAddress=hostmaster@mesecure.com Validity Not Before: Jun 2 03:34:19 2011 GMT Not After : May 30 03:34:19 2021 GMT Subject: C=US, ST=Some-State, L=Maribor, O=MeSecure, OU=Web Services,CN=mesecure.banka.si/emailAddress=mesecure@mesecure.banka.si Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:a9:95:97:27:61:8c:63:6e:7b:9d:fb:10:0b:aa: 6c:92:76:f6:85:2c:45:29:d9:50:91:97:cc:ff:20: ... odstranjeno zaradi preglednosti ... ba:2a:3d:53:77:d1:6b:88:73:51:75:81:ee:1d:11: 88:67:fe:f5:dc:88:4c:54:8b Exponent: 65537 (0x10001) Signature Algorithm: sha1WithRSAEncryption 0a:eb:9d:32:c4:99:a4:a2:96:53:29:7e:8f:f4:a5:b0:86:48: ... odstranjeno zaradi preglednosti .... c4:8a:b6:41:83:41:e7:cd:57:65:da:c6:66:5f:a7:b7:b9:a7: 83:fb:61:38--- /IZPIS ---Sedaj imamo mars-server.crt, ki ga kopiramo v ssl.crt, mars-server.key, ki ga skopiramo vssl.key in my-ca.crt, ki ga skopiramo v ssl.crt. 10
    • Oto Brglez! Varne spletne storitvePriprava SSL/TLS klientovega certifikata za avtentifikacijoZ uporabo openssl orodij generiramo 1024 bitni RSA PEM ključ, ki ga bodo na koncupostopka lahko končni uporabniki kot PKCS#12 certifikat namestili na svoje sisteme inbrskalnikeGeneriranje ključa# openssl genrsa -des3 -out oto-brglez.key 1024Generiranje certifikata - zahteve za certifikat# openssl req -new -key oto-brglez.key -out oto-brglez.csrPotrditev ključa s strani moje CA za naslednjih 10 let# openssl x509 -req -in oto-brglez.csr -out oto-brglez.crt -sha1 -CA oto-brglez.crt -CAkeyoto-brglez.key -CAcreateserial -days 3650Izvoz PEM kodiranega certifikata v ASCII obliki v PKCS#12# openssl pkcs12 -export -in oto-brglez.crt -inkey oto-brglez.key -name "Oto BrglezCertifikat" -out oto-brglez.p12Ogled generiranega certifikata (zahteva geslo, ki se uporablja za uvoz)# openssl pkcs12 -in oto-brglez.p12 -clcerts -nokeys -infoBag Attributes localKeyID: D6 76 70 1B DA 46 13 23 53 F8 CC 25 96 50 23 AC 30 1F 66 B1 friendlyName: Oto Brglez - MeSecure Certifikatsubject=/C=SL/ST=Some-State/L=Maribor/O=MeSecure Klient/OU=Oto Brglez/CN=Oto Brglez/emailAddress=oto.brglez@opalab.comissuer=/C=US/ST=Some-State/L=Maribor/O=MeSecure/OU=Certificate Authority/CN=MeSecure CA/emailAddress=hostmaster@mesecure.com-----BEGIN CERTIFICATE-----MIIDPTCCAiUCCQDP0ebthXqKcjANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUtU3RhdGUxEDAOBgNVBAcTB01hcmlib3IxETAPBgNVBAoTCE1lU2VjdXJlMR4wHAYDVQQLExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFDASBgNVBAMTC01lU2VjdXJlIENBMSYwJAYJKoZIhvcNAQkBFhdob3N0bWFzdGVyQG1lc2VjdXJlLmNvbTAeFw0xMTA2MDIwMzUyMThaFw0yMTA1MzAwMzUyMThaMIGeMQswCQYDVQQGEwJTTDETMBEGA1UECBMKU29tZS1TdGF0ZTEQMA4GA1UEBxMHTWFyaWJvcjEYMBYGA1UEChMPTWVTZWN1cmUgS2xpZW50MRMwEQYDVQQLEwpPdG8gQnJnbGV6MRMwEQYDVQQDEwpPdG8gQnJnbGV6MSQwIgYJKoZIhvcNAQkBFhVvdG8uYnJnbGV6QG9wYWxhYi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALu3rDqZq193KAFFI94yA1Y/RMyOQFR7wV/PeIsh+rsa35F/1MhyqSf3RQrXFY5av6RRWTrYeIgMk1HJVValZW1mFgYiwcl7IVXgqXKGac/tO6aOkkjZSrLIRk08twOmIcqx1v+Ztkm9Me8KNyga53t4OUM98EyEZ0K+MW5VynqhAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAF4iNI4Emof8kcNdlm9BqaHeJ7kVRrMb9vBJ3ALH3k50uuJqE1hgPn/wJFsmu5R3nnbmWIjF/T+UDuXBzbRyeTlUlw5dfgsKv8ksu0Fs4e+0gdBcv5E3W5M3BYxYDfxj8Hknnb04Ll6W+TCL/rZ54VYdK8TojSftlTYUe/lbodS44vBh9QBGMZq55bo3Ucxf1b3efUHNgiAxSfLS/p8z8UOQVJxErpPgtLphuWNfWzpAhsAdGLLVfqGrCM7lFuGu9Vcn/lN68LKE2ZxLuuRMOIIQbU6e5D3PH5I15c0kgtl51kXXvlJFukW0ocyMTD/YrktNPC8NXu4peTtXPfZKGPg=-----END CERTIFICATE-----Generiran certifikat lahko končni uporabniki namestijo v svoje brskalnike. 11
    • Oto Brglez! Varne spletne storitveKonfiguracija spletnega strežnika ApacheUporabimo spletni strežnik apache z vključenim mod_ssl. Moja konfiguracija jepripravljena kot “virtualhost” in deluje samo za domeno “mesecure.banka.si”.<VirtualHost *:80>! ServerAdmin oto.brglez@opalab.com! ServerName mesecure.banka.si! ServerAlias mesecure.banka.si! DocumentRoot /home/notroot/rails-projects/mesecure/! <Directory /home/notroot/rails-projects/mesecure>! ! Options FollowSymLinks Indexes MultiViews ExecCGI! ! AllowOverride All! ! Order allow,deny! ! allow from all! </Directory>! LogLevel info! ErrorLog /.. pot ../apache_error.log! CustomLog /.. pot ../apache_access.log combined</VirtualHost><IfModule mod_ssl.c>! AddType application/x-x509-ca-cert .crt! AddType application/x-pkcs7-crl .crl! SSLPassPhraseDialog builtin! <VirtualHost _default_:443>! ! ServerName mesecure.banka.si:443!! ! DocumentRoot /home/notroot/rails-projects/mesecure/! ! <Directory /home/notroot/rails-projects/mesecure>! ! ! Options FollowSymLinks Indexes MultiViews ExecCGI! ! ! AllowOverride All! ! ! Order allow,deny! ! ! allow from all! ! </Directory>! ! LogLevel info! ! ErrorLog /.. pot ../ssl_apache_error.log! ! CustomLog /.. pot ../ssl_apache_access.log combined! ! SSLEngine on! ! SSLCipherSuite HIGH:MEDIUM! ! SSLProtocol all -SSLv2! ! SSLOptions +StdEnvVars +ExportCertData! ! # Strežniški certifiakt:! ! SSLCertificateFile /.. pot ../ssl_workspace/mars-server.crt! ! # Strežnikov zasebni ključ:! ! SSLCertificateKeyFile /.. pot ../ssl_workspace/mars-server.key! ! # Strežniška certifiaktska veriga:! ! SSLCertificateChainFile /.. pot ../ssl_workspace/my-ca.crt! ! # Certificate Authority (CA):! ! SSLCACertificateFile /.. pot ../ssl_workspace/my-ca.crt!! ! <Location /secure>! ! ! SSLVerifyClient require! ! ! SSLVerifyDepth 1! ! </Location>! </VirtualHost></IfModule> 12
    • Oto Brglez! Varne spletne storitveZaključekSeminarske naloge sem se lotil, ker me je vedno zanimalo kako zahtevno je pravilnoizdelati ključe in kako jih lahko uporabimo za “single sing on” prijavo. Implementacija jezelo zanimiva in menim, da obstaja veliko projektov, kjer bi lahko takšen način varovanjabil velika prednost.V razmislek bi bilo zanimivo preučiti tudi konfiguracijo X.509 certifikatov v Microsoftovemokolju.Viri• Secure Socket Layer - http://en.wikipedia.org/wiki/Secure_Sockets_Layer• The SSL Protocol : Version 3.0 - http://www.mozilla.org/projects/security/pki/nss/ssl/ draft302.txt• Message authentication code - http://en.wikipedia.org/wiki/ Message_authentication_code• Encryption - http://en.wikipedia.org/wiki/Encryption• OWASP: Transport Layer Protection Cheat Sheet - https://www.owasp.org/index.php? title=Transport_Layer_Protection_Cheat_Sheet• X.509 - http://en.wikipedia.org/wiki/X.509• Mozilla: Included Certificate List - http://www.mozilla.org/projects/security/certs/included/• PHP: openssl_x509_parse - Manual - http://php.net/manual/en/function.openssl-x509- parse.php• Content of an X.509 Certificate - http://www.omii.ac.uk/docs/3.4.0/installation_guide/ security/x509_certification/what_is_cert_auth.htm• Mac 101: Keychain - http://www.tuaw.com/2007/09/17/mac-101-keychain/• RSA Laboratories - Public-Key Cryptography Standards (PKCS) - http://www.rsa.com/ rsalabs/node.asp?id=2124 13