.
.
 TLS -> V praxi -> TLS knihovny
Vydáno: 14. listopadu 2004
.
.
.
.
.
.
Knihovny TLS

TLS vzniklo v roce 1999 a od té doby se již hojně rozšířilo v různých programech. Aby se nemusely psát v každám programu stále ty samé funkce vznikly různé knihovny, které TLS implementují.

Zde jsou uvedeny 4 nejrozšířenější. Na všech knihovnách je zajímavé to, že obsahují funkce pro práci s TLS i SSL. Oba sice nejsou kompatibilní, ale TLS obsahuje mechanizmy, jak tuto kompatibilitu zajistit.

OpenSSL

Céčkovská knihovna. Je nejstaší ze všech zde uvedených knihoven. Původně vznikla jako knihovna implementující SSL. To je vlastně i dnes. Navíc však přibylo TLS. Psaní pro SSL a TLS aplikací se téměř neliší, protože TLS využívá většinu SSL funkcí. Od verze 0.9.7 podporuje i AES šifrování. Lze využít s BSD sockety. Samotné SSL funkce jsou jim velice podobné.

Co se dá vytknout této knihovně je mizerná nápověda a to, že neimplemtuje přímo TLS, což může mít jistá bezpečnostní rizika (přejatá ze SSL).

Instalace na Linux

Není problém stáhnout balíček a nainstalovat:

rpm -i ./openssl

pro Debian:

apt-get install libssl-dev

Použití

Vygenerování klíčů (RSA, délka 1024):

openssl req -newkey rsa:1024 -nodes -keyout server.key -out server.req

Vygenerování certifikátu (X.509):

openssl x509 -req -signkey server.key -in server.req -out server.pem

Ukázkovou implementaci server/klient najdete zde.

GnuTLS

Céčkovská knihovna. Implementuje TLS podle standardu. Navíc podporuje i SSL verze 3. Obsahuje wrappery pro OpenSSL. Aplikace tak lze jednoduše předělat pro GnuTLS (použitím hlavičkového soubor ssl.h). Oproti standardu obsahuje rozšíření o podporu OpenPGP. Lze využít nejen BSD sockety.

Dle mého názoru je asi nejlepší ze všech zde uvedených. Je již ve stabilní verzi. Má rozněž dobrou nápovědu. Lze použít i pod Windows.

Instalace na Linux

Instalace už není tak jednoduchá jako u OpenSSL. Jsou potřeba doinstalovat 2 knihovny a samotné GnuTLS. Já jsem instaloval tyto verze:

  • libgpg-error-1.0
  • libgrypt-1.2.0
  • gnutls-1.0.22
GnuTLS ještě vyžaduje knihovnu libtasn, ale ta je zpravidla přítomna v systému. Nejednodušší řešení je vše instalovat ze zdrojových kódů:

./configure --prefix=/usr
make
make install

Instalace na Debian

Popíši zde ješte instalaci z balíčku na OS Debian v UL402. Zde jsou nekompatibilní verze knihovny ASN.1 a GnuTLS. Proto musí být knihovna ASN.1 nahrazena jinou:

dpkg -r --force-depends libtasn1-2
apt-get -f install libtasn1-2-dev libtasn1-2 -t testing
apt-get install libgnutls11-dev

NSS

Céčkovská knihovna byla vytvořena komunitou kolem Mozilly. Obsahuje podporu TLS i SSL. Má poměrně dobrou nápovědu. Lze použít i pod Windows při psaní vlastních programů.

PureTLS

Javovká knihovna. Obsahuje podporu pro TLS i SSL.

JSSE

Java Secure Sockets Extension je balíček, pro podporu SSL a TLS v Javě. Je z dílny Sunu.

Chilkat SSL

COM komponenta, která podporuje SSL i TLS. Je založana na OpenSSL. Lze použít v C++ i .NET.

.
.
.   .
.
. admin@webcity.wz.cz .
|Základní pojmy|Úvod|Protokol TLS|TLS v praxi|Shrnutí|Zdroje|Autor|
. © P.D. 2004™ .
.