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.
|