Luottamuksen rakentaminen internetissä

Varmenteet ovat nykyään hyvin yleisesti käytössä jokapäiväisessä nettiselailussa. Niillä varmistetaan, että nettisivu johon otetaan yhteyttä todella on se nettisivu, joka sen pitääkin olla, eikä jonkin välissä olevan tahon huijaus. Olisihan perin ikävää, jos nettiostoksia tehdessä syöttäisit pankkitietosi huijaussivulle, joka näyttäisi täsmälleen samalta kuin oikea nettikauppa, mutta joka näytettäisiin sinulle oikean sivun sijasta (jopa niin että osoitetieto osoiterivillä olisi oikein!) siksi, että jokin välissä oleva taho on saanut kaapattua yhteyden.

Tarkemmin sanottuna tällaiset huijaukset voidaan estää silloin, kun käytössä on niin sanottu HTTPS-yhteys (HyperText Transfer Protocol Secure) ja sen voi helpoiten tunnistaa osoiterivin alusta olevasta merkinnästä. Monet selaimet tosin piilottavat https://:n osoitteen alusta, mutta näyttävät tämän suojatun yhteyden olemassaolon silti esimerkiksi osoitepalkissa olevan, lukkoa esittävän symbolin avulla. Tutkitaan asiaa seuraavaksi hieman tarkemmin.


Varmenteen tutkiminen

Avaa selaimen toiseen välilehteen Aalto-yliopiston kotisivu. Hieman selaimesta riippuen osoiterivillä pitäisi nyt näkyä https ja/tai jokin symboli, esimerkiksi lukon kuva, joka ilmaisee suojatun yhteyden. Eri selaimissa käytössä olevaa suojattua yhteyttä ja sen perusteena olevia varmenteita voi tutkia hieman eri tavoilla. Usein niitä pääsee katselemaan klikkaamalla lukkoa esittävää symbolia ja siirtymällä katselemaan edistyneitä tietoja (engl. advanced).

Eri selaimissa seuraavat tiedot löytyvät hieman eri paikoista, mutta tiedot ovat kuitenkin saatavilla.


Google Chrome -selaimessa (ver. 106.0.5249.119):

  1. Paina osoitteen https://www.aalto.fi/ vasemmalla puolella olevaa lukkosymbolia.

  2. Valitse Connection is secure.

  3. Valitse Certificate is Valid.


Edge-selaimessa (ver 106.0.1370.47):

  1. Paina osoitteen https://www.aalto.fi/ vasemmalla puolella olevaa lukkosymbolia.

  2. Valitse Connection is secure.

  3. Ikkunan oikeassa yläkulmassa rastin vasemmalla puolella on ikoni ”Show Certificate (issued …)”.


Englanninkielisessä Firefox for Ubuntu -selaimessa (ver. 91.0.2) näitä tietoja pääsee tarkastelemaan menemällä Page Info -tietojen Security-välilehdelle:

  1. Paina osoitteen https://www.aalto.fi/ vasemmalla puolella olevaa lukkosymbolia.

  2. Valitse Connection Secure.

  3. Valitse More information.


Seuraava teksti koskee Firefoxia, mutta samat tiedot on löydettävissä myös muilla selaimilla.

Security-välilehdeltä nähdään, että yhteys on suojattu TLS 1.3 -protokollalla. Apuna käytetään jo aiemmin kurssilla opittua AES-salausta 128-bittisellä avaimella, sekä käyttäen SHA256-tiivistefunktiota. TLS-protokollaa käsitellään hieman enemmän viimeisessä opetusmoduulissa.

Tällä hetkellä meitä kuitenkin kiinnostaa erityisesti varmenne. Sitä pääsemme tarkastelemaan tarkemmin klikkaamalla ”View Certificate”.

Jos käytössäsi on eri selain etkä löydä kyseisiä varmennetietoja, niin esimerkin varmenteen tiedot ovat saatavilla myös paikallisesti tiedostossa aalto.txt. Vaikka olisitkin onnistunut kaivamaan tiedot selaimestasi, kannattanee silti avata oheinen tiedosto. Monet selaimet eivät näytä varmennetietoja yhtä yksityiskohtaisesti, kuin miten ne on kuvattu tiedostossa.


Yksityiskohtia varmenteesta

On täysin mahdollista, että Aallon varmenne on tämän kurssin luomisen jälkeen muuttunut. Se ei haittaa, sillä uusissa varmenteissa on löydettävissä vastaavat tiedot.

Alla olevat esimerkit pohjautuvat kurssin luontivaiheessa olleeseen aalto-yliopiston varmenteeseen. Jos varmenne on uudempi, voit verrata mitkä asiat ovat muuttuneet sertifiaattien uudistuessa.

Kun avaat tiedoston, näet sen alkupuolella ihmisten ymmärtämässä muodossa varmenteen tiedot. Luottamuksen rakentamisessa varsinainen varmenne (joka siis sisältää kaikki sen yllä olevat tiedot) on aivan lopussa sovitulla tavalla koodattuna, ei siis salattuna. Tieto on:

-----BEGIN CERTIFICATE-----

-----END CERTIFICATE-----

-rivien välissä.

Tiedoista nähdään, että varmenteen on myöntänyt Aalto-yliopistolle alankomaalainen varmentaja GEANT Vereniging. Kaikki bittikuviot on esitetty heksadesimaalinumerona, joita on käsitelty jo ensimmäisestä moduulista lähtien.

Katsotaan seuraavassa muutamaa yksityiskohtaa varmenteesta. Mainittu rivinumero osoittaa, millä rivillä tiedostoa kohta on löydettävissä.

  • Rivi 5: Aallon varmenteen sarjanumero on b8:4a:fd:49:57:6b:21:a3:f2:5f:63:eb:b6:83:19:8c ja se on voimassa 11.10.2022-11.10.2023.

  • Rivi 6: Varmenteen allekirjoitus on suoritettu ecdsa-with-SHA256:lla eli elliptisellä digitaalisella allekirjoituksella käyttäen SHA256-tiivistettä.

  • Rivi 9: Varmenne on voimassa 11.10.2022 alkaen.

  • Rivi 10: Varmenne vanhenee 11.10.2023. Varmenne on siis voimassa vuoden kerrallaan.

  • Rivi 13: Aallon julkisen avaimen algoritmi perustuu elliptisiin käyriin.

  • Rivit 16-20: Aalto-yliopiston julkinen avain on: 04:ea:08:1d:24:18:09:79:...:69:44:42:7a:ef. Näin ollen julkinen avain on vain 256 bittiä pitkä (eikä esim. 3072 bittiä kuten RSA:lla). Tämä selittyy sillä, että avain hyödyntää tehokkaampaa elliptisten käyrien matematiikkaan pohjautuvaa digitaalista allekirjoitusmenetelmää, jolla lyhyemmät avaimet riittävät 128 bitin turvatason saavuttamiseksi.

  • Rivi 21: On julkisen avaimen alogitmin parametri.

  • Rivi 22: Kertoo elliptisen käyrän olevan NISTin P-256.

  • Rivit 23-43: Kryptografiset varmenteet on kuvattu ITU:n X509-standardissa, joka määrittää miten varmenteet ja varmenneketjujen varmistus on tehtävä. Nämä Aallon varmenteen rivit ovat lisätietoja varmenne-algoritmeille. X509 on IETF-standardi, joka muodostuu useista RFC-dokumenteista, esimerkiksi Varmennusketjun rakennus, sekä varmenneprofiili, jossa kuvataan miten ilmiannetaan ja kirjataan epäluotettava varmentaja.

  • Rivit 89-92: Varmennetietojen lopussa, ennen sertifikaattia, on varmentajan (GEANT Vereniging) luoma allekirjoitus: 30:45:02:21:00:87:5c:...:ef:53:2e:d8. Tämän varmentaja on luonut allekirjoittamalla oman julkisen avaimensa SHA256-tiivisteellä käyttäen GEANT Verenigingin salaista allekirjoitusavainta.

  • Rivit 93-156: Varmentajan (GEANT Verening) luoma varmenne. Alkaa siis kohdasta —–BEGIN CERTIFICATE—–.

Jos olisimme varmennetun tiedon vastaanottaja, tarkistaisimme onko GEANT Vereningin avain luotettujen julkisten avainten listalla. Tällöin riittäisi varmistaa GEANT Vereningin allekirjoitus, minkä jälkeen voisimme luottaa siihen, että 04:ea:08:1d:24:18:...69:44:42:7a:ef todella on Aalto-yliopiston julkinen avain.


Varmenneketju

Jos meillä ei olisi GEANT Vereninging avainta luotettujen julkisten avainten listalla, seuraisimme varmenneketjua juurivarmenteeseen asti. Varmenneketjua käydään läpi varmennettavasta tahosta juurivarmentajan suuntaan.

Kuten edellä nähtiin, varmenteilla on tietty aika jonka ne ovat voimassa. Myös varmentajat ja varmenneketjut voivat muuttua. Alla vasemmalla on kuva Aalto-yliopiston varmenneketjusta vuodelta 2021 ja oikealla vuodelta 2022.

../_images/l8_varmenneketju2022.png

Esimerkkimme tapauksessa varmenteet varmenneketjussa ovat varmennettava \(\leftarrow\) varmentaja:

Esimerkkin vuoksi kuvitellaan, että Aalto-yliopiston juurivarmenne on yhä Comodo CA Limited:in myöntämä. Tässä tapauksessa varmenteet varmenneketjussa ovat siis:

Aalto-yliopisto \(\leftarrow\) GEANT Verening \(\leftarrow\) The USERTRUST Network \(\leftarrow\) Comodo CA Limited.

Ketjua käydään läpi, kunnes ketjussa löytyy taho, joka on meille jo luotettu. Jos esimerkiksi tahon GEANT Vereing julkinen avain olisi meillä luotettujen avainten listassa, ei meidän tarvitse suorittaa tämän tahon varmenteen tarkistusta tahon The USERTRUST Network varmenteella vaikka se olisi saatavilla.

Alla linkit varmenneketjun varmenteisiin paitsi juurivarmenteeseen. Juurivarmenteen on löydyttävä käyttämäsi tietokoneen tai sovelluksen tiedoista. Juurivarmenteen on siis löydyttävä joko käyttöjärjestelmän tiedoista tai vastaavasti selaimeen sisäänrakennettuna.

Aalto-yliopiston varmenne \(\leftarrow\) GEANT Verenigingin varmenne \(\leftarrow\) The USERTRUST Network in varmenne (sijainti: Jersey City, New Jersey, USA) \(\leftarrow\) Comodo CA Limited (Salisbury, Iso-Britannia).

Selaimesta, käyttöjärjestelmästä tai viimeistään luotettujen varmentajien verkostoista pitää löytyä valmiiksi asennettuna viimeistään juurivarmenne Comodo CA Limited, joka sisältää Comodon julkisen avaimen. Tässä siis oletamme että Comodo CA Limited on juurivarmentaja, jonka tarvitsemme. Jos varmenneketju on käyty läpi, eikä luotettavaa tahoa ole löytynyt, emme voi luottaa Aalto-yliopiston varmenteeseen. Yleensä tällaisessa tapauksessa käyttämäsi selain antaa virheilmoituksen (tai ainakin varoituksen) että varmenne ei ole hyvä.

Ei ole suositeltavaa käyttää verkkosivua, dokumenttia, tai mitään digitaalista dataa jos informaation tai tiedon lähteen alkuperän varmentaminen ei onnistu!

Jos siis selaimesi varoittaa vanheentuneesta tai virheellisestä varmenteesta, älä mene sivustolle. Se on luultavasti huijaus- tai tiedonkalastelusivusto.

Tutkitaan Googlen varmennetta. Mikä seuraavista väitteistä pitää paikkansa?


Yhteenveto

Varmentajien ja varmenneketjujen käyttö on nykyisen käsityḱsen mukaan välttämätöntä luottamuksen rakentamiseksi internetissä. Tämän luottamuksen rakentamiseen käytetään kryptografiaa:

  • Symmetrisiä salauksia

  • Epäsymmetrisiä menetelmiä

  • Tiivisteitä

  • Digitaalisia allekirjoituksia

Osaammekin näistä jo kaiken niin matematiikan, teorian kuin käytännönkin tasolla kurssin nykyisen tietopohjan avulla. Seuraavassa opetusmoduulissa katsomme, miten nämä kaikki ovat käytössä, kun turvallista yhteyttä muodostetaan. Lisäksi tutustumme paineeseen, jonka kvanttilaskenta aiheuttaa kryptografisille menetelmille. Lopuksi esittelemme muutaman kryptografian kuumimmista tutkimusaloista tällä hetkellä.

Seuraavassa moduulissa ei enää juuri tule uutta tietoa kryptografiasta, mutta katsomme siinä hieman tulevaisuuteen ja nautimme osaamisestamme.

Palautusta lähetetään...