Mejores prácticas para la administración de claves privadas

3

¿Qué debo hacer para manejar mi clave privada RSA para mi aplicación web Rails de alta seguridad?

Esto puede parecer una pregunta "blanda", no relacionada con la criptografía en sí misma, pero sin embargo es muy importante. ¿Qué procedimientos de gestión y principios de seguridad de desarrollo general debo seguir? ¿Cuáles son los recursos definitivos que detallan cómo evitar no solo el lado tecnológico de la piratería, sino también las inevitables fallas en los recursos humanos y el simple robo?

Hasta ahora he estado generando pares de claves RSA en mi máquina MAC local, colocándolos en una carpeta secreta de aplicaciones, confirmándolos en repositorios de git privados y luego implementándolos en el servidor. Si bien no se han producido incidentes (todavía), puedo ver que existen dos problemas principales de seguridad: el acceso a los repositorios de Git mediante la piratería de mi cuenta o el backend de Git o el robo / acceso a mi máquina. En lo que respecta a estos dos, solo puedo aumentar la fortaleza de mi Git y las contraseñas de la máquina, aumentar la seguridad física de las oficinas es otra posibilidad.

Pensando en los primeros principios de seguridad, he estado considerando la posibilidad de generar par de llaves para una aplicación en el servidor de aplicaciones seguro (acceso en un puerto personalizado usando solo claves públicas) y nunca comprometerlas en un repositorio de ningún tipo, sin embargo hay casos en los que se necesita la clave privada incluso en desarrollo, por lo que scp la clave del servidor en mi máquina local, exponiendo mi aplicación una vez más a riesgos de seguridad física.

Estoy pensando demasiado en esto? ¿Qué me estoy perdiendo?

    
pregunta S.L. Barth 11.03.2015 - 11:30
fuente

1 respuesta

1

la administración de claves para claves privadas (altamente sensibles) generalmente se logra almacenándolas en módulos criptográficos de hardware (también conocidos como HSM). hay diferentes niveles de módulos criptográficos de hardware, que generalmente se clasifican de acuerdo con el FIPS 140-2 estándar

El hardware reside en la máquina (por ejemplo, la tarjeta PCI) o en la red (también conocida como un HSM basado en la red).

Donde empieza a complicarse es si la aplicación está virtualizada, o si necesita comenzar a compartir la clave entre muchos hosts (por ejemplo, 16 servidores web que utilizan el mismo certificado).

Para escenarios HTTPS: Como opción de ampliación de escala, he visto a mucha gente acudir a los balanceadores de carga y usarlos para terminar la conexión inicial desde los navegadores del cliente. Algunos equilibradores de carga tienen la opción de almacenar la clave en el hardware. A partir de ahí, tiene la opción de iniciar otra conexión a su servidor web (que se encuentra detrás del equilibrador de carga), o pasar a texto claro, ya que el tráfico ahora está en una red semiprotegida (?).

    
respondido por el AndrewO 29.07.2015 - 23:37
fuente

Lea otras preguntas en las etiquetas