Bueno, imaginemos que el servidor S
proporciona un servicio a un conjunto dado de clientes C1
y C2
con autenticación segura basada en certificados (piense en OpenVPN
, SSH
u otros servicios similares).
-
S
podría usar una CA de confianza o crear su propia cuenta para queC1
yC2
sepan que es el verdaderoS
(lo que hacenOpenVPN
,HTTPS
, etc.). Esto requiere que el certificado CA se comparta previamente con cada cliente. -
S
podría presentar su certificado aC1
yC2
la primera vez que los clientes se conecten a él y el cliente verificará si este certificado es el esperado (lo que hacenSSH
,Syncthing
, etc.) .
La cosa es:
- Algunos sistemas (* tos * android ... * tos *) simplemente agregan la CA personalizada directamente al almacén de confianza global (
OpenVPN
). - También el formato
p12
es bastante conveniente, mientras quepem
es terrible para el usuario, pero a menudo no tenemos la opción (¿por qué hay 4 archivos? ¿cuál es la clave de la que hablaba? ¿cuál es el certificado privado? ? ¿Por quéca.cert
no funciona como mi certificado privado? ...). - A los usuarios no les gusta / no se les permite validar / escribir cosas tanto en el servidor como en los clientes para autenticarse entre sí (
Syncthing
). - Sin embargo, no pueden molestarse en comprobar un hash de certificado a fondo (
SSH
).
Una forma (posiblemente terrible) de resolver estos problemas (y crear otros) sería utilizar directamente la clave privada S
para firmar los certificados C1
y C2
:
- No hay ninguna CA nueva para agregar al almacén de confianza de todo el sistema.
- Solo un archivo para manejar en los formatos
p12
ypem
. - El usuario no tiene que acceder a
S
. - El usuario no tiene que verificar nada mientras pueda confiar en el certificado firmado que se le entregó (a través de
HTTPS
/SSH
, etc.). NB: este problema de confianza es el mismo cuando tiene que obtener el certificado CA en cada cliente.
Lo que pasa es que no he oído hablar de tal esquema antes. Pienso que se debe principalmente a que no proporciona mejoras sólidas en el esquema basado en CA, pero podría deberse a que el enfoque es defectuoso.
Por lo tanto, ¿hay implicaciones erróneas de seguridad derivadas del uso de este tipo de esquema?
PD: pregunto por curiosidad porque no conozco ningún protocolo que use este esquema, pero parece un poco más simple.