Perfect Forward Secrecy (Savršena unaprijedna sigurnost)

Savršena unaprijedna sigurnost (Perfect Forward Secrecy, PFS) enkripcijsko je svojstvo nekih protokola za razmjenu ključeva koje osigurava razmjenu kratkotrajnih ključeva među klijentima i poslužiteljima. Osim što im je kratak rok trajanja, ključevi se automatski generiraju pri svakom povezivanju klijenta i poslužitelja. Ako se PFS koristi pri slanju poruka, može se generirati novi ključ za svaku poslanu poruku. Tako, čak i ako dođe do kompromitacije privatnog ključa na poslužitelju, napadač neće moći dešifrirati prošle poruke.

Zamislimo da napadač dugo vremena presreće mrežni promet između korisnika i web aplikacije. Nakon toga uspije i kompromitirati poslužitelj na kojem se web aplikacija nalazi i dođe do enkripcijskog ključa. Takav napadač potencijalno može izvesti napad čovjeka u sredini (engl. man-in-the-middle attack) i dešifrirati budući promet, ali ako se koristio protokol sa svojstvom PFS-a neće moći dešifrirati promet koji je presreo prije nego što je došao do enkripcijskog ključa. PFS u pravilu koristi Diffie-Hellman algoritam razmjene ključeva kako bi spriječio čitanje prošlih podataka. Diffie-Hellman za potpis najčešće koristi statični potpisni ključ. Ako napadač uspješno dođe do ključa, može impersonirati server u komunikaciji s klijentom (i obrnuto) te izvesti klasični napad čovjeka u sredini.  Napad čovjeka u sredini na Diffie-Hellman razmjenu ključeva

PFS je prisutan u implementacijama mnogih protokola, kao npr. u SSL protokolu, OMEMO ekstenziji XMPP protokola ili u određenim postavkama IPSec-a. OpenSSL PFS postiže uz pomoć eliptičnog Diffie-Hellman algoritma, a protokol aplikacije za razmjenu poruka Signal koristi Double Ratchet algoritam kako bi postigao PFS.

Izvori

[1] Mark Stamp, Information Security Principles and practice, JohnWiley & Sons, 2011.
[2] https://signal.org/docs/specifications/doubleratchet/
[3] Kriptografija i kriptoanaliza, predavanja, FER
[4] https://www.sectigo.com/resource-library/perfect-forward-secrecy
[5] https://www.cert.hr/wp-content/uploads/2019/04/NCERT-PUBDOC-2009-12-284.pdf