¿Cómo puedo demostrar que 3 CA raíz independientes validaron mi dominio?

5

Estoy preocupado por la piratería de una CA raíz y quiero comprar 3 certificados SSL de proveedores completamente diferentes que validarán mi identidad de forma independiente. Luego, en el momento de la presentación, enviaré las 3 "certificaciones" al cliente.

¿Qué enfoques existen para satisfacer esta necesidad desde una perspectiva de protocolo o criptografía (donde las claves se unen de alguna manera)?

Context

  • Un cliente web HTTP existente, una extensión de Chrome o SOCKS / Proxy que realiza una validación adicional
  • Una prueba de concepto para otra implementación que aún no se ha inventado (por ejemplo, una nueva versión de TLS que incorpore un nuevo cifrado)

Las posibles soluciones que he pensado incluyen:

  • El cliente realiza 3 solicitudes HTTPS, donde cada solicitud se cifra con un certificado diferente. La respuesta debe ser un número aleatorio que sea igual en las 3 respuestas.

  • 2 claves están firmadas y contienen un campo personalizado x509 que hace referencia al número de serie del certificado "validado"

  • Las claves se combinan matemáticamente de una manera interesante que reduce las solicitudes múltiples en una sola solicitud. (RSA o ECC / Subgrupos)

Pregunta

  1. ¿Existe tal protocolo en forma de borrador en alguna parte?

  2. ¿Hay alguna manera de combinar matemáticamente la validación de los certificados N sin perder la seguridad?

    a. Me interesa el cifrado que me autentica 3x como host web

    b. Aumenta la integridad de los datos con un flujo de datos firmado 3x

    c. Aumenta la privacidad de los datos con 3 veces el cifrado

(Tenga en cuenta que sé que DANE puede satisfacer parte de este requisito, pero estoy buscando una solución que no sea DANE / HTS)

    
pregunta random65537 29.08.2015 - 03:50
fuente

1 respuesta

5

No hay una manera estándar de hacer lo que imaginas y no tengo conocimiento de ninguna propuesta relevante. La estructura PKI establecida actualmente permite solo una única cadena de certificados (es decir, un solo emisor para un certificado) y el protocolo TLS utilizado permite solo un certificado de una sola hoja. En teoría, se podría crear un certificado con varios emisores utilizando extensiones de certificado y en teoría se podría extender el proceso de validación en TLS para verificar si hay varios emisores. Pero una vez más, no estoy al tanto de ninguna propuesta seria en esta área.

Servir certificados diferentes a través de múltiples solicitudes HTTPS también requiere algún tipo de extensiones o hacks, porque el servidor necesita saber cuál de los certificados debe enviar. Con las nuevas extensiones TLS, el cliente podría solicitar un certificado específico. Sin el cliente, podría reutilizar las extensiones existentes como SNI para un propósito diferente, es decir, dar nombres de host de destino ligeramente diferentes. O uno podría proporcionar diferentes direcciones IP en el DNS y cada servidor de direcciones IP con un certificado diferente. O uno podría rotar los certificados al azar. En todos estos casos, el cliente debe tener en cuenta que debe intentar obtener varios certificados y la cantidad de certificados que debe obtener y cómo combinar la información. Esto significa que se necesita algún conocimiento sobre el servidor que está codificado en cada certificado (es decir, la extensión del certificado) o que el cliente obtuvo del recurso externo de forma segura.

Debido a que no hay un estándar o incluso un estándar propuesto para hacer esto, usted necesita inventar el suyo o intentar obtener lo mejor de los estándares actuales. Dado que la piratería de una CA raíz es su principal preocupación, es probable que ya esté lo suficientemente protegido con el estándar existente HPKP , es decir, la fijación de certificados en el primer uso. De esta manera, ninguna CA comprometida puede crear un certificado utilizable en su nombre que sea aceptado por los navegadores que ya lo visitaron, ya que el atacante necesitaría su clave privada para hacer un mal uso del certificado. Y si HPKP no es suficiente, puede solicitar que su clave pública se incluya en el navegador a medida que se envía. Y esta fijación de clave pública no está restringida a una CA específica, sino solo a su par de claves, lo que significa que la clave y, por lo tanto, la información de HPKP permanecen igual si usa la misma clave en otro certificado firmado por una CA diferente. Por lo tanto, puede cambiar fácilmente la CA si el navegador desconfía de uno. Actualmente, no todos los navegadores son compatibles con HPKP pero se mejora . Entonces, esto es probablemente lo mejor que podría obtener sin intentar establecer otro estándar o crear una extensión de navegador poco utilizada. Si HPKP no es una opción para usted, puede agregar los motivos de esto a su pregunta.

    
respondido por el Steffen Ullrich 29.08.2015 - 08:58
fuente