Due domande:
Ho recentemente iniziato a creare un web server Go di base e ho notato che l'API per l'avvio di un server Web TLS non supporta una chiave RSA privata simmetricamente crittografata. L'API è inclusa di seguito e collegata qui :
func (srv *Server) ListenAndServeTLS(certFile, keyFile string) error
1) Dato che Go è un nuovo linguaggio di programmazione e scritto con il beneficio dell'esperienza, mi chiedo perché sia così. I creatori non vorrebbero incoraggiare l'uso di file chiave crittografati e alcuni pattern di pseudo-codice come questo:
var decryptKey = secureNetworkSource.getDecryptionKey();
ListenAndServeTLS(certFile, keyFile, decryptKey);
Ho frainteso i vantaggi in termini di sicurezza dell'utilizzo di un file di chiave privata crittografato, ovvero è possibile che lo schema precedente non sia più sicuro del semplice file chiave non crittografato sul disco.
2) Mi chiedo anche perché molte di queste librerie di server tra lingue (essendo Java l'altro esempio che mi viene in mente) spesso si affidano al certificato che viene archiviato localmente sul server; per esempio, l'API Go richiede un percorso per un file. Perché non supportare alcun attrezzo a distanza, in modo da poter acquisire una chiave privata da un'altra fonte e ridurre il raggio di esplosione di perdere il disco rigido su un server?