Condividi tramite


Campi di base

Un certificato X.509 versione 1 contiene i campi seguenti. I campi versione 2 sono descritti nei campi versione 2. I campi versione 3 sono descritti in Estensioni versione 3.

Versione

Specifica il numero di versione del certificato codificato. Attualmente, i valori possibili di questo campo sono 0, 1 o 2, ma questo potrebbe essere espanso in futuro.

---------------------------------------------------------------------
-- Version number. Currently, this can be 0, 1, or 2.
---------------------------------------------------------------------
CertificateVersion ::= INTEGER {v1(0), v2(1), v3(2)}

Numero di serie

Contiene un numero intero univoco positivo assegnato al certificato dall'Autorità di certificazione (CA).

---------------------------------------------------------------------
-- Certificate serial number
---------------------------------------------------------------------
CertificateSerialNumber ::= INTEGER

Algoritmo di firma

Contiene un identificatore di oggetto (OID) che specifica l'algoritmo utilizzato dalla CA per firmare il certificato. Ad esempio, 1.2.840.113549.1.1.5 specifica un algoritmo di hash SHA-1 combinato con l'algoritmo di crittografia RSA realizzato da RSA Laboratories.

---------------------------------------------------------------------
-- Signature OID
---------------------------------------------------------------------
signature ::= AlgorithmIdentifier

AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

Issuer

Contiene il nome distinto X.500 (DN) della CA che ha creato e firmato il certificato.

---------------------------------------------------------------------
-- Issuer name 
---------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
  type       OBJECT IDENTIFIER,
  value      ANY 
}

Validità

Specifica l'intervallo di tempo di validità del certificato. Le date fino alla fine del 2049 usano il formato Coordinated Universal Time (Greenwich Mean Time) (yymmddhhmmssz). Le date a partire dal 1° gennaio 2050 usano il formato ora generalizzato (aammdhhmmssz).

---------------------------------------------------------------------
-- Validity period 
---------------------------------------------------------------------
Validity ::= SEQUENCE 
{
  notBefore           ChoiceOfTime,
  notAfter            ChoiceOfTime
}

ChoiceOfTime ::= CHOICE 
{
  utcTime                 UTCTime,
  generalTime             GeneralizedTime
}

Oggetto

Contiene un nome distinto X.500 dell'entità associata alla chiave pubblica contenuta nel certificato.

---------------------------------------------------------------------
-- Subject name 
---------------------------------------------------------------------
Name ::= SEQUENCE OF RelativeDistinguishedName

RelativeDistinguishedName ::= SET OF AttributeTypeValue

AttributeTypeValue ::= SEQUENCE 
{
  type       OBJECT IDENTIFIER,
  value      ANY 
}

Chiave pubblica

Contiene la chiave pubblica e le informazioni sugli algoritmi associate.

---------------------------------------------------------------------
--  Subject public key information
---------------------------------------------------------------------
SubjectPublicKeyInfo ::= SEQUENCE 
{
  algorithm           AlgorithmIdentifier,
  subjectPublicKey    BITSTRING
}

AlgorithmIdentifier ::= SEQUENCE 
{
  algorithm           OBJECT IDENTIFIER,
  parameters          ANY OPTIONAL    
}

Campi versione 2

Estensioni versione 3

Certificati di chiave pubblica X.509