Vés al contingut

Transport Layer Security

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


LaTransport Layer Security(TLS;en català «seguretat de lacapa de transport») i la seva antecessoraSecure Sockets Layer(SSL;en català «capa de sòcol segur»), sónprotocols criptogràficsque proporcionen comunicacionsseguresper unaxarxa,generalmentInternet.SSL està ja obsoletitzat per la IETF perquè es considera insegur, cal usar sempre TLS.

Descripció

[modifica]

SSL proporcionaautenticacióiprivacitatde la informació entre extrems sobreInternetmitjançant l'ús decriptografia.Habitualment, només el servidor és autenticat (és a dir, es garanteix la seva identitat) mentre que el client es manté sense autenticar.

SSL implica una sèrie de fases bàsiques:

Durant la primera fase, el client i el servidor negocien quins algorismes criptogràfics s'utilitzaran. Les implementacions actuals proporcionen les següents opcions:

Funcionament

[modifica]

El protocol SSL intercanvia registres; opcionalment, cada registre pot ser comprimit, xifrat i empaquetat amb uncodi d'autenticació del missatge(MAC). Cada registre té un camp decontent_typeque especifica el protocol de nivell superior que s'està usant.

Quan s'inicia la connexió, el nivell de registre encapsula un altre protocol, el protocolhandshake,que té elcontent_type22.

El client envia i rep diverses estructureshandshake:

  • Envia un missatgeClientHelloespecificant una llista de conjunt de xifrats, mètodes de compressió i la versió del protocol SSL més alta permesa. Aquest també envia bytes aleatoris que seran usats més tard (anomenatsChallenge de ClientoRepte). A més pot incloure l'identificador de la sessió.
  • Després, rep un registreServerHello,en el qual el servidor tria els paràmetres de connexió a partir de les opcions ofertes amb anterioritat pel client.
  • Quan els paràmetres de la connexió són coneguts, client i servidor intercanvien certificats (depenent de les claus públiques de xifrat seleccionades). Aquests certificats són actualmentX.509,però hi ha també un esborrany especificant l'ús de certificats basats enOpenPGP.
  • El servidor pot requerir un certificat al client, perquè la connexió sigui mútuament autenticada.
  • Client i servidor negocien una clau secreta (simètrica) coneguda com amaster secret,possiblement aprofitant el resultat d'un intercanviDiffie-Hellman,o simplement xifrant una clau secreta amb una clau pública que és desxifrada amb la clau privada de cada un. Totes les dades de claus restants són derivats a partir d'aquestmàster secret(i els valors aleatoris generats en el client i el servidor), que són passats a través unafunciópseudoaleatoriacurosament triada.

TLS/SSL posseeixen una varietat de mesures de seguretat:

  • Numerar tots els registres i usant el nombre de seqüència al MAC.
  • Usant un resum de missatge millorat amb una clau (de manera que només amb aquesta clau es pugui comprovar el MAC). Això s'especifica alRFC 2104).
  • Protecció contra diversos atacs coneguts (incloent atacsman-in-the-middle), com els que impliquen un degradat del protocol a versions prèvies (per tant, menys segures), o conjunts de xifrats més febles.
  • El missatge que finalitza el protocolhandshake(Finished) envia unhashde totes les dades intercanviades i vists per ambdues parts.
  • La funció pseudo aleatòria divideix les dades d'entrada en 2 meitats i les processa amb algoritmes hash diferents (MD5iSHA), després realitza sobre ells una operacióXOR.D'aquesta forma es protegeix a si mateix de l'eventualitat que algun d'aquests algorismes es revelin vulnerables en el futur.

Aplicacions

[modifica]

SSL s'executa en una capa entre els protocols d'aplicació comhttp,SMTP,NNTPi sobre el protocol de transportTCP,que forma part de la família de protocolsTCP/IP.Encara que pugui proporcionar seguretat a qualsevol protocol que usi connexions de confiança (tal com TCP), es fa servir en la majoria dels casos al costat de http per formarhttpS.httpS és usat per assegurar pàginesWorld Wide Webper a aplicacions decomerç electrònic,utilitzantcertificats de clau públicaper verificar la identitat dels extrems.

Encara que un nombre creixent de productes clients i servidors poden proporcionar SSL de forma nativa, molts encara no ho permeten. En aquests casos, els nostres usuaris és fer servir una aplicació SSL independent comStunnelper proporcionar xifrat. Això no obstant, l'Internet Engineering Task Forceva recomanar el 1997 que els protocols d'aplicació oferissin una forma d'actualitzar a TLS a partir d'una connexió sense xifrat (plaintext), en comptes d'usar un port diferent per xifrar les comunicacions - això evitaria l'ús d'embolcalls (wrappers) com Stunnel.

SSL també pot ser usat per tunelizar una xarxa completa i crear unaxarxa privada virtual(VPN), com en el cas deOpenVPN.

Història i desenvolupament

[modifica]

Desenvolupat perNetscape,SSL versió 3.0 es va publicar el1996,que més tard va servir com a base per a desenvolupar TLS versió 1.0, un estàndard protocolIETFdefinit per primera vegada en elRFC 2246.Visa, MasterCard,American Expressi moltes de les principals institucions financeres han aprovat SSL per al comerç sobre Internet.

SSL[1]opera d'una manera modular: els seus autors el van dissenyar extensible, amb suport per compatibilitat cap endavant i cap enrere, i negociació entre les parts (peer-to-peer).

Primeres claus febles

[modifica]

Algunes primeres implementacions de SSL podien usarclaus simètriquesamb un màxim de només40-bita causa de les restriccions delgovern dels Estats Unitssobre l'exportació de tecnologia criptogràfica. Aquest govern va imposar una clau de 40-bit prou petita per a ser "trencada" per unatac de força brutaper les agències de seguretat nacional que desitgessin llegir el tràfic xifrat, alhora que representaven un obstacle per a atacants amb menys mitjans. Una limitació similar es va aplicar aLotus Notesen versions per a l'exportació. Després de diversos anys de controvèrsia pública, una sèrie de plets, i el reconeixement del govern dels Estats Units de canvis en la disponibilitat en el mercat de 'millors' productes criptogràfics produïts fora del país, les autoritats van relaxar alguns aspectes de les restriccions d'exportació. La limitació de claus de 40-bit en la seva majoria ha desaparegut. Les implementacions modernes usen claus de 128-bit (o més) per claus de xifrat simètriques.

Estàndards

[modifica]

La primera definició de TLS va aparèixer en elRFC 2246:"The TLS Protocol Version 1.0" (El protocol TLS versió 1.0).

AltresRFCposteriors van estendre TLS:

  • RFC 2712:"Addition ofKerberosCipher Suites to Transport Layer Security (TLS) ". Les famílies de xifrats de 40-bit definides en aquest memo apareixen només per a propòsits de documentació del fet que aquestes famílies de codis de xifrat han estat ja assignades.
  • RFC 2817:"Upgrading to TLS Withinhttp://1.1Arxivat2022-02-02 aWayback Machine.",explica com utilitzar el mecanisme d'actualització enhttp://1.1Arxivat2022-02-02 aWayback Machine.per a iniciar TLS sobre una connexió TCP existent. Això permet al tràfic http insegur i segur compartir el mateix portconegut(en aquest cas,http://enel 80 en comptes dehttps://enel 443).
  • RFC 2818:"http Over TLS", diferència tràfic segur de tràfic insegur mitjançant l'ús d'un 'port de servidor' diferent.
  • RFC 3268:"AES Ciphersuites for TLS". Afegeix la família de xifratAESals xifrats simètrics prèviament existents.
  • RFC 3546:"Transport Layer Security (TLS) Extensions", afegeix un mecanisme per negociar extensions de protocols durant la inicialització de sessió i defineix algunes extensions.
  • RFC 4279:"Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)", afegeix tres conjunts de noves famílies de xifrats perquè el protocol TLS permeti l'autenticació basada en claus prèviament compartides.

TLS 1.1

[modifica]

TLS 1.1 clarifica algunes ambigüitats i afegeix cert nombre de recomanacions. TLS 1.1 és molt similar a TLS 1.0. La principal raó d'aquesta nova versió és un format modificat per a xifrat RSA anterior a l'ús de 'master secret', que és part del missatge d'intercanvi de claus del client (si es fa servir RSA), per utilitzarPKCS #1versió 2.1, en detriment de PKCS #1 versió 1.5 en TLS 1.0. La raó d'aquest canvi és per protegir-se contra atacs descoberts per Daniel Bleichenbacher que podien llançar-se contra servidors TLS 1.0, usant PKCS #1 versió 1.5, que podrien fallar de diferents formes depenent de si el format desxifrat fos correcte o no. Aquest també inclou recomanacions per evitar atacs remots programats. TLS 1.1 està actualment implementat en elnavegador Operai enGnuTLS.

TLS 1.2 és la darrera versió aprovada i, de fet,l'única que es considera realment seguraactualment.

TLS 1.3 és encara un esborrany, s'hi està treballant.

Referències

[modifica]
  1. «Secure Sockets Layer (SSL)», 10-05-2016. [Consulta: 11 maig 2016].

Bibliografia

[modifica]
  • David Wagner andBruce Schneier,Analysis of the SSL 3.0 Protocol, The second USENIX Workshop on Electronic Commerce Proceedings, USENIX Press, novembre 1996, pp29–40.

Vegeu també

[modifica]

Enllaços externs

[modifica]
  • RFC 4346The TLS Protocol, versió 1.1 (abril de 2006)(anglès)
  • RFC 2246- The TLS Protocol, versió 1.0 (1999)(anglès)
  • Centre d'informació de SSL(anglès)