jueves, 27 de noviembre de 2008

¿Qué son los certificados digitales?

Uno de los problemas que surgen en Internet es el de la identificación de las personas o entidades, por Ejemplo, cómo asegurarnos de que una clave pública que hemos encontrado en Internet pertenece realmente a quién dice pertenecer.

Una posible solución es la utilización de un certificado digital que es fichero digital intransferible y no modificable, emitido por una tercera parte de confianza (AC), que asocia a una persona o entidad una clave pública.

Un certificado digital que siga el standard X509v3, utilizado por los navegadores, contiene la siguiente información:

  • Identificación del titular del certificado: Nombre, dirección, etc.
  • Clave pública del titular del certificado.
  • Fecha de validez.
  • Número de serie.
  • Identificación del emisor del certificado.

Un ejemplo sería:

issuer: C=ES ST=L=Barcelona O=SECURITY ZUTANEZ OU=Division de certificados CN=Fulano Menganez Email=Fulano@fulanez.es subject: C=ES ST=O=OU=CN=Jaimito Email=Jaimito@jaimito serial:15

Certificate: Data: Version: 1 (0x0) Serial Number: 21 (0x15) Signature Algorithm: md5WithRSAEncryption Issuer: C=ES ST=L=Barcelona O=SECURITY ZUTANEZ OU=Division de certificados CN=Fulano Menganez Email=Fulano@fulanez.es Validity Not Before: Nov 18 15:15:31 1998 GMT Not After : Nov 13 15:15:31 1999 GMT Subject: C=ES, ST=, O=, OU=, CN=Jaimito Email=Jaimito@jaimito Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:9e:74:de:c9:1a:6b:f4:fe:d1:04:30:58:7e:8b: 51:7a:98:23:e9:45:a9:c2:a7:7c:f8:f8:b5:9a:a2: ea:c1:99:68:ba:f7:c3:d8:06:05:1b:6a:47:a1:44: 5c:2c:a6:e0:4b:6f:ce:02:c4:06:32:20:34:be:13: 97:39:a3:aa:6f:2f:41:a7:bc:14:c8:f3:0c:ad:9d: 09:63:8a:f5:eb:60:5b:06:a6:01:fb:1a:07:b2:c6: 39:48:bb:b7:00:56:4e:20:6d:87:3f:67:0b:2f:f4: b0:5f:74:7f:90:6b:b4:47:6f:56:1a:b5:c5:42:54: 9b:e5:e3:00:e2:4f:e3:14:47 Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption 3b:2b:e9:ff:48:48:35:ab:30:5c:e2:d1:88:c9:29:8b:bc:09: b2:58:80:17:9c:e7:08:0a:7d:8a:5e:46:a8:83:3b:ee:84:de: 62:e3:ea:51:cb:92:bc:fa:db:90:bd:cd:9f:25:d4:4a:48:63: ac:b8:93:f9:dc:9c:cf:ef:fd:45

- -----BEGIN CERTIFICATE----- MIICOzCCAeUCARUwDQYJKoZIhvcNAQEEBQAwgaYxCzAJBgNVBAYTAkVTMRIwEAYD VQQIEwlDYXRhbHVueWExDDAKBgNVBAcTA0JjbjEVMBMGA1UEChMMU0VDVVJJVFkg QkNOMRowGAYDVQQLExFzZWNjaW8gZCdlbXByZXNlczEdMBsGA1UEAxMURGF2aWQg R3VlcnJlcm8gVmlkYWwxIzAhBgkqhkiG9w0BCQEWFGd1ZXJyZXJvQGdyZWMudXBj LmVzMB4XDTk4MTExODE1MTUzMVoXDTk5MTExMzE1MTUzMVowZjELMAkGA1UEBhMC RVMxCTAHBgNVBAgTADEJMAcGA1UEChMAMQkwBwYDVQQLEwAxGDAWBgNVBAMUD0Nh bHZpbiAmIEhvYmJlczEcMBoGCSqGSIb3DQEJARYNY2FsdmluQGhvYmJlczCBnzAN BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnnTeyRpr9P7RBDBYfotRepgj6UWpwqd8 +Pi1mqLqwZlouvfD2AYFG2pHoURcLKbgS2/OAsQGMiA0vhOXOaOqby9Bp7wUyPMM rZ0JY4r162BbBqYB+xoHssY5SLu3AFZOIG2HP2cLL/SwX3R/kGu0R29WGrXFQlSb 5eMA4k/jFEcCAwEAATANBgkqhkiG9w0BAQQFAANBADsr6f9ISDWrMFzi0YjJKYu8 CbJYgBec5wgKfYpeRqiDO+6E3mLj6lHLkrz625C9zZ8l1EpIY6y4k/ncnM/v/UU= - -----END CERTIFICATE-----

Este es un certificado, válido durante un año, emitido por la autoridad certificadora SECURITY ZUTANEZ para el usuario Jaimito cuya clave pública RSA es:

exponente: 65537

modulo: 11127195552971827497702000105328725497115357432563948646524265 42649114539614030882310105443040321585401884991855044788817550 61645893205889184340440484177173313682979482908132499473623983 65177107544610936519826706567881109010715263259238888910151015 7610404623906744451048525264576885364836810773621503974118471

Todos los datos están firmados por la AC usando la función hash MD5 y su clave privada RSA.

Una firma digital es el equivalente de la firma convencional, en el sentido de que es un añadido al final del mensaje conforme se está de acuerdo con lo que allí se dice. Formalmente, una firma digital es una transformación de un mensaje de forma que cualquier persona con conocimiento del mensaje y de la clave pública del firmante pueda comprobar que dicha transformación ha sido realizada realmente por el firmante.

Para verificar que el certificado es correcto deberíamos hacernos con el certificado digital emitido para dicha AC por una segunda AC. Para verificar la veracidad de este segundo certificado deberíamos obtener el certificado digital emitido para segunda AC por una tercera AC. Como este proceso podría eternizarse, existen las llamadas autoridades raíz que firman sus propios certificados, un ejemplo de autoridad raíz es Verisign.

Aparte de los datos del emisor y del propietario del certificado éste puede contener información referente a las limitaciones que se hayan establecido para su uso: e-mail, www, etc...

Como puede observarse en el certificado del ejemplo, no existe ninguna referencia a algoritmos de clave secreta. Cuando navegamos con Netscape y recibimos un certificado de un servidor web 'seguro' aparece la ventana:

New Site Certificate

Here is the Certificate that is being presented:

Certificate for: UPC Signed by: UPC Encryption: Highest Grade (RC4 with 128-bit secret key)

The signer of the Certificate promises you that the holder of this Certificate is who they say they are. The encryption level is an indication of how difficult it would be for someone to eavesdrop on any information exchanged between you and this web site.

La información ''Encryption: Highest Grade (RC4 with 128-bit secret key)'' no tiene nada que ver con el certificado presentado por el servidor, sólo depende del navegador utilizado y del servidor, a distinto navegador distinto grado de cifrado.

Aunque desde un punto de vista técnico cualquiera puede erigirse en AC (sólo es necesario disponer de un par de claves pública-privada para firmar y verificar la firma, y todo aquel que desee obtener un certificado las tiene), una AC, además de emitir certificados, debería ofrecer los servicios siguientes:

  • Búsqueda de certificados: Una persona puede querer buscar el certificado referente a otra persona o entidad.
  • Revocación: Si un certificado se pierde, el titular debe poder informar a la AC para que lo anule y emita otro. También si la clave privada ha quedado comprometida debe ser posible su revocación.
  • Suspensión: La AC debe suspender la validez de un certificado si se hace un uso anormal de él.
  • Estado del certificado: Las personas a las que se les presenta un certificado deben de poder comprobar que no ha sido revocado o suspendido.

Actualmente aún se está desarrollando el marco legal que regule el reconocimiento de la validez legal de las firmas digitales y cuáles han de ser los requerimientos mínimos que han de reunir las autoridades certificadoras para ser reconocidas como tales.



Fuente: http://www.iec.csic.es/criptonomicon/articulos/expertos51.html

No hay comentarios: