Dos preguntas:
Recientemente, comencé a crear un servidor web básico de Go y noté que la API para iniciar un servidor web TLS no admite una clave RSA privada cifrada simétricamente. La API se incluye a continuación y se vincula aquí :
func (srv *Server) ListenAndServeTLS(certFile, keyFile string) error
1) Dado que Go es un nuevo lenguaje de programación, y escrito con el beneficio de la experiencia, me pregunto por qué este es el caso. ¿No querrían los creadores fomentar el uso de archivos de clave encriptados y algunos patrones de pseudo-código como este?
var decryptKey = secureNetworkSource.getDecryptionKey();
ListenAndServeTLS(certFile, keyFile, decryptKey);
¿No entendí los beneficios de seguridad de usar un archivo de clave privada cifrada, es decir, es posible que el patrón anterior no sea más seguro que tener el archivo de clave sin cifrar en el disco?
2) También me pregunto por qué muchas de estas bibliotecas de servidores en diferentes idiomas (siendo Java el otro ejemplo que viene a la mente) confían en que el certificado se almacene localmente en el servidor; por ejemplo, la API de Go requiere una ruta a un archivo. ¿Por qué no es compatible con Bytestream, para que pueda adquirir una clave privada de otra fuente y reducir el radio de ráfaga de perder el disco duro en un servidor?