Modello: trasferimento in blocco di dati da un server a un altro, si desidera impedire la perdita di informazioni da parte di un utente malintenzionato MITM
Soluzione: TLS o qualsiasi protocollo su TLS come HTTPS è una buona scelta. Dovresti assicurarti di avere un'autenticazione corretta. Il server deve autenticare il client e il client deve autenticare il server. Due modi comuni per farlo: 1) autenticazione reciproca TLS, 2) autenticazione certificato server TLS + chiave API all'interno delle intestazioni dei messaggi. Altre possibili soluzioni sono la crittografia alternativa del flusso come SSH (scp o sftp) o VPN IPSec.
Modello: messaggistica a bassa latenza o flussi multimediali, modello di minaccia come sopra
Soluzione: DTLS con Web Socket o altro protocollo progettato per bassa latenza come XMPP. Problemi di autenticazione come sopra.h
Modello: il server mittente non si fida necessariamente del server destinatario, vorresti essere in grado di dimostrare reciprocamente che un messaggio proviene dal server mittente e non è stato manomesso dal destinatario
Soluzione: il mittente deve firmare crittograficamente i messaggi, ad es. usando GPG. In alternativa, potresti voler utilizzare una catena di merker / catena di blocchi per dimostrare la sequenza dei messaggi. Si consiglia di utilizzare anche l'indicazione dell'ora attendibile.
Modello: vuoi avere fiducia zero su terze parti, come la CA pubblica / commerciale
Soluzione: eseguire la propria CA, utilizzare un certificato autofirmato. Ora sei responsabile di tutto il processo di verifica che normalmente farebbe una CA.
SSH potrebbe essere più adatto a questo scopo, ma dovrai eseguire correttamente la convalida dell'impronta digitale del server, altrimenti ti esponi per primo a utilizzare l'attacco a causa di TOFU .