¿Qué significa que un certificado digital esté "firmado"?

20

Cuando alguien dice que un certificado digital en particular (como un certificado SSL) ha sido "firmado con una clave", ¿qué implica eso? ¿Eso significa que el certificado simplemente incluye una clave que debe usarse para intercambiar más mensajes? ¿Significa eso que el certificado en sí está cifrado y solo se puede descifrar con esa clave? ¿Implica algo más? Gracias de antemano.

    
pregunta zharvey 28.06.2012 - 18:39
fuente

3 respuestas

20

Lo ideal es que alguien haya mirado el certificado y haya decidido que es correcto y legítimo. Una vez que hayan hecho eso, quieren decirle a la gente "Hola, he verificado que este certificado es bueno. Confío en eso". Para ello, utilizan su clave de firma para firmar el certificado.

Ahora, cuando alguien obtiene el certificado, pueden ver quién firmó el certificado. Si confían en uno de los firmantes, pueden confiar en el certificado en sí. Esta es la base de Web Of Trust en PKI .

El hecho de firmar realmente depende de qué tipo de certificado es. Creo que esta es una lectura útil .

  

Un certificado digital consta de tres cosas:

     
  • Una clave pública.
  •   
  • Información del certificado. (Información de "identidad" sobre   el usuario, como nombre, ID de usuario, etc.)
  •   
  • Una o más firmas digitales.
  •   

Normalmente, la parte de "una de más firmas digitales" se realiza enumerando un conjunto de hashes cifrados del certificado. Por lo tanto, cuando desee firmar un certificado, debe calcular el hash del certificado, cifrarlo con su clave de firma privada y agregarlo a la lista de firmas digitales.

    
respondido por el Oleksi 28.06.2012 - 18:47
fuente
8

Aquí está la estructura de un certificado X.509 :

    Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }

   TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,
        validity             Validity,
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        subjectUniqueID [2]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
        extensions      [3]  EXPLICIT Extensions OPTIONAL
                             -- If present, version MUST be v3
        }

Los datos contenidos en el propio certificado son la parte TBSCertificate : vincula la clave pública (subjectPublicKeyInfo) a un identificador (el sujeto), y varias otras extensiones de atributos).

Esto se combina con la firma para formar una estructura Certificate . El algoritmo de firma determina cómo se debe hacer esto.

Esencialmente, se calcula un resumen de TBSCertificate (generalmente SHA-1) y luego se firma con la clave privada del firmante (el emisor en términos de X.509). La modificación más leve del contenido TBSCertificate debería hacer que el resumen del cambio, lo que a su vez debería invalidar la firma.

Usando claves RSA, la firma del resumen usando la clave privada es matemáticamente muy similar a lo que se haría para el cifrado usando la clave pública. Sin embargo, esto no es lo mismo conceptualmente, y DSA no tiene esa reciprocidad, por ejemplo.

El principio es el mismo para otros tipos de certificados, aunque la estructura puede diferir. Teniendo en cuenta que las claves públicas de PGP son certificados de hecho, es posible que también le interesen estas preguntas:

respondido por el Bruno 28.06.2012 - 19:43
fuente
4
  

Cuando alguien dice que un certificado digital en particular (como un certificado SSL) ha sido "firmado con una clave", ¿qué implica eso?

Implica que la entidad propietaria de esa clave ha confirmado la exactitud de la información en el certificado y ha adjuntado información al certificado que permite que se verifique esa confirmación.

  

¿Eso significa que el certificado simplemente incluye una clave que debería usarse para intercambiar más mensajes?

No. Los certificados solo prueban identidad.

  

¿Eso significa que el certificado en sí está cifrado y solo se puede descifrar con esa clave?

No. No hay razón para cifrar los certificados, solo contienen información pública.

  

¿Implica algo más?

Esto implica que el propietario de esa clave ha confirmado la información en el certificado. Para un certificado SSL típico, la información en el certificado es un enlace entre una clave pública y un nombre común.

Por ejemplo, cuando apunta su navegador a https://www.amazon.com/ , el servidor de Amazon le enviará un certificado. Este certificado enlaza una clave pública particular al nombre www.amazon.com . Su navegador confirma tres cosas para saber si está hablando con el verdadero Amazon:

  1. El servidor presentó un certificado que era válido y estaba firmado con una clave en la que confía.

  2. El certificado vincula la identidad "www.amazon.com".

  3. El servidor prueba que posee la clave privada correspondiente al certificado.

Por lo tanto, el propósito de la firma del certificado es poner la credibilidad del agente firmante detrás de la información en el certificado que es fundamentalmente "este tipo posee esta clave".

    
respondido por el David Schwartz 28.06.2012 - 23:42
fuente

Lea otras preguntas en las etiquetas