Ho due peer di rete che hanno bisogno di utilizzare un protocollo applicativo personalizzato e criptato per comunicare tra loro. I messaggi scambiati sono piuttosto piccoli, in genere meno di un paio di centinaia di byte e lo scambio di chiavi viene eseguito di persona. È quindi ragionevole fare le seguenti ipotesi:
-
Non è necessaria alcuna autorità di certificazione, poiché entrambe le parti si conoscono e concordano sull'uso di una particolare coppia di chiavi.
-
Poiché i messaggi scambiati sono piccoli e la quantità di traffico molto piccola, la crittografia e la decifrazione dei messaggi non provocano picchi misurabili nel carico della CPU o nel ritardo di rete, pertanto, non è necessario utilizzare una sessione simmetrica chiave (tutto il traffico è crittografato utilizzando la coppia di chiavi RSA 4096).
-
Un timestamp, HW ID e HMAC vengono aggiunti a ciascun messaggio per verificare sia l'integrità dei dati che l'autenticazione del messaggio.
-
Per questo motivo, TLS a pieno titolo non è necessario, RSA è sufficiente.
Mi manca qualcosa? Questo meccanismo sarebbe immune al MITM e agli attacchi di replay, oltre che al forcing bruto?