viernes, 1 de agosto de 2008


X-509 PKI



Entendemos por PKI el marco para mantener/revocar/usar certificados confirmados por un tercero.



X509 es un conjunto de especificaciones de la IETF y la ISO/IEC/ITU-T definido en el rfc2459. Vamos a centrarnos en el X509 v3, que añade a las versiones anteriores la capacidad de autofirmar un certificado, añadir extensiones a un certificado.



X509 inicialmente tenía que ver con X-500 (que versa sobre directorios compartidos), pero ahora ni siquiera lo necesita.
Aunque se publicó y desarrolló al mismo tiempo (en 1988), el X500 ha quedado
sin implementar compeltamente.



En el rfc3280 se recoge la estructura y las listas de revocación (CRL), parte imprescindible en una PKI.





Estructura interna



A grandes rasgos, tenemos


  1. Certificado:

    • Version (1 a 3)

    • Número de serie

    • Algoritmos relacionados con la parte pública del certificado


  2. Algoritmo que se ha usado para firmar el certificado.

  3. Firma del certificado.






Explicación detallada:


Version: 1, 2 ó 3
Número de serie:
asignado por la CA
permite a la CA asociar el certificado con un identificador
es imprescindible para listar la CRLs
Identificador del Algortimo de firma:
sirve para saber qué algortimo se ha usado en la firma del paquete
X509
CA:
Autoridad certificadora, en formato X500
Validez:
ventana temporal para la que ha sido verificado
Identidad:
entidad cuya clave pública se está certificando
en formato X500
Clave pública:
clave pública de la entidad que se está firmando
con diversos subcampos:
algortimo de cifrado (DSA, RSA)
clave pública en sí misma
Extensiones:
según la versión puede haber uno o más campos de información adicional
Firma:
firma del contenido anterior, con el algoritmo dado en el tercer
campo usando la clave privada de la CA.



Los algoritmos de firmado y cifrado soportados por el estándar X509 son MD2, MD5 y SHA1 y RSA y DSA respectivamente.




Para los algoritmos de clave pública, se reconocen las llaves RSA, DSA y el mecanismo de intercambio Diffie-Hellman.






Extensiones



Los campos "Extensiones" en el certificado X509 permiten a las CAs añadir su propia información.



Para un certificado X509 "autofirmado", los campos con la


Identidad,
Clave pública
Extensiones

desaparecen y el campo de la CA puede referirse a cualquier entidad.







Listas de Revocación (CRL)



Hay un tipo de extensión, llamada "CRLDistributionPoints", que indica la URI donde puede encontrarse la lista de revocación de certificados de la CA que firma el certificado.



La version 3 del X509, definió tambien los delta-CRL, que son no publicaciones enteras de las listas de revocación sino simples modificaciones incrementales.



En cualquier caso, en el RFC3280 se define el formato que tienen que tener las CRLs.




En general, hay tres métodos para estar actualizado de las CRL:


1.- muestrear periódicamente las CRLs publicadas por cada CA
2.- esperar el anuncio de la CA sobre la CRL nueva
3.- verificar en el momento la CRL de la CA que firma el certificado

El tercer método es el mejor, pero es el más costoso para las CAs. De ahí que ciertas operaciones se deleguen en las RA para estas cuestiones.




Las CRL para el formato X509 contienen:


Version de certificados anulados
Identificador del algoritmo que firma la CRL
Identidad de la CA
Fecha y hora de la CRL
Próxima fecha en la que se publicará una CRL
Extensiones a la CRL
Lista de certificados revocados:
identificador de certificado
fecha de revocación
motivo (unspecified, cese de operaciones, cambio de afiliación,
sustituido, temporalmente suspendido,
eliminado definitavemente)



Ejemplo de CRL:


Certificate Revocation List (CRL):
Version 2 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: /C=CL/O=REUNACA/CN=REUNA Certification Authority
Last Update: May 6 12:54:53 2008 GMT
Next Update: Jun 5 12:54:53 2008 GMT
CRL extensions:
X509v3 Authority Key Identifier:
keyid:A3:AE:48:8E:B9:C1:8E:B1:92:AA:5E:0C:D0:DC:9D:4B:05:2E:2C:57

X509v3 CRL Number:
16
Revoked Certificates:
Serial Number: 02
Revocation Date: May 15 15:39:41 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 03
Revocation Date: May 16 12:46:19 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Cessation Of Operation
Serial Number: 07
Revocation Date: Dec 11 11:36:13 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 08
Revocation Date: Oct 10 11:57:50 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 0A
Revocation Date: Oct 11 12:30:32 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 0B
Revocation Date: Dec 11 11:38:57 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 0C
Revocation Date: Dec 11 11:39:49 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 0D
Revocation Date: Dec 11 11:37:10 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 0E
Revocation Date: Oct 11 13:01:51 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 12
Revocation Date: Dec 11 12:43:19 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 13
Revocation Date: Dec 11 12:44:45 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 14
Revocation Date: Nov 7 15:30:14 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 16
Revocation Date: Dec 11 11:46:32 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 17
Revocation Date: Dec 11 12:49:25 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 18
Revocation Date: Dec 11 11:42:03 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 1C
Revocation Date: Dec 11 11:42:59 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 1D
Revocation Date: Dec 11 12:38:49 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 1F
Revocation Date: Dec 12 16:25:44 2007 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Serial Number: 36
Revocation Date: Mar 7 10:52:10 2008 GMT
CRL entry extensions:
X509v3 CRL Reason Code:
Unspecified
Signature Algorithm: sha1WithRSAEncryption
0e:2b:49:e3:30:7e:80:18:4e:3c:3b:b4:ea:25:99:26:eb:9f:
f9:ff:ee:70:12:f0:ac:18:43:94:64:64:37:e3:17:85:fd:24:
5d:b9:81:9f:a4:69:62:63:67:1d:86:94:c1:d3:e5:1c:48:6c:
56:a0:cc:96:a4:b3:9a:72:1d:5b:5c:0a:c2:46:10:76:81:b8:
1a:af:d8:23:2f:66:f5:07:54:0f:20:91:d0:da:da:4d:ba:80:
85:92:8f:f8:e0:da:24:8b:42:bd:b2:d4:d8:9d:f1:bc:d8:23:
77:19:3b:99:29:98:ef:e2:b1:2c:61:14:bb:27:2d:95:8f:e7:
7f:19:30:2f:5c:ab:ae:9f:07:0e:a9:6a:fd:c9:f9:b1:d6:38:
00:e7:86:71:7a:04:8b:9b:17:fa:b4:f8:f3:17:f1:c5:38:02:
ce:c9:f4:73:0e:ee:14:26:dc:f9:9a:53:61:a9:5e:f0:a2:5f:
bf:46:25:d8:0f:80:65:42:52:b1:c4:bd:52:52:48:13:af:f5:
45:63:c1:ea:bf:4b:26:a7:5c:94:e9:e1:fa:07:38:07:4b:94:
4a:34:d9:f3:39:e4:2d:7e:cd:a2:06:5a:86:09:8b:37:9f:46:
e5:68:55:e2:86:af:8b:97:5d:46:72:c0:5d:45:67:24:38:1a:
af:e3:bb:47
-----BEGIN X509 CRL-----
MIIETDCCAzQCAQEwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0wxEDAOBgNV
BAoTB1JFVU5BQ0ExJjAkBgNVBAMTHVJFVU5BIENlcnRpZmljYXRpb24gQXV0aG9y
aXR5Fw0wODA1MDYxMjU0NTNaFw0wODA2MDUxMjU0NTNaMIIChjAgAgECFw0wNzA1
MTUxNTM5NDFaMAwwCgYDVR0VBAMKAQAwIAIBAxcNMDcwNTE2MTI0NjE5WjAMMAoG
A1UdFQQDCgEFMCACAQcXDTA3MTIxMTExMzYxM1owDDAKBgNVHRUEAwoBADAgAgEI
Fw0wNzEwMTAxMTU3NTBaMAwwCgYDVR0VBAMKAQAwIAIBChcNMDcxMDExMTIzMDMy
WjAMMAoGA1UdFQQDCgEAMCACAQsXDTA3MTIxMTExMzg1N1owDDAKBgNVHRUEAwoB
ADAgAgEMFw0wNzEyMTExMTM5NDlaMAwwCgYDVR0VBAMKAQAwIAIBDRcNMDcxMjEx
MTEzNzEwWjAMMAoGA1UdFQQDCgEAMCACAQ4XDTA3MTAxMTEzMDE1MVowDDAKBgNV
HRUEAwoBADAgAgESFw0wNzEyMTExMjQzMTlaMAwwCgYDVR0VBAMKAQAwIAIBExcN
MDcxMjExMTI0NDQ1WjAMMAoGA1UdFQQDCgEAMCACARQXDTA3MTEwNzE1MzAxNFow
DDAKBgNVHRUEAwoBADAgAgEWFw0wNzEyMTExMTQ2MzJaMAwwCgYDVR0VBAMKAQAw
IAIBFxcNMDcxMjExMTI0OTI1WjAMMAoGA1UdFQQDCgEAMCACARgXDTA3MTIxMTEx
NDIwM1owDDAKBgNVHRUEAwoBADAgAgEcFw0wNzEyMTExMTQyNTlaMAwwCgYDVR0V
BAMKAQAwIAIBHRcNMDcxMjExMTIzODQ5WjAMMAoGA1UdFQQDCgEAMCACAR8XDTA3
AIBFxcNMDcxMjExMTI0OTI1WjAMMAoGA1UdFQQDCgEAMCACARgXDTA3MTIxMTEx
NDIwM1owDDAKBgNVHRUEAwoBADAgAgEcFw0wNzEyMTExMTQyNTlaMAwwCgYDVR0V
BAMKAQAwIAIBHRcNMDcxMjExMTIzODQ5WjAMMAoGA1UdFQQDCgEAMCACAR8XDTA3
MTIxMjE2MjU0NFowDDAKBgNVHRUEAwoBADAgAgE2Fw0wODAzMDcxMDUyMTBaMAww
CgYDVR0VBAMKAQCgLzAtMB8GA1UdIwQYMBaAFKOuSI65wY6xkqpeDNDcnUsFLixX
MAoGA1UdFAQDAgEQMA0GCSqGSIb3DQEBBQUAA4IBAQAOK0njMH6AGE48O7TqJZkm
65/5/+5wEvCsGEOUZGQ34xeF/SRduYGfpGliY2cdhpTB0+UcSGxWoMyWpLOach1b
XArCRhB2gbgar9gjL2b1B1QPIJHQ2tpNuoCFko/44Noki0K9stTYnfG82CN3GTuZ
KZjv4rEsYRS7Jy2Vj+d/GTAvXKuunwcOqWr9yfmx1jgA54ZxegSLmxf6tPjzF/HF
OALOyfRzDu4UJtz5mlNhqV7wol+/RiXYD4BlQlKxxL1SUkgTr/VFY8Hqv0smp1yU
6eH6BzgHS5RKNNnzOeQtfs2iBlqGCYs3n0blaFXihq+Ll11GcsBdRWckOBqv47tH
-----END X509 CRL-----

No hay comentarios: