Žilinská univerzita > Fakulta riadenia a informatiky > Katedra informačných sietí

Princíp činnosti TLS

Úvod

Protokol TLS ( Transport Layer Security ) a jeho predchodca SSL ( Secure Sockets Layer) sú kryptografické protokoly, ktoré umožnujú bezpečnú komunikáciu v rámci internetu. Primárne bol vyvinutý pre službu http, ale úspešne sa používa aj pre iné služby ako sú email, internet faxing či voice-over-IP (VoIP).

Popis

Protokol TLS/SSL umožnuje aplikáciam bezpečným spôsobom komunikovať, teda bráni pred odpočúvaním a falšovaním správ. Pomocou kryptografických metód poskytuje koncovým bodom autentizáciu. Typicky je autentizovaný iba server, teda jeho identita je zaručená, zatiaľ čo klient ostáva neautentizovaný. Ďalšiu úroveň, ktorú TLS poskytuje je vzájomná autentizácia, ktorá však vyžaduje nasadenie infračtruktury verejných kľúčov(PKI ).

TLS principiálne zahrňuje tieto 3fázy:

  • Dohoda oboch strán na podoporovaných algoritmoch
  • Výmena kľúčov za podpory verejných kľúčov a autentizácie vychadzajúcej z Certifikátov
  • Šifrovanie prevádzky na základe symetrických kľúčov

Súčasné implementáie TLS podporujú nasledovnú algoritmy:

  • Algoritmy pre verejné kľúče: RSA, Diffie-Hellman, DSA
  • Algoritmy pre symetrické šifrovanie: RC2, RC4, IDEA, DES, Triple DES, AES,Camellia
  • Algoritmy pre jednosmerné šifrovanie: Message-Digest algorithm (MD2, MD4, MD5),Secure Hash Algorithm (SHA-1, SHA-2)

TLS Handshaking

TLS handshake je založený na výmene záznamov, pričom každý môže byť voliteľne komprimovaný, može byť k nemu byť pripojený autentizační kód MAC ( message authentication code ) a obsah môže byť šifrovaný. Ku každému záznamu je navyše pridaný typ obsahu,ktorý určuje protokol vyššej vrstvy.

Typická inicializácia prebieha nasledovne:

  • Klient pošle správu ClientHello, obsahujúcu najvyšší podporovaný protokol TLS,náhodné číslo a zoznam doporučrných kryptografických a kompresných metód.
  •  Server odpovedá ServerHello, ktorá obsahuje zvolenú verziu protokolu, náhodné číslo a metódy ktoré sa budú používať pri kompresii a šifrovaní.
  •  Server daľej pošle svoj certifikát, pokial to zvolená šifra umožnuje. Súčastné certifikáty sú založené na X.509.
  •  Server môže pomocou CertificateRequest vyžadovať certifikát od klienta.
  •  Server pošle správu ServerHelloDone, ktorou oznamuje, že dokončil inicializačnú dohodu na používaných mechanizmoch.
  •  Klient pošle správu ClientKeyExchange, ktoráa môže obsahovať PreMasterSecret, verejný kľúč, alebo nič v zavislosti na zvolenej šifre.
  •  Klient aj server následne z náhodne zvolených čísel a PreMasterSecret vyrátaju”master secret”. Všetky ostatné klúče sú odvodené práve z tohto master secret.
  •  Následne klient pošle správu ChangeCipherSpec, ktorou oznamuje, že všetka ďalšia komunikácia bude šifrovaná.
  • Na záver klient pošle šifrovanú správu Finished obsahujúcu hash a MAC predchádzajúcich správ.
  •  Server sa pokúsi túto správu dešifrovať a overiť si MAC a hash. Ak overenie či dešifrovanie zlyhá inializácia je považovaná za neuspešnú a spojenie je ukončené.
  • Server nakoniec tiež pošle ChangeCipherSpec a šifrovanú správu Finished. Klient sa ju analogicky pokúsi dešifrovať a overiť.
  • AK ZLYHÁ HOCIKTORÝ KROK TAK JE INICIALIZÁCIA NEUSPEŠNÁ A SPOJENIE JE UKONČENÉ.
AttachmentSize
File archSiete.pdf80.56 KB
Groups: