# Adreça generada criptogràficament

Una adreça generada criptogràficament (CGA) és una adreça de protocol d'Internet versió 6 (IPv6) que té un identificador d'amfitrió calculat a partir d'una funció hash criptogràfica. Aquest procediment és un mètode per vincular una clau de signatura pública a una adreça IPv6 al protocol SEND (Secure Neighbor Discovery Protocol).
Característiques
Una adreça generada criptogràficament és una adreça IPv6 l'identificador de la interfície s'ha generat segons el mètode de generació CGA. L'identificador de la interfície està format pels 64 bits menys significatius d'una adreça IPv6 i s'utilitza per identificar la interfície de xarxa de l'amfitrió a la seva subxarxa. La subxarxa està determinada pels 64 bits més significatius, el prefix de subxarxa.
A part de la clau pública que s'ha d'enllaçar a la CGA, el mètode de generació de CGA pren diversos paràmetres d'entrada, inclòs el prefix de subxarxa predefinit. Aquests paràmetres, juntament amb altres paràmetres que es generen durant l'execució del mètode de generació CGA, formen un conjunt de paràmetres anomenat estructura de dades CGA Parameters. S'ha de conèixer el conjunt complet de paràmetres CGA per poder verificar el CGA corresponent.
L'estructura de dades dels paràmetres CGA consta de:
* modifier: un nombre enter aleatori de 128 bits sense signe;
* subnetPrefix: el prefix de 64 bits que defineix a quina subxarxa pertany la CGA;
* collCount: un nombre enter sense signe de 8 bits que ha de ser 0, 1 o 2;
* publicKey: la clau pública com a estructura ASN.1 codificada per DER del tipus SubjectPublicKeyInfo;
* extFields: un camp opcional de longitud variable (longitud per defecte 0).
A més, un paràmetre de seguretat Sec determina la força de la CGA davant atacs de força bruta. Aquest és un nombre enter sense signe de 3 bits que pot tenir qualsevol valor des de 0 fins a (inclosos) 7 i està codificat als tres bits més a l'esquerra de l'identificador d'interfície de la CGA. Com més alt sigui el valor de Sec, més alt serà el nivell de seguretat, però també més temps es triga generalment a generar un CGA. Per comoditat, se suposa que els valors Sec intermedis del pseudocodi següent s'emmagatzemen com a nombres enters sense signe de 8 bits que no poden tenir un valor superior a 7.

## Seguretat

Perquè un atacant faci creure a un client que ha rebut un missatge vàlid d'un determinat CGA que no és propietat de l'atacant, l'atacant ha de trobar una col·lisió hash per als bits rellevants de Hash1 i Hash2 realitzant un atac de força bruta. Si l'atacant troba un conjunt de paràmetres CGA (inclosa una clau pública de la qual l'atacant coneix la clau privada) que es pot utilitzar per generar el mateix CGA que el CGA objectiu, llavors l'atacant pot suplantar la identitat de l'amfitrió que realment és propietari del CGA sense s'està detectant (excepte potser quan el client s'ha posat en contacte amb l'amfitrió abans i nota que la clau pública ha canviat però el CGA no).

## Referències

* ↑ Aura, Tuomas «Cryptographically Generated Addresses (CGA)». RFC standards, 01-03-2005.
* ↑ Aura, Tuomas «Cryptographically Generated Addresses (CGA)» (en anglès). Springer link. Springer [Berlin, Heidelberg], 2003, pàg. 29–43. DOI: 10.1007/10958513_3.
* ↑ «Cryptographically Generated Addresses for Constrained Devices∗» (en anglès). [Consulta: 26 novembre 2023].
* ↑ Cheneau, Tony; Boudguiga, Aymen; Laurent, Maryline «Significantly improved performances of the cryptographically generated addresses thanks to ECC and GPGPU». Computers & Security, 29, 4, 01-06-2010, pàg. 419–431. DOI: 10.1016/j.cose.2009.12.008. ISSN: 0167-4048.