Published on

Bővebben a tanúsítványokról

Authors
  • avatar
    Name
    Bartók Dániel
    Twitter

BUÉK 2024!

Egy picit megkésve, de boldog új évet kíván a Zsebinformatikus!

Egy héttel hamarabb szerettem volna ezt a bejegyzést kitenni az oldalra, a már sokat emlegetett videókkal egyetemben, de a karácsony előtti héten sikeresen lebetegedtem és azóta sem sikerült teljesen meggyógyulnom. Szerencsére már csak a hangom nem az igazi, viszont ez pont elég hátráltatás a videóknál. Nagyon remélem, hogy ez a napokban változni fog.

Addig is fogadjátok sok szeretettel az új év első bejegyzését, amely egyben az első haladó is. Törekszem itt is a közérthetőségre, viszont itt már valamennyi előképzettség nem árt a teljes érthetőség szempontjából. Mindig le fogom írni ilyen esetekben, mely alapozó bejegyzéseket érdemes ismerni, illetve milyen további ismeretek ajánlottak.

Hasznos perceket!

A haladó bejegyzés megértéséhez szükséges előképzettség:

Az alábbi alapozó bejegyzések ismerete:

További ajánlott ismeretek:

  • Unix terminál 1
  • Openssl 2 ismerete

Openssl használata és a tanúsítvány felépítése

A legutóbbi alapozó bejegyzésekben megismertük, milyen folyamatok zajlanak le, amikor egy biztonságos, az-az egy https weboldalt felkeresünk. Ilyenkor a hitelesítési szakaszban a szerver elküldi a kliensnek a tanúsítványát, amely által megállapítható a szerver kiléte. Na, de mit is jelent ez a gyakorlatban?

A szerver tanúsítványt mi magunk is elég egyszerűen megszerezhetjük. Nem kell hozzá csak egy unix terminál és az openssl "alkalmazás". Az eszközzel számos dolgot megtehetünk, amelyek érintik a tanúsítványokat, mi most az s_client parancsot fogjuk használni, ami kvázi "eljátssza" egy a szerverhez (esetünkben a zsebinformatikus weboldal) kapcsolódó kliens (böngésző) szerepét. Ezt főleg különféle SSL hibák felderítésében szokták használni. Mi most ezzel fogjuk lekérni a weboldal szerver tanúsítványát.

Ehhez nincs is más dolgunk, mint az alábbi parancsot kiadni egy internettel rendelkező unix terminálban.

openssl s_client -connect www.zsebinformatikus.hu:443

Ekkor a lenti képhez hasonlót kapunk vissza. A Server certificate résznél megkapjuk a szerver tanúsítványát. Első ránézésre a Begin és az End között csupa értelmezhetetlen karaktereket látunk, de ezt kibonthatjuk, hogy emberi "fogyasztásra" is alkalmas legyen. De mielőtt ez még megtesszük, felhívnám a Kedves Olvasó figyelmét az utolsó két sorra.

A subject mezőben azt látjuk ki számára lett a tanúsítvány kiállítva. Az issuer részben pedig a tanúsítvány kiállító személye olvasható.

crt-zsebinf

A tanúsítvány kibontására szintén a már eddig bemutatott alkalmazást vesszük elő, ehhez az x509 parancsot fogjuk használni. A tanúsítványok formátuma szabványban van leírva. Több ilyen szabvány is létezik, az egyik ezek közül a már említett x509.

 openssl s_client -connect www.zsebinformatikus.hu:443 | openssl x509 -text -noout

Az alábbi képeken a tanúsítvány mezői látszódnak, immár olvasható formában. Ezek közül a legfontosabbak:

  • Version - A tanúsítvány verziója, az *x509-*es szabványból jelenleg a 3-as a legfrissebb
  • Signature Algorithm: A tanúsítvány kiállító által használt titkosítási algoritmus
  • Issuer: A tanúsítvány kiállító "személye"
  • Validity: A kiállított tanúsítvány érvényességi ideje. Amennyiben lejárt tanúsítvánnyal rendelkező weboldalra látogatunk, arra a legtöbb modern böngésző felhívja a figyelmet. Nem ajánlott az ilyen oldalak látogatása!
  • Subject: A tanúsítvány "tulajdonosa".
  • Subject Public Key Info: A tanúsítványhoz tartozó publikus kulcs

crt-zsebinf-x509

Végezetül még egy mezőt megmutatnék, a Subject Alternative Name-et (röviden SAN). A mezőben több tulajdonosi név adható meg, ahol a tanúsítvány felhasználhatjuk. Ez azt jelenti, hogy ha például van egy weboldal, aminek több címe is van, alma és körte, akkor nem muszáj mindkét névre egy-egy tanúsítvány kiállítani. Csinálhatjuk azt, hogy az almára kiállíttatunk egy tanúsítványt és ebben a mezőben pedig felvesszük a körtét is.

Az alábbi képen látható, hogyan is néz ez ki a zsebinformatikus esetén. Láttuk fentebb, maga a tanúsítvány a zsebinformatikus.hu címre lett kiállítva. A SAN mezőben pedig ezen felül van még egy *.zsebinformatikus.hu cím is.

crt-zsebinf-dns

Itt a csillag jelentése bármi, így van az megoldva, hogy a weboldal a https://zsebinformatikus.hu és a https://www.zsebinformatikus.hu címen is elérhető ugyanazzal a tanúsítvánnyal.

openssl s_client -connect zsebinformatikus.hu:443  | openssl x509 -text -noout | grep Subject:
        Subject: CN = zsebinformatikus.hu

openssl s_client -connect www.zsebinformatikus.hu:443  | openssl x509 -text -noout | grep Subject:
        Subject: CN = zsebinformatikus.hu

Összegezve tehát megnéztük, hogy lehet egy nyilvánosan elérhető weboldalról lekérni a hozzá tartozó szerver tanúsítványt és megismertük az x509-es szabványú tanúsítvány legfontosabb mezőit.

Footnotes

  1. Az egyik ilyen Windowson is használható terminál a Windows Terminal

  2. Az openssl angol dokumentációja az alábbi linken olvasható.

Támogass egy kávéval