TĂ€napĂ€eval pole plokiahela tehnoloogiast, krĂŒptorahadest ja sellest, kui lahe see on, kirjutanud vaid laisad. Kuid see artikkel ei kiida seda tehnoloogiat, rÀÀgime selle puudustest ja nende kĂ”rvaldamise viisidest.

Altirix Systemsi ĂŒhe projekti kallal töötades tekkis ĂŒlesandeks turvaline, tsensuurikindel andmete kinnitamine plokiahela vĂ€lisest allikast. Vaja oli kinnitada muudatused kolmanda sĂŒsteemi kirjetes ja nende muudatuste pĂ”hjal teostada targa lepingu loogikas ĂŒks vĂ”i teine ââharu. Ălesanne on esmapilgul ĂŒsna triviaalne, kuid kui ĂŒhe protsessis osaleva osapoole rahaline seis sĂ”ltub selle tĂ€itmise tulemusest, ilmnevad tĂ€iendavad nĂ”uded. Esiteks on see igakĂŒlgne usaldus sellise valideerimismehhanismi vastu. Aga kĂ”igepealt asjad kĂ”igepealt.
Probleem on selles, et plokiahel ise on autonoomne suletud ĂŒksus, nii et plokiahelas olevad nutikad lepingud ei tea vĂ€lismaailmast midagi. Samas on nutikate lepingute tingimused sageli seotud infoga reaalsete asjade kohta (lennu hilinemine, valuutakursid jne). Nutikate lepingute korrektseks toimimiseks peab vĂ€ljastpoolt plokiahelat saadud teave olema usaldusvÀÀrne ja kontrollitud. See probleem lahendatakse selliste oraaklite nagu Town Crier ja DECO abil. Need oraaklid vĂ”imaldavad plokiahela vĂ”rgu nutikal lepingul usaldada usaldusvÀÀrselt veebiserverilt pĂ€rinevat teavet; vĂ”ime öelda, et need on usaldusvÀÀrse teabe pakkujad.
Oraaklid
Kujutage ette, et nutika lepinguga kantakse teie bitcoini rahakotti 0.001 btc, kui teie lemmikjalgpalliklubi vĂ”idab Venemaa karika. Reaalse vĂ”idu korral on nutilepingus vaja edastada info, milline klubi vĂ”itis ja siin tekib rida probleeme: kust seda infot saada, kuidas seda turvaliselt nutilepingusse ĂŒle kanda ja kuidas tagada, et info nutilepingus saadud kas kattub tegelikult tegelikkusega?
Mis puutub teabeallikasse, siis vĂ”ib olla 2 stsenaariumi: nutika lepingu ĂŒhendamine usaldusvÀÀrse veebisaidiga, kus vastete tulemuste teave on keskselt salvestatud, ja teine ââââvĂ”imalus on ĂŒhendada mitu saiti korraga ja seejĂ€rel valida teave enamikust allikatest. mis pakuvad samu andmeid. Info Ă”igsuse kontrollimiseks kasutatakse oraakleeid, nĂ€iteks Oraclize, mis kasutab TLSNotaryt (TLS Notary Modification to Prove the Authenticity of Data). Kuid Oraclize'i kohta on Google'is piisavalt infot ja HabrĂ© kohta on mitmeid artikleid.TĂ€na rÀÀgin oraaklitest, mis kasutavad info edastamisel veidi teistsugust lĂ€henemist: Town Crier ja DECO. Artiklis kirjeldatakse mĂ”lema oraakli tööpĂ”himĂ”tteid ja on ka ĂŒksikasjalik vĂ”rdlus.
Linn Crier
Town Crieri (TC) tutvustas IC3 (The Initiative for Crypto Currencies and Contracts) 2016. aastal CCS'16. TC pÔhiidee: edastage teave veebisaidilt nutikale lepingule ja veenduge, et TC edastatav teave on sama, mis veebisaidil. TC kasutab andmete omandiÔiguse autentimiseks TEE-d (Trusted Execution Environment). TC algversioon kirjeldab Intel SGX-iga töötamist.
Town Crier koosneb plokiahela sees olevast osast ja OS-i enda sees olevast osast â TC Server.

TC Contract on plokiahelas ja toimib TC esiosana. See vĂ”tab vastu CU-lt (kasutaja nutika lepingu) pĂ€ringuid ja tagastab vastuse TC serverilt. TC serveri sees on relee, mis loob ĂŒhenduse enklaavi ja Interneti vahel (kahesuunaline liiklus) ning ĂŒhendab enklaavi plokiahelaga. Enclave sisaldab progencl-i, mis on kood, mis teeb plokiahelast pĂ€ringuid ja tagastab plokiahelale sĂ”numeid digiallkirjaga, progencl sisaldab osa nutika lepingu koodist ja tĂ€idab sisuliselt osa selle funktsioone.
Intel SGX enklaavi vĂ”ib pidada jagatud teegiks, mille API töötab ecall kaudu. Ecall annab juhtimise ĂŒle enklaavile. Enklaav tĂ€idab oma koodi seni, kuni see vĂ€ljub vĂ”i kuni ilmneb erand. ocalli kasutatakse vĂ€ljaspool enklaavi mÀÀratletud funktsioonide kutsumiseks. Ocall kĂ€ivitatakse vĂ€ljaspool enklaavi ja see kĂ€sitleb seda ebausaldusvÀÀrse kĂ”nena. PĂ€rast kĂ”ne kĂ€ivitamist tagastatakse juhtimine enklaavile.

Enklaavis on turvaline kanal seadistatud veebiserveriga, enklaav ise teostab sihtserveriga TLS-i kĂ€epigistuse ja teeb kĂ”ik krĂŒptograafilised toimingud sisemiselt. TLS-i teek (mbedTLS) ja vĂ€hendatud HTTP-kood on eksporditud SGX-keskkonda. Enclave sisaldab ka juur-CA sertifikaate (sertifikaatide kogum), et kontrollida kaugserverite sertifikaate. PĂ€ringuhaldur aktsepteerib Ethereumi pakutavas vormingus datagrammi pĂ€ringut, dekrĂŒpteerib selle ja analĂŒĂŒsib. SeejĂ€rel genereerib see nĂ”utud datagrammi sisaldava Ethereumi tehingu, allkirjastab selle skTC-ga ja edastab selle Relayle.
Relee osa sisaldab kliendiliidest, TCP-d, plokiahela liidest. Kliendiliidest on vaja enklaavi koodi sertifitseerimiseks ja kliendiga suhtlemiseks. Klient saadab atesteerimispÀringu ecall-i abil ja saab skTC allkirjastatud ajatempli koos att-ga (tÔendiallkiri), seejÀrel kontrollitakse att Inteli kinnitusteenuse (IAS) abil ja ajatempli kinnitab usaldusvÀÀrne ajateenus. Blockchain Interface kontrollib sissetulevaid pÀringuid ja paigutab andmegrammide edastamiseks tehingud plokiahelasse. Geth on ametlik Ethereumi klient ja vÔimaldab Relayl RPC-kÔnede kaudu plokiahelaga suhelda.
TEE-ga töötades vĂ”imaldab TC paralleelselt kĂ€ivitada mitut enklaavi, suurendades seelĂ€bi teabe töötlemise kiirust 3 korda. Kui ĂŒhe jooksva enklaaviga oli kiirus 15 tx/sek, siis 20 paralleelselt jooksva enklaavi puhul kasvab kiirus 65 tx/sek, vĂ”rdluseks Bitcoini plokiahelas on maksimaalne töökiirus 26 tx/sek.
DECO
CCS'20-l esitleti DECO-d (Decentralized Oracles for TLS), mis töötab saitidega, mis toetavad TLS-ĂŒhendusi. Tagab andmete konfidentsiaalsuse ja terviklikkuse.
TLS-iga DECO kasutab sĂŒmmeetrilist krĂŒptimist, nii et kliendil ja veebiserveril on krĂŒpteerimisvĂ”tmed ning klient saab soovi korral TLS-i seansi andmeid vĂ”ltsida. Selle probleemi lahendamiseks kasutab DECO kolmepoolset kĂ€epigistuse protokolli tĂ”estaja (nutikas leping), kontrollija (Oracle) ja veebiserveri (andmeallikas) vahel.

DECO toimimisviis on see, et kontrollija vĂ”tab vastu andmetĂŒki D ja kinnitab kontrollijale, et D tuli TLS-serverist S. Probleemiks on ka see, et TLS ei allkirjasta andmeid ja TLS-i kliendil on raske tĂ”estada, et andmed saadi tĂ€pselt Ă”igest serverist (pĂ€rinemisraskus).
DECO protokoll kasutab krĂŒpteerimisvĂ”tmeid KEnc ja KMac. Klient saadab pĂ€ringu Q aadressile veebiserverServerilt R saabub vastus krĂŒpteeritult, kuid kliendil ja serveril on sama KMac ning klient saab TLS-sĂ”numi vĂ”ltsida. DECO lahendus on KMac kliendi (tĂ”endaja) eest "peita", kuni see pĂ€ringule vastab. NĂŒĂŒd on KMac jagatud tĂ”endaja ja kontrollija â KpMaci ja KvMaci â vahel. Server hangib KMaci vastuse krĂŒpteerimiseks, kasutades vĂ”tmejaotamise operatsiooni KpMac â KvMac = KMac.
Kolmepoolse kÀepigistuse seadistamisega toimub andmevahetus kliendi ja serveri vahel turvalisuse garantiiga.

Detsentraliseeritud oraaklisĂŒsteemist rÀÀkides ei saa mainimata jĂ€tta ka Chainlinki, mille eesmĂ€rk on luua Ethereumi, Bitcoini ja Hyperledgeriga ĂŒhilduv detsentraliseeritud oraaklisĂ”lmede vĂ”rgustik, vĂ”ttes arvesse modulaarsust: iga sĂŒsteemi osa on uuendatav. Samas pakub Chainlink turvalisuse tagamiseks igale ĂŒlesandes osalevale oraaklile vĂ”tmete (avalike ja privaatsete) kombinatsiooni vĂ€ljastamist. PrivaatvĂ”tit kasutatakse osalise allkirja genereerimiseks, mis sisaldab nende otsust andmepĂ€ringu kohta. Vastuse saamiseks on vaja ĂŒhendada kĂ”ik vĂ”rgu oraaklite osaallkirjad.
Chainlink kavatseb viia lĂ€bi esialgse PoC DECO, keskendudes detsentraliseeritud finantsrakendustele, nagu Mixicles. Selle artikli kirjutamise ajal ilmus Forbesis uudis, et Chainlink omandas DECO Cornelli ĂŒlikoolist.
RĂŒnnakud oraaklite vastu

Infoturbe seisukohast kaaluti jĂ€rgmisi rĂŒnnakuid Town Crieri vastu:
Petturlik nutika kontakti koodi sisestamine TEE sÔlmedesse.
RĂŒnnaku olemus: teadlikult vale nutika lepingu koodi edastamine TEE-le, seega saab sĂ”lmele ligipÀÀsu saanud rĂŒndaja dekrĂŒpteeritud andmetel tĂ€ita oma (petu) nutilepingu. TagastamisvÀÀrtused krĂŒpteeritakse aga privaatvĂ”tmega ja ainus viis sellistele andmetele juurde pÀÀseda on ĆĄifreeritud teksti lekkimine tagastamisel/vĂ€ljundil.
Kaitse selle rĂŒnnaku vastu seisneb selles, et enklaav kontrollib praegusel aadressil asuva koodi Ă”igsust. Seda saab saavutada adresseerimisskeemi abil, kus lepingu aadress mÀÀratakse lepingu koodi rĂ€simise teel.Lepingu oleku ĆĄifrteksti muutuste leke.
RĂŒnnaku olemus: nutikaid lepinguid sĂ”lmivate sĂ”lmede omanikel on juurdepÀÀs lepingu olekule krĂŒpteeritud kujul vĂ€ljaspool enklaavi. RĂŒndaja, olles saanud sĂ”lme kontrolli alla, saab vĂ”rrelda kontakti olekut enne ja pĂ€rast tehingut ning mÀÀrata, millised argumendid sisestati ja millist nutika lepingu meetodit kasutati, kuna nutika lepingu kood ise ja selle tehnilised andmed on avalikult kĂ€ttesaadavad.
Kaitse sĂ”lme enda töökindluse tagamisel.KĂŒlgkanalite rĂŒnnakud.
Spetsiaalne rĂŒndetĂŒĂŒp, mis kasutab erinevate stsenaariumide korral enklaavimĂ€lu ja vahemĂ€lu juurdepÀÀsu jĂ€lgimist. Sellise rĂŒnnaku nĂ€iteks on Prime and Probe.

RĂŒnnaku jĂ€rjekord:- t0: rĂŒndaja tĂ€idab kogu ohvriprotsessi andmevahemĂ€lu.
- t1: ohver kĂ€ivitab koodi mĂ€lupöördustega, mis sĂ”ltuvad ohvri tundlikest andmetest (krĂŒptovĂ”tmed). VahemĂ€lu rida valitakse klahvibiti vÀÀrtuse alusel. Joonisel olevas nĂ€ites on klaviatuur = 0 ja loetakse vahemĂ€lu real 2 aadressi X. VahemĂ€llu laaditakse X-is salvestatud andmed, tĂ”rjudes vĂ€lja seal varem olnud andmed.
- t2: RĂŒndaja kontrollib, millised tema vahemĂ€luliinidest on vĂ€lja tĂ”stetud â read, mida ohver kasutab. Seda tehakse juurdepÀÀsuaja mÔÔtmise teel. Korrates seda toimingut iga klahvibiti jaoks, saab rĂŒndaja kogu vĂ”tme.
RĂŒnnakute kaitse: Intel SGX-l on kaitse kĂŒlgkanalite rĂŒnnakute eest, mis takistab vahemĂ€luga seotud sĂŒndmuste jĂ€lgimist, kuid Prime and Probe rĂŒnnak toimib siiski, kuna rĂŒndaja jĂ€lgib oma protsessi vahemĂ€lu sĂŒndmusi ja jagab vahemĂ€lu ohvriga.

Seega puudub hetkel usaldusvÀÀrne kaitse selle rĂŒnnaku vastu.
Tuntud on ka Prime ja Probe sarnased rĂŒnnakud nagu Spectre ja Foreshadow (L1TF). Need vĂ”imaldavad teil lugeda andmeid vahemĂ€lust kolmanda osapoole kanali kaudu. Pakutakse kaitset Spectre-v2 haavatavuse vastu, mis töötab kahe sellise rĂŒnnaku vastu.
Seoses DECOga tagab kolmesuunaline kÀepigistus turvalisuse:
- Prover terviklikkus: hÀkitud proovija ei saa vÔltsida serveri pÀritoluteavet ega panna serverit kehtetuid pÀringuid vastu vÔtma vÔi kehtivatele pÀringutele valesti vastama. Seda tehakse serveri ja proovija vaheliste pÀringumustrite kaudu.
- TÔendaja terviklikkus: hÀkitud kontrollija ei saa pÔhjustada tÔestaja valede vastuste saamist.
- Privaatsus: hÀkitud kontrollija uurib ainult avalikku teavet (pÀring, serveri nimi).
DECO-s on vĂ”imalikud ainult liikluse sĂŒstimise haavatavused. Algselt saab kontrollija kolmepoolse kĂ€epigistuse ajal serveri identiteedi tuvastada uue nonsi abil. PĂ€rast kĂ€epigistust peab kontrollija aga toetuma vĂ”rgukihi indikaatoritele (IP-aadressid). SeetĂ”ttu tuleb verifitseerija ja serveri vahelist ĂŒhendust kaitsta liikluse sisestamise eest. See saavutatakse puhverserveri abil.
Oraaklite vÔrdlus
Town Crier pĂ”hineb serveriosas asuva enklaaviga töötamisel, samas kui DECO vĂ”imaldab teil kontrollida andmete pĂ€ritolu autentsust, kasutades kolmepoolset kĂ€epigistust ja andmete krĂŒptimist krĂŒptograafiliste vĂ”tmetega. Nende oraaklite vĂ”rdlus viidi lĂ€bi jĂ€rgmiste kriteeriumide alusel: jĂ”udlus, turvalisus, maksumus ja praktilisus.
Linn Crier
DECO
esitus
Kiirem (0.6 s lÔpuni)
Aeglasem (protokolli lÔpetamiseks 10.50 s)
turvalisus
VĂ€hem turvaline
Turvalisem
maksma
Veel kallim
Odavam
praktilisus
NÔuab spetsiaalset riistvara
Töötab kÔigi TLS-i toetavate serveritega
Etendus: DECO-ga töötamiseks on vaja kolmesuunalist kĂ€epigistust, LAN-i kaudu seadistamisel kulub 0.37 sekundit, suhtlemiseks pĂ€rast ĂŒhenduse loomist on efektiivne 2PC-HMAC (0,13 s kirjutamise kohta). DECO jĂ”udlus sĂ”ltub saadaolevatest TLS-i ĆĄifrikomplektidest, privaatandmete suurusest ja konkreetse rakenduse tĂ”endite keerukusest. IC3 binaarvaliku rakenduse kasutamine nĂ€itena: protokolli tĂ€itmine LAN-i kaudu vĂ”tab umbes 10,50 sekundit. VĂ”rdluseks, Town Crier vĂ”tab sarnase rakenduse tĂ€itmiseks umbes 0,6 sekundit, mis on umbes 20 korda kiirem kui DECO. Kui kĂ”ik asjad on vĂ”rdsed, on TC kiirem.
turvalisus: Intel SGX enklaavi rĂŒnnakud (kĂŒlgkanalite rĂŒnnakud) toimivad ja vĂ”ivad nutika lepingu osalistele pĂ”hjustada reaalset kahju. Seoses DECOga on liiklussĂŒstiga seotud rĂŒnnakud vĂ”imalikud, kuid puhverserveri kasutamine vĂ€hendab sellised rĂŒnnakud olematuks. SeetĂ”ttu on DECO turvalisem.
Maksma: Intel SGX-i toetavate seadmete hind on suurem kui DECO-s protokolli seadistamise maksumus. SeetÔttu on TC kallim.
Praktilisus: Town Crieriga töötamiseks on vaja spetsiaalset TEE-d toetavat varustust. NÀiteks Intel SGX toetab 6. pÔlvkonna Intel Core protsessorite perekond ja uuem. DECO vÔimaldab teil töötada mis tahes seadmega, kuigi on olemas DECO seadistus, kasutades TEE-d. Vastavalt hÀÀlestusprotsessile vÔib DECO kolmesuunaline kÀepigistus veidi aega vÔtta, kuid see pole midagi vÔrreldes TC riistvarapiiranguga, seega on DECO praktilisem.
JĂ€reldus
Vaadates kahte oraaklit eraldi ja vĂ”rreldes neid nelja kriteeriumi alusel, on selge, et Town Crier jÀÀb DECO-le alla kolme punktiga neljast. DECO on infoturbe seisukohalt töökindlam, odavam ja praktilisem, kuigi kolme osapoole protokolli seadistamine vĂ”ib vĂ”tta aega ja sellel on omad miinused, nĂ€iteks lisatoimingud krĂŒpteerimisvĂ”tmetega. TC on kiirem kui DECO, kuid kĂŒlgkanalite rĂŒnnakute haavatavused muudavad selle vastuvĂ”tlikuks konfidentsiaalsuse kaotamisele. Tuleb arvestada, et DECO vĂ”eti kasutusele 2020. aasta jaanuaris ning selle ohutuks pidamiseks pole veel piisavalt aega möödas. Town Crier on olnud rĂŒnnaku all 4 aastat ja lĂ€binud palju teste, seega on selle kasutamine paljudes projektides Ă”igustatud.
Allikas: www.habr.com

