¿Cómo se mantienen privadas las claves privadas?

97

Esto puede sonar como una pregunta estúpida, pero en serio, ¿cómo se mantienen privadas las claves privadas?

Si eres alguien como Google, tienes una gran cantidad de servidores a los que el público puede establecer conexiones seguras.

La clave privada *.google.com es necesaria para establecer cada una de esas conexiones.

Se supone que los servidores están llegando al final de su vida todo el tiempo y están siendo eliminados (lo que conlleva el riesgo potencial de fugas en ese punto de cualquier cosa en ellos).

Los centros de datos modernos requieren un número muy pequeño de personas, sin embargo, las empresas como Google son tan grandes que todavía hay un número significativo de personas con acceso físico a los servidores.

Estos servidores se encuentran detrás de firewalls y ejecutan sistemas operativos altamente seguros, pero tanto los enrutadores como los sistemas operativos pueden sufrir ataques de día cero.

Por lo tanto, es bastante obvio que las claves privadas no se pueden almacenar por servidor o en las imágenes del sistema operativo recuperadas en el arranque (incluso si están cifradas) o en las tarjetas inteligentes por servidor.

Es de suponer que las empresas no discuten esto abiertamente, pero ¿hay algún buen resumen de cómo funcionan las cosas?

¿Hay algún búnker reforzado en algún lugar donde solo se maneja el elemento clave asimétrico inicial para establecer cada conexión?

Es de suponer que realmente necesita bunkers por centro de datos: supongo que no quiere perder un centro de datos completo debido a la pérdida de su enlace a un sitio de manejo de claves remoto.

Incluso la duplicación de la clave en los centros de datos parece muy arriesgada considerando el valor de una clave como esa para *.google.com .

¿Me estoy perdiendo algo que hace que el manejo de la clave como esta no sea tan difícil como parece a alguien que intenta pensar desde cero?

    
pregunta George Hawkins 08.04.2015 - 12:48
fuente

2 respuestas

82

En primer lugar, a menudo, el cifrado se termina en el perímetro mediante una infraestructura que se dedica a la descarga de descifrado SSL. Facilita la administración mucho más cuando solo se mantiene un alto grado de seguridad clave para un grupo pequeño (proporcional) de servidores dedicados a la función. El resto de los servidores de aplicaciones normales pueden funcionar normalmente sin preocuparse por el manejo de estas claves.

En segundo lugar, sus claves casi seguramente se almacenarán a través de un Módulo de seguridad de hardware (HSM). Estos son dispositivos de hardware dedicados con un procesador diseñado para mantener la seguridad y ser eficientes para realizar la criptografía.

Finalmente, Google tiene su propio certificado de CA intermedio que puede usar para firmar sus propios certificados de hoja. Esto les permite utilizar certificados con una caducidad mucho más corta de lo normal, lo que reduce en cierto modo el riesgo de que una clave se vea comprometida. La clave de CA real se puede mantener guardada en un búnker con espacio de aire y solo se puede acceder a ella cuando se necesita firmar un certificado de hoja a corto plazo.

Recordando también que una CA no necesita la clave privada de hoja para firmar un certificado, podrían generar una clave privada que nunca deja un HSM en el sitio en un centro de datos remoto, luego enviar la clave pública / CSR a la CA para estar firmado Incluso podrían generar una clave privada única para cada dispositivo HSM, de esa manera, una clave nunca tendrá que abandonar el dispositivo que la generó.

Por ejemplo, aquí hay una pantalla de impresión de un certificado de Google actual:

Notaráqueelcertificadosoloesválidopor3meses,locualessignificativamentemáscortoqueeldelamayoría.

Editar:Googlerealmentedescribesuspolíticasendetalle aquí .

  

En la PKI de Google, un Suscriptor es un individuo u organización   capaz de usar, y autorizado para usar, la clave privada que   corresponde a la clave pública que figura en un certificado

...

  

Los servidores de Google Internet Authority están ubicados dentro de un bloqueo   Área de gabinete o jaula en una sala de servidores cerrada. Acceso al servidor.   habitación está controlada por lectores de placa. Las claves privadas de Google.   Las Autoridades de Internet están almacenadas en módulos de seguridad de hardware que están   FIPS 140-2 Nivel 2 que son físicamente inviolables y   a prueba de manipulaciones.

...

  

Los pares de claves de suscriptor son generados (i) por el suscriptor por software   suministrados por su dispositivo / sistema operativo, o (ii) por un autorizado   miembro del equipo de seguridad de la información de Google.

...

  

Los suscriptores proporcionan su clave pública a Google para la certificación   a través de una Solicitud de Firma de Certificado PKCS # 10. La transferencia preferida   El método para enviar esta información es HTTP sobre Secure Sockets Layer.   (SSL).

Básicamente, así es exactamente como funciona una CA normal, excepto que todo se lleva a cabo internamente dentro de Google.

    
respondido por el thexacre 08.04.2015 - 13:48
fuente
-2

La respuesta corta es "Son muy cuidadosos 'donde' están las claves privadas".

Creo que puede estar malinterpretando o ignorando una parte básica de cómo funcionan este tipo de teclas: cuando firma algo, es una operación matemática de una sola vía que "prueba" que fue firmada por una entidad en particular. (Técnicamente, alguien con acceso a dicha clave y conocimiento de las contraseñas / claves utilizadas para cifrarlo inicialmente).

Los servidores a los que usted y yo nos conectamos no almacenan las claves privadas, tienen "cosas" (por lo general, certificados en este caso) que, al estar firmadas, solo las puede crear alguien con la clave privada. De la misma manera que recibir un correo electrónico firmado por PGP no le permite simular ser el remitente, un servidor web dado de baja no corre el riesgo de (directamente) filtrar ninguna clave.

Todo esto está asumiendo que la implementación perfecta de todas las etapas del proceso no tiene fallas explotables en el código implementado o los algoritmos matemáticos subyacentes, por supuesto. O alguien con una llave grande y acceso a las personas relevantes. ( enlace )

    
respondido por el Orangutech 14.04.2015 - 18:02
fuente

Lea otras preguntas en las etiquetas