Town Crier vs DECO: millist oraaklit plokiahelas kasutada?

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.

Town Crier vs DECO: millist oraaklit plokiahelas kasutada?

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.
Town Crier vs DECO: millist oraaklit plokiahelas kasutada?
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.
Town Crier vs DECO: millist oraaklit plokiahelas kasutada?
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.

Town Crier vs DECO: millist oraaklit plokiahelas kasutada?

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 KEnc ja KMac krüpteerimisvõtmeid. Klient saadab päringu Q veebiserverile, vastus serverilt R tuleb krüpteeritud kujul, kuid kliendil ja serveril on sama KMac ning klient saab TLS-teate võltsida. DECO lahendus on "peida" KMac kliendi eest (tõestaja), kuni see päringule vastab. Nüüd on KMac jagatud tõestaja ja kontrollija vahel – KpMac ja KvMac. Server võtab vastu KMaci, et krüpteerida vastus, kasutades võtmeosa operatsiooni KpMac ⊕ KvMac = KMac.

Kolmepoolse käepigistuse seadistamisega toimub andmevahetus kliendi ja serveri vahel turvalisuse garantiiga.
Town Crier vs DECO: millist oraaklit plokiahelas kasutada?
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

Town Crier vs DECO: millist oraaklit plokiahelas kasutada?

Infoturbe seisukohast kaaluti järgmisi rünnakuid Town Crieri vastu:

  1. 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.

  2. 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.

  3. 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.
    Town Crier vs DECO: millist oraaklit plokiahelas kasutada?
    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.
Town Crier vs DECO: millist oraaklit plokiahelas kasutada?
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:

  1. 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.
  2. Tõendaja terviklikkus: häkitud kontrollija ei saa põhjustada tõestaja valede vastuste saamist.
  3. Privaatsus: häkitud kontrollija uurib ainult avalikku teavet (päring, serveri nimi).

DECO-s on võimalikud ainult liikluse süstimise haavatavused. Esiteks saab kontrollija kolmepoolse käepigistuse abil tuvastada serveri identiteedi, kasutades värsket nonce'i. Pärast käepigistust peab kontrollija siiski tuginema võrgukihi indikaatoritele (IP-aadressidele). Seega peab kontrollija ja serveri vaheline side olema liiklussüsti eest kaitstud. 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

Lisa kommentaar