OpenSSL è sia una libreria software che un programma (il "toolkit") che offre accesso diretto a varie funzionalità di quella libreria .
Una libreria software è una raccolta di subroutine del programma che non fa nulla da sola ma che può essere utilizzata da altri programmi. Nel caso di OpenSSL, queste sono subroutine che implementano vari algoritmi e protocolli crittografici .
Ciò significa che se un programmatore desidera creare un programma che comunica crittografato, non è necessario implementare il protocollo SSL da zero (o peggio ancora, inventare un proprio sistema di crittografia). Possono semplicemente collegare il loro programma alla libreria OpenSSL e utilizzare le implementazioni che fornisce.
Questo ha diversi vantaggi.
- Il programmatore risparmia un sacco di tempo perché c'è meno codice di programma da digitare.
- Il programmatore non ha bisogno di capire come funzionano le primitive crittografiche a un livello più profondo. La crittografia è un campo molto complicato e altamente specializzato che pochissimi programmatori davvero capiscono (motivo per cui abbiamo un sito di stackexchange separato per esso). Pertanto, la disponibilità di librerie come OpenSSL consente a molti più programmatori di scrivere programmi con crittografia avanzata, a vantaggio dell'utente finale.
- Il programmatore può utilizzare un'implementazione che è già ampiamente testata da molti altri utenti, quindi probabilmente avrà pochissimi bug.
IPsec è un protocollo che utilizza molti algoritmi di crittografia che sono già disponibili in OpenSSL. Quindi gli sviluppatori della tua implementazione IPsec probabilmente hanno visto questi vantaggi e hanno deciso di farne uso. Ma ciò significa anche che la loro implementazione IPsec non funziona senza di essa. Ecco perché è necessario installare OpenSSL per abilitare IPsec.
Ma c'è anche uno svantaggio: quando OpenSSL ha un bug, quel bug può potenzialmente influenzare ogni singolo programma che usa OpenSSL. Questo può creare problemi, come con la vulnerabilità hearthbleed nel 2014.
Ora sul programma assunto OpenSSL. OpenSSL viene fornito anche con un programma basato sulla riga di comando denominato openssl
che consente di eseguire direttamente varie funzioni dalla libreria OpenSSL. Ad esempio, la riga di comando openssl dgst -sha256 -hex file.txt
richiama la funzione della libreria OpenSSL per generare il digest del messaggio SHA256 del file file.txt
e la restituisce come stringa esadecimale. Questo utilizzo è solitamente troppo ingombrante per i normali utenti finali, ma può essere utile per i professionisti della sicurezza e gli amministratori dei server.