SSL protokol

SSL je protokol (vrstva) vložená mezi vrstvu transportní (např. TCP/IP) a aplikační (např. HTTP), která poskytuje zabezpečení komunikace šifrováním a autentizaci komunikujících stran. Své uplatnění najde nejčastěji tam, kde je třeba spojení mezi klientem a serverem šifrovat, tedy například:

  • v internetových obchodem při platbě kreditní kartou
  • pro informační systémy, kde se přihlašuje pomocí hesla
  • ve facebook aplikacích (povinné od 1.11.2011)

Princip SSL

Ustavení SSL spojení funguje na principu asymetrické šifry, kdy každá z komunikujících stran má dvojici šifrovacích klíčů – veřejný a soukromý. Veřejný klíč je možné zveřejnit a pokud tímto klíčem kdokoliv zašifruje nějakou zprávu, je zajištěno, že ji bude moci rozšifrovat jen majitel použitého veřejného klíče svým soukromým klíčem.

Ustavení SSL spojení (SSL handshake, tedy „potřásání rukou“) pak probíhá následovně:

Klient pošle serveru požadavek na SSL spojení, spolu s různými doplňujícími informacemi (verze SSL, nastavení šifrování atd.).
Server pošle klientovi odpověď na jeho požadavek, která obsahuje stejný typ informací a hlavně certifikát serveru.
Podle přijatého certifikátu si klient ověří autentičnost serveru. Certifikát také obsahuje veřejný klíč serveru.
Na základě dosud obdržených informací vygeneruje klient základ šifrovacího klíče, kterým se bude šifrovat následná komunikace. Ten zašifruje veřejným klíčem serveru a pošle mu ho.
Server použije svůj soukromý klíč k rozšifrování základu šifrovacího klíče. Z tohoto základu vygenerují jak server, tak klient hlavní šifrovací klíč.
Klient a server si navzájem potvrdí, že od teď bude jejich komunikace šifrovaná tímto klíčem. Fáze handshake tímto končí.
Je ustaveno zabezpečené spojení šifrované vygenerovaným šifrovacím klíčem.
Aplikace od teď dál komunikují přes šifrované spojení. Například POST požadavek na server se do této doby neodešle.

Během první fáze ustanovení bezpečného spojení si klient a server dohodnou kryptografické algoritmy, které budou použity. V dnešní implementaci jsou následující volby:

pro výměnu klíčů: RSA, Diffie-Hellman, DSA nebo Fortezza;
pro symetrickou šifru: RC2, RC4, IDEA, DES, 3DES nebo AES;
pro jednocestné hašovací funkce: MD5 nebo SHA.

Při výběru SSL certifikátu zvažte, jaký typ je vhodný a výši investici, která odpovídá vašemu byznysu. Začněte zvyšovat důvěru zákazníků a online zisky výběrem značky SSL certifikátů vpravo:

Jak SSL certifikáty fungují

Kryptografické algoritmy podporované SSL 3.0

DES – Data Encryption Standard, dnes již poněkud stařičký šifrovací algoritmus.
DSA – Digital Signature Algorithm, algoritmus digitálního podpisu.
KEA – Key Exchange Algorithm, algoritmus pro výměnu šifrovacích klíčů skrze nechráněný komunikační kanál.
MD5 – Zástupce řady Message Digest algoritmů od R. Rivesta sloužící pro tvorbu kontrolních součtů.
RC2, RC4 – Rivest Cipher, blokové šifry vyvinuté R. Rivestem.
RSA – Asymetrická šifra R. Rivesta, A. Shamira a L. Adlemana pro šifrování i podpis.
SHA-1 – Secure Hash Algorithm, člen rodiny hašovacích funkcí SHA.
Skipjack – Bloková šifra vyvinutá NSA.
Triple DES (3DES) – Bloková šifra aplikující klasickou DES šifru třikrát za sebou.