Koti » DANE TLSA ja Let’s Encrypt

DANE TLSA ja Let’s Encrypt

DANE on DNSSECin laajennos, joka mahdollistaa SSL/TLS-varmenteiden varmennuksen, eli varmistamaan että verkkopalvelu oikeaa SSL-varmennetta. Verkossa on mahdollista esimerkiksi palomuurilla pysäyttää TLS-yhteys ja luoda sen uudelleen. Kuvittelet tällöin että yhteys pankkiisi on suojattu, vaikka siihen on tehty välimies hyökkäys ja muiden on mahdollista nähdä mitä teet pankissa ja mahdollisesti varastaa istunnon.

Miksi DANE?

Erityisesti DANE:n merkitys on tärkeämpi sähköpostipalvelinten yhteyksissä, sillä SMTP:ssä ei ole samanlaista standardia salauksella kuin HTTP-puolella. SSL-varmenteet toimivat yksinkertaisesti niin, että joku luotettu varmenteenmyöntäjä vahvistaa, että sivusto on aito. Kuitenkin näitä varmenteen myöntäjiä on tuhansia, joten emme voi luottaa pelkästään näihin varmenteen myöntäjiin. Normaalissa HTTPS-yhteydessä sivuston vierailijan selain tarkistaa että onko SSL-varmenne aito ja luotettava, mutta sähköpostiliikenteessä tätä ei voi tehdä, sillä loppukäyttäjä ei pysty varmentamaan onko kaksi sähköpostipalvelinta yhteydessä SSL:nä ja onko tätä postiliikennettä varmennettu.

Tähän tulee avuksi DANE, joka varmistaa että postiliikennettä voidaan tarjota salattuna. Edelleenkin varmennetaan SSL-varmenne varmennemyöntäjän (CA):n kautta mutta lisätään omaan nimipalvelimeen TLSA-tietueseen oman palvelinvarmenteen sormenjälki. Näin voidaan vahvistaa nimipalvelintietueen avulla että SSL-varmenne on aito ja luottaa siihen. Lisäksi DNS-palvelin varmistetaan DNSSECillä, eli DANE ei toimi ilman DNSSEC:iä.

DANE Let’s Encryptin kanssa

Let’s Encryptin yhteisössä oli julkaistu ohjeistuksia DANE:n käyttöön Let’s Encrypt SSL-varmenteiden kanssa. Let’s Encryptin kanssa tulee useinkin haasteellisemmaksi, sillä 90:nen päivän uusintaväli aiheuttaa tietynlaisia haasteita. Tästä syystä ei tule käyttää koko varmennetta sormenjälkeä, sillä sormenjälki muuttuu joka kerran kun verkkotunnus uusintaan (3 0 1 ja 3 0 2) (Lähde). Tähän on suositusta käyttää Subject Public Key:tä tilalla tai vaihtoehtoisesti käyttää CA:n sormenjälkeä, kuten olen itse tämän tehnyt. Let’s Encryptissä CA:n sormenjälki kuitenkin pysyy useamman vuoden samana, joten tämän käyttämisessä ei tule ongelmia. Tämä tosin ei ole yhtä turvallinen kuin suoraan palvelimen varmennetta käyttessä mutta jonkinlainen välimuoto.

Tästä syystä haetaan nyt Let’s Encryptin käyttämää DST Root CA X3 Identrustilta ja käytetään sitä DANE:ssa.

printf '_25._tcp.%s. IN TLSA 2 1 1 %sn' $(uname -n) $(openssl x509 -in cert.pem -noout -pubkey | openssl pkey -pubin -outform DER | openssl dgst -sha256 -binary | hexdump -ve '/1 "%02x"')

Liitetään tämä tulostettu julkinen avain nimipalvelimelle. Luodaan nimipalvelimelle _dane.example.com (korvaa example.com) sinun omalla verkkotunnuksella ja liitetään sinne julkisen avaimen sormenjälki. Voit vaihtoehtoisesti käyttää myös tätä työkalu generoidessasi TLSA nimipalvelintietuetta.

Sähköpostipalvelimelle lisäät vielä CNAME:t tähän _dane.example.com aliverkkotunnukseen mallin mukaisesti.

;subject=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X1
;issuer= /O=Digital Signature Trust Co./CN=DST Root CA X3
;notBefore=Oct 19 22:33:36 2015 GMT
;notAfter=Oct 19 22:33:36 2020 GMT
;
_dane.example.com. IN TLSA 2 1 1 60B87575447DCBA2A36B7D11AC09FB24A9DB406FEE12D2CC90180517616E8A18
_25._tcp.smtp.example.com. IN CNAME _dane.example.com.
_587._tcp.smtp.example.com. IN CNAME _dane.example.com.

Sinun tulee lisäksi päivittää fullchain.pem tiedostoon DST Root CA X3 sertifikaatti aina Let’s Encryptin päivityksen yhteydessä.

lynx --source https://www.identrust.com/certificates/trustid/root-download-x3.html      | grep -v "\/textarea" | awk '/textarea/{x=NR+18;next}(NR<=x){print}' | sed -e  '1i-----BEGIN CERTIFICATE-----\' | sed -e '$a-----END CERTIFICATE-----\'     >>      /etc/letsencrypt/live/example.com/fullchain.pem

Lopuksi testaa toimivuus testityökalulla. Toinen laajempi testityökalu tässä. Mikäli tulee virhettä, se tulee korjata välittömästi sillä mikäli varmennus epäonnistuu koska sähköpostipalvelimet ketkä varmistavat DANE:n eivät pysty lähettämään sähköposti palveluusi.

Tällä hetkellä DANE on aika vähäisessä käytössä, mutta suosittelen sen käyttöönottamista parantaaksesi sähköpostiliikenteen salausta.

Lue lisää:

Let’s Encrypt certificates for mail servers and DANE – Part 1 of 2

Let’s Encrypt certificates for mail servers and DANE – Part 2 of 2

 

 

Kommentoi