Atslēgas ģenerējām tikai divatā: viens ieraksta komandu, otrs nospiež Enter
Kad strādāju kriptogrāfijā, viens no uzdevumiem bija šāds: uzģenerēt klientam atslēgas uz servera tā, lai tās garantēti nekur neaizplūstu.
Nekādas maģijas tajā nebija. Mēs vienkārši ņēmām labākās vispārpieņemtās prakses un ievērojām tās bez izņēmumiem.
Viss sākās ar darba vietām. Izstrādātāju datori bija fiziski atslēgti no interneta. Vajag aizsūtīt e-pastu vai kaut ko atrast — blakus stāvēja otrs dators, tikai internetam. Diski tika šifrēti ar TrueCrypt. Atslēgu ģenerēšanas serveris, ja pareizi atceros, arī dzīvoja šifrētā konteinerā — virtuālā mašīna, ko palaida tikai ar paroli.
Pati ģenerēšana izskatījās tā:
- Uz servera ieiet tikai divatā. Parole ir sadalīta: pirmo pusi zina viens cilvēks, otro — otrs. Viens pats neviens neieies.
- Uz galda — izdrukāts protokols pa punktiem: ieiet, palaist komandu, pārbaudīt izvadi, iziet.
- Viens ieraksta komandu, otrs nospiež Enter. Jebkurai darbībai vajag abus.
- Zem katra punkta parakstās abi.
- Viss kopā — kādas piecas minūtes. Atslēga uzģenerēta, ārā aiziet tikai publiskā daļa, sesija aizvērta.
Pāru bija divi — gadījumam, ja kāds saslimst vai aiziet no darba.
Neviens cilvēks — ne noguris, ne uzpirkts, ne ar inficētu klēpjdatoru — nevar neko izdarīt viens pats. Katrs solis atstāj parakstu. Bet šifrētās mašīnas bez interneta neļauj neko aiznest pa tīklu.
Tas viss ir standarts: dual control un split knowledge, „četru acu princips”, izolācija no tīkla (air gap), banku pasaulē — key ceremony. Pēc tā paša principa ģenerē DNSSEC saknes atslēgas un maksājumu HSM atslēgas. Klientiem mēs protokolu rādījām atklāti — viņus tas nomierināja, nevis biedēja.
Binance uzlaušana sākās ar viena DevOps inženiera klēpjdatoru. Sistēmā, kur kritiskās mašīnas neredz internetu un katrai svarīgai darbībai vajag divus cilvēkus un divas noslēpuma puses, viena cilvēka klēpjdators vēl nav seifa atslēga.
Kas no tā izriet šodien — atsevišķā stāstā.