Kunnon kotiverkon alkupiste on oma CA

Työni Nokialla on vienyt minut syvälle, syvälle PKI ihmeelliseen maailmaan. Nyt kun kenkäisin kotiprojektit käyntiin katsoin omaa varmennetoteutustani. Käytän varmenteita OpenVPN:n kanssa. Käytän varmenteita Slicen ja Home serverin HTTPS yhteyksissä. Käytän “kaupallista” varmennetta Slicen kanssa ja Home serverin kanssa käytin mitä Microsoft näki hyväksi asentaa koneelle. Tuohan on surullista mieheltä, jonka päivätyössä vuosia säädettiin varmenteita. Niinpä käärin hihat ja aloitin Leivo.org PKI järjestelmän miettimisen.

Luonnollisesti sen tulisi olla vähintään 2 tasoinen. Yksi sammuksissa oleva juuriCA, jonka CRL olisi voimassa vuoden kerrallaan. Juuren alla olisi 1-3 käynnissä olevaa CA:ta, jotka julkaisevat CRL:n joka olkoon voimassa 3 vuorokautta kerrallaan. Täysin tolkullinen kotikäyttöön tarkoitettu pikku hierarkia. Haluan tehdä tämän mahdollisimman helposti ja lähelle minun näkemystä oikeasta. Valitsin työkalukseni OpenSSL:n, sillä siitä minulla on aikaisempaakin kokemusta. Heti tämän valinnan jälkeen törmäsin nimeämisongelmaan, miten nimeän CA:ni ja vielä tärkeämmin miten nimeän koneet joita tästä syntyy? Kehitin ongelman ratkaisuksi nimeämiskäytännön, josta blogimerkintä löytyykin. Sitten aloin ajattelemaan eri rooleja eri CA:lle… Tässä kohtaa mieleeni tuli KISS (Keep It Simple Stupid). Jos rehellisiä ollaan, selviän varmaan vain kahdella käynnissä olevalla CA:lla. Yksi kappale OpenSSL:llä tehtyjä CA:ta, joka antaa palvelimien SSL ja  ja VPN:n tunnistusvarmenteet, sekä muita mahdollisia varmenteita, mitä en vielä ole kuvitellut. Toinen CA on Microsoft CA, joka on tiukasti kiinni AD:ssani jakaen laitevarmenteita, joilla mahdollistetaan kodin langattomaan verkkoon 802.1X tunnistautuminen ja myöhemmin kotiverkon NAC.  Tästä luonnollisesti päästään RADIUS palvelin tarpeisiin, mutta siitäkin myöhemmin. Tärkeintä on että olen nyt päässyt ymmärrykseen, että tarvitsen vain kolme CA:ta kotiverkkoani varten.

JuuriCA – Leivo Root CA

Alkuspeksit CA:lle oli nämä:

  • Voimassa 25 vuotta
  • 4096 bittinen avain
  • SHA256 allekirjoitus algoritmi
  • CRL on voimassa vuoden kerrallaan

JuuriCA on kaiken ankkuri ja se mitä firma/yksilö haluaa eniten suojata. Sen avulla voidaan allekirjoittaa muita CA:ta, joilla taasen voidaan allekirjoittaa mitä vaan ja luottamusketju säilyy. HSM olisi se oikea tapa mennä, mutta ne maksavat vähän liikaa näinkin vakavaan kotikäyttöön Smile. Näin ollen on aika virittää tinahattu päähän ja miettiä mitä vähillä varoilla voidaan tehdä avaimen suojaamiseksi.

Kyseessä on lähes vuoden kerrallaan sammuksissa oleva laite/ohjelmisto (CRL oli voimassa vuoden). Kyseinen CA on täysin verkoton, se ei tarvitse nettiä mihinkään. Tässä pikaresepti oman juuriCA:n rakentamiseen – käyn konfiguraatiotiedostot eri kirjoituksessa läpi.

  1. Polta valitsemasi Linux distribuutio levylle (oma valintani Ubuntu 12.04 LTS)
  2. Asenna Linux koneelle, mikä on täysin irti kaikista tietoverkoista
  3. Valmistele itsellesi osoite missä CRL voi levätä (esim. http://crl.leivo.org/Rootca-crl.pem)
  4. Asenna ja konfiguroi OpenSSL
  5. Tee avain, varmenne ja ensimmäinen CRL
  6. Polta varmenne ja CRL CD:lle. (Tinahattu HUOM. USB tikkuja ei voi käyttää, sillä ne ovat RW mediaa ja voivat sisältää vaikka mitä.)
  7. Turvaa CA (Tinahattu temppu! Kotikäytössä tämä temppu on ehkä inan verran yliampuva…)

 

a) Polta CA:n hakemistosta DVD ja laita kone tai kovalevy sekä DVD turvalliseen talteen (Tinahattu HUOM. turvapussit luovat luotettavuutta käytettäessä logeja sekä useita varmistavia henkilöitä)

 

b) Polta kaksi DVD:ta CA:n hakemistosta ja laita DVD:t turvalliseen talteen. Aja boot & nuke muutamalla kerralla satunnaista ylikirjoitusta koneen kovalevylle (ref. Gutmann method). Nyt konetta levyineen voidaan käyttää uudelleen muihin tarkoituksiin.

Luonnollisesti vaihtoehdossa B pitää aina asentaa uudestaan käyttöjärjestelmä ja OpenSSL kun pitää allekirjoittaa uusi CA tai uusi CRL, mutta toisaalta se ratkaisu ei ole laitesidottu (Tinahattu HUOM. vikasietoisuus! \o/)

Ja näin minulla on ensimmäinen palvelin läjästä palvelimia suunniteltuna.

Leave a Reply