Secure Hash Algorithm 1

De la Viquipèdia, l'enciclopèdia lliure

En criptografia, SHA-1 (Secure Hash Algorithm 1) és una funció hash que pren una entrada i produeix un valor hash de 160 bits (20 bytes) conegut com a resum de missatges, normalment representat com a 40 dígits hexadecimals. Va ser dissenyat per l'Agència de Seguretat Nacional dels Estats Units i és un estàndard de processament d'informació federal dels EUA.[1] L'algoritme s'ha trencat criptogràficament [2][3][4][5][6][7][8] però encara s'utilitza àmpliament.

Des del 2005, SHA-1 no es considera segur contra oponents ben finançats; [9] a partir de 2010 moltes organitzacions han recomanat el seu reemplaçament.[10][8][11] El NIST va desaprovar formalment l'ús de SHA-1 el 2011 i va prohibir el seu ús per a signatures digitals el 2013, i va declarar que s'havia d'eliminar gradualment el 2030.[12] A 2020, els atacs de prefix escollit contra SHA-1 són pràctics.[4][6] Com a tal, es recomana eliminar SHA-1 dels productes tan aviat com sigui possible i utilitzar SHA-2 o SHA-3. La substitució de SHA-1 és urgent quan s'utilitza per a signatures digitals.

Tots els principals proveïdors de navegadors web van deixar d'acceptar els certificats SSL SHA-1 el 2017.[13][7][2] El febrer de 2017, CWI Amsterdam i Google van anunciar que havien realitzat un atac de col·lisió contra SHA-1, publicant dos fitxers PDF diferents que van produir el mateix hash SHA-1. Tanmateix, SHA-1 encara és segur per a HMAC.[14]

Microsoft ha interromput el suport de signatura de codi SHA-1 per a Windows Update el 7 d'agost de 2020.

Desenvolupament[modifica]

Una iteració dins de la funció de compressió SHA-1:A, B, C, D i E són paraules de 32 bits de l'estat; F és una funció no lineal que varia; ⋘n denota una rotació de bit a l'esquerra en n llocs; n varia per a cada operació; Wt és la paraula de missatge ampliada de la ronda t; Kt és la constant rodona de t arrodonida; indica l'addició mòdul 232.

SHA-1 produeix un resum de missatges basat en principis similars als utilitzats per Ronald L. Rivest del MIT en el disseny dels algorismes de resum de missatges MD2, MD4 i MD5, però genera un valor hash més gran (160 bits enfront de 128 bits).

SHA-1 es va desenvolupar com a part del projecte Capstone del govern dels EUA.[15] L'especificació original de l'algorisme es va publicar l'any 1993 sota el títol Secure Hash Standard, FIPS PUB 180, per l'agència d'estàndards del govern dels EUA NIST (National Institute of Standards and Technology).[16] Aquesta versió s'anomena sovint SHA-0. Va ser retirat per la NSA poc després de la publicació i va ser substituïda per la versió revisada, publicada el 1995 a FIPS PUB 180-1 i designada habitualment SHA-1. SHA-1 difereix de SHA-0 només per una única rotació bit a bit a la programació de missatges de la seva funció de compressió. Segons la NSA, això es va fer per corregir un defecte de l'algorisme original que va reduir la seva seguretat criptogràfica, però no van proporcionar cap explicació addicional.[17][18] Les tècniques disponibles públicament van demostrar un compromís de SHA-0, el 2004, abans que SHA-1 el 2017 (vegeu §Atacs).

Aplicacions[modifica]

Criptografia[modifica]

SHA-1 forma part de diverses aplicacions i protocols de seguretat àmpliament utilitzats, com ara TLS i SSL, PGP, SSH, S/MIME i IPsec. Aquestes aplicacions també poden utilitzar MD5; tant MD5 com SHA-1 descendeixen de MD4.

SHA-1 i SHA-2 són els algorismes hash requerits per la llei per utilitzar-los en determinades aplicacions del govern dels EUA, inclòs l'ús dins d'altres algorismes i protocols criptogràfics, per protegir la informació sensible no classificada. FIPS PUB 180-1 també va fomentar l'adopció i l'ús de SHA-1 per part d'organitzacions privades i comercials. SHA-1 s'està retirant de la majoria dels usos governamentals; l'Institut Nacional d'Estàndards i Tecnologia dels EUA va dir: "Les agències federals haurien de deixar d'utilitzar SHA-1 per... aplicacions que requereixen resistència a les col·lisions tan aviat com sigui pràctic, i han d'utilitzar la família SHA-2 de funcions hash per a aquestes aplicacions després del 2010".,[19] encara que després es va relaxar per permetre que SHA-1 s'utilitzi per verificar signatures digitals antigues i segells de temps.[19]

Una de les principals motivacions per a la publicació de l'algoritme Secure Hash va ser l'estàndard de signatura digital, al qual s'incorpora.

Les funcions hash SHA s'han utilitzat com a base dels xifratge de blocs SHACAL.

Integritat de les dades[modifica]

Els sistemes de control de revisions com Git, Mercurial i Monotone utilitzen SHA-1, no per seguretat, sinó per identificar revisions i per garantir que les dades no hagin canviat a causa d'una corrupció accidental.

Referències[modifica]

  1. «Archived copy» (en anglès). Arxivat de l'original el 2020-01-07. [Consulta: 23 setembre 2019].
  2. 2,0 2,1 «The end of SHA-1 on the Public Web» (en anglès americà). Mozilla Security Blog, 23-02-2017. [Consulta: 29 maig 2019].
  3. «SHA-1 Broken – Schneier on Security» (en anglès). www.schneier.com.
  4. 4,0 4,1 «Critical flaw demonstrated in common digital security algorithm» (en anglès americà). Nanyang Technological University, Singapore, 24-01-2020.
  5. «New Cryptanalytic Results Against SHA-1 – Schneier on Security» (en anglès). www.schneier.com.
  6. 6,0 6,1 Leurent, Gaëtan; Peyrin, Thomas Cryptology ePrint Archive, Report 2020/014, 05-01-2020.
  7. 7,0 7,1 «Google will drop SHA-1 encryption from Chrome by January 1, 2017» (en anglès americà). VentureBeat, 18-12-2015. [Consulta: 29 maig 2019].
  8. 8,0 8,1 Stevens1, Marc. «The SHAppening: freestart collisions for SHA-1» (en anglès). [Consulta: 9 octubre 2015].
  9. Schneier, Bruce. «Schneier on Security: Cryptanalysis of SHA-1» (en anglès), 18-02-2005.
  10. «NIST.gov – Computer Security Division – Computer Security Resource Center» (en anglès). Arxivat de l'original el 2011-06-25. [Consulta: 5 gener 2019].
  11. Schneier, Bruce. «SHA-1 Freestart Collision» (en anglès). Schneier on Security, 08-10-2015.
  12. (en anglès) NIST, 15-12-2022.
  13. Goodin, Dan. «Microsoft to retire support for SHA1 certificates in the next 4 months» (en anglès americà). Ars Technica, 04-05-2016. [Consulta: 29 maig 2019].
  14. Barker, Elaine NIST, Technical Report, maig 2020, pàg. 56. DOI: 10.6028/NIST.SP.800-57pt1r5 [Consulta: lliure].
  15. «RSA FAQ on Capstone» (en anglès).
  16. Selvarani, R. Proceedings of International Conference on Advances in Computing (en anglès). Springer Science & Business Media, 2012, p. 551. ISBN 978-81-322-0740-5. 
  17. Kramer, Samuel. «Proposed Revision of Federal Information Processing Standard (FIPS) 180, Secure Hash Standard» (en anglès). Federal Register, 11-07-1994.
  18. fgrieu. «Where can I find a description of the SHA-0 hash algorithm?» (en anglès). Cryptography Stack Exchange.
  19. 19,0 19,1 Computer Security Division, Information Technology Laboratory. «NIST Policy on Hash Functions – Hash Functions | CSRC | CSRC» (en anglès americà). CSRC | NIST, 04-01-2017. [Consulta: 27 agost 2023].