Criptografia de clau pública

De Viquipèdia
Dreceres ràpides: navegació, cerca
Un nombre aleatori gran s'utilitza per fer una parella clau pública/clau privada.
Qualsevol pot xifrar utilitzant la clau pública, però només qui té la clau privada pot desxifrar. La seguretat depèn del secret de la clau privada.
Utilitzant una clau privada per xifrar (i així, signar) un missatge; qualsevol pot comprovar la signatura fent servir la clau pública (i també qualsevol pot desxifrar el missatge). La validesa depèn de la seguretat de la clau privada.
En l'esquema de predistribució de claus de Diffie-Hellman, cada part genera una parella clau pública/privada i distribueix la clau pública. Després d'obtenir una còpia autèntica de les claus públiques dels altres, Alice i Bob poden calcular un secret compartit fora de línia. El secret compartit es pot utilitzar com la clau per a un xifratge simètric.

La criptografia asimètrica, coneguda també com a criptografia de clau pública, és una forma de criptografia en la qual la clau utilitzada per xifrar un missatge difereix de la clau utilitzada per desxifrar-lo. En la criptografia clau pública, un usuari té un parell de claus una clau pública i una clau privada. La clau privada es manté secreta, mentre que la clau pública es pot distribuir a tothom. Els missatges nous s'han de xifrar amb la clau pública del receptor i només es poden desxifrar amb la seva clau privada corresponent. Les claus es relacionen matemàticament, però la clau privada a la pràctica no es pot obtenir a partir de la clau pública.

En canvi en la, criptografia clau secreta, coneguda també com a criptografia simètrica s'utilitza una clau secreta senzilla tant per al xifratge com per al desxifratge. Per utilitzar criptografia simètrica en les comunicacions, tant el remitent com el receptor haurien de saber la clau per endavant, o s'hauria d'enviar junt amb el missatge.

En el cas de criptografia simètrica la metàfora de la clau per parlar del secret que permet accedir al missatge clar és exacta. És com si l'emissor i el receptor posessin dues còpies de la mateixa clau, l'emissor per enviar un missatge el tanca amb clau en una caixa forta i envia la caixa. Llavors el receptor en rebre la caixa pot obrir amb la seva còpia de la clau.

En el cas de la criptografia asimètrica es conserva la paraula però la metàfora queda un xic forçada. És com si algú hagués inventat un nou sistema de panys en el que les claus que permeten tancar la caixa són diferents de les que permeten obrir-la. De fet la clau que permet tancar és més com tancar la porta amb la balda de cop. Qui vol rebre missatges primer ha de distribuir les claus que permeten tancar però no obrir (o caixes que tanquen de cop) llavors ja se li pot enviar un missatge. Es fica a la caixa i es tanca amb la clau que només permet tancar (o es tanca de cop), s'envia la caixa i només qui n'ha enviat la clau de tancar (o la caixa que tanca de cop) podrà obrir. De fet si algú s'equivoca i tanca la caixa (amb la clau de tancar o de cop) ja no pot obrir la porta ell mateix.


Les dues branques principals de criptografia clau pública són:

  • Xifratge amb clau pública - un missatge xifrat amb la clau pública d'un receptor no pot ser desxifrat per ningú tret del receptor que posseeix la clau privada corresponent. Això s'utilitza per assegurar la confidencialitat.
  • Signatura digital - un missatge signat (xifrat) amb la clau privada d'un remitent pot ser verificat(desxifrat) per qualsevol que té accés a la clau pública del remitent, demostrant així que el remitent és qui l'ha signat(xifrat) i que el missatge no s'ha manipulat(perquè la clau pública només pot servir per desxifrar el missatge si s'ha xifrat amb la clau privada que no coneix ningú més i si no ha estat alterat). Això s'utilitza per assegurar l'autenticitat.

Una analogia per al xifratge de clau pública és com d'una bústia tancada amb una ranura de correu. La ranura de correu està exposada i accessible al públic; la seva localització (l'adreça de carrers) és en essència la clau pública. Qualsevol que sap l'adreça de carrers se'n pot anar a la porta i deixar un missatge escrit a través de la ranura; tanmateix, només la persona que posseeix la clau pot obrir la bústia i llegir el missatge.

Una analogia per a signatures digitals és el precintament d'un sobre amb un segell de cera. El missatge el pot obrir qualsevol, però la presència del precintament autentifica el remitent.

Un problema central per a l'ús de criptografia de clau pública és la confiança (idealment prova) de què una clau pública és correcte, és a dir, que pertany a la persona o a l'entitat adequada (és 'autèntica'), i no ha estat manipulada o substituïda per un tercer maliciós. L'enfocament usual a aquest problema és utilitzar una infraestructura de clau pública (PKI), en la qual una o més terceres parts, conegudes com a autoritats de certificació, certifiquen la propietat de parells de claus. Un altre enfocament, utilitzat per PGP, és el "web de confiança" mètode per assegurar autenticitat de parelles claus.

Per ara, les tècniques de clau pública han estat molt més intensives computacionalment que els sistemes purs de xifratge simètric. L'ús assenyat d'aquestes tècniques permet una varietat àmplia d'aplicacions sense patir una penalització computacional prohibitiva. En la pràctica, la criptografia clau pública s'utilitza sovint en combinació amb mètodes de clau privada per raons de rendiment. Per al xifratge, el remitent xifra el missatge amb un algorisme de clau privada que utilitza una clau aleatòriament generada, i aquella clau aleatòria es xifra llavors amb la clau pública del receptor. Per a les signatures digitals, el remitent resumeix el missatge (fent servir una funció resum criptogràfica) i llavors signa el "valor resum" que en resulta. Abans de verificar la signatura, el receptor també calcula el resum del missatge, i compara aquest valor resum amb el valor resum signat per comprovar que el missatge no s'ha manipulat.

Història[modifica | modifica el codi]

Durant la major part de la història de criptografia, una clau s'havia d'establir i mantenir absolutament secreta per endavant utilitzant un mètode segur però no criptogràfic; per exemple, una reunió de cara a cara o un missatger de confiança. Hi ha un cert nombre de dificultats pràctiques significatives en aquest enfocament a la distribució de claus. La criptografia de clau pública s'inventà per encarar aquests desavantatges - amb la criptografia de clau pública, els usuaris es poden comunicar de manera segura sobre un canal insegur sense haver d'estar d'acord amb una clau compartida per endavant.

El 1874, un llibre escrit per William Stanley Jevons [1] descrivia la relació entre les funcions de sentit únic i la criptografia i analitzava específicament el problema de Factorització (que és el que més tard es faria servir en el sistema RSA). El juliol de 1996, en Solomon W. Golomb feia els següents comentaris sobre el llibre de Jevons:

«

Al seu llibre Els Principis de Ciència: Un Tractat sobre Mètode Lògic i Científic, escrit i publicat durant els anys 1890,[2] William S. Jevons observava que hi ha moltes situacions on l'operació 'directa' és relativament fàcil, però l'operació 'inversa' és significativament més difícil. Un exemple esmentat breument és que xifrar és fàcil mentre desxifrar no és. En la mateixa secció del Capítol 7: La introducció titulava 'Inducció una Operació Inversa', es dedica especial atenció al principi de què la multiplicació d'enters és fàcil, mentre que trobar els factors (primers) del producte és molt més didícil. Així, Jevons preveia un tret clau de l'Algorisme de RSA per a la criptografia de clau pública, encara que certament no va inventar el concepte de criptografia clau pública.

»
— Solomon W. Golomb

[3]

La primera invenció[4] d'algorismes clau asimètrics la feien James H. Ellis, Clifford Cocks, i Malcolm Williamson a GCHQ al regne Unit durant els primers anys de la dècada de 1970; aquestes invencions foren el què més tard s'ha conegut com a intercanvi de claus de Diffie-Hellman, i un cas particular de RSA. Els criptògrafs del GCHQ es referien a aquesta tècnica com " xifratge no secret". Aquestes invencions no es revelaven públicament a l'època, i el fet que s'havien desenvolupat es mantingué secret fins al 1997.

El 1976, Whitfield Diffie i Martin Hellman, publicaren un sistema de xifratge de clau asimètrica i (influïts pel treball de Ralph Merkle sobre la distribució pública de claus) revelen un mètode per acordar públicament claus. Aquest mètode d'intercanvi exponencial de la clau, que més tard es coneixerà com el mètrode d'intercanvi de claus de Diffie-Hellman, va ser el primer mètode pràctic publicat per establir una clau secreta compartida sobre un canal de comunicacions desprotegit sense utilitzar un secret compartit previ. La tècnica d'acordar públicament claus de Merkle es coneixeria com els Trencaclosques de Merkle, i es publicà el 1978.

El 1977 Rivest, Shamir i Adleman reinventaven una generalització del mètode de Cocks, tots ells estaven llavors al MIT. Els últims autors publicaren el seu treball el 1978, i l'algorisme esdevingué conegut com a RSA. El RSA fa servir la exponeciació mòdul un producte de ddon nombres primers grans per xifrar i per desxifrar, realitzant tant el xifratge de clau pública com la signatura digital de clau pública, i la seva seguretat està lligada a la dificultat que se suposa que té la factorització d'enters grans, un problema per al qual no hi ha cap tècnica general eficient (és a dir ràpida de forma pràctica) coneguda.

Des dels anys 1970, s'han desenvolupat un gran nombre i una gran i varietat de xifratges, signatures digitals, distribucions de claus, i altres tècniques en el camp de criptografia de clau pública. El criptosistema 'ElGamal (inventat per Taher ElGamal llavors a Netscape) confia en la dificultat (similar, i relacionada) del problema de logaritme discret, com també ho fa el DSA que hi està molt relacionat i que va ser desenvolupat per NSA i NIST. La introducció de la criptografia de corba el·líptica per Neal Koblitz el mig el 1980 ha produït una família nova d'algorismes de clau pública anàlegs. Encara que matemàticament més complex, sembla que les corbes el·líptiques proporcionen un camí més eficient que el logaritme discret, especialment respecte a la mida de la clau.

Seguretat[modifica | modifica el codi]

Per alguns esquemes de xifratge es pot demostrar que són segurs sobre la base de suposar la dificultad d'un determinat problema matemàtic com ara la descomposició en factors enters dels nombres que són producte de dos nombres primers molt grans o el càlcul del logaritme discret. Fixeu-vos que aquí la paraula "segur" té un significat matemàtic precís, i hi ha múltiples definicions (significatives) diferents de què vol dir que un esquema de xifratge sigui segur. La definició "correcta" depèn del context en què es desplegarà l'esquema.

A diferència del que passa amb el xifratge de Vernam, cap esquema de xifratge de clau pública no pot ser segur contra tafaners amb potència computacional il·limitada. Les proves de seguretat en aquest cas es mantenen respecte a adversaris computacionalment limitats, i donen garanties (relatives a una suposició matemàtica particular) del tipus: "l'esquema no pot ser trencat utilitzant un ordinador de sobretaula durant 1000 anys". L'aplicació més òbvia d'un sistema de xifratge de clau pública és la confidencialitat; un missatge que un remitent xifra utilitzant la clau pública del receptor només pot ser desxifrat amb la clau privada (associada a aquesta clau pública) del receptor.

Els algorismes de signatura digital de clau pública es poden utilitzar per a l'autenticació del remitent i justificant de recepció. Per exemple, un usuari pot xifrar un missatge amb la seva pròpia clau privada i enviar-lo. Si un altre usuari el pot desxifrar amb èxit utilitzant la clau pública corresponent, això proporciona la garantia de què el primer usuari (i no un altre) l'ha enviat. A la pràctica, es calcula un resum criptogràfic del missatge, es xifra amb la clau privada i s'envia junt amb el missatge (xifrant-ho altre cop tot plegat amb la clau pública del receptor) això ocasiona una signatura criptogràfica del missatge. El receptor llavors, un cop desxifrat el missatge amb la seva clau privada, pot verificar la integritat de missatge i l'origen calculant el valor del resum del missatge rebut i comparant-lo amb la signatura descodificada (el valor resum original). Si el resum enviat i el calculat pel receptor no lliguen, llavors el missatge rebut no és idèntic al missatge que el remitent "signava", o la identitat del remitent és incorrecta.

Per aconseguir autenticació, justificant de recepció, i confidencialitat, el remitent xifra primer el missatge utilitzant la seva clau privada, llavors es realitza un segon xifratge utilitzant la clau pública del receptor.

Aquestes característiques són útils per a moltes altres aplicacions, de vegades sorprenents, com per exemple els diners digitals, generació de claus autenticades per clau, claus compartides per múltiples participants, etc.

Consideracions pràctiques[modifica | modifica el codi]

Analogia postal[modifica | modifica el codi]

Una analogia que es pot fer servir per entendre els avantatges d'un sistema asimètric és imaginar dues persones, Alice i Bob, enviant un missatge secret a través del correu públic. En aquest exemple, Alice vol enviar un missatge secret a Bob, i espera una resposta secreta de Bob.

Amb un sistema clau simètrica, Alice primer posa el missatge secret en una caixa, i tanca la caixa amb un cadenat del qual en té una clau. Llavors envia la caixa a Bob a través del correu regular. Quan Bob rep la caixa, fa servir una còpia idèntica de la clau d'Alice (que ha obtingut d'alguna manera prèviament, potser en una trobada cara a cara) per obrir la caixa, i llegir el missatge. Bob llavors pot utilitzar el mateix cadenat per enviar la seva resposta secreta.

En un sistema clau asimètric, Bob i Alice tenen cadenats que s'obren amb claus diferents. Primer, Alice demana a Bob que li envií el seu cadenat obert a través del correu regular, conservant ell la seva clau. Quan Alice el rep l'utilitza per tancar una caixa que conté el seu missatge, i envia la caixa tancada a Bob. Bob llavors pot obrir la caixa amb la seva clau i llegir el missatge d'Alice. Per respondre, en Bob anàlogament ha d'aconseguir el cadenat obert d'Alice amb el que tancar la caixa abans de retornar-li.

L'avantatge crític en un sistema de clau asimètrica és que Bob i Alice mai no necessiten enviar una còpia de les seves claus l'un a l'altre. Això evita que un tercer (potser, en l'exemple, un treballador postal corrupte) copiï una clau mentre és en trànsit, permetent que quest tercer pugui espiar tots els missatges futurs enviava entre Alice i Bob. Així en l'escenari de clau pública, Alice i Bob no necessiten confiar en el servei postal. A més a més, si Bob està distret i permet que algú altre copiï la seva clau privada, els missatges d'Alice a Bob estaran compromesos, però els missatges d'Alice a qualsevol altra gent romandrien secrets, ja que l'altra gent estaria proporcionant cadenats diferents a Alice.

En una altra classe de sistemes de clau asimètrica, Bob i Alice que tenen cadenats separats.

Primer, Alice posa el missatge secret en una caixa, i tanca la caixa que fent servir un cadenat del qual només ella en té la clau. Llavors envia la caixa a Bob a través de correu regular.

Quan Bob rep la caixa, afegeix el seu propi cadenat a la caixa, i la retorna a Alice.

Quan Alice rep la caixa amb els dos cadenats, treu el seu cadenat i el retorna a Bob. Quan Bob rep la caixa amb només el seu cadenat, Bob pot obrir la caixa amb la seva clau i llegir el missatge d'Alice.

Aquest protocol de tres passos es fa servir habitualment durant l'intercanvi de claus que després es faran servir amb un algorisme de xifratge simètric.

Algorismes actuals—dues claus connectades[modifica | modifica el codi]

No tots els algorismes de clau asimètrica operen precisament d'aquesta manera. Els més comuns tenen la propietat de què Alice i Bob cadascun té dues claus, un per a xifrar i una per a desxifrar. En un esquema de xifratge de clau asimètric segur, la clau privada no hauria de ser deduïble de la clau pública. Això es coneix com xifratge de clau pública, ja que una clau de xifratge es pot publicar sense comprometre la seguretat de missatges xifrats amb aquella clau.

En l'analogia de més amunt, en Bob podria publicar instruccions en com fer un pany ("clau pública"), si un cop fet el pany és impossible (per l'estat de la ciència) deduir d'aquestes instruccions com fer una clau que obri aquell pany ("clau privada"). Aquells que desitgin enviar missatges a Bob poden utilitzar la clau pública per xifrar el missatge; Bob usa la seva clau privada per desxifrar-lo.

La parella de claus també es pot utilitzar de forma inversa; la clau privada es pot utilitzar per xifrar missatges que només la clau pública pot desxifrar. .[5] Això és útil per a aplicacions on, en comptes de confidencialitat,l'objectiu és integritat, autenticitat, i/o transparència, com en la signatura digital.

Febleses[modifica | modifica el codi]

Naturalment, hi ha una possibilitat que algú podria "triar" el pany de Bob o Alice. Entre algorismes de xifratge de clau simètrica, només el xifratge de Vernam es pot demostrar que és segur contra qualsevol adversari, no importa quanta potència de càlcul tingui disponible. Desafortunadament, no hi ha cap esquema de clau pública amb aquesta propietat, ja que tots els esquemes de clau pública són susceptibles d'atac per la força bruta. Aquests atacs són impracticables si la quantitat de càlcul necessari per tenir èxit (qualificat 'de factor de treball' per Claude Shannon) és fora de l'abast dels atacants potencials. El factor de treball es pot augmentar simplement escollint una clau més llarga. Uns altres atacs poden ser més eficaços que el de la força bruta, i se'n coneixen alguns per alguns algorismes de xifratge de clau pública. Tant pel RSA com pel ElGamal es coneixen atacs que són molt més ràpids que l'enfocament de la força bruta. Tals hipòtesis han canviat tant amb el cost decreixent de la potència informàtica, com per noves descobertes matemàtiques.

A la pràctica, aquestes inseguretats es poden evitar escollint mides clau prou grans perquè l'atac millor conegut necessiti tant de temps que no li valgui la pena a cap adversari dedicar el temps i els diners a intentar trencar el codi. Per exemple, si l'estimació del temps per trencar un esquema de xifratge és de mil anys, i s'utilitza per xifrar la targeta de crèdit, segurament el sistema seria prou segur, ja que el temps necessari de desxifratge serà bastant més llarg que la vida útil de la informació, que caduca després d'uns quants anys. Típicament, la mida de clau necessitada és molt més llarga per a algorismes de clau pública que per a algorismes clau simètrica.

A més a més de la fortalesa algorísmica d'una parella de claus particular, s'ha de tenir en compte la seguretat de la jerarquia de certificació en desplegar sistemes clau pública. Aquesta jerarquia respon de les identitats assignades a claus privades específiques. Els certificats digitals de clau pública normalment són vàlids per uns quants anys alhora, així les claus privades associades s'han de conservar de manera segura a llarg termini. Quan una clau privada alta en la jerarquia es veu compromesa o és revelada accidentalment, tots els parells de claus per sota seu en la jerarquia s'han de suposar que estan compromesos i s'han de regenerar. De vegades, els sistemes de criptografia de clau transitòria es poden utilitzar per encarar aquests assumptes. En els sistemes de clau transitoria, les parelles de claus RSA s'assignen per intervals de tempes de curta durada, en comptes d'assignar-se a individus, servidors, o organitzacions. Les claus privades en l'esquema transitori són vàlides només per uns quants minuts abans que es destrueixin i es canviïn per claus privades noves. En sistemes de clau transitòria, no hi ha cap secret per protegir a llarg termini ni cap punt senzill de fallada de la jerarquia sencera de claus.

S'han trobat febleses essencials en uns quants algorismes antics que prometien ser de clau asimètrica. L'algorisme Merkle-Hellman va resultar insegur quan es varen descobrir nous atacs. Últimament, alguns atacs basats en mesures curoses de la quantitat exacta de temps que el maquinari tarda a xifrar el text clar s'han utilitzat per simplificar la recerca probabilística de claus de desxifratge (vegeu atac per canal auxiliar). Així, el mer ús d'algorismes de clau asimètrica no garanteix la seguretat; és una àrea de recerca activa descobrir i protegir-se contra atacs nous.

Una altra vulnerabilitat potencial en la seguretat en fer servir claus asimètriques és la possibilitat d'un atac de l'home mitjancer, en el qual la comunicació de claus públiques és interceptada per un tercer i es modifica per proporcionar claus públiques diferents en canvi. També s'han d'interceptar missatges xifrats i respostes, desxifrar-les i tornar-les a xifrar per part de l'atacant que utilitza les claus públiques correctes per a segments de comunicació diferents (és a dir el segment que va des de l'emissor fins al mitjancer i des del mitjancer fins al receptor) en tots els missatges per evitar cap sospita. Aquest atac pot semblar que sigui difícil d'implementar en la pràctica, però no és impossible en utilitzar mitjans de comunicació insegurs (xarxes p. ex. públiques com les comunicacions d'Internet o sense cables). Un membre corrupte del personal del ISP de Alice o de Bob el podria trobar extraordinàriament senzill.

Un enfocament per evitar aquests atacs és l'ús d'una autoritat de certificació, un tercer de confiança que és responsable de verificar la identitat d'un usuari del sistema i publicar un certificat digital, que és un bloc signat de dades que manifesten que aquesta clau pública pertany a aquella persona, companyia o entitat. Aquest enfocament també té febleses. Per exemple, s'ha de confiar que l'autoritat de certificació hagi comprovat pròpiament la identitat del propietari de la clau i la correcció de la clau pública quan publica un certificat, i s'ha donat d'alta correctament als participants de la comunicació abans que es pugui utilitzar. Un atacant que podria subvertir l'autoritat de certificació que publiqués un certificat per a una clau pública falsa podria muntar un atac de l'home mitjancer tan fàcilment com si l'esquema de certificat no s'utilitzés pas. Malgrat els seus problemes, aquest enfocament es fa servir àmpliament; els exemples inclouen el SSL i el seu successor, TLS, que s'utilitzen habitualment per proporcionar seguretat en navegadors web, per exemple, per enviar de manera segura detalls de targeta de crèdit a una botiga en línia.

Cost computacional[modifica | modifica el codi]

La majoria dels algorismes clau pública són relativament costosos computacionalment en comparació amb molts algorismes de clau simètrica d'aparent seguretat equivalent. Això té implicacions importants per al seu ús pràctic. La majoria es fan servir en criptosistemes híbrids per raons de rendiment; en aquests criptosistemes, una clau secreta compartida ("clau de sessió") es genera per un participant i llavors aquesta clau de sessió molt més breu és xifrada per la clau pública de cada receptor. Cada receptor utilitza la clau privada corresponent per desxifrar la clau de sessió. Una vegada que totes les parts han obtingut la clau de sessió poden utilitzar un algorisme simètric molt més ràpid per xifrar i desxifrar missatges.

Associació de claus públiques amb identitats[modifica | modifica el codi]

El vincle entre una clau pública i el seu 'propietari' ha de ser correcte, si no l'algorisme pot funcionar perfectament i tot i així ser totalment insegur en la pràctica. Com gairebé tot en criptografia, els protocols utilitzats per establir i verificar aquest vincle tenen importancia crítica. L'associació entre una clau pública i el seu propietari es fa habitualment amb protocols que implementen una infraestructura de clau pública; aquests deixen la responsabilitat de verificar formalment la validesa de l'associació a un tercer en el qual es confia, ja sigui en la forma d'una autoritat de certificació jeràrquica (p. ex. X.509), un model de confiança local (p. ex. SPKI), o un esquema de web de confiança (p. ex., la costruida originalment a PGP i GPG i que fins a cer punt encara és utilitzable). Més enllà de la garantía criptogràfica dels protocols mateixos, l'associació entre la clau pública i el seu propietari és en definitiva una qüestió de judici subjectiu per part del tercer de confiança, perquè la clau és una entitat matemàtica, metre que el propietari i la connexió entre el propietari i la clau no ho són. Per aquest motiu, el formalisme de la infraestructura de clau pública ha de subministrar una descripció explícita de la política que se segueix per fer aquest judici. Per exemple, el complex i mai completament implementat estàndard X.509 permet que una autoritat de certificació identifiqui la seva política per mitjà d'un identificador d'objecte que funciona com un índex en un catàleg de politiques registrades. Les polítiques poden existir per a diferents finalitats, des de l'anonimat fins al secret militar.

Relació amb els esdeveniments del món real[modifica | modifica el codi]

Una clau pública serà coneguda per un conjunt gran i, en la pràctica, desconegut d'usuaris. Tots els esdeveniments que exigeixen revocació o substitució d'una clau pública poden tardar molt temps a tenir ple efecte amb tots els que s'han d'informar (és a dir tots els usuaris que posseeixen aquella clau). Per aquesta raó, els sistemes que han de reaccionar davant d'esdeveniments en temps real (p. ex. sistemes crítics de seguretat) no haurien d'utilitzar xifratge de clau pública si no és prenent gran cura. Hi ha quatre assumptes d'interès:

Privilegi de revocació clau[modifica | modifica el codi]

La revocació maliciosa (o errònia) d'algunes, o totes, de les claus del sistema possiblement, o si són totes, certament, pot provocar una fallada total del sistema. Si les claus públiques es poden revocar de forma individual, aquesta possibilitat hi és. Ara bé, hi ha enfocaments de disseny que poden reduir les oportunitats pràctiques de què això passi. Per exemple, a través de certificats, es pot crear el que s'anomena un "component director"; un director d'aquest tipus podria ser "Alice i Bob tenen Autoritat de Revocació". Ara, només Alice i Bob (en concret) poden revocar una clau, i ni Alice ni Bob poden revocar claus tots sols. Però, a partir d'aquest moment, per revocar una clau cal que tant Alice com Bob estiguin disponibles, i això crea un problema de disponibilitat. En termes concrets, desde el punt de vista de la seguretat, ara hi ha un punt de fallada singular en el sistema de revocació de claus públiques. Un atac amb èxit del tipus Denegació de Servei contra Alice o Bob (o tots dos) bloquejarà qualsevol sol·licitud de revocació. De fet, qualsevol partició de l'autoritat entre Alice i Bob tindrà aquest efecte, independentment de com es dugui a terme.

Com que el director que té autoritat per revocar claus es concentra un poder molt important, els mecanismes que es fan servir per controlar-lo han de trobar un equilibri entre involucrar tants participants com sigui possible (per guardar-se'n d'atacs maliciosos d'aquest tipus) i al mateix temps involucrar tan pocs participants com sigui possible (per garantir que una clau es pot revocar sense un retard perillós). Els certificats de clau pública que tenen una data de caducitat no són satisfactoris en el sentit que la data de caducitat pot no correspondre's amb la necessitat de revocació del món real, però pel cap baix, aquests certificats no necessiten ser resseguits al llarg de tot el sistema ni tampoc que tots els usuaris estiguin en contacte constant amb el sistema a tothora.

Distribució d'una nova clau[modifica | modifica el codi]

Un cop s'ha revocat una clau, o quan s'afegeix un nou usuari al sistema, s'ha de distribuir una nova clau d'alguna forma predeterminada.

Suposant que la clau de la Carol ha estat revocada (per exemple automàticament un cop ha depassat la data de caducitat, o abans, per un problema amb la clau privada de la Carol). Fins que no s'ha distribuït una nova clau, la Carol està de forma efectiva fora de contacte. Ningú podrà enviar-li missatges sense violar els protocols del sistema (per exemple, sense una clau pública vàlida ningú pot enviar-li un missatge xifrat), i pel mateix motiu els missatges que ella envia no poden ser signats. O, en altres paraules, la "part del sistema" controlada per la Carol essencialment no està disponible. En aquests tipus de sistemes els requeriments de seguretat tenen un nivell superior que els requeriments de disponibilitat.

Es pot deixar el poder de crear (i certificar) claus així com el del de revocar-les en mans de cada usuari, el PGP original així ho feia, però això obre problemes d'operació i enteniment de l'usuari. Per motius de seguretat, aquest enfocament té considerables dificultats; si més no alguns usuaris es despistaran, confondran o estaran inactius. Per una banda, un missatge revocant un certificat de clau pública s'hauria d'escampar tan ràpid com sigui possible, mentre que per altra banda, parts del sistema poden quedar inoperatives fins que es pugui instal·lar una nova clau. La finestra de temps es pot reduir a zero de manera òbvia lliurant sempre una nova clau juntament amb el certificat que revoca la vella, però això requereix la col·laboració entre les dues autoritats, la que revoca claus i la que genera les noves.

És més probable una fallada àmplia del sistema si el director que emet claus falla emetent claus inadequades. Aquest és un exemple d'exclusió mútua comú; un determinat disseny pot fer que la fiabilitat d'un sistema sigui alta, però només al preu de què la disponibilitat del sistema sigui baixa, i viceversa.

Difusió de la revocació[modifica | modifica el codi]

La notificació del certificat de revocació d'una clau s'ha de difondre a tots aquells que potencialment podria tenir-lo tant ràpid com sigui possible.

Hi ha dos medis per difondre informació (per exemple en aquest cas la revocació d'una clau) en un sistema distribuït: o bé la informació s'envia cap als usuaris finals a partir d'un punt central (o d'uns punts centrals). El que es diu empènyer la informació. O bé s'obliga als usuaris a preguntar als punts centrals , cosa que es diu estirar la informació.

Enviar la informació és la solució més senzilla d'enviar un missatge a tots els participants. Però, no hi ha forma de saber que tots els participants de fet rebran el missatge, i si el nombre de participants és gran i algunes de les seves distàncies físiques o de xarxa també són grans, la probabilitat d'un èxit complet (allò que idealment es demana a un sistema de seguretat) serà més aviat baixa. En un determinat estat d'actualització, el sistema és espacialment vulnerable als atacs de denegació de servei, ja que la seguretat s'ha trencat i la finestra de vulnerabilitat continuarà existint durant tot el temps que passi mentre alguns usuaris no hagin aconseguit prendre la paraula. En altres paraules, enviar missatges de revocació de certificats no és ni fàcil d'assegurar ni gaire fiable.

L'alternativa a enviar informació a tothom és obligar que tothom pregunti. En l'extrem, tots els certificats contenen totes les claus que cal per verificar que la clau pública d'interès (és a dir, la que pertany a l'usuari al qual es vol enviar un missatge o del que es vol comprovar la signatura) encara és vàlida. En aquest cas, com a mínim es bloquejarà algun ús del sistema si l'usuari no pot accedir al servei de verificació (és a dir un dels sistemes que poden establir la validesa actual de la clau d'un altre usuari). Altre cop, aquesta mena de sistema es pot fer tan fiable com els vulgui, al preu de rebaixar la seguretat (com més servidors s'ha de comprovar per la possibilitat d'una revocació de la clau, més llarga serà la finestra de vulnerabilitat).

Un altre possibilitat és fer servir un servei de verificació d'alguna forma menys fiable però més segur, però incloure-hi una data de caducitat a cada una de les fonts de verificació. Quant ha de durar aquest període ha de ser una decisió que incorpori l'equilibri entre disponibilitat i seguretat que s'ha d'haver decidit per endavant, en el moment del disseny del sistema.

Recuperació després d'haver-se filtrat una clau[modifica | modifica el codi]

Suposant que el director autoritzat a revocar una clau ha decidit que una clau determinada s'ha de revocar. En molts cassos això passa després del fet, per exemple, de què esdevé conegut que en algun moment del passat ha passat quelcom que ha posat en perill la clau privada. Es denota per T el temps en el qual es decideix que això ha passat.

Això té dues implicacions. Els missatges xifrats amb la clau pública corresponent (ara o en el passat) ja no es pot suposar que siguin secrets. Segon, les signatures fetes amb la ja no fiable clau privada després del temps T, ja no es pot suposar que siguin autèntics sense informació addicional sobre qui, on, quan, etc., des del fet que han dut la signatura digital. Això no sempre estarà disponible, i per tant totes aquestes signatures digitals seran menys que creïbles.

La pèrdua del secret i/o autenticitat, fins i tot per un únic usuari, té implicacions d'abast de tot el sistema, i per tant s'ha d'establir una estratègia per la seva recuperació. Aquesta estratègia ha de determinar qui té autoritat i sota quines condicions per revocar un certificat de clau pública, com divulgar la revocació, però també, idealment, com tractar amb els missatges signats amb la clau des del temps T (que en rares ocasions es coneixerà amb precisió). Als missatges enviats a quest usuari (que per ser desxifrats necessiten la corresponent clau privada, ara filtrada) s'han de considerar també filtrats, no importa quan varen ser enviats.

Aquest tipus de procediment de recuperació pot ser força complex, i mentre es du a terme el sistema possiblement serà vulnerable en enfront d'atacs de tipus denegació de servei entre altres coses.

Exemples[modifica | modifica el codi]

Els exemples de tècniques de clau asimètrica ben considerades per a diversos propòsits inclouen:

Exemples d'algorismes de clau asimètrica notables tot i que insegurs inclouen:

Exemples de protocols que fan servir algorismes de clau asimètrica inclouen:

Notes[modifica | modifica el codi]

  1. Jevons, William Stanley, The Principles of Science: A Treatise on Logic and Scientific Method, Macmillan & Co., London, 1874, 2nd ed. 1877, 3rd ed. 1879. Reprinted with a foreword by Ernst Nagel, Dover Publications, New York, NY, 1958.
  2. The 1890s date for the publication of Jevons' book in this quotation is incorrect.
  3. Solomon W. Golomb, On Factoring Jevons' Number, CRYPTOLOGIA 243 (July 1996).
  4. La NSA també ha reivindicat haver inventat la criptografía de clau pública, en la dècada del 1960s; però, en la actualitat (2004) hi ha poques proves que donin suport a aquesta reivindicació Vegeu aquí.
  5. Public Key Cryptography

Referències[modifica | modifica el codi]

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]