Vés al contingut

Secret directe

De la Viquipèdia, l'enciclopèdia lliure
Una funció de derivació de claus (KDF) pot ajudar a aconseguir el secret directe. Una KDF és una funció unidireccional que genera una nova clau a partir de la clau actual. Filtrar una clau no permet descobrir claus anteriors.

En criptografia, el secret directe (FS), també conegut com a secret directe perfecte (PFS), és una característica dels protocols específics d'acord de claus que garanteix que les claus de sessió no es veuran compromeses, fins i tot si els secrets a llarg termini utilitzats en l'intercanvi de claus de sessió es veuen compromesos, limitant els danys.[1][2] Per a HTTPS, el secret a llarg termini sol ser la clau privada del servidor. El secret directe protegeix les sessions passades contra futurs compromisos de claus o contrasenyes. En generar una clau de sessió única per a cada sessió que inicia un usuari, el compromís d'una sola clau de sessió no afectarà cap dada que no sigui la que s'intercanvia en la sessió específica protegida per aquesta clau en particular. Això per si sol no és suficient per al secret directe, que a més requereix que un compromís secret a llarg termini no afecti la seguretat de les claus de sessió anteriors.

El secret directe protegeix les dades a la capa de transport d'una xarxa que utilitza protocols de seguretat de la capa de transport comuns, inclòs OpenSSL,[3] quan les seves claus secretes a llarg termini es veuen compromeses, com passa amb l'error de seguretat Heartbleed. Si s'utilitza el secret directe, les comunicacions xifrades i les sessions enregistrades en el passat no es poden recuperar ni desxifrar si les claus o contrasenyes secretes a llarg termini es veuen compromeses en el futur, fins i tot si l'adversari interfereix activament, per exemple mitjançant un atac man-in-the-middle (MITM).

El valor del secret directe és que protegeix les comunicacions passades. Això redueix la motivació dels atacants per comprometre les claus. Per exemple, si un atacant aprèn una clau a llarg termini, però es detecta el compromís i la clau a llarg termini es revoca i s'actualitza, es filtra relativament poca informació en un sistema segur cap endavant.

El valor del secret directe depèn de les capacitats suposades d'un adversari. El secret directe té valor si se suposa que un adversari pot obtenir claus secretes d'un dispositiu (accés de lectura) però es detecta o no pot modificar la manera com es generen les claus de sessió al dispositiu (compromís complet). En alguns casos, un adversari que pot llegir claus a llarg termini d'un dispositiu també pot modificar el funcionament del generador de claus de sessió, com en el generador de bits aleatoris determinista de corba el·líptica dual amb porta enrere. Si un adversari pot fer que el generador de nombres aleatoris sigui predictible, el trànsit passat estarà protegit però tot el trànsit futur es veurà compromès.

El valor del secret directe està limitat no només per la suposició que un adversari atacarà un servidor només robant claus i no modificant el generador de nombres aleatoris utilitzat pel servidor, sinó que també està limitat per la suposició que l'adversari només recopilarà passivament el trànsit a l'enllaç de comunicacions i no estarà actiu mitjançant un atac man-in-the-middle. El secret directe normalment utilitza un intercanvi efímer de claus Diffie-Hellman per evitar la lectura del trànsit passat. L'intercanvi efímer de claus Diffie-Hellman sovint el signa el servidor mitjançant una clau de signatura estàtica. Si un adversari pot robar (o obtenir mitjançant una ordre judicial) aquesta clau de signatura estàtica (a llarg termini), l'adversari pot fer-se passar pel servidor davant del client i pel client davant del servidor i implementar un atac clàssic de tipus intermediari.[4]

Història

[modifica]

El terme "secret de transmissió perfecte" va ser encunyat per CG Günther el 1990 i discutit més a fons per Whitfield Diffie, Paul van Oorschot i Michael James Wiener el 1992,[5] on es va utilitzar per descriure una propietat del protocol estació a estació.[6]

El secret directe també s'ha utilitzat per descriure la propietat anàloga dels protocols d'acord de clau autenticats per contrasenya on el secret a llarg termini és una contrasenya (compartida).

L'any 2000, l'IEEE va ratificar per primera vegada l'IEEE 1363, que estableix les propietats de secret directe unilateral i bilateral relacionades de diversos esquemes d'acord de clau estàndard.[7]

Definició

[modifica]

Un sistema de xifratge té la propietat de secret directe si la inspecció de text pla (desxifrat) de l'intercanvi de dades que es produeix durant la fase d'acord de clau d'inici de la sessió no revela la clau que es va utilitzar per xifrar la resta de la sessió.

Exemple

[modifica]

El següent és un exemple hipotètic d'un protocol de missatgeria instantània simple que utilitza el secret de transmissió:

  1. L'Alice i el Bob generen cadascun un parell de claus públiques i privades asimètriques a llarg termini, i després verifiquen les empremtes dactilars de la clau pública en persona o a través d'un canal ja autenticat. La verificació estableix amb confiança que el presumpte propietari d'una clau pública és el propietari real.
  2. L'Alice i en Bob utilitzen un algorisme d'intercanvi de claus com ara Diffie-Hellman, per acordar de manera segura una clau de sessió efímera. Utilitzen les claus del pas 1 només per autenticar-se mútuament durant aquest procés.
  3. L'Alícia envia un missatge a en Bob, xifrant-lo amb un xifratge simètric utilitzant la clau de sessió negociada al pas 2.
  4. En Bob desxifra el missatge d'en Alice utilitzant la clau negociada al pas 2.
  5. El procés es repeteix per a cada missatge nou enviat, començant des del pas 2 (i canviant els rols d'Alícia i Bob com a emissor/receptor segons correspongui). El pas 1 no es repeteix mai.

El secret directe (aconseguit generant noves claus de sessió per a cada missatge) garanteix que les comunicacions passades no es puguin desxifrar si una de les claus generades en una iteració del pas 2 està compromesa, ja que aquesta clau només s'utilitza per xifrar un sol missatge. El secret directe també garanteix que les comunicacions passades no es puguin desxifrar si les claus privades a llarg termini del pas 1 estan compromeses. Tanmateix, si això passés, seria possible fer-se passar per Alice o Bob en el futur, cosa que podria comprometre tots els missatges futurs.

Protocols

[modifica]

El secret de transmissió és present en diverses implementacions de protocols, com ara SSH i com a característica opcional a IPsec (RFC 2412). Missatgeria fora de registre, un protocol i biblioteca de criptografia per a molts clients de missatgeria instantània, així com OMEMO, que proporciona funcions addicionals com ara la funcionalitat multiusuari en aquests clients, tots dos proporcionen secret de reenviament i xifratge denegable.

En Transport Layer Security (TLS), hi ha disponibles conjunts de xifratge basats en l'intercanvi de claus Diffie-Hellman (DHE -RSA, DHE- DSA) i l'intercanvi de claus Diffie-Hellman de corba el·líptica (ECDHE- RSA, ECDHE- ECDSA). En teoria, TLS pot utilitzar el secret de transmissió des de SSLv3, però moltes implementacions no ofereixen secret de transmissió o bé el proporcionen amb xifratge de grau inferior. TLS 1.3 va eliminar el suport per a RSA per a l'intercanvi de claus, deixant Diffie-Hellman (amb secret directe) com a únic algorisme per a l'intercanvi de claus.[8]

OpenSSL admet el secret directe utilitzant la corba el·líptica Diffie-Hellman des de la versió 1.0,[9] amb una sobrecàrrega computacional d'aproximadament el 15% per a la confirmació inicial.[10]

El protocol de senyal utilitza l'algoritme Double Ratchet per proporcionar secret de transmissió.[11]

D'altra banda, entre els protocols populars que s'utilitzen actualment, WPA Personal no admetia el secret de transmissió abans del WPA3.[12]

Des de finals del 2011, Google va proporcionar per defecte el secret de transmissió amb TLS als usuaris del seu servei Gmail, el servei Google Docs i els serveis de cerca xifrats.[13] Des del novembre de 2013, Twitter va proporcionar secret de transmissió amb TLS als seus usuaris.[14] Els wikis allotjats per la Fundació Wikimedia han proporcionat secret de transmissió als usuaris des del juliol de 2014[15] i exigeixen l'ús del secret de transmissió des de l'agost de 2018.

Facebook va informar, com a part d'una investigació sobre el xifratge del correu electrònic, que, a maig de 2014, el 74% dels amfitrions que admeten STARTTLS també proporcionen secret de reenviament.[16] TLS 1.3, publicat a l'agost de 2018, va deixar de suportar els xifratges sense secret de transmissió. A Febrer 2019 , el 96,6% dels servidors web enquestats admeten alguna forma de secret de transmissió i el 52,1% utilitzaran el secret de transmissió amb la majoria de navegadors.[17]

A la WWDC 2016, Apple va anunciar que totes les aplicacions d'iOS haurien d'utilitzar App Transport Security (ATS), una funció que obliga a utilitzar la transmissió HTTPS. Concretament, l'ATS requereix l'ús d'un xifratge que proporcioni secret de transmissió.[18] L'ATS es va convertir en obligatori per a les aplicacions l'1 de gener de 2017.[19]

L'aplicació de missatgeria Signal utilitza el secret de transmissió en el seu protocol, cosa que la diferencia notablement dels protocols de missatgeria basats en PGP.[20]

El secret de transmissió és compatible amb el 92,6% dels llocs web en navegadors moderns, mentre que el 0,3% dels llocs web no admeten el secret de transmissió en absolut a data de maig de 2024.[21]

Referències

[modifica]
  1. «Perfect Forward Secrecy Explained: How it Works, In IPsec, SSL» (en anglès americà). Bootcamp Security, 17-10-2024. [Consulta: 8 maig 2025].
  2. Boyd, Colin; Gellert, Kai The Computer Journal, 64, 4, 19-04-2021, pàg. 639–652. DOI: 10.1093/comjnl/bxaa104. ISSN: 0010-4620.
  3. «/docs/man1.1.1/man3/SSL_set_tmp_dh.html» (en anglès). www.openssl.org. [Consulta: 25 maig 2024].
  4. «tls - Does Perfect Forward Secrecy (PFS) make Man-in-the-Middle (MitM) attacks more difficult?» (en anglès). Information Security Stack Exchange. [Consulta: 11 octubre 2020].
  5. Menzies, Alfred. Handbook of Applied Cryptography (en anglès). CRC Pres, 1997. ISBN 978-0-8493-8523-0. 
  6. Diffie, Whitfield; van Oorschot, Paul C.; Wiener, Michael J. Designs, Codes and Cryptography, 2, 2, 6-1992, pàg. 107–125. DOI: 10.1007/BF00124891 [Consulta: 7 setembre 2013].
  7. «IEEE 1363-2000 - IEEE Standard Specifications for Public-Key Cryptography» (en anglès). IEEE. [Consulta: 14 juny 2018].
  8. «A Detailed Look at RFC 8446 (a.k.a. TLS 1.3)» (en anglès). The Cloudflare Blog, 10-08-2018. [Consulta: 26 febrer 2019].
  9. «Protecting data for the long term with forward secrecy» (en anglès). [Consulta: 5 novembre 2012].
  10. Vincent Bernat. «SSL/TLS & Perfect Forward Secrecy» (en anglès), 28-11-2011. [Consulta: 5 novembre 2012].
  11. Unger, Nik. «SoK: Secure Messaging». A: 2015 IEEE Symposium on Security and Privacy (en anglès). San Jose, CA: Institute of Electrical and Electronics Engineers, 17–21 May 2015, p. 241. DOI 10.1109/SP.2015.22. ISBN 978-1-4673-6949-7. 
  12. «Wi-Fi Gets More Secure: Everything You Need to Know About WPA3 - IEEE Spectrum» (en anglès). IEEE. [Consulta: 4 maig 2024].
  13. «Protecting data for the long term with forward secrecy» (en anglès). [Consulta: 5 novembre 2012].
  14. Hoffman-Andrews, Jacob. «Forward Secrecy at Twitter» (en anglès). Twitter. [Consulta: 25 novembre 2013].
  15. «Tech/News/2014/27 - Meta» (en anglès). Wikimedia Foundation, 30-06-2014. [Consulta: 30 juny 2014].
  16. «The Current State of SMTP STARTTLS Deployment» (en anglès). Facebook. [Consulta: 7 juny 2014].
  17. Qualys SSL Labs. «SSL Pulse» (3 February 2019) (en anglès). Arxivat de l'original el 15 February 2019. [Consulta: 25 febrer 2019].
  18. «iOS 9.0» (en anglès).
  19. «App Transport Security REQUIRED January 2017 | Apple Developer Forums» (en anglès). forums.developer.apple.com. [Consulta: 20 octubre 2016].
  20. Evans, Jon. «WhatsApp, Signal, and dangerously ignorant journalism» (en anglès). TechCrunch, 22-01-2017. [Consulta: 18 abril 2018].
  21. «Qualys SSL Labs - SSL Pulse» (en anglès). www.ssllabs.com. [Consulta: 25 maig 2024].