Linux Foundation, BastionZero ja Docker esitlesid uut avatud projekti OpenPubKey, mis arendab vĂ€lja sama nime kandnud krĂŒptograafilise protokolli, et tĂ”endada digitaalset allkirja mis tahes objektide puhul. Tehnoloogia on vĂ€lja töötatud BastionZero ja Dockeri ettevĂ”tete koostööprojektina, et lihtsustada digitaalsete allkirjade tĂ”endamist Docker konteineripiltidel, vĂ€ltides nende manipulatsiooni ja kinnitades koostamise nĂ”utava autori poolt. Projekt areneb neutraalses keskkonnas Linux Foundationi kaitse all, mis vĂ€listab sĂ”ltuvuse ĂŒksikutest kommertsettevĂ”tetest ja lihtsustab koostööd teiste osaliste kaasamisel. OpenPubKey pĂ”hiimplementatsioon on kirjutatud Go keeles ja selle levitamine toimub Apache 2.0 litsentsi alusel.
OpenPubKey'i vĂ”imalused ei piirdu ainult konteineripiltidega; tehnoloogiat saab rakendada mis tahes ressursi allika tĂ”endamiseks, sĂ”ltuvuste vahetamise vĂ€ltimiseks ja andmekogumite levikanalite turvalisuse suurendamiseks. NĂ€iteks on tehnoloogia rakendatav programmide kogumite, ĂŒksikute teadete ja commitide allkirjastamiseks. Allkirjade loojatel on piisav, et neil oleks konto OpenID toetavas teenuses, samas kui tarbijatel on vĂ”imalus kinnitada lisatud allkirju ja kontrollida nende seotust vĂ€idetava OpenID identifikaatoriga.
EesmĂ€rgilt sarnaneb OpenPubKey Google'is loodud ja hiljem Linux Foundation'ile edastatud Sigstore sĂŒsteemiga, kuid erineb sellest oluliselt lihtsustatud rakendamise, kasutamise ja hooldamise poolest, vabastades tsentraliseeritud serverikomponentidest, mis vastutavad avaliku tegevuslogi (transparency log) pidamise eest, mis kinnitab muudatuste autentsust, ja sertifitseerimisteenuste (Certificate Authority) toimimise tagamise eest.
OpenPubKey kasutab autentimist OpenID tehnoloogia abil, mitte eraldi vĂ€ljastatud tunnistuste keskuste loomist, ning seob loodud allkirjad olemasolevate OpenID Connect pakkujatega. TeisisĂ”nu, OpenPubKey vĂ”imaldab siduda krĂŒptograafilised vĂ”tmed konkreetsete kasutajatega, kasutades OpenID Connect pakkujad (IdP), mitte tunnistuste keskusi. Tehnoloogia on tĂ€ielikult ĂŒhilduv olemasolevate OpenID pakkujatega, nagu GitHub, Azure/Microsoft, Okta, OneLogin, Keycloak ja Google, ning ei nĂ”ua nende poolt muudatusi (kasutatakse pakkuja poolt antud standardset ID Tokenit, mis vĂ”imaldab OpenPubKeyd rakendada vaid OpenID Connect klientide poole muudatustega).
OpenID pakkuja poolt vĂ€lja antud token muudetakse sertifikaadiks, mis krĂŒptograafiliselt seob OpenID Connecti identifikaatori avaliku vĂ”tmega. Edasi kasutab kasutaja genereeritud vĂ”tit andmete allkirjastamiseks, ja neid allkirju saab hiljem kontrollida seose osas OpenID Connecti identifikaatoriga. OpenPubKey-s kasutatakse ajutisi vĂ”tmeid, mille eluaeg on piiratud â vĂ”tmed genereeritakse sisenemise ajal OpenID kaudu ja kustutatakse sessiooni lĂ”ppedes.
Umbkaudne allkirjastamise loomise algoritm OpenPubKey'i kasutamisega:
- Sisenemine OpenID pakkuja kaudu (nt Google, GitHub, Microsoft jne).
- Identifikaatori tokeni taotlemine OpenID pakkujalt.
- Tokeni tagastamine, mis on allkirjastatud pakkuja vÔtmega ja sisaldab "nonce" vÀlja, kus on anekdootsed andmed, mis on edastatud taotluse kÀigus (edastatakse SHA3-hash avalikust vÔtmes).
- Kasutaja poolt saadud tokeni kasutamine sertifikaadina, mis sisaldab teavet vÔtme kohta.
- Tokeni kinnitamine allkirjale, sarnaselt sertifikaadiga.
Kinnitus hĂ”lmab kontrollimist, kas lisatud token on OpenID pakkuja poolt allkirjastatud ja digitaalallkirja Ă”igsuse kontrollimist ressursside suhtes avatud vĂ”tme abil, mis kinnitab, et ressurss on allkirjastatud sertifikaadi identifikaatori ja selle OpenID pakkuja allkirjaga. NĂ€iteks vĂ”ib allkirja loov kasutada Google'i OpenID pakkuja poolt allkirjastatud tokenit, mis sisaldab teavet, et ta on kinnitatud kui bob@gmail.com ja kasutab avatud vĂ”tme 0x54A5âŠFF. SeetĂ”ttu, kui saabub sama vĂ”tmega allkirjastatud sĂ”num, vĂ”ib kasutaja kasutada allkirjastatud tokenit selleks, et kinnitada, et bob@gmail.com â 0x54A5âŠFF ja sĂ”numi on tĂ”epoolest allkirjastanud bob@gmail.com.
Arhitektuuri lihtsustamine on saavutatud teatud kompromisside arvelt (nĂ€iteks sĂ”ltuvus vĂ€lisest OpenID pakkujst ja muudatuste logi puudumine hierarhilise rĂ€si kasutamisega), mis on mĂ”nes olukorras vastuvĂ”etavad, teistes aga mitte. OpenID pakkujatest sĂ”ltuvuse vĂ€hendamiseks, kelle kompromiteerimine vĂ”i töötajate tegevus vĂ”ib sĂŒsteemi diskrediteerida (nĂ€iteks hĂ€kitud pakkuja vĂ”ib kolmandale osapoolele vale vĂ”tme anda), soovitatakse kasutada tĂ€iendavat, kuid mitte kohustuslikku MFA-Cosigner (Mitme-Faktori Autentimise KooskĂ”lastaja) kihti mitme-faktori autentimiseks (token peab olema allkirjastatud mitte ainult peamise pakkuja, vaid ka sĂ”ltumatu autentimisteenuse poolt, mis kinnitab kasutajat).
OpenPubKey nĂ”rkustena tuuakse vĂ€lja ka kolmandate isikute andmed, mida saab kasutada aktiivsuse jĂ€lgimiseks pikka aega ja sĂ”ltumatult ĂŒmbernimetamisest (tuvastustokeni taaskasutamine uue sertifikaadi asemel). Otsene seos OpenID Connecti vĂ”tmetega vĂ€listab serveripoolse komponenti, kuid muudab kliendi poolse rakendamise oluliselt keerulisemaks ja jĂ€tab rohkem ruumi klientide rĂŒnnakuteks (attack surface), nĂ€iteks seetĂ”ttu, et kliendile lasub vĂ”tmete vahetamise kohustus. Muudatuste logi puudumine ei vĂ”imalda kliendil jĂ€lgida vĂ”imalikke vĂ”tmelekkeid.
Allikas: opennet.ru
