Da sgcWebSockets 4.4.8 ci sono piccole modifiche nella libreria per migliorare la sicurezza delle connessioni. Una di queste è la Perfect Forward Secrecy
Quando usi il meccanismo di scambio chiavi RSA, viene creato un legame tra la coppia di chiavi del server e la chiave di sessione creata per ogni singola sessione sicura. Pertanto, se un attaccante riesce a ottenere la chiave privata del server, può decifrare la tua sessione SSL e qualsiasi sessione SSL salvata.
Al contrario, quando abiliti la Perfect Forward Secrecy (PFS), non c'è alcun legame tra la chiave privata del server e ciascuna chiave di sessione. Anche se un attaccante riesce ad accedere alla chiave privata del server, non può usare quella chiave privata per decifrare nessuna delle sessioni archiviate: per questo si chiama "Perfect Forward Secrecy".
Abilitare Perfect Forward Secrecy
Per abilitare la Perfect Forward Secrecy sulle connessioni TLS 1.2, basta abilitare la proprietà:
SSLOptions.OpenSSL_Options.ECDHE := True;
Questo abiliterà ECDHE per le connessioni TLS 1.2 se stai usando le librerie openSSL 1.0.2 (per 1.1.1 ECDHE è abilitato per impostazione predefinita). Quando ECDHE è abilitato, la libreria passa a openSSL un elenco di cipher ad alta sicurezza.
Se esegui un Security Test sul sito web https://entrust.ssllabs.com/, otterrai un risultato sicuro dopo aver abilitato ECDHE sul tuo server.
Il server usato per superare i test stava usando openSSL 1.1.1 e consente TLS 1.2 e TLS 1.3, con ECDHE anch'esso abilitato.


