¿Cómo implementar correctamente la conexión encriptada entre dos partes que confían entre sí con SSL?

0

Me gustaría tener una conexión confiable (como en TCP) cifrada (autenticidad, integridad, confidencialidad) entre el programa A y el programa B. Soy el creador de A y B. Quiero A para comunicarse solo con B y viceversa. A y B no tienen intenciones maliciosas entre sí, por lo que si A le dice a B que es A, B puede confiar en él.

Ahora hay varias maneras de hacer esto, que incluyen, entre otras:

  1. A y B tienen el mismo certificado autofirmado
  2. A y B tienen cada uno su propio certificado que es:
    1. autofirmado; en este caso, A agrega el certificado de B a su lista de autoridades de certificación y viceversa
    2. firmado por la otra parte; Creo que cada parte confía en sí misma.
    3. firmado por mí, una autoridad de certificación de un solo hombre, usando mi clave privada.

...

¿Cuál es el mejor enfoque y por qué?

Soy bastante nuevo en la criptografía en general y me parece muy confuso. Estoy seguro de que este es un problema que surge con frecuencia en muchas aplicaciones, por lo que estoy seguro de que cada enfoque tiene sus pros y sus contras, y que posiblemente ni siquiera mencioné el mejor enfoque. Sé que la seguridad de la información es un campo minado, por lo que cualquier consejo es bienvenido.

    
pregunta Martin Drozdik 14.01.2017 - 00:29
fuente

1 respuesta

2

Comparemos los enfoques en los que está pensando:

  
  1. A y B tienen el mismo certificado autofirmado.
  2.   
  • Si cualquiera de las partes obtiene este certificado, puede disfrazarse como cualquiera de los dos.

  • En el futuro, si desea agregar nuevas partes comunicantes, tendrá para encontrar una nueva forma de identificar y autenticar servidores individuales como todos ellos tendrán el mismo certificado.

La segunda idea es mejor que la anterior, pero la escalabilidad depende del tipo de implementación que utilice.

  
  1. A y B tienen cada uno su propio certificado, que es:
      autofirmado en este caso, A agrega el certificado de B a su lista de   Autoridades de certificación y viceversa.
  2.   
  • Será un gran problema mantener esto en el futuro. Cada vez que agregue un nuevo servidor, deberá agregar su certificado a todos los servidores con los que desee comunicarse. Si planea distribuir estos servidores por separado, no será una experiencia agradable para sus clientes.
  

firmado por la otra parte; Creo que cada parte confía en sí misma.

  • Nuevamente, tendrás problemas con la escalabilidad. La adición de nuevos servidores requerirá que sus servidores existentes generen nuevos certificados cada vez.
  

firmado por mí, una autoridad de certificación de un solo hombre, usando mi clave privada.

  • Según mi opinión, esta es la mejor solución. Podrá lograr su propósito inicial de tener una comunicación segura y también será fácil de escalar. Cada nuevo servidor tendrá un certificado generado por la autoridad de certificación en la que confían los servidores existentes.

Si le preocupan los certificados autofirmados v / s Certificados CA en términos de seguridad, puede leer esta respuesta

    
respondido por el Limit 14.01.2017 - 02:09
fuente

Lea otras preguntas en las etiquetas