Sto applicando la gestione della configurazione a un VPS ospitato da una società di hosting VPS. Purtroppo la modifica della società di hosting non è un'opzione,
Questo VPS ha le seguenti proprietà:
- quando è di nuovo imaged o reimaging, genera una nuova coppia di chiavi pubblica / privata SSH;
- né l'interfaccia web dell'azienda di hosting VPS, né l'API della società di hosting VPS forniscono un modo per sostituire quella coppia di chiavi di una coppia di chiavi nota;
- né l'interfaccia web dell'azienda di hosting VPS, né l'API della società di hosting VPS, forniscono un modo per ottenere l'impronta digitale della chiave pubblica della coppia di chiavi;
- l'host VPS non ha record DNS firmati (ad esempio DNSSEC);
- l'interfaccia web della società di hosting VPS e l'API do consentono di recuperare l'indirizzo IP del VPS;
- l'interfaccia web della società di hosting VPS e l'API do utilizzano TLS e hanno un certificato valido da una CA decente;
- l'interfaccia web dell'azienda di hosting VPS fa consente di caricare la chiave pubblica di un client SSH, dopo di che ogni volta che il VPS viene reimmaginato aggiungerà quella chiave pubblica al
.ssh/authorized_keys
dell'account specificato file.
Il primo punto sopra è normalmente una buona cosa, ma accoppiato con i prossimi due punti, significa che è impossibile per lo strumento di gestione della configurazione, quando tenta di accedere al VPS tramite SSH per la prima volta dopo il VPS è stato reimaging, per dire con certezza se la connessione è man-in-the-middled. In altre parole, lo strumento di gestione della configurazione può, nella migliore delle ipotesi, utilizzare il trust-on-first-use ("TOFU") approccio.
Normalmente, utilizzerei il nome host completo di VPS come identificativo del VPS nello strumento di gestione della configurazione, eviterei di dover utilizzare TOFU ottenendo separatamente l'impronta digitale della chiave pubblica SSH del VPS fuori banda (ad esempio tramite un'API sicura) . Con questo particolare VPS, però, quest'ultimo passaggio non è possibile.
Pertanto, la connessione tramite il nome host completo sembra rischiare un attacco MITM, ad es. tramite spoofing DNS , sfruttando il fatto che lo strumento di gestione della configurazione dovrebbe TOFU.
Mi sembra che l'opzione più sicura qui sarebbe quella di recuperare l'indirizzo IP del VPS dall'API su HTTPS, e avere invece lo strumento di gestione della configurazione SSH. Almeno questo eviterebbe il rischio di spoofing del DNS.
(Inoltre, approfittare del punto 7 sopra significa che anche se un server malevolo si maschera con successo come VPS, almeno il server malintenzionato non otterrà la password o la chiave privata del client.)
Sono corretto su questo? Ci sono altri rischi, o soluzioni migliori, che sto trascurando?