Å odien tikai slinkie nav rakstÄ«juÅ”i par blokÄ·Ädes tehnoloÄ£iju, kriptovalÅ«tÄm un to, cik tas ir forÅ”i. Bet Å”ajÄ rakstÄ Å”Ä« tehnoloÄ£ija netiks slavÄta, mÄs runÄsim par tÄs trÅ«kumiem un veidiem, kÄ tos novÄrst.
StrÄdÄjot pie viena no Altirix Systems projektiem, radÄs uzdevums nodroÅ”inÄt droÅ”u, pret cenzÅ«ru izturÄ«gu datu apstiprinÄÅ”anu no avota, kas nav blokÄ·Äde. Bija nepiecieÅ”ams apstiprinÄt izmaiÅas treÅ”Äs sistÄmas ierakstos un, pamatojoties uz Ŕīm izmaiÅÄm, viedÄ lÄ«guma loÄ£ikÄ izpildÄ«t vienu vai otru atzaru. Uzdevums no pirmÄ acu uzmetiena ir diezgan triviÄls, bet, kad vienas procesÄ iesaistÄ«tÄs puses finansiÄlais stÄvoklis ir atkarÄ«gs no tÄ izpildes rezultÄta, parÄdÄs papildu prasÄ«bas. PirmkÄrt, tÄ ir visaptveroÅ”a uzticÄÅ”anÄs Å”Ädam apstiprinÄÅ”anas mehÄnismam. Bet vispirms vispirms.
ProblÄma ir tÄda, ka pati blokÄ·Äde ir autonoma, slÄgta vienÄ«ba, tÄpÄc viedie lÄ«gumi blokÄ·ÄdÄ neko nezina par Ärpasauli. TajÄ paÅ”Ä laikÄ viedo lÄ«gumu nosacÄ«jumi bieži ir saistÄ«ti ar informÄciju par reÄlÄm lietÄm (lidojuma kavÄÅ”anÄs, valÅ«tas kursi utt.). Lai viedie lÄ«gumi darbotos pareizi, informÄcijai, kas saÅemta Ärpus blokÄ·Ädes, jÄbÅ«t uzticamai un pÄrbaudÄ«tai. Å Ä« problÄma tiek atrisinÄta, izmantojot tÄdus orÄkulus kÄ Town Crier un DECO. Å ie orÄkuli ļauj viedajam lÄ«gumam blokÄ·Ädes tÄ«klÄ uzticÄties informÄcijai no uzticama tÄ«mekļa servera; mÄs varam teikt, ka tie ir uzticamas informÄcijas sniedzÄji.
OrÄkuli
IedomÄjieties, ka gudrs lÄ«gums pÄrskaita 0.001 btc uz jÅ«su bitcoin maku, ja jÅ«su iecienÄ«tÄkais futbola klubs uzvar Krievijas kausa izcÄ«ÅÄ. ReÄlas uzvaras gadÄ«jumÄ viedajam lÄ«gumam ir jÄpÄrsÅ«ta informÄcija par to, kurÅ” klubs uzvarÄja, un Å”eit rodas vairÄkas problÄmas: kur iegÅ«t Å”o informÄciju, kÄ to droÅ”i pÄrnest uz viedo lÄ«gumu un kÄ nodroÅ”inÄt, ka informÄcija viedajÄ lÄ«gumÄ saÅemtais ir spÄkÄ tieÅ”Äm sakrÄ«t ar realitÄti?
RunÄjot par informÄcijas avotu, var bÅ«t divi scenÄriji: viedÄ lÄ«guma pievienoÅ”ana uzticamai vietnei, kurÄ tiek centralizÄti glabÄta informÄcija par spÄļu rezultÄtiem, un otrÄ iespÄja ir savienot vairÄkas vietnes vienlaikus un pÄc tam atlasÄ«t informÄciju no vairuma avotu. kas sniedz tos paÅ”us datus. Lai pÄrbaudÄ«tu informÄcijas pareizÄ«bu, tiek izmantoti orÄkuli, piemÄram, Oraclize, kas izmanto TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Bet Google ir pietiekami daudz informÄcijas par Oraclize, un ir vairÄki raksti par HabrĆ©.Å odien es runÄÅ”u par orÄkuliem, kas izmanto nedaudz atŔķirÄ«gu pieeju informÄcijas pÄrraidei: Town Crier un DECO. RakstÄ sniegts abu orÄkulu darbÄ«bas principu apraksts, kÄ arÄ« detalizÄts salÄ«dzinÄjums.
Town Crier
Town Crier (TC) tika ieviests ar IC3 (The Initiative for Crypto Currencies and Contracts) 2016. gadÄ CCS'16. TC galvenÄ ideja: pÄrsÅ«tÄ«t informÄciju no vietnes uz viedo lÄ«gumu un pÄrliecinÄties, ka TC sniegtÄ informÄcija ir tÄda pati kÄ vietnÄ. TC izmanto TEE (Trusted Execution Environment), lai autentificÄtu datu Ä«paÅ”umtiesÄ«bas. SÄkotnÄjÄ TC versijÄ ir aprakstÄ«ts, kÄ strÄdÄt ar Intel SGX.
Town Crier sastÄv no daļas blokÄ·ÄdÄ un daļas paÅ”Ä OS - TC Server.
TC lÄ«gums ir blokÄ·ÄdÄ un darbojas kÄ TC priekÅ”gals. Tas pieÅem pieprasÄ«jumus no CU (lietotÄja viedais lÄ«gums) un atgriež atbildi no TC servera. TC servera iekÅ”pusÄ ir relejs, kas izveido savienojumu starp anklÄvu un internetu (divvirzienu trafika) un savieno anklÄvu ar blokÄ·Ädi. Enclave satur progencl, kas ir kods, kas veic pieprasÄ«jumus no blokÄ·Ädes un atdod ziÅojumus blokÄ·Ädei ar ciparparakstu, progencl satur daļu no viedÄ lÄ«guma koda un bÅ«tÄ«bÄ veic dažas no tÄ funkcijÄm.
Intel SGX anklÄvu var uzskatÄ«t par koplietojamu bibliotÄku ar API, kas darbojas, izmantojot ecall. Ecall nodod kontroli anklÄvam. AnklÄvs izpilda savu kodu, lÄ«dz tas iziet vai lÄ«dz notiek izÅÄmums. ocal izmanto, lai izsauktu funkcijas, kas definÄtas Ärpus anklÄva. Ocall tiek izpildÄ«ts Ärpus anklÄva, un tas tiek uzskatÄ«ts par neuzticamu zvanu. PÄc ocal izpildes vadÄ«ba tiek atgriezta anklÄvÄ.
EnklÄva daÄ¼Ä droÅ”s kanÄls ir konfigurÄts ar tÄ«mekļa serveri, pats anklÄvs veic TLS rokasspiedienu ar mÄrÄ·a serveri un veic visas kriptogrÄfijas darbÄ«bas iekÅ”Äji. TLS bibliotÄka (mbedTLS) un samazinÄts HTTP kods ir eksportÄti uz SGX vidi. TurklÄt Enclave ir saknes CA sertifikÄti (sertifikÄtu kolekcija), lai pÄrbaudÄ«tu attÄlo serveru sertifikÄtus. PieprasÄ«jumu apstrÄdÄtÄjs pieÅem datagrammas pieprasÄ«jumu Ethereum nodroÅ”inÄtajÄ formÄtÄ, atÅ”ifrÄ to un parsÄ. PÄc tam tas Ä£enerÄ Ethereum transakciju, kas satur pieprasÄ«to datagrammu, paraksta to ar skTC un pÄrsÅ«ta uz Relay.
Releja daļa ietver klienta interfeisu, TCP, blokÄ·Ädes interfeisu. Klienta saskarne ir nepiecieÅ”ama, lai sertificÄtu anklÄva kodu un sazinÄtos ar klientu. Klients nosÅ«ta atestÄcijas pieprasÄ«jumu, izmantojot ecall, un saÅem skTC parakstÄ«tu laikspiedolu kopÄ ar att (atestÄcijas parakstu), pÄc tam att tiek pÄrbaudÄ«ts, izmantojot Intel atestÄcijas pakalpojumu (IAS), un laikspiedolu pÄrbauda uzticama laika pakalpojums. Blockchain interfeiss pÄrbauda ienÄkoÅ”os pieprasÄ«jumus un ievieto darÄ«jumus blokÄ·ÄdÄ, lai piegÄdÄtu datagrammas. Geth ir oficiÄlais Ethereum klients un ļauj Relay mijiedarboties ar blokÄ·Ädi, izmantojot RPC zvanus.
Darbs ar TEE, TC ļauj paralÄli vadÄ«t vairÄkus anklÄvus, tÄdÄjÄdi palielinot informÄcijas apstrÄdes Ätrumu 3 reizes. Ja ar vienu skrieÅ”anas anklÄvu Ätrums bija 15 tx/sek, tad ar 20 paralÄli darbojoÅ”iem anklÄviem Ätrums palielinÄs lÄ«dz 65 tx/sek, salÄ«dzinÄjumam maksimÄlais darbÄ«bas Ätrums Bitcoin blokÄ·ÄdÄ ir 26 tx/sek.
DECO
DECO (Decentralized Oracle for TLS) tika prezentÄts CCS'20, darbojas ar vietnÄm, kas atbalsta TLS savienojumus. NodroÅ”ina datu konfidencialitÄti un integritÄti.
DECO ar TLS izmanto simetrisku Å”ifrÄÅ”anu, tÄpÄc klientam un tÄ«mekļa serverim ir Å”ifrÄÅ”anas atslÄgas, un klients var viltot TLS sesijas datus, ja vÄlas. Lai atrisinÄtu Å”o problÄmu, DECO izmanto trÄ«svirzienu rokasspiediena protokolu starp pÄrbaudÄ«tÄju (viedais lÄ«gums), pÄrbaudÄ«tÄju (Oracle) un tÄ«mekļa serveri (datu avots).
DECO darbÄ«bas veids ir tÄds, ka verificÄtÄjs saÅem datu daļu D un apstiprina verificÄtÄjam, ka D ir nÄcis no TLS servera S. VÄl viena problÄma ir tÄ, ka TLS neparaksta datus un TLS klientam ir grÅ«ti pierÄdÄ«t, ka dati tika saÅemti tieÅ”i no Ä«stÄ servera (izcelsmes grÅ«tÄ«bas).
DECO protokols izmanto KEnc un KMac Å”ifrÄÅ”anas atslÄgas. Klients nosÅ«ta pieprasÄ«jumu Q tÄ«mekļa serverim, atbilde no servera R nÄk Å”ifrÄtÄ veidÄ, bet klientam un serverim pieder viens un tas pats KMac, un klients var viltot TLS ziÅojumu. DECO risinÄjums ir "slÄpt" KMac no klienta (pÄrbaudÄ«tÄja), lÄ«dz tas atbild uz pieprasÄ«jumu. Tagad KMac ir sadalÄ«ts starp pÄrbaudÄ«tÄju un pÄrbaudÄ«tÄju ā KpMac un KvMac. Serveris saÅem KMac, lai Å”ifrÄtu atbildi, izmantojot atslÄgas daļas darbÄ«bu KpMac ā KvMac = KMac.
Iestatot trÄ«svirzienu rokasspiedienu, datu apmaiÅa starp klientu un serveri tiks veikta ar droŔības garantiju.
RunÄjot par decentralizÄtu orÄkula sistÄmu, nevar nepieminÄt Chainlink, kuras mÄrÄ·is ir izveidot decentralizÄtu orÄkula mezglu tÄ«klu, kas ir savietojams ar Ethereum, Bitcoin un Hyperledger, Åemot vÄrÄ modularitÄti: katru sistÄmas daļu var atjauninÄt. TajÄ paÅ”Ä laikÄ, lai nodroÅ”inÄtu droŔību, Chainlink piedÄvÄ katram orÄkulam, kas piedalÄs uzdevumÄ, izsniegt atslÄgu kombinÄciju (publisko un privÄto). PrivÄtÄ atslÄga tiek izmantota, lai Ä£enerÄtu daļÄju parakstu, kas satur viÅu lÄmumu par datu pieprasÄ«jumu. Lai iegÅ«tu atbildi, ir jÄapvieno visi tÄ«kla orÄkulu daļÄjie paraksti.
Chainlink plÄno veikt sÄkotnÄjo PoC DECO, koncentrÄjoties uz decentralizÄtÄm finanÅ”u lietojumprogrammÄm, piemÄram, Mixicles. RakstÄ«Å”anas laikÄ Forbes parÄdÄ«jÄs ziÅas, ka Chainlink iegÄdÄjÄs DECO no Kornela universitÄtes.
Uzbrukumi orÄkuliem
No informÄcijas droŔības viedokļa tika apsvÄrti Å”Ädi uzbrukumi Town Crier:
-
Negodīga viedkontakta koda ievadīŔana TEE mezglos.
Uzbrukuma bÅ«tÄ«ba: apzinÄti nepareiza viedlÄ«guma koda pÄrsÅ«tÄ«Å”ana uz TEE, tÄdÄjÄdi uzbrucÄjs, kurÅ” ieguvis piekļuvi mezglam, uz atÅ”ifrÄtajiem datiem varÄs izpildÄ«t savu (krÄpniecisko) viedo lÄ«gumu. TomÄr atgrieÅ”anas vÄrtÄ«bas tiks Å”ifrÄtas ar privÄto atslÄgu, un vienÄ«gais veids, kÄ piekļūt Å”Ädiem datiem, ir Å”ifrÄtÄ teksta noplÅ«de atgrieÅ”anas/izvades laikÄ.
AizsardzÄ«ba pret Å”o uzbrukumu sastÄv no tÄ, ka anklÄvs pÄrbauda paÅ”reizÄjÄ adresÄ esoÅ”Ä koda pareizÄ«bu. To var panÄkt, izmantojot adresÄcijas shÄmu, kurÄ lÄ«guma adrese tiek noteikta, sajaucot lÄ«guma kodu. -
LÄ«guma stÄvokļa Å”ifrÄtÄ teksta izmaiÅu noplÅ«de.
Uzbrukuma bÅ«tÄ«ba: mezglu Ä«paÅ”niekiem, kuros tiek noslÄgti viedie lÄ«gumi, ir piekļuve lÄ«guma stÄvoklim Å”ifrÄtÄ veidÄ Ärpus anklÄva. UzbrucÄjs, ieguvis vadÄ«bu pÄr mezglu, var salÄ«dzinÄt kontakta stÄvokli pirms un pÄc darÄ«juma un noteikt, kuri argumenti tika ievadÄ«ti un kura viedÄ lÄ«guma metode tika izmantota, jo pats viedÄ lÄ«guma kods un tÄ tehniskÄs specifikÄcijas ir publiski pieejamas.
Aizsardzība, nodroŔinot paŔa mezgla uzticamību. -
SÄnu kanÄlu uzbrukumi.
ÄŖpaÅ”s uzbrukuma veids, kas izmanto anklÄva atmiÅas un keÅ”atmiÅas piekļuves uzraudzÄ«bu dažÄdos scenÄrijos. Å Äda uzbrukuma piemÄrs ir Prime un Probe.
Uzbrukuma secÄ«ba:- t0: uzbrucÄjs aizpilda visu upura procesa datu keÅ”atmiÅu.
- t1: upuris izpilda kodu ar piekļūŔanu atmiÅai, kas ir atkarÄ«ga no upura sensitÄ«vajiem datiem (kriptogrÄfiskajÄm atslÄgÄm). KeÅ”atmiÅas rinda tiek atlasÄ«ta, pamatojoties uz tastatÅ«ras bitu vÄrtÄ«bu. AttÄlÄ redzamajÄ piemÄrÄ keybit = 0 un tiek nolasÄ«ta adrese X keÅ”atmiÅas rindÄ 2. X saglabÄtie dati tiek ielÄdÄti keÅ”atmiÅÄ, izspiežot datus, kas tur bija iepriekÅ”.
- t2: uzbrucÄjs pÄrbauda, āākuras no viÅa keÅ”atmiÅas rindÄm ir izliktas ā upura izmantotÄs lÄ«nijas. Tas tiek darÄ«ts, mÄrot piekļuves laiku. AtkÄrtojot Å”o darbÄ«bu katram tastatÅ«ras bitam, uzbrucÄjs iegÅ«st visu atslÄgu.
Uzbrukuma aizsardzÄ«ba: Intel SGX ir aizsardzÄ«ba pret sÄnu kanÄlu uzbrukumiem, kas novÄrÅ” ar keÅ”atmiÅu saistÄ«tu notikumu uzraudzÄ«bu, taÄu Prime un Probe uzbrukums joprojÄm darbosies, jo uzbrucÄjs uzrauga sava procesa keÅ”atmiÅas notikumus un koplieto keÅ”atmiÅu ar upuri.
TÄdÄjÄdi Å”obrÄ«d nav droÅ”as aizsardzÄ«bas pret Å”o uzbrukumu.
Ir zinÄmi arÄ« tÄdi uzbrukumi kÄ Spectre un Foreshadow (L1TF), lÄ«dzÄ«gi kÄ Prime un Probe. Tie ļauj nolasÄ«t datus no keÅ”atmiÅas, izmantojot treÅ”Äs puses kanÄlu. Tiek nodroÅ”inÄta aizsardzÄ«ba pret Spectre-v2 ievainojamÄ«bu, kas darbojas pret diviem no Å”iem uzbrukumiem.
SaistÄ«bÄ ar DECO trÄ«svirzienu rokasspiediens nodroÅ”ina droŔības garantiju:
- PÄrbaudÄ«tÄja integritÄte: uzlauzts pÄrbaudÄ«tÄjs nevar viltot servera izcelsmes informÄciju un nevar likt serverim pieÅemt nederÄ«gus pieprasÄ«jumus vai nepareizi atbildÄt uz derÄ«giem pieprasÄ«jumiem. Tas tiek darÄ«ts, izmantojot pieprasÄ«jumu modeļus starp serveri un pÄrbaudÄ«tÄju.
- VerificÄtÄja integritÄte: uzlauzts pÄrbaudÄ«tÄjs nevar likt pÄrbaudÄ«tÄjam saÅemt nepareizas atbildes.
- KonfidencialitÄte: uzlauztais verificÄtÄjs pÄrbauda tikai publisko informÄciju (pieprasÄ«jumu, servera nosaukumu).
ProgrammÄ DECO ir iespÄjamas tikai satiksmes ievadÄ«Å”anas ievainojamÄ«bas. PirmkÄrt, ar trÄ«svirzienu rokasspiedienu verificÄtÄjs var noteikt servera identitÄti, izmantojot jaunu nonce. TomÄr pÄc rokasspiediena verificÄtÄjam jÄpaļaujas uz tÄ«kla slÄÅa indikatoriem (IP adresÄm). TÄdÄjÄdi saziÅai starp verificÄtÄju un serveri ir jÄbÅ«t aizsargÄtai pret trafika ievadÄ«Å”anu. Tas tiek panÄkts, izmantojot starpniekserveri.
OrÄkulu salÄ«dzinÄjums
Town Crier pamatÄ ir darbs ar anklÄvu servera daļÄ, savukÄrt DECO ļauj pÄrbaudÄ«t datu izcelsmes autentiskumu, izmantojot trÄ«svirzienu rokasspiedienu un datu Å”ifrÄÅ”anu ar kriptogrÄfiskajÄm atslÄgÄm. Å o orÄkulu salÄ«dzinÄjums tika veikts pÄc Å”Ädiem kritÄrijiem: veiktspÄja, droŔība, izmaksas un praktiskums.
Town Crier
DECO
sniegumu
ÄtrÄk (0.6 s lÄ«dz beigÄm)
LÄnÄk (10.50 s, lai pabeigtu protokolu)
droŔība
MazÄk droÅ”s
DroÅ”Äka
izmaksÄt
DÄrgÄks
LÄtÄk
praktiskums
NepiecieŔama īpaŔa aparatūra
Darbojas ar jebkuru serveri, kas atbalsta TLS
Performance: Lai strÄdÄtu ar DECO, ir nepiecieÅ”ams trÄ«svirzienu rokasspiediens, iestatot caur LAN, tas aizÅem 0.37 sekundes, mijiedarbÄ«bai pÄc savienojuma izveidoÅ”anas ir efektÄ«vs 2PC-HMAC (0,13 s uz vienu ierakstu). DECO veiktspÄja ir atkarÄ«ga no pieejamajiem TLS Å”ifru komplektiem, privÄto datu lieluma un pierÄdÄ«jumu sarežģītÄ«bas konkrÄtai lietojumprogrammai. KÄ piemÄru izmantojot binÄro opciju lietojumprogrammu no IC3: protokola pabeigÅ”ana, izmantojot LAN, aizÅem apmÄram 10,50 sekundes. SalÄ«dzinÄjumam, Town Crier prasa aptuveni 0,6 sekundes, lai pabeigtu lÄ«dzÄ«gu lietojumprogrammu, kas ir aptuveni 20 reizes ÄtrÄk nekÄ DECO. Ja viss ir vienÄds, TC bÅ«s ÄtrÄks.
DroŔība: Uzbrukumi Intel SGX anklÄvam (sÄnu kanÄlu uzbrukumi) darbojas un var radÄ«t reÄlus bojÄjumus viedÄ lÄ«guma dalÄ«bniekiem. AttiecÄ«bÄ uz DECO ir iespÄjami uzbrukumi, kas saistÄ«ti ar satiksmes iepludinÄÅ”anu, taÄu starpniekservera izmantoÅ”ana Å”Ädus uzbrukumus samazina lÄ«dz neko. TÄpÄc DECO ir droÅ”Äks.
IzmaksÄt: Intel SGX atbalsta aprÄ«kojuma izmaksas ir augstÄkas nekÄ DECO protokola iestatÄ«Å”anas izmaksas. TÄpÄc TC ir dÄrgÄks.
Praktiskums: Lai strÄdÄtu ar Town Crier, ir nepiecieÅ”ams Ä«paÅ”s aprÄ«kojums, kas atbalsta TEE. PiemÄram, Intel SGX tiek atbalstÄ«ts 6. paaudzes Intel Core procesoru saimÄ un jaunÄkÄs versijÄs. DECO ļauj strÄdÄt ar jebkuru aprÄ«kojumu, lai gan ir DECO iestatÄ«jums, izmantojot TEE. SaskaÅÄ ar iestatÄ«Å”anas procesu DECO trÄ«svirzienu rokasspiediens var aizÅemt kÄdu laiku, taÄu tas nav nekas, salÄ«dzinot ar TC aparatÅ«ras ierobežojumiem, tÄpÄc DECO ir praktiskÄka.
SecinÄjums
AplÅ«kojot divus orÄkulus atseviŔķi un salÄ«dzinot tos pÄc Äetriem kritÄrijiem, ir skaidrs, ka Town Crier ir zemÄks par DECO trÄ«s no Äetriem punktiem. DECO no informÄcijas droŔības viedokļa ir uzticamÄks, lÄtÄks un praktiskÄks, lai gan trÄ«spusÄju protokola iestatÄ«Å”ana var aizÅemt kÄdu laiku un tai ir savi trÅ«kumi, piemÄram, papildu darbÄ«bas ar Å”ifrÄÅ”anas atslÄgÄm. TC ir ÄtrÄks par DECO, taÄu sÄnu kanÄlu uzbrukuma ievainojamÄ«bas padara to jutÄ«gu pret konfidencialitÄtes zaudÄÅ”anu. JÄÅem vÄrÄ, ka DECO tika ieviests 2020. gada janvÄrÄ«, un nav pagÄjis pietiekami daudz laika, lai to uzskatÄ«tu par droÅ”u. Town Crier ir uzbrukts 4 gadus un ir izgÄjis daudzus testus, tÄpÄc tÄ izmantoÅ”ana daudzos projektos ir pamatota.
Avots: www.habr.com