Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

TĂ€na on vaid laisk, kes ei ole kirjutanud plokiahela, krĂŒptovaluutade ja selle Ă€geduse kohta. Kuid kĂ€esolevas artiklis ei kĂ€sitleta selle tehnoloogia ĂŒlistamist, vaid teeme juttu selle puudustest ja nende lahendamise viisidest.

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

Ükskallis töö kĂ€igus Altairix Systemsis tekkis ĂŒlesanne turvalise, tsensuuri suhtes vastupidava andmete kinnitamise kohta vĂ€listest plokiahelallikatest. Oli vajalik kinnitada muudatused kolmanda sĂŒsteemi salvestustes ja nende muudatuste pĂ”hjal tĂ€ita vastavat haru nutikontakti loogikas. Esmapilgul tundub ĂŒlesanne piisavalt triviaalne, kuid kui selle tĂ€itmise tulemus sĂ”ltub ĂŒhe osalise rahalisest olukorrast, kerkivad esile lisavajadused. Esiteks on see igakĂŒlgne usaldus selliste valideerimismehhanismide vastu. Kuid kĂ”igest jĂ€rgemööda.

Probleem seisneb selles, et plokiahel iseenesest on autonoomne, isoleeritud objekt, seega ei tea nutikontaktid plokiahelas vÀlimisest maailmast midagi. Samuti on nutikontaktide tingimused sageli seotud teabega reaalsete asjade kohta (lennu hilinemine, valuutakursid jne). Nutikontaktide Ôige töö jaoks peab plokiahelast vÀljaspool saadud teave olema usaldusvÀÀrne ja kontrollitud. See probleem lahendatakse oraklite kasutamisega, nagu Town Crier ja DECO. Need oraklid vÔimaldavad nutikontaktidel plokiahelas usaldada teavet usaldusvÀÀrselt veebiserverilt, vÔib öelda, et need on usaldusvÀÀrse teabe pakkujad.

Oraklid

Kujutage ette, et nutikontakt teostab 0.001 btc ĂŒlekande teie bitcoin-rahakotile juhul, kui teie lemmik jalgpalliklubi vĂ”idab Venemaa karika. Reaalsete vĂ”itude korral on nutikontaktile vajalik edastada teavet selle kohta, milline klubi vĂ”itis, ja siin tekib hulgaliselt probleeme: kust saada seda teavet, kuidas seda turvaliselt nutikontakti edastada ja kuidas veenduda, et nutikontakti saadud teave vastab tĂ”ele?

Infoteabe kĂŒsimuses vĂ”ivad olla kaks stsenaariumi: nutilepingute ĂŒhendamine usaldusvÀÀrse veebisaidiga, kus hoitakse keskselt mĂ€ngutulemustega seotud teavet, ja teine vĂ”imalus on kohe ĂŒhendada mitu saiti ning seejĂ€rel teha teabe valik mitmest allikast, mis pakuvad samu andmeid. Teabe Ă”igsuse kinnitamiseks kasutatakse orakleid, nĂ€iteks Oraclize, mis kasutab TLSNotary't (TLS-i modifikatsioon andmete autentsuse tĂ”estamiseks). Oraclize'i kohta on Googles piisavalt teavet, ja Habrasse on mitmeid artikleid, tĂ€na rÀÀgin aga oraklitest, mis kasutavad natuke teistsugust lĂ€henemist teabe edastamiseks: Town Crier ja DECO. Artiklis antakse ĂŒlevaade mĂ”lema orakli tööpĂ”himĂ”tetest ning pĂ”hjalik vĂ”rdlus.

Town Crier

Town Crier (TC) tutvustas IC3 (The Initiative for CryptoCurrencies and Contracts) 2016. aastal CCS’16-l. TC pĂ”hidee: edastada teavet veebisaidilt nutilepingule ja veenduda, et TC edastatud teave on sama, mis veebisaidil. TC kasutab andmete autentsuse tagamiseks TEE-d (Trusted Execution Environment). TC originaalversioonis on kirjeldatud koostööd Intel SGX-iga.
Town Crier koosneb osast, mis on plokiahelas, ja osast, mis on operatsioonisĂŒsteemis — TC Server.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
TC Kontrakt asub plokiahelas ja toimib TC eesliinina. See vĂ”tab vastu taotlusi CU-lt (kasutaja nutileping) ja tagastab vastuse TC Serverilt. TC Serveris on Relay, mis loob ĂŒhenduse anklaavi ja interneti vahel (kahepoolne liiklus) ning seob anklaavi plokiahelaga. Enclave sisaldab progencl'i, mis on kood, mis tĂ€idab plokiahelast saadud taotlusi ja tagastab sĂ”numeid plokiahelasse digitaalse allkirjaga; progencl sisaldab osa nutilepingust ja tĂ€idab sisuliselt mĂ”ningaid selle funktsioone.

Intel SGX anklaavi vÔib kÀsitleda kui kÔiki sisaldavat teegib, millel on API ja mis töötab ekraani kaudu. Ecall edastab juhtimise anklaavi. Anklaav tÀidab oma koodi, kuni see lÔpetatakse vÔi kuni toimub erand. VÀliskaudu defineeritud funktsioonide kutsumiseks kasutatakse ocall'i. Ocall tÀidetakse vÀljaspool anklaavi ja töödeldakse selle poolt usaldusvÀÀrse kutsena. Ocall'i teostamise jÀrel antakse juhtimine tagasi anklaavi.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
Enclave'is toimub secure channel'i seadistamine veebiserveriga, kus enclaves ise teostab TLS handshake'i sihiserveriga ning teostab kĂ”ik krĂŒptomaatilised operatsioonid enda sees. TLS teek (mbedTLS) ja HTTP-kood on vĂ€ljaviidud SGX keskkonda. Samuti sisaldab Enclave root CA sertifikaate (sertifikaatide kogum), et kontrollida kaugserverite sertifikaate. Request Handler vĂ”tab vastu datagram'i pĂ€ringu Ethereum'i poolt pakutud formaadis, dekrĂŒpteerib selle ja analĂŒĂŒsib. SeejĂ€rel genereeritakse Ethereum'i tehing, mis sisaldab soovitud datagram'i, allkirjastatakse skTC abil ja edastatakse Relay'le.

Relay'i osa hÔlmab Client Interface'i, TCP-d, Blockchain Interface'i. Client Interface on vajalik enclave'i koodi atesteerimiseks ja kliendiga suhtlemiseks. Klient saadab atesteerimise pÀringu ecall'i abil ja saab timestamp'i, mis on allkirjastatud skTC koos att (atesteerimise allkiri), seejÀrel kinnitatakse att Intel Attestation Service'i (IAS) abil ning timestamp'i kontrollib usaldusvÀÀrne ajateenus. Blockchain Interface kontrollib sisse tulevaid pÀringuid ja paigutab tehingud plokiahelasse, et edastada datagram'e. Geth on ametlik Ethereum'i klient ja vÔimaldab Relay'l suhelda plokiahelaga RPC kÔnede kaudu.

Töötades TEE-ga, vĂ”imaldab TC kĂ€ivitada samaaegselt mitu enclave'i, suurendades sellega teabe töötlemise kiirus 3 korda. Kui ĂŒhe töötava enclave'i kiirus oli 15 tx/sec, siis 20 samaaegselt kĂ€ivitatud enclave'i juures tĂ”useb kiirus 65 tx/sec-ni, vĂ”rreldes maksimaalse plokiahela Bitcoin'i töökiirus 26 tx/sec.

DECO

DECO (Decentralized Oracles for TLS) esitati CCS’20, töötab veebisaitidega, mis toetavad TLS-ĂŒhendust. Tagab andmete konfidentsiaalsuse ja terviklikkuse.
DECO ja TLS kasutavad sĂŒmmeetrilist krĂŒpteerimist, seega on kliendil ja veebiserveril krĂŒpteerimise vĂ”tmed ning klient, kui soovib, vĂ”ib TLS-seansi andmeid valehĂ€iretega petta. Selle probleemi lahendamiseks kasutab DECO kolmesuunalist kĂ€tlemisprotokolli prover'i (nutileping), verifier'i (orakel) ja veebiserveri (andmeallikas) vahel.

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

DECO tööpÔhimÔte seisneb selles, et kontrollija (prover) saab osa andmeid D ja kinnitab verifikaatorile (verifier), et D on pÀrit TLS-serverilt S. Teine probleem on see, et TLS ei allkirjasta andmeid ja TLS-kliendil on raske tÔestada, et andmed on pÀrit just sellest serverist (provenance difficulty).

DECO protokollis kasutatakse krĂŒptovĂ”tmeid KEnc ja KMac. Klient saadab pĂ€ringu Q veebiserveriks, serveri vastus R tuleb krĂŒpteeritud kujul, kuid klient ja server omavad samu KMac-vĂ”tmeid, mistĂ”ttu saab klient TLS-sĂ”numit valetada. DECO lahendus seisneb selles, et „peita“ KMac kliendi (proveerija) eest, kuni ta pĂ€ringule vastab. NĂŒĂŒd on KMac jagatud prover'i ja verifier'i vahel – KpMac ja KvMac. Server saab KMac-i vastuse krĂŒpteerimiseks, kasutades vĂ”tmeosade operatsiooni KpMac ⊕ KvMac = KMac.

Kolmepoolse kÀepigistuse seadistamine tagab, et andmevahetus kliendi ja serveri vahel toimub turvaliselt.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
RÀÀkides detsentraliseeritud oraklite sĂŒsteemidest, on vĂ”imatu mitte mainida Chainlinki, mis pĂŒĂŒab luua detsentraliseeritud oraklite sĂ”lmede vĂ”rku, mis on ĂŒhilduv Ethereum'i, Bitcoin'i ja Hyperledger'iga, arvestades moodulsust: iga sĂŒsteemi osa saab uuendada. Samuti, et tagada turvalisus, pakub Chainlink igale ĂŒlesandes osalevale oraklile vĂ”tme kombinatsiooni (avatud ja suletud). Suletud vĂ”tit kasutatakse osalise allkirja genereerimiseks, mis sisaldab nende vastust andmepĂ€ringule. Vastuse saamiseks on vajalik kĂ”igi oraklite osaliste allkirjade ĂŒhinemine.

Chainlink kavatseb lÀbi viia esimese PoC DECO, keskendudes detsentraliseeritud finantsrakendustele, nagu Mixicles. Artikli kirjutamise hetkel ilmus Forbesis uudis, et Chainlink on omandanud DECO Cornell University'lt.

RĂŒnnakud oraklitele

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

Teabejulgeoleku seisukohast on kaalutud jĂ€rgmisi rĂŒnnakuid Town Crieri suhtes:

  1. Petturliku smart-kontakti koodi sĂŒstimine TEE-sĂ”lmedesse.
    RĂŒnnaku olemus: vale smart-kontakti koodi edastamine TEE-sse, mistĂ”ttu, kui kurjategija, kes on saanud juurdepÀÀsu sĂ”lmele, saab kĂ€ivitada oma (petliku) smart-kontakti dekrĂŒpteeritud andmete jaoks. Siiski, tagastatavad vÀÀrtused on krĂŒpteeritud privaatvĂ”tmega ja ainsaks vĂ”imaluseks nendele andmetele juurdepÀÀsemiseks on krĂŒpteeritud teksti lekkimine tagastamisel/edastamisel.
    Selle rĂŒnnaku vastu kaitsmine seisneb aktuaaride kontrollimises koodi Ă”igsuse ĂŒle, mis asub praegusel aadressil. Seda saab saavutada aadressimisprogrammiga, kus lepingu aadress mÀÀratletakse lepingu koodi hash-iga.

  2. Lepingu oleku krĂŒpteeritud andmete muutused lekitavad.
    RĂŒnnaku olemus: Nutilepingute sĂ”lmede omanikud pÀÀsevad lepingute olekule krĂŒpteeritud kujul vĂ€ljaspool anklavit. Kurjategija, kes kontrollib sĂ”lme, saab vĂ”rrelda lepingute olekut enne ja pĂ€rast tehingut ning tuvastada, millised argumendid on tehtud ja millist nutilepingute meetodit on kasutatud, kuna nutilepingute kood ja selle tehnilised spetsifikatsioonid on avalikult kĂ€ttesaadavad.
    SÔlme usaldusvÀÀrsuse tagamiseks vajalik kaitse.

  3. KĂŒlgkanali rĂŒnnakud.
    Erinevates stsenaariumees jĂ€lgimisega seotud rĂŒnnaku tĂŒĂŒp. Sellise rĂŒnnaku nĂ€ide on Prime and Probe.
    Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
    RĂŒnnaku lĂ€biviimise protseduur:

    • t0: Kurjategija tĂ€idab ohvri protsessi mĂ€lus oleva andmevahemiku.
    • t1: Ohver tĂ€idab koodi, mis tegeleb mĂ€luga, mis sĂ”ltub ohvri konfidentsiaalsetest andmetest (krĂŒptovĂ”tmed). VahemĂ€lu rida valitakse keybiti vÀÀrtuse jĂ€rgi. NĂ€ites, kus keybit = 0, loetakse aadress X vahemĂ€lus olevas reas 2. X-is hoitavad andmed laaditakse vahemĂ€lu, eemaldades seal varem olnud andmed.
    • t2: Kurjategija kontrollib, millised tema vahemĂ€lu read on vĂ€lja tĂ”rjutud — read, mida ohver kasutas. Seda tehakse juurdepÀÀsuaegade mÔÔtmise kaudu. Korrates seda toimingut iga keybiti jaoks, saab kurjategija kogu vĂ”tme.

Kaitse rĂŒnnaku eest: Intel SGX-is on kaitse kĂŒlgkanali rĂŒnnakute vastu, mis keelab vahemĂ€lu sĂŒndmustega seotud jĂ€lgimise, kuid rĂŒnnak Prime and Probe lĂ€bib ikkagi, kuna kurjategija jĂ€lgib oma protsessi vahemĂ€lu sĂŒndmusi ja jagab vahemĂ€lu ohvriga.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
Seega ei ole hetkel selle rĂŒnnaku vastu usaldusvÀÀrset kaitset.

On teada ka Spectre ja Foreshadow (L1TF) rĂŒnnakud, mis on sarnased Prime and Probe'ile. Need vĂ”imaldavad lugeda andmeid vahemĂ€lust kĂŒlgkanali kaudu. Spectre-v2 haavatavuse kaitse on ette nĂ€htud, mis töötab nende kahe rĂŒnnaku vastu.

DECO osas pakub kolmekordne kÀepigistus turvalisuse garantiid:

  1. Prover Integrity: purustatud prover ei saa vÀÀrata serveri pÀritolu teavet ega saa sundida serverit aktsepteerima lubamatuid pÀringuid vÔi vastama valesti kehtivatele pÀringutele. See on saavutatav pÀringute malli abil serveri ja prover'i vahel.
  2. Verifier Integrity: purustatud verifier ei saa sundida proverit saama valevastuseid.
  3. Privaatsus: HÀkkinud verifier uurib ainult avalikult kergesti kÀttesaadavat teavet (pÀring, serveri nimi).

DECO-s on vÔimalikud ainult liikluse sisestamise haavatavused. Alguses, kolmateralisel kÀepigistusel, vÔib verifier keskenduda serveri identiteedi kindlakstegemisele vÀrske nonce'i abil. Siiski, pÀrast kÀepigistust peab verifier tuginema vÔrgu tasandi nÀidikutele (IP-aadressid). Seega peab seos verifieri ja serveri vahel olema kaitstud liikluse sisestamise eest. Seda saavutatakse Proxy kasutamisega.

Oraaklite vÔrdlemine

Town Crier pĂ”hineb töötlusel serveri poolsete enclave'idega, DECO aga vĂ”imaldab andmete pĂ€ritolu kontrollimist kolmateralisel kĂ€epigistusel ning andmete krĂŒptimist krĂŒptograafiliste vĂ”tmete abil. Oraaklite andmete vĂ”rdlemine toimus jĂ€rgmiste kriteeriumide alusel: jĂ”udlus, turvalisus, hind ja praktilisus.

Town Crier
DECO

jÔudlus
Kiirem (0,6 s lÔpuni)
Aeglasem (10,50 s protokolli lÔpetamiseks)

turvalisus
VĂ€hem turvaline
Rohkem turvaline

hind
Kallim
Odavam

praktilisus
NÔuab spetsiaalset riistvara
Töötleb mistahes serveriga, mis toetab TLS-i

JĂ”udlus: DECO kasutamiseks on vajalik kolmateraline kĂ€epigistus. LAN-i kaudu seadistamisel kulub sellele umbes 0,37 sekundit; tĂ”hus 2PC-HMAC (0,13 s kirjutamiseks) on efektiivne pĂ€rast ĂŒhenduse loomist. DECO tulemuslikkus sĂ”ltub saadaval olevatest TLS-i krĂŒptosuumadest, isiklike andmete suurusest ja tĂ”estamise keerukusest konkreetse rakenduse jaoks. NĂ€iteks IC3 binaarse optsiooni rakenduse puhul: LAN kaudu protokolli lĂ”puleviimine kestab umbes 10,50 sekundit. VĂ”rdluseks: Town Crier vajab sama rakenduse tĂ€itmiseks umbes 0,6 sekundit, mis on umbes 20 korda kiirem kui DECO. Tingimuste vĂ”rdsuse korral on TC kiirem.

Turvalisus: Intel SGX enclave'ide rĂŒnded (side-channel attacks) töötavad ja vĂ”ivad kvaliteetses smarkontraktide osalistele reaalselt kahju tekitada. DECO osas on vĂ”imalikud liikluse sisestamise rĂŒnded, kuid proxy kasutamine vĂ€hendab neid rĂŒndeid. SeetĂ”ttu on DECO turvalisem.

Hind: Intel SGX riistvara töötlemise hind on kÔrgem kui DECO protokolli seadistamise hind. SeetÔttu on TC kallim.

praktilisus: Town Crier'i kasutamiseks on vajalik spetsiaalne riistvara, mis toetab TEE-d. NÀiteks toetavad Intel SGX 6. pÔlvkonna Intel Core'i protsessorid ja uuemad. DECO aga vÔimaldab töötada igasuguste seadmete puhul, kuigi TEEd kasutava DECO seadistamine on vÔimalik. DECO-l vÔib kolmekordse kÀtetÔstmise seadistamine vÔtta aega, kuid see ei saa vÔrreldagi TC riistvara piiranguga, mistÔttu on DECO praktilisem.

KokkuvÔte

Kaks oraaklit eraldi vaadates ja neid nelja kriteeriumi alusel vĂ”rreldes on selge, et Town Crier jÀÀb kolmes neljast punktist DECO-le alla. DECO on usaldusvÀÀrsem informatsiooniturbe seisukohalt, odavam ja praktilisem, kuigi kolmekordse protokolli seadistamine vĂ”ib vĂ”tta aega ja sel on oma miinused, nĂ€iteks tĂ€iendavad krĂŒpteerimisvĂ”tmetega tegelemise toimingud. TC töötab kiiremini kui DECO, kuid sellega seotud kĂŒlgkanali rĂŒnnaku oht teeb selle konfidentsiaalsuse riskide osas haavatavaks. Tuleb arvestada, et DECO esitati jaanuaris 2020 ja ei ole veel piisavalt aega möödunud, et peetaks seda turvaliseks. Town Crier on olnud nelja aasta jooksul rĂŒnnakute all ja on lĂ€binud palju teste, mistĂ”ttu on selle kasutamine paljudes projektides pĂ”hjendatud.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster