In che modo Amazon Web Services genera chiavi SSH? Genera completamente la coppia di chiavi nel browser o genera le chiavi nel server e inviaci la chiave privata su HTTPS?
Ho cercato di scoprire cosa sta succedendo guardando le richieste e le risposte nella console di sviluppo su Firefox. Ma non riuscivo a capire cosa stesse succedendo.
Innanzitutto, c'è una chiamata POST
a link con i seguenti dati
{"keyName":"testkey", "region":"us-east-1"}
La risposta alla chiamata è la stessa coppia di chiavi privata
{"keyFingerprint":"0a:93:6b:50:95:cc:2e:7c:ac:67:b1:c2:4b:ea:c5:72:dd:23:28:ea","keyMaterial":"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAs49qE5S4YEX0zgVyCMl1zaU26c7bJ4GpgerP0uEkNOS9oJ7lleP+S6JmszBy\nvsZn2XCv1bwj/Yi4/Pqxd+38WFJRzYNh8bqfe4e3BoSCubCW2mGlTehf8Bzkhhkh/JilHj4UlTQK[..snip..]\n4S5HcZrTeMkVukx8nXmchdI7sy16LHQEwdOdKaLemDynwljdQ2nYMq382wgdV1aRyvM=\n-----END RSA PRIVATE KEY-----","keyName":"testkey"}
C'è una seconda chiamata POST
a link dove risposta è un elenco di nomi chiave e ID dell'impronta digitale che corrispondono al termine di ricerca che ho inserito
DATI POST:
{"filters":[{"name":"search", "values":["testkey"]}], "start":0, "count":50, "sorting":[{"name":"keyName", "direction":"ASC"}], "region":"us-east-1"}
La risposta a questo è un array JSON di un elenco di chiavi e le relative impronte digitali corrispondenti.
Infine, c'è un'altra chiamata POST
al collegamento con la mia chiave privata come modulo payload dei dati (!!) con l'intestazione:
Content-disposition attachment; filename=testkey.pem
Questo restituisce un file chiave in chiaro, formattato in modo ordinato e tutto. Perché è necessaria la terza richiesta? Non è possibile che AWS abbia generato la chiave nel browser senza POST
inserendola come chiave?
Ho provato a passare alla modalità offline (grande grido a Mozilla per questo) e la creazione di coppie di chiavi non è riuscita. Ma questo non potrebbe in definitiva dimostrarmi che la coppia di chiavi viene generata sul server AWS perché l'errore potrebbe essere dovuto al fatto che AWS non ha ricevuto la chiave pubblica, l'impronta digitale e il nome chiave. L'atomicità della creazione di chiavi, anche se effettuata nel browser, potrebbe includere AWS che ottiene (e acchiappa) la chiave pubblica, l'impronta digitale e il nome chiave che la mia modalità offline avrebbe bloccato.
Infine, ha senso preoccuparsi di ciò poiché AWS apparentemente ha il controllo completo sull'hypervisor compresi i contenuti della RAM fisica da cui potrebbero teoricamente scaricare le mie chiavi?