L-24 kelma: x'inhi identità kriptografika
Identità kriptografika mhijiex password: l-ebda server ma jżommha u ma tistax tiġi rkuprata. Spjegazzjoni didattika tal-mekkaniżmu BIP39, għaliex eżattament erbgħa u għoxrin kelma, u liema piż reali jaqa' fuq min jipposjedihom.
Id-differenza bejn password u identità
Password, fil-mudell klassiku tal-internet, mhijiex l-identità tal-utent. Hija prova. L-utent għandu identità — isem, email, numru tal-klijent — u, biex jipprova lil server li huwa min jgħid li huwa, jippreżenta password li s-server iqabbel ma' marka li kellu maħżuna. Jekk il-marki jaqblu, is-server jippermetti s-sessjoni. Jekk il-password tintilef, l-utent jibqa' l-istess utent; dak li jitlef huwa l-prova, u teżisti proċedura ta' rkupru — email fl-indirizz irreġistrat, mistoqsija ta' sigurtà — biex tiġi rrestawrata.
Identità kriptografika taħdem b'mod differenti. Mhijiex kredenzjali li xi ħadd iqabbel ma' marka maħżuna; hija sigriet matematiku sħiħ fih innifsu. Ma jimpurtax fejn qiegħed — fuq karta, f'apparat, anke f'server ta' ħaddieħor —: l-identità teżisti minħabba l-matematika tagħha, mhux minħabba min jivvalidaha. Hawnhekk tidher proprjetà simili għal dik li rajna f'«X'inhu verament SHA-256»: il-pussess ma jiġix ippruvat billi turi s-sigriet, imma billi tużah biex tiffirma. Il-firma hekk prodotta kulħadd jista' jivverifikaha b'valur pubbliku li huwa derivat matematikament mis-sigriet innifsu, mingħajr il-ħtieġa li tkun taf is-sigriet, u mingħajr ma jintervjeni terz fil-verifika. Min għandu s-sigriet, huwa l-identità; min jitilfu, ma jibqax. Is-sentenza hija kategorika: m'hemm ħadd lil min titlob biex jagħtik l-identità lura. Dak il-xi ħadd ma jeżistix, għax ma kellux f'idu fl-ewwel lok.
Dak li jirrappreżentaw erbgħa u għoxrin kelma
L-identità kriptografika hija s-soltu rrappreżentata minn sigriet matematiku ta' tnejn u tletin byte — mitejn u sitta u ħamsin bit. Numru li diffiċli tiftakru u aktar u aktar diffiċli tiktbu mingħajr żbalji. L-industrija kriptografika solviet din il-problema fl-2013 bi standard żgħir u eleganti msejjaħ BIP39: mod kif tirrappreżenta dawk il-mitejn u sitta u ħamsin bit bħala sekwenza ta' erbgħa u għoxrin kelma meħuda minn lista uffiċjali ta' elfejn u tmienja u erbgħin. L-aritmetika ta' wara taqbel b'eleganza; min irid jaraha fid-dettall isibha fil-ġenb.
Il-kont mhuwiex dekorattiv. Jekk xi ħadd jikteb tlieta u għoxrin kelma b'mod korrett u jiżbalja fl-erbgħa u għoxrin waħda, iċ-checksum jiskoprih: is-software jgħidlu "din is-sekwenza mhijiex valida". Jekk xi ħadd jikteb l-erbgħa u għoxrin kollha b'mod korrett, is-software jidderiva l-istess identità mingħajr ambigwità. L-għażla tal-lista tal-kliem hija wkoll intenzjonata: il-kliem fil-vokabularju BIP39 huma qosra, distinti minn xulxin, mingħajr dijakritiċi, magħżula biex jimminimizzaw konfużjonijiet fonetiċi u ortografiċi. Huwa vokabularju ddisinjat biex jiġi mfakkar, miktub u ddettat mill-bnedmin mingħajr telf.
Mill-frażi għaċ-ċavetta
L-erbgħa u għoxrin kelma mhumiex iċ-ċavetta kriptografika li tiffirma l-messaġġi. Huma rappreżentazzjoni li tista' tiġi rkuprata tal-entropija oriġinali li, permezz ta' proċess deterministiku msejjaħ PBKDF2, tinbidel f'żerriegħa (seed) ta' erbgħa u sittin byte. Minn dik iż-żerriegħa jidderivaw, ukoll b'mod deterministiku, iċ-ċwievet kriptografiċi konkreti li l-utent juża: ċavetta privata biex jiffirma u ċavetta pubblika korrispondenti li tiġi ppubblikata biex tivverifika l-firem. L-istess mekkaniżmu f'sistemi differenti: il-kriptovaluti jużaw il-kurva secp256k1; il-protokoll Signal u bosta sistemi moderni jużaw Ed25519 fuq il-kurva Curve25519. Għal kurva konkreta bħal Ed25519, l-istandards BIP32 u SLIP-0010 jieħdu dik iż-żerriegħa ta' erbgħa u sittin byte u jidderivaw, b'mod deterministiku, it-tnejn u tletin byte li jikkostitwixxu ċ-ċavetta tal-iffirmar effettiva — l-istess tnejn u tletin byte li bihom jibda l-eżempju tal-kodiċi fit-taqsima li jmiss.
Din hija l-forma standard li biha l-industrija kollha tippreżenta l-mekkaniżmu lill-utent —portafolli tal-kriptovaluti, maniġers tal-identità deċentralizzata, Signal fil-parti tal-identità persistenti tiegħu, Solo2 fosthom—: l-utent, fil-prattika, qatt ma jara ż-żerriegħa jew iċ-ċwievet derivati. Juri l-erbgħa u għoxrin kelma meta joħloq l-identità tiegħu u, b'mod fakultattiv, iniżżilhom fuq karta. Il-kliem imbagħad jivvjaġġa bejn it-tagħmir tiegħu meta jkun irid jemigra l-identità: idaħħalhom fl-applikazzjoni l-ġdida, l-applikazzjoni tidderiva l-istess żerriegħa, l-istess ċwievet, l-istess identità. Huwa mekkaniżmu portabbli, kriptografikament sod u, fil-limiti tar-raġonevoli, faċli biex tiftakru.
Kif tiffirma biċ-ċavetta (pinzellata Zig)
F'Zig, ladarba jkollok iż-żerriegħa tat-tnejn u tletin byte derivata mill-erbgħa u għoxrin kelma, l-iffirmar ta' messaġġ b'Ed25519 jidħol fi ftit linji:
const std = @import("std");
const Ed25519 = std.crypto.sign.Ed25519;
// 'semilla' son los 32 bytes derivados de las 24 palabras.
const par = Ed25519.KeyPair.create(semilla);
// Firmar un mensaje con la clave privada:
const mensaje = "Este mensaje lo escribí yo.";
const firma = try par.sign(mensaje, null);
// Cualquiera con la clave pública del par puede verificar:
try Ed25519.Signature.verify(firma, mensaje, par.public_key);
L-operazzjoni tal-iffirmar tipproduċi erbgħa u sittin byte —imsejħa firma— li setgħu jiġu ġġenerati biss miċ-ċavetta privata korrispondenti. Il-verifika hija pubblika: kull min għandu ċ-ċavetta pubblika jista' jiċċekkja li l-firma tikkorrispondi mal-messaġġ. Mingħajr iċ-ċavetta privata, ħadd ma jista' jipproduċi firma valida għal dak il-messaġġ; biċ-ċavetta pubblika, kulħadd jista' jiskopri jekk firma hijiex valida. Dik l-asimmetrija hija dik li tippermetti lill-firmatarju juri l-awtur tiegħu mingħajr ma jaqsam is-sigriet.
L-eżempju preċedenti huwa l-verżjoni minima tal-manwal. Fil-kodiċi reali ta' Solo2, il-katina tgħaddi minn żewġ fajls, wieħed f'JavaScript li jgħix fil-browser tal-utent u jibni mill-ġdid l-entropija mill-erbgħa u għoxrin kelma, u ieħor f'Zig fil-librerija zcatcrypto li jieħu dik l-entropija u joħroġ il-muftieħ kriptografiċi speċifiċi. Nibdew min-naħa tal-browser:
// solo2/web-app/js/lib/bip39.js
async function mnemonicToEntropy(mnemonic, lang) {
const validation = await validateMnemonic(mnemonic, lang);
if (!validation.valid) {
return { entropy: null, valid: false, error: validation.error };
}
const wordlist = WORDLISTS[lang || 'en'];
const words = mnemonic.trim().split(/\s+/);
// Cada palabra aporta 11 bits (su índice en la lista de 2048).
let bits = '';
for (let i = 0; i < words.length; i++) {
bits += wordlist.indexOf(words[i]).toString(2).padStart(11, '0');
}
// 24 palabras = 264 bits. Los primeros 256 son la entropía.
const entropyBytes = new Uint8Array(32);
for (let j = 0; j < 32; j++) {
entropyBytes[j] = parseInt(bits.slice(j * 8, (j + 1) * 8), 2);
}
return { entropy: entropyBytes, valid: true };
}
Dawk it-tnejn u tletin byte ta' entropija, flimkien ma' tnejn u tletin oħra derivati fl-istess pass, jivvjaġġaw lejn il-modulu WebAssembly ta' Zig li jiġġenera l-muftieħ Ed25519 proprji. Il-funzjoni sħiħa, bit-tindif finali tal-memorja tagħha, toqgħod fuq skrin wieħed:
// zcatcrypto/wasm/bindings/identity.zig
const Ed25519 = std.crypto.sign.Ed25519;
const X25519 = std.crypto.dh.X25519;
export fn identity_generate() ?*IdentityHandle {
var seed: [64]u8 = undefined;
if (!common.getRandomBytes(&seed)) return null;
const handle = common.wasm_allocator.create(IdentityHandle) catch return null;
// Bytes 0..31: semilla determinista del par Ed25519 (firma).
const sign_kp = Ed25519.KeyPair.generateDeterministic(seed[0..32].*) catch {
common.wasm_allocator.destroy(handle);
return null;
};
handle.sign_secret = sign_kp.secret_key.toBytes();
handle.sign_public = sign_kp.public_key.toBytes();
// Bytes 32..63: secreto X25519 (para acordar claves de cifrado con el otro).
handle.exchange_secret = seed[32..64].*;
handle.exchange_public = X25519.recoverPublicKey(handle.exchange_secret) catch {
common.wasm_allocator.destroy(handle);
return null;
};
@memset(&seed, 0); // Borra la semilla de la memoria.
return handle;
}
Żewġ dettalji ta' min jinnotahom. L-ewwel wieħed: l-istess seed dejjem jipproduċi l-istess par ta' muftieħ — huwa eżattament dan li jippermetti l-irkupru tal-identità billi ddaħħal l-erbgħa u għoxrin kelma f'apparat ġdid. It-tieni wieħed: is-seed titħassar b'mod espliċitu mill-memorja fl-aħħar linja. Wara dak il-punt, lanqas il-funzjoni nnifisha ma tkun tista' tibni mill-ġdid il-muftieħ; il-kliem tal-utent ikun l-uniku sors.
Hawnhekk jaqbel nieqfu ftit, għax il-katina kollha tista' tiġi konfuża mal-ewwel daqqa t'għajn ma' primittiva oħra tat-trio: il-hash. Mhijiex. Hash hija funzjoni unika li tikkompressa — jidħlu ħafna bytes, toħroġ marka qasira, hemmhekk jispiċċa t-triq. Identità kriptografika hija par matematiku komplementari: is-sigriet jibqa' u jiffirma; il-kontroparti pubblika tiegħu tiġi ppubblikata u tivverifika. Fejn il-hash iwaqqa' l-informazzjoni f'direzzjoni waħda, l'identità tistabbilixxi asimmetrija bejn żewġ nofsijiet. Il-hash jixhed x'intqal; l'identità tixhed min qalha.
Dak li l-frażi mhijiex
Tliet żbalji frekwenti għandhom jiġu kklerjati. Il-frażi mhijiex password f'sens proprju: mhijiex imqabbla ma' marka tas-swaba' maħżuna fuq server; tiddaħħal fl-apparat tal-utent biex tibni mill-ġdid l-identità b'mod matematiku. Il-frażi ma tistax tiġi rkuprata: jekk tintilef, m'hemm ħadd mingħand min titlobha; jekk tiġi dduplikata, l-identità tiġi dduplikata wkoll. Il-frażi mhijiex kredenzjali separabbli mill-identità: il-frażi hija l-identità. Min għanduha jista' jaġixxi bħala dik l-identità, mingħajr permess addizzjonali, mingħajr proċess ta' awtorizzazzjoni, mingħajr irkupru possibbli.
Din it-tielet proprjetà hija dik li tbiddel il-piż tal-kwistjoni. Password mitlufa hija inkonvenjent amministrattiv. Identità kriptografika mitlufa hija l-identità nnifisha. Karta bil-frażi misjuba minn terzi mhijiex riskju ta' serq ta' kont: hija l-konsenja tal-identità kollha. Il-wegħda tas-sistema —li ħadd ma jista' jirrevoka l-identità tiegħek jew jimblukkak b'mod arbitrarju— tiġi akkumpanjata b'mod inseparabbli mir-responsabbiltà —li inti l-uniku kustodju ta' xi ħaġa li ħadd ma jista' jreġġa' lura għalik.
Il-wegħda u l-piż
Il-mudell ta' identità kriptografika spiss jirċievi l-kwalifika ta' sovran-awtonoma —self-sovereign fil-letteratura anglo-sassona—. L-għażla tal-kelma hija deliberata u tiddeskrivi l-kundizzjoni b'mod pjuttost preċiż. L-utent huwa sovran fuq l-identità tiegħu f'sens kważi medjevali: ma jagħtiha ebda re, ebda emittent, ebda awtorità ċentrali; u lanqas ma jista' jirtiraha ħadd minn dawk imsemmija qabel. Iżda wkoll, bħall-monarka medjevali, l-utent iġorr il-konsegwenza sħiħa tal-iżbalji tiegħu: m'hemm l-ebda reġent li jieħu deċiżjonijiet f'ismu jekk jitlef is-siġill.
L-għażla bejn identità ġestita minn parti terza u identità sovran-awtonoma m'għandhiex tweġiba universali korretta waħda. Għall-kont ta' forum irrilevanti, l-identità ġestita hija probabbilment proporzjonata għar-riskju. Għal identità professjonali li tiffirma dokumenti li huma legalment vinkolanti, għal identità ekonomika li tgħasses it-tfaddil personali tagħha, għal identità ta' komunikazzjoni professjonali ma' klijenti li fdaw informazzjoni sensittiva, il-kwistjoni tinbidel. Hemmhekk il-mistoqsija tieqaf milli tkun «huwa konvenjenti?» u ssir «min, minbarra jien, għandu s-setgħa li jaġixxi bħali, u taħt liema ċirkostanzi?».
Fejn jidher dan il-mekkaniżmu f'sistemi reali
Il-BIP39 twieled fid-dinja tal-Bitcoin fl-2013 u nfirex malajr fl-ekosistema kollha tal-kriptovaluti: kull kartiera serja llum taċċetta frażi BIP39 ta’ tnax jew erbgħa u għoxrin kelma bħala backup tal-identità ekonomika tad-detentur tagħha. Barra mill-kriptovaluti, l-istess kunċett sottostanti — par kriptografiku li jagħti prova tal-awtur mingħajr intermedjarju — jidher f’sistemi oħra b’sintassi differenti. Iċ-ċwievet SSH li amministratur tas-sistemi juża biex jaċċessa s-servers tiegħu huma każ klassiku: ċavetta privata li l-amministratur iżomm fuq il-magna tiegħu u waħda pubblika li tiġi kkupjata fuq kull server; l-ebda entità komparabbli ma’ servizz ċentralizzat ma tintervjeni. Il-protokoll Signal juża Ed25519 b’materjal taċ-ċavetta persistenti fuq it-tagħmir; l-eIDAS Ewropej, fil-parti tagħhom ta’ firma kkwalifikata, jistrieħu fuq l-istess prinċipju kriptografiku, bid-differenza li ċ-ċavetta hija kkurata minn fornitur ta’ servizzi ta’ fiduċja kkwalifikat minflok mill-utent.
Solo2, il-pjattaforma tal-pubblikazzjoni ta’ din il-pubblikazzjoni, tuża frażi BIP39 ta’ erbgħa u għoxrin kelma bħala identità ta’ kull utent. L-utent, meta joħloq il-kont tiegħu, jara l-kliem darba. Dawn mhumiex maħżuna fuq l-ebda server ta’ Solo2 jew ta’ ħaddieħor: jekk l-utent jannotahom u jikkurahom, huwa jżomm l-identità tiegħu għal dejjem. Jekk jitlefhom, jitlefhom. Hija l-konsegwenza koerenti ma’ arkitettura mingħajr operatur fin-nofs: li kieku Solo2 seta’ jagħti l-identità lura lill-utent li tilifha, seta’ wkoll jagħtiha lil kull min jagħmel pressjoni fuq Solo2 biex jagħtihielu.
Għall-qarrej professjonali
Erba’ kunsiderazzjonijiet għal min qed jevalwa l-adozzjoni ta’ identità kriptografika sovrana (autosoberana) f’kuntest professjonali:
- Il-frażi hija l-identità. Il-kura fiżika — karta, diversi kopji f’postijiet differenti, eventwalment metall imnaqqax għal użu fit-tul — toffri aktar garanziji mill-kura diġitali, li żżid is-superfiċje tal-attakk mingħajr ma tnaqqas ir-riskju ta’ telf.
- M’hemm l-ebda rkupru. It-tfassil tal-proċess billi wieħed jassumi li xi darba l-kopja primarja tintilef huwa ħafna aktar għaqli milli tiskoprih dakinhar li tintilef. It-tieni kopja separata ġeografikament issolvi kważi kull xenarju.
- Mhuwiex l-istess ħaġa bħal ċertifikat ikkwalifikat eIDAS. Għal firma kkwalifikata fl-Unjoni — atti notarili, ċerti proċeduri mal-Amministrazzjoni — il-leġiżlazzjoni teħtieġ fornitur ikkwalifikat li jikkura ċ-ċavetta. L-identità kriptografika sovrana sservi għall-komunikazzjoni professjonali u l-iffirmar dokumentarju b’valur probatorju, iżda ma tissostitwixxix awtomatikament iċ-ċertifikat ikkwalifikat f’każijiet fejn in-norma teħtieġu.
- Jekk l-identità se tiġi trasferita — wirt, suċċessjoni professjonali, għeluq tal-attività — huwa rakkomandabbli li tħejji l-proċedura qabel, mhux wara. Proċeduri formali b’envelops issiġillati bil-laker (lacre), struzzjonijiet lil eżekutur testamentarju, depożitu f’uffiċċju notarili, huma arranġamenti klassiċi perfettament kompatibbli man-natura kriptografika tal-attiv.
Dan l-artiklu jagħlaq it-trio kunċettwali li fetaħ iċ-ċiklu — hash, kriptaġġ, identità —. It-tliet ideat jinbnew fuq xulxin: il-hash jagħti l-marka li ma tinbidilx, il-kriptaġġ jagħti l-kunfidenzjalità mingħajr it-tielet parti fdata, l-identità tagħti l-awtur mingħajr it-tielet parti tal-konċessjoni. It-tlieta jaqsmu proprjetà li lanqas mhi ideoloġika: jittrasferixxu, minn min imexxi servizz għal min jużah, kapaċitajiet tekniċi li tradizzjonalment kienu jinsabu għand l-operatur. Jittrasferixxu wkoll responsabbiltajiet magħhom. Li titkellem b’onestà dwar kwalunkwe mit-tlieta teħtieġ li titkellem ukoll dwar it-tnejn l-oħra.
Sorsi u aktar qari
- Palatinus, M.; Rusnak, P.; Voisine, A.; Bowe, S. — BIP-0039: Mnemonic code for generating deterministic keys, proposta ta’ titjib tal-Bitcoin tal-2013. Standard de facto għal frażijiet ta’ rkupru fl-industrija tal-kripto.
- RFC 8032 — Edwards-Curve Digital Signature Algorithm (EdDSA), inkluż Ed25519. IETF, Jannar 2017. Speċifikazzjoni normattiva tal-iskema tal-firma użata f’parti kbira mill-industrija kontemporanja.
- RFC 2898 — PKCS #5: Password-Based Cryptography Specification, verżjoni 2.0. IETF, Settembru 2000. Jiddefinixxi l-algoritmu PBKDF2 użat fid-derivazzjoni tal-BIP39 minn frażi għal żerriegħa (seed).
- Regolament (UE) 910/2014 (eIDAS) u l-evoluzzjoni tiegħu mir-Regolament (UE) 2024/1183 (eIDAS 2) — qafas Ewropew għall-identità elettronika u l-firma kkwalifikata. Reġim differenti minn dak sovran, iżda appoġġjat kunċettwalment mill-istess primittivi kriptografiċi.
- Allen, C. — The Path to Self-Sovereign Identity (2016). Test kanoniku dwar il-prinċipji u l-impenji tal-mudell sovran, preċedenti iżda rilevanti għall-fehim tal-familja ta’ soluzzjonijiet kontemporanji.