Indice

Certification Authority casereccia

Autore: Fabio Di Matteo
Ultima revisione: 2/12/2008

Sostanzialmente in informatica si usano solo due tipi di crittografia, la crittografia simmetrica e quella asimmetrica. Nella crittografia simmetrica i dati vengono cifrati mediante una chiave (generalmente una stringa alfanumerica, ma anche immagini e altro) e decifrati mediante la stessa chiave. Pertanto i due o piu' ipotetici interlocutori devono possedere a priori la suddetta chiave.
Nella crittografia asimmetrica invece a ogni interlocuture e' associata una coppia di chiavi pubblica-privata. La chive privata (personale e segreta) viene utilizzata per decodificare un messaggio invece la chiave pubblica del destinatario (che sara' distribuita liberamente) viene utilizzata per cifrare un messaggio.
Per esempio se Alberto vuole mandare un messaggio a Bambi non fa altro che prendere la chiave pubblica di Bambi e tramite degli appositi programmi cifra il messaggio (sia esso testo o altro). Dopodicche' Bambi mediante la sua chiave privata riuscira' a decifrare il messaggio.
Inotre tramite la chiave privata e' possibile firmare un determinato messaggio in modo tale che il destinatario tramite la chiave pubblica poi possa verificarne l'autenticita' tramite programmi come GNU-PG o altri .

Perche' allora serve una Certification Authority (CA) ?

In un modello di Rete di fiducia come quello prospettato per esempio da GNU-PG chiunque puo' firmare e quindi attestare (certificare) la validità delle chiavi altrui, quindi la comunicazioni puo' ritenersi sicura. Ma come essere sicuri che una determinata chiave pubblica sia effettivamente associta ad una specifica persona? Nasce così il bisogno di avere un ente esterno che certifichi giuridicamente che la chiave pubblica appartiene effettivamente alla persona che dice di essere la proprietaria. Le CA, quindi, sono la soluzione per il problema dell'associazione fra una chiave pubblica e la persona che possiede la relativa chiave privata.

Organizzazzione dei sistemi di CA

I sistemi di CA o meglio chiamati sistemi PKI (Public key infrastructure) sono strutturati gerarchicamente in piu' CA le quali fanno riferimento ad una CA root ,che ha ilcompito di certificare le altre, la quale e' considerata (giuridicamente parlando) sicura, ovvero capace di autocertificarsi l'associazione tra chiave pubblica e privata (ovvero la CA root si auto firma il suo certificato).

Come l'utente utilizza la CA

Il ciclo di utilizzo della CA comincia dall'utente il quale genera una propria coppia di chiavi ,pubblica e privata. La chiave pubblica verra inviata alla CA sottoforma di una richiesta di firma da parte della CA. Viene dunque inviata alla CA una richiesta di firma della chiave pubblica (CSR - Certificate Submission Request) da parte dell'utente stesso. (Es: connessioni web di tipo https)
La CA riceve la richiesta (CSR) esegue alcuni controlli ed infine la firma con la sua chiave privata.Con questa operazione la richiesta CSR fatta dall'utente diventa tecnicamente un certificato X509 .

In alcuni sistemi di autencazione tramite ad esempio smart card tutte queste operazioni vengono eseguite direttamente dalla CA (quindi compreso anche la generazione della coppia di chiavi dell'utente e del certificato X509) . (Es: smartcard, openvpn) Esiste inoltre un elenco dei certificati sospesi o revocati chiamato di solito CRL (Certificate Revocation List).

Quindi in sostanza una CA svolge principalmente 2 soli compiti principali:

  1. Rilascia i certificati per i propri utenti firmando le loro chiavi pubbliche con la propria privata.
  2. Rende pubbliche le liste di revoca dei certificati ( CRL Certificate Revocation List).

Creare una CA con Tinyca 2

TinyCA2 e' una semplice interfaccia GTK+2 per gestire una piccola/media CA, nonostante sia stata realizzata per facilitare il lavoro di creazione di CA possiede tante e dettagliate opzioni per configurare ogni aspetto della nostra CA. TinyCA2 posiziona i file di configurazioni e i relativi certificati in ~/.TinyCA , e' quindi possibile accedere ai vari certificati e/o alle chiavi pubbliche direttamente da questa directory, ma e' altresì possibile esportare i certificati, le CA, la CRL direttamente dalla toolbar con il pulsante “Export”, “Export CA”, “Export CRL” .
E' indispensabile (per la sicurezza) mantenere la directory ~/.TinyCA “privata” in quanto contiene le chiavi private della nostra CA. Per quanto riguarda il trasferimento delle chiavi da una macchina ad un altra magari via internet e' altamente consigliabile usare sistemi sicuri come per esempio Open Ssh
http://tinyca.sm-zone.net

Creiamo la CA

Non appena avviamo TinyCA2 per la prima volta si apre automaticamente la schermata che ci permette di inserire i dati per la nostra nuova CA. Le prime due voci NAME e Common Name le imposteremo uguali con un nome a nostra scelta, le altre richieste non sono affatto complicate ci viene chiesto infatti di inserire soltanto i “dati anagrafici” della nostra CA e poi ancora ci viene chiesto di inserire la lughezza delle chiavi e gli algoritmi di cifratura.
Al termine della procedura di creazione della CA verranno generati 3 file di grande importanza:

La procedura puo' essere ripetuta per la creazione di una nuova CA semplicemente cliccando nel bottone “New CA” situato sulla toolbar.

Creiamo un certificato client

Come si e' detto per creare un certificato di tipo X509 si deve innanzitutto creare una coppia di chiavi pubblica/privata per l'utente o l'applicazione client in questione, dopodicche' si deve fare firmare alla CA la chiave pubblica mediante una richiesta di firma (CSR- Certificate Submission Request ). La CA esegue dunque i controlli sulla richiesta di firma e poi appone la firma sulla chiave del client . La chiave pubblica firmata diventa finalmente un certificato X509.
TinyCA2 esegue tutte queste operazioni in 2 passaggi soltanto , basta :

aprire il tab “Requests” ,cliccare sul pulsante “New” sulla toolbar .

Si aprira' una finestra di inserimento che permettera di inserire il “Common name” (ovvero un nome a nostra scelta), la password per la chiave privata, altri “dettagli anagrafici” e le immancabili impostazioni per gli algoritmi crittografici (se non si ha una preferenza lasciare le opzioni predefinite, vanno bene per la maggioranza dei casi).

Una volta generata la richiesta (CSR) cliccare sul bottone “Sign” sulla toolbar o sul menu popup

Verra' cosi' generato il certificato X509 che comparira' nel tab “Certificates” (verra chiesto di inserire la password per la chiave privata della CA)

Con quali servizi/programmi e' possibile usare la nostra CA?

Ormai dapertutto si fa uso della crittografia a chiave pubblica certificata, alcuni tra i servizi piu' famosi che la usano sono: Apache, Postfix, OpenLDAP, Cyrus, FreeS/WAN, OpenVPN, OpenSWAN, FreeRadius.Tramite programmi come Epiphany, Firefox, Netscape, Konqueror, Opera, Sylpheed etc…