¿Cuál es la diferencia entre los certificados SSL y X.509?

42

Usé openssl para crear un certificado X.509 pero no entiendo muy bien la relación entre un X.509 y un certificado SSL. ¿Son lo mismo? ¿Es un certificado SSL solo un certificado X.509 que se usa para SSL?

    
pregunta Gilles 08.05.2013 - 16:30
fuente

2 respuestas

44

SSL es, con mucho, el mayor uso de los certificados X.509, muchas personas usan los términos indistintamente. Sin embargo, no son lo mismo; un "Certificado SSL" es un certificado X.509 con uso extendido de clave: Autenticación del servidor (1.3.6.1.5.5.7.3.1).

Otros tipos "comunes" de certificados X.509 son la autenticación del cliente (1.3.6.1.5.5.7.3.2), la firma de código (1.3.6.1.5.5.7.3.3), y un puñado de otros se utilizan para varios esquemas de encriptación y autenticación.

    
respondido por el Chris S 08.05.2013 - 16:32
fuente
22

Los certificados X.509 son un formato genérico y altamente flexible. SSL (ahora conocido como "TLS") utiliza certificados X.509. Un "certificado SSL" es un certificado cuyo contenido hace que sea utilizable para SSL (generalmente, para un servidor SSL).

En particular, en la mayoría de los usos de SSL, el cliente querrá ver el nombre del servidor deseado en el certificado. En un contexto web (HTTPS), el "nombre del servidor deseado" es el que aparece en la URL; Las comprobaciones realizadas por el cliente se describen en RFC 2818 (sección 3.1) . Además, cuando un cliente y un servidor "hablan SSL", acuerdan utilizar algoritmos criptográficos, algunos de los cuales implican el uso de la clave pública del servidor, tal como aparece en el certificado; por ejemplo, si el cliente y el servidor eligen una suite de cifrado que dice "intercambio de claves RSA", entonces el certificado del servidor debe contener una clave pública RSA, y si el certificado contiene extensiones que limitan las formas autorizadas de uso esa clave (por ejemplo, la extensión Key Usage ), entonces estas extensiones deben permitir el uso del "cifrado" porque eso es lo que implica el "intercambio de claves RSA" en SSL.

Otras características de los certificados pueden prohibir el uso de un servidor SSL, donde "prohibir" significa que "el cliente gritará y tartamudeará y mostrará una advertencia de miedo roja al usuario". Por ejemplo, un certificado puede contener una extensión Extended Key Usage que enumera la lista exhaustiva de "roles" para la entidad que lo usa; Si la extensión está presente, debe contener la "autenticación del servidor" o el indicador especial "cualquier uso".

Hay muchos detalles que cuidar. La CA comercial resume todo como "un certificado SSL", que realmente significa "un certificado X.509 que es totalmente kosher para SSL, todos los clientes estarán felices con él".

    
respondido por el Thomas Pornin 05.07.2013 - 19:38
fuente

Lea otras preguntas en las etiquetas