[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]


225. AutoritÓ di certificazione e certificati

Il źcertificato╗ Ŕ un file contenente alcuni dati identificativi di una persona, in un contesto determinato, abbinati alla chiave pubblica della stessa, e firmato da una o pi¨ autoritÓ di certificazione. In pratica la firma, o le firme di queste autoritÓ servono a garantire la veridicitÓ di questi dati, e in particolare a confermare che la chiave pubblica che Ŕ loro abbinata appartiene effettivamente a quella persona.

Volendo vedere le cose da un altro punto di vista, la chiave pubblica che Ŕ stata controfirmata da altre persone, Ŕ un certificato della veridicitÓ della chiave pubblica stessa, che Ŕ tanto pi¨ valido, quanto pi¨ credibili sono le persone che hanno aggiunto la loro firma.

Dal momento che la crittografia a chiave pubblica serve per cifrare, ma soprattutto per firmare i documenti in forma elettronica, si tratta di uno strumento strettamente personale. Per questa ragione, un certificato dovrebbe essere sempre riferito a una persona particolare, anche se questa lo deve utilizzare nell'ambito del proprio lavoro, per lo svolgimento dei suoi incarichi.

225.1 Quadro generale

Nel momento in cui la crittografia a chiave pubblica viene usata professionalmente, come nel caso del commercio elettronico, Ŕ indispensabile la presenza delle autoritÓ di certificazione, ovvero di enti (privati o pubblici) specializzati nella certificazione.

Ogni autoritÓ di certificazione stabilisce e impone la propria procedura per ottenere la propria certificazione; questo significa che ogni autoritÓ definisce il proprio ambito di competenza, quali tipi di certificazione elettronica Ŕ in grado di fornire (si fa riferimento al formato del certificato elettronico), e quali siano le informazioni che devono essere fornite in modo preciso. SarÓ poi compito dell'autoritÓ la verifica della veridicitÓ di tali informazioni.

225.1.1 Catena di certificazione

La certificazione da parte di queste autoritÓ, ovvero la loro firma sui certificati elettronici, vale solo se questa Ŕ verificabile, e per questo Ŕ necessario disporre della chiave pubblica di queste autoritÓ. Anche la chiave pubblica di un'autoritÓ di certificazione viene diffusa attraverso un certificato.

Un'autoritÓ di certificazione potrebbe funzionare in modo autonomo, oppure potrebbe appartenere a una struttura pi¨ o meno articolata. Infatti, ci potrebbe essere la necessitÓ di suddividere il carico di lavoro in pi¨ organizzazioni. La figura 225.1 mostra una struttura gerarchica ad albero, dove si parte da un'autoritÓ principale, che si autocertifica, che demanda e organizza il compito di certificazione a strutture inferiori, firmando il loro certificato (con la propria chiave privata). Queste autoritÓ inferiori possono avere a loro volta la responsabilitÓ sulla certificazione di altre autoritÓ di livello inferiore, ecc.

                         +----------------------------+
                         | AutoritÓ di certificazione |
                         |     principale (root)      |
                         +----------------------------+
                                       |
            +--------------------------|--------------------------+
            |                          |                          |
+----------------------+    +----------------------+   +----------------------+
| AutoritÓ subordinata |    | AutoritÓ subordinata |   | AutoritÓ subordinata |
|         Alfa         |    |         Beta         |   |         Gamma        |
+----------------------+    +----------------------+   +----------------------+
                                       |
                                       |
                       ...+------------+-------------+...            
                          |                          |
                          |                          |
              +----------------------+    +----------------------+
              | AutoritÓ subordinata |    | AutoritÓ subordinata |
              |        Bianco        |    |         Nero         |
              +----------------------+    +----------------------+

Figura 225.1: Gerarchia tra pi¨ autoritÓ di certificazione.

La presenza di una scomposizione gerarchica tra le autoritÓ di certificazione, pi¨ o meno articolata, genera una catena di certificati, ovvero un źpercorso di fiducia╗. Di fronte a questa situazione, sarebbe bene che il tipo di certificato elettronico che si utilizza permettesse di annotare questa catena, in maniera tale che sia possibile il recupero dei certificati mancanti. In pratica, chi ottiene un certificato di Tizio, firmato dall'autoritÓ Bianco, per verificare l'autenticitÓ del certificato di questo signore, deve disporre della chiave pubblica di quell'autoritÓ, o in altri termini, deve avere il certificato dell'autoritÓ stessa (che contiene anche la sua chiave pubblica). Senza questa informazione non potrebbe verificare la firma di questa autoritÓ. Tuttavia, se nel certificato di Tizio Ŕ annotato che l'autoritÓ Beta Ŕ garante per l'autoritÓ Bianco, e inoltre Ŕ annotato in che modo procurarsi il certificato di Bianco rilasciato da Beta, se si dispone giÓ del certificato dell'autoritÓ Beta, dopo che Ŕ stato prelevato il certificato di Bianco, questo lo si pu˛ controllare attraverso quello di Beta. Questi passaggi si possono rivedere descritti nell'elenco seguente:

Se non si disponesse del certificato di Beta occorrerebbe ripetere la ricerca per l'autoritÓ garante superiore, nel modo giÓ visto.

225.1.2 Numero di serie, scadenza, e revoca dei certificati

Un certificato non pu˛ essere valido per sempre, cosý come accade con un documento di riconoscimento: una carta di identitÓ o un passaporto. Un'informazione fondamentale che deve avere un certificato elettronico Ŕ la scadenza, e si tratta sempre dell'informazione che viene controllata per prima, chiunque sia il titolare del certificato.

Tuttavia, anche nel periodo di validitÓ di un certificato possono cambiare tante cose, per cui deve essere previsto un meccanismo di revoca: sia su richiesta del titolare; sia a seguito di una decisione dell'autoritÓ di certificazione che lo ha firmato. Infatti, il titolare del certificato potrebbe trovarsi in una condizione diversa rispetto a quella in cui si trovava nel momento del rilascio del certificato, e i dati in esso contenuti potrebbero non corrispondere pi¨; dall'altra parte, l'autoritÓ di certificazione potrebbe avere verificato un utilizzo irregolare del certificato e di conseguenza potrebbe decidere il suo ritiro.

Evidentemente, per ottenere questo risultato, occorre che l'autoritÓ che ha rilasciato dei certificati, gestisca anche una base di dati in cui siano indicati quelli che sono stati revocati, identificabili attraverso il loro numero di serie, che quindi Ŕ un altro elemento indispensabile di un certificato. A questo punto, quando si vuole verificare un certificato, oltre a controllare la scadenza e la validitÓ della firma dell'autoritÓ di certificazione, occorre controllare presso la base di dati di questa che il certificato non sia giÓ stato revocato.

Il meccanismo della revoca o del non-rinnovo dei certificati, serve anche a dare credibilitÓ a una catena di autoritÓ di certificazione: un anello debole della catena -- debole in quanto poco serio -- metterebbe in dubbio tutto il sistema, e sarebbe nell'interesse di tutte le altre autoritÓ la sua eliminazione. Si intende che l'azione necessaria per ottenere questo risultato Ŕ la semplice pubblicazione della revoca del certificato da parte dell'autoritÓ di livello superiore, oppure il suo mancato rinnovo.

225.2 Certificato X.509

Un tipo di certificato importante Ŕ quello definito dallo standard X.509. Questo certificato serve ad abbinare un nome distintivo (conosciuto come Distinguished Name, ovvero l'acronimo DN) a una chiave pubblica. Questo nome distintivo Ŕ in pratica una raccolta di informazioni su una certa persona in un certo contesto. Gli elementi di queste informazioni sono visti come l'assegnamento di valori ad altrettante variabili, e anche se non sono utilizzate sempre tutte, Ŕ importante tenere conto di questo fatto, ricordando le pi¨ importanti, per poter interpretare correttamente le richieste dei programmi che utilizzano questo standard.

Campo Descrizione
UID Nominativo.
CN Nome comune, o Common Name.
O Organizzazione.
OU Dipartimento all'interno dell'organizzazione.
C Sigla del paese (nazione).
ST Regione o provincia.
L LocalitÓ.

Tabella 225.1: Alcuni campi tipici di un nome distintivo nei certificati X.509.

Le regole per stabilire esattamente quali campi devono essere usati, e cosa devono contenere, dipende dalla politica dell'autoritÓ che deve firmare il certificato. In particolare, il campo `CN', a cui corrisponde la definizione Common Name, Ŕ l'elemento pi¨ vago. Spesso, quando il certificato riguarda la gestione di un servizio, contiene il nome di dominio completo dell'elaboratore dal quale questo viene offerto.

Le informazioni di un certificato X.509 tipico sono organizzate in due parti: la sezione dati e la sezione della firma elettronica. La sezione dati contiene in particolare:

La sezione della firma elettronica contiene in pratica la firma fatta dall'autoritÓ di certificazione, ed Ŕ in questa parte che potrebbero apparire le informazioni necessarie ad acquisire il certificato dell'autoritÓ stessa. A titolo di esempio si pu˛ vedere come pu˛ apparire un certificato del genere, quando questo viene tradotto in forma leggibile (la chiave pubblica e la firma sono abbreviate):

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 0 (0x0)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=IT, ST=Italia, L=Milano, O=SuperCA, CN=super.ca.dg...
        Validity
            Not Before: Dec 11 19:39:32 1999 GMT
            Not After : Jan 10 19:39:32 2000 GMT
        Subject: C=IT, ST=Italia, L=Tiziopoli, O=Dinkel, CN=dinkel.brot.dg...
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:f2:c2:7a:4b:11:c0:64:b8:63:9d:fd:7f:b1:b7:
                    1f:55:c1:b7:1a:9b:dc:5f:bc:d8:a8:ad:cb:90:17:
		...
                    a2:7c:f9:be:92:be:1f:7e:9e:27:0e:87:d0:74:22:
                    fd:cd:7e:47:4a:b3:12:56:fd
                Exponent: 65537 (0x10001)
    Signature Algorithm: md5WithRSAEncryption
        71:88:37:bb:f0:5e:6e:82:fa:90:87:4f:bb:b6:06:a3:da:6a:
        86:b7:78:8d:a6:49:c2:e1:24:2d:37:ae:70:92:b7:68:49:14:
    ...
        39:22:3b:41:46:d9:36:3a:85:d0:b2:d3:0d:d0:82:54:00:8e:
        38:b7:fa:52:09:d3:14:ea:18:c2:d5:5b:88:ef:05:18:1e:bd:
        c1:4e

╚ interessante osservare le righe che descrivono l'autoritÓ garante che emette il certificato (Issuer) e il titolare (Subject). Ognuna di queste due righe rappresenta rispettivamente il nome distintivo dell'autoritÓ e del titolare; si pu˛ vedere in che modo sono indicati i vari elementi di questa informazione (i puntini di sospensione finali sono stati aggiunti perchÚ la riga sarebbe pi¨ lunga, con altre informazioni):

C=IT, ST=Italia, L=Tiziopoli, O=Dinkel-Brot, CN=dinkel.brot.dg...

La forma Ŕ quella dell'assegnamento di variabili, alcune delle quali sono state elencate nella tabella 225.1. La scelta delle variabili da indicare (da assegnare) dipende dall'autoritÓ e dal contesto per il quale viene rilasciato il certificato.

Il certificato Ŕ realizzato normalmente in formato PEM (utilizza solo l'ASCII a sette bit), e il file che lo rappresenta in pratica potrebbe apparire in un modo simile a quello seguente, che qui viene mostrato in forma abbreviata:

-----BEGIN CERTIFICATE-----
MIICeTCCAeICAQAwDQYJKoZIhvcNAQEEBQAwgYQxCzAJBgNVBAYTAklUMQ8wDQYD
VQQIEwZJdGFsaWExEDAOBgNVBAcTB1RyZXZpc28xFDASBgNVBAoTC0RpbmtlbC1C
...
t3iNpknC4SQtN65wkrdoSRQb88RpFYCkpISCbutfU4lZ+8XV7ASOJcHOrqqR65PZ
AeP4kVAFLnG+HTGlqHtReWszL6y75c45IjtBRtk2OoXQstMN0IJUAI44t/pSCdMU
6hjC1VuI7wUYHr3BTg==
-----END CERTIFICATE-----

225.2.1 Richiesta di certificato X.509

Per ottenere un certificato da un'autoritÓ, utilizzando lo standard X.509, si parte dalla creazione di una richiesta di certificato, che in pratica Ŕ un certificato che ha giÓ tutte le informazioni, tranne la firma del garante, ed Ŕ firmato direttamente dal richiedente. L'esempio seguente potrebbe essere la richiesta di certificato corrispondente all'esempio giÓ visto in precedenza; anche in questo caso si abbreviano la chiave pubblica e la firma:

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=IT, ST=Italia, L=Tiziopoli, O=Dinkel, CN=dinkel.brot.dg...
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:f2:c2:7a:4b:11:c0:64:b8:63:9d:fd:7f:b1:b7:
                    1f:55:c1:b7:1a:9b:dc:5f:bc:d8:a8:ad:cb:90:17:
		...
                    a2:7c:f9:be:92:be:1f:7e:9e:27:0e:87:d0:74:22:
                    fd:cd:7e:47:4a:b3:12:56:fd
                Exponent: 65537 (0x10001)
        Attributes:
            challengePassword        :ciao-ciao
            unstructuredName         :Dinkel
    Signature Algorithm: md5WithRSAEncryption
        09:eb:da:65:21:d1:67:65:ec:c3:f7:07:7b:82:fb:3f:d3:9f:
        ed:89:bc:be:38:bd:97:1c:15:f0:2b:2f:ef:6b:1e:00:57:47:
    ...
        e7:70:9c:93:30:f1:aa:93:42:37:dc:32:e0:85:50:d9:ed:0e:
        f7:8e

Anche la richiesta di certificato Ŕ realizzato normalmente in formato PEM, e il file che lo rappresenta in pratica potrebbe apparire in un modo simile a quello seguente, che qui viene mostrato in forma abbreviata:

-----BEGIN CERTIFICATE REQUEST-----
MIIB/TCCAWYCAQAwgYIxCzAJBgNVBAYTAklUMQ8wDQYDVQQIEwZJdGFsaWExEDAO
BgNVBAcTB1ZlbmV6aWExFDASBgNVBAoTC01BUkFNQU8tTUFIMRkwFwYDVQQDFBBj
...
YwJNRXTBdL7J/K+LVYFnnxbu6Z4vyDvqcCxD0hWE3VSkXQ2RHHW3sN1oMbtVfjS7
NMe5qq5noKkraMhq3edwnJMw8aqTQjfcMuCFUNntDveO
-----END CERTIFICATE REQUEST-----

225.2.2 Revoca dei certificati

L'autoritÓ di certificazione che ha la necessitÓ di pubblicare i certificati che vengono revocati prima della loro scadenza naturale, lo fa attraverso la pubblicazione di un elenco dei certificati revocati, ovvero di ci˛ che Ŕ conosciuto con la sigla CRL (Certificate Revocation List). Questo elenco Ŕ firmato dall'autoritÓ di certificazione che lo pubblica, e per questo Ŕ un tipo di certificato speciale. Nello standard X.509, questo elenco potrebbe apparire come si vede nell'esempio seguente, in cui si vedono due certificati revocati:

Certificate Revocation List (CRL):
        Version 1 (0x0)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: /C=IT/ST=Italia/L=Milano/O=SuperCA/CN=super.ca.dg
        Last Update: Jan 15 20:35:52 2000 GMT
        Next Update: Feb 14 20:35:52 2000 GMT
Revoked Certificates:
    Serial Number: 01
        Revocation Date: Jan 13 19:28:40 2000 GMT
    Serial Number: 02
        Revocation Date: Jan 13 19:28:40 2000 GMT
    Signature Algorithm: md5WithRSAEncryption
        32:e1:97:92:96:2f:0c:e4:df:bb:9c:82:a5:e3:5b:51:69:f5:
        51:ad:1b:b2:98:eb:35:a6:c8:7f:d9:29:1f:b2:1e:cc:da:84:
    ...
        31:27:4a:21:4c:7a:bc:85:73:cd:ff:15:9d:cb:81:b3:0b:82:
        73:50

Osservando l'elenco si vede che il riferimento ai certificati Ŕ fatto solo attraverso il numero di serie, e ci˛ sta a indicare che i certificati firmati da questa autoritÓ, con questi numeri di serie, sono revocati a partire dalle date indicate.

225.3 Riferimenti

---------------------------

Appunti Linux 2000.04.12 --- Copyright ę 1997-2000 Daniele Giacomini -- ádanieleá@ápluto.linux.it


[inizio] [indice generale] [precedente] [successivo] [indice analitico] [contributi]