Mi chiedo se un endpoint dell'API HTTPS sia sicuro o più sicuro di SSH.
Endpoint API
- L'endpoint dell'API richiederebbe HTTPS
- L'autenticazione API utilizza una chiave API POST'd.
- La lunghezza minima richiesta della chiave API potrebbe essere arbitrariamente lunga
- L'endpoint dell'API accetta solo le connessioni dagli indirizzi IP autorizzati.
- L'URL dell'endpoint dell'API non sarebbe pubblicamente disponibile o collegato da nessuna parte. Solo l'applicazione client saprebbe di cosa si tratta.
- L'applicazione client che si connette all'endpoint non accetta i cyphers SSL deboli.
Connessione SSH
Ai fini di questa domanda, faremo le seguenti ipotesi sulla connessione SSH a cui stiamo confrontando.
- La lunghezza minima della password richiesta è di 8 caratteri con lettere maiuscole, minuscole e numeri richiesti.
- Il dominio a cui ti colleghi è il dominio pubblico (ad es. per link ti connetti usando ssh domain.com)
Considerazioni
Alcune considerazioni a cui ho pensato quali potrebbero influire sul fatto che uno sia più sicuro dell'altro sono:
- Il rilevamento dell'indirizzo IP da parte di HTTPS è affidabile quanto lo fa SSH? Suppongo che entrambi guardino solo a ciò che il client li invia e quindi non possono essere fidati al 100%, ma forniscono comunque un certo livello di sicurezza.
- Credo che SSH abbia un meccanismo integrato per prevenire tentativi rapidi di riprovare. So che HTTPS da solo non lo fa, ma in molti casi in cui la sicurezza è fondamentale per la sua integrazione nel livello del servizio web.
La mia impressione
La mia impressione sarebbe che l'endpoint dell'API sarebbe effettivamente più sicuro di SSH per i seguenti motivi - ma non sono un esperto di sicurezza da nessuna parte, quindi mi piacerebbe avere un risposta solida:
- Con SSH, il potenziale utente malintenzionato sa quale dominio indirizzare (ad es. dominio ssh.com). Ma con l'API, l'URL non sarebbe conosciuto così per poter iniziare a provare ad attaccarlo, prima dovevano capire qual era l'URL.
- Il livello di sicurezza della password dell'API è maggiore
Contesto
Il motivo per cui sto chiedendo questo è che sto prendendo in considerazione la costruzione di un endpoint API che consentirebbe a un utente affidabile e autenticato di accedere a molti dati potenzialmente sensibili. Sarebbe un potente strumento che consentirebbe di scrivere molto rapidamente la logica di business dell'applicazione disaccoppiata.
Il motivo per cui sto chiedendo se è sicuro come SSH è perché suppongo che i potenziali utenti di questa applicazione abbiano SSH abilitato con al massimo una whitelist di indirizzi IP come ulteriore livello di sicurezza.
Quindi ciò significa che le funzionalità di questo endpoint dell'API sono già presenti tramite SSH. Se l'endpoint non presentasse alcun rischio aggiuntivo oltre al rischio che è presente con SSH, allora considererei un livello accettabile di rischio. Ma se fosse meno sicuro, probabilmente non lo considererei accettabile.
UPDATE: aggiunta di note sui cyphers deboli all'endpoint API.