È sicuro trasferire i certificati dal Servizio 1 al Servizio 2 su HTTPS?

1

Devo trasferire i certificati SSL (comprese le loro chiavi private) tra due servizi su HTTPS.

Ad esempio, il servizio 1 effettua una chiamata PUT REST al servizio 2 su HTTPS. Request Payload = Il certificato include la chiave privata.

È sicuro? C'è un modo più sicuro per trasferire i certificati?

    
posta Andrew Hanson 12.12.2017 - 20:02
fonte

1 risposta

1

Limitiamo la domanda solo al traffico di rete, quindi consideriamo le macchine stesse sicure. Inoltre, consideriamo la versione TLS usata come sicura (assicurati di usare l'ultima, dato che c'erano alcuni bug nelle versioni precedenti).

La sicurezza di HTTPS è composta da due parti:

Autenticità: se entrambi i client hanno già una sorta di certificato noto all'altro lato o uno firmato da entrambe le parti si fidano (o un meccanismo di token implementato in modo sicuro, come nell'esempio), può assumere che il client a cui si connettono sia in realtà quello che afferma di essere. Ciò è assicurato dalle firme digitali, che trattiamo come al momento sicuro (supponendo che vengano utilizzati algoritmi di hash e crittografia appropriati, come SHA256 e RSA-2048 o più).

Crittografia: la sicurezza della crittografia dipende dal fatto che entrambe le parti possano fidarsi delle chiavi utilizzate. Supponendo che nessuna delle due parti abbia fatto trapelare una chiave privata, è lecito ritenere che nessuno, tranne quei due clienti, possa partecipare allo scambio di chiavi iniziale. Le firme digitali sopra menzionate garantiscono che le chiavi asimmetriche appartengano all'altra parte, mentre la crittografia asimmetrica garantisce che solo il proprietario della chiave privata possa leggere i messaggi.

Se queste condizioni sono soddisfatte, entrambe le parti possono concordare in modo sicuro un segreto condiviso per questa sessione HTTPS, senza che nessuno nel mezzo sia in grado di calcolare lo stesso segreto, anche se legge tutti i pacchetti inviati.

Modifica: utilizzando il metodo che hai aggiunto alla tua domanda, questo trasferimento dovrebbe essere sicuro (sii consapevole delle condizioni di cui sopra). Assicurati che entrambe le parti forniscano un modo per autenticarsi rispettivamente. Se il Servizio A si connette al Servizio B (che è lato server in questo esempio), A controlla il certificato di B. Sono in grado di stabilire una connessione sicura, ma B non può essere sicuro che A è chi finge di essere .

Questo è il posto dove dovrebbe essere usato il sistema di token (si spera sicuro). Puoi anche utilizzare un altro modo di autenticazione, ma assicurati di usarne uno , in quanto potrebbe essere un problema serio. Un utente malintenzionato può importare il proprio certificato nel servizio B ... Non dico altro;)

    
risposta data 13.12.2017 - 09:31
fonte

Leggi altre domande sui tag