Nú til dags hafa allir skrifað um blockchain-tækni, dulritunargjaldmiðla og hversu flott hún er. En þessi grein verður ekki fagnaðarlæti um þessa tækni; hún mun einbeita sér að göllum hennar og hvernig hægt er að bregðast við þeim.

Þegar unnið var að verkefni hjá Altirix Systems kom upp verkefnið að staðfesta gögn á öruggan og ritskoðunarþolinn hátt utan blockchain-kerfisins. Nauðsynlegt var að staðfesta breytingar á færslum í kerfi þriðja aðila og, út frá þessum breytingum, framkvæma ákveðna grein snjallsamningsrökfræðinnar. Verkefnið virðist ómerkilegt við fyrstu sýn, en þegar fjárhagsstaða eins aðilans sem hlut á að máli er háð niðurstöðu þess, þá koma upp viðbótarkröfur. Fyrst og fremst krefst þetta alhliða trausts á slíkum staðfestingarferli. En fyrst og fremst þarf að gæta þess að það sé traust.
Vandamálið er að blockchain-kerfið sjálft er sjálfstæð, lokuð eining, þannig að snjallsamningar innan þess vita ekkert um umheiminn. Á sama tíma eru skilmálar snjallsamninga oft tengdir upplýsingum um raunverulega hluti (seinkun á flugi, gengi gjaldmiðla o.s.frv.). Til þess að snjallsamningar virki rétt verða upplýsingar sem berast utan blockchain-kerfisins að vera áreiðanlegar og staðfestar. Þetta vandamál er leyst með því að nota spár eins og Town Crier og DECO. Þessar spár gera snjallsamningi á blockchain-kerfinu kleift að treysta upplýsingum frá traustum vefþjóni; þær geta talist áreiðanlegar upplýsingaveitur.
Orðspjöll
Ímyndaðu þér að snjallsamningur flytji 0.001 BTC í Bitcoin veskið þitt ef uppáhalds knattspyrnufélagið þitt vinnur rússneska bikarinn. Ef sigurinn tekst þarf að láta snjallsamninginn vita hvaða félag vann, sem vekur upp ýmsar áskoranir: hvar er hægt að fá þessar upplýsingar, hvernig er hægt að senda þær á öruggan hátt til snjallsamningsins og hvernig er hægt að tryggja að upplýsingarnar sem snjallsamningurinn móttekur passi við raunveruleg gögn?
Tvær mögulegar aðstæður eru fyrir upplýsingaöflun: að tengja snjallsamning við trausta vefsíðu sem geymir niðurstöður samsvörunar miðlægt, eða að tengja margar vefsíður og sía síðan upplýsingar á milli margra heimilda sem veita sömu gögn. Til að staðfesta nákvæmni upplýsinganna eru notaðar spár, eins og Oraclize, sem notar TLSNotary (TLS breytingu fyrir gagnaauðkenningu). Það er mikið af upplýsingum um Oraclize á Google og nokkrar greinar um Habr. Í dag mun ég ræða spár sem nota aðeins aðra aðferð til að senda upplýsingar: Town Crier og DECO. Greinin lýsir starfsháttum beggja spáranna, sem og ítarlegum samanburði.
Bæjarköllari
Town Crier (TC) var kynnt af IC3 (The Initiative for Cryptocurrencies and Contracts) árið 2016 á CCS'16. Grunnhugmyndin á bak við TC er að senda upplýsingar frá vefsíðu til snjallsamnings og staðfesta að upplýsingarnar sem TC afhendir séu þær sömu og á vefsíðunni. TC notar TEE (Trusted Execution Environment) til að tryggja eignarhald á gögnum. Upprunalega útgáfan af TC lýsti því að vinna með Intel SGX.
Town Crier samanstendur af hluta innan blockchain-kerfisins og hluta innan stýrikerfisins sjálfs - TC Server.

Snjallsamningurinn (TC samningurinn) er geymdur á blockchain-inu og virkar sem framhliðarhlið (front end) fyrir snjallsamninginn. Hann tekur við beiðnum frá snjallsamningnum (CU) og skilar svörum frá netþjóninum. Netþjóninn hýsir tengibúnaðinn (Relay), sem tengir enclaven við internetið (tvíátta umferð) og tengir enclaven við blockchain-ið. Enclaven inniheldur progencl, sem er kóði sem keyrir beiðnir frá blockchain-inu og skilar stafrænt undirrituðum skilaboðum til blockchain-sins. Progencl inniheldur hluta af kóða snjallsamningsins og framkvæmir í raun sum af hlutverkum hans.
Hægt er að líta á Intel SGX-umhverfið sem sameiginlegt bókasafn með API sem starfar í gegnum ecall. Ecall flytur stjórn til umhverfisins. Umhverfið keyrir kóða sinn þar til hann klárast eða undantekning á sér stað. Ocall eru notuð til að kalla á föll sem eru skilgreind utan umhverfisins. Ocall eru keyrð utan umhverfisins og meðhöndluð af því sem óörugg köll. Eftir keyrslu ocalls fer stjórnin aftur til umhverfisins.

Enclave hlutinn stillir upp örugga rás með vefþjóninum, framkvæmir TLS handaband við markþjóninn og sér um allar dulritunaraðgerðir innbyrðis. TLS bókasafnið (mbedTLS) og smækkaður HTTP kóði eru flutt út í SGX umhverfið. Enclave inniheldur einnig rótarvottorð (safn vottorða) til að staðfesta vottorð fjarþjóna. Beiðnameðferðaraðilinn tekur við gagnamagnibeiðni á því sniði sem Ethereum lætur í té, afkóðar hana og greinir hana. Hann býr síðan til Ethereum færslu sem inniheldur umbeðið gagnamagni, undirritar það með skTC og sendir það til Relay.
Relay-hlutinn inniheldur viðmót viðskiptavinarins, TCP og Blockchain-viðmót. Viðmót viðskiptavinarins er notað til að staðfesta enclave-kóðann og eiga samskipti við viðskiptavininn. Viðskiptavinurinn sendir staðfestingarbeiðni með ecall og fær tímastimpil undirritaðan af skTC ásamt staðfestingarundirskrift (att). Staðfestingarundirskriftin er síðan staðfest með Intel Attestation Service (IAS) og tímastimpillinn er staðfestur af traustri tímaþjónustu. Blockchain-viðmótið staðfestir innkomandi beiðnir og setur færslur á blockchain-ið til afhendingar gagnagramma. Geth er opinber Ethereum-viðmótið og gerir Relay kleift að hafa samskipti við blockchain-ið í gegnum RPC-köll.
Með því að vinna með TEE gerir TC kleift að keyra margar enklafur samsíða og þrefaldar þannig vinnsluhraðann. Þó að hraðinn með einni enklafu væri 15 tx/sek, þá eykst hraðinn í 65 tx/sek með 20 enklafum sem keyra samsíða. Til samanburðar er hámarkshraðinn á Bitcoin blockchain 26 tx/sek.
DECO
DECO (Decentralized Oracles for TLS) var kynnt á CCS'20 og virkar með síðum sem styðja TLS-tengingar. Það tryggir trúnað og heiðarleika gagna.
DECO með TLS notar samhverfa dulkóðun, sem þýðir að biðlarinn og vefþjónninn deila dulkóðunarlyklum, sem gerir biðlaranum kleift að falsa TLS lotugögn ef þess er óskað. Til að leysa þetta vandamál notar DECO þríhliða handabandssamskiptareglur milli sannprófarans (snjallsamnings), staðfestingaraðilans (oracle) og vefþjónsins (gagnalindar).

Meginreglan á bak við DECO er sú að sannprófandi tekur við gögnum D og staðfestir fyrir sannprófanda að D komi frá TLS-þjóni S. Annað vandamál er að TLS undirritar ekki gögn, sem gerir það erfitt fyrir TLS-biðlara að sanna að gögnin komi frá réttum þjóni (upprunaörðugleikar).
DECO samskiptareglurnar nota dulkóðunarlyklana KEnc og KMac. Viðskiptavinurinn sendir beiðni Q til vefþjónnSvarið frá netþjóninum R berst dulkóðað, en biðlarinn og netþjónninn deila sama KMac og biðlarinn getur falsað TLS skilaboðin. Lausn DECO er að „fela“ KMac fyrir biðlaranum (prófaranum) þar til hann svarar beiðninni. Nú er KMac skipt á milli prófarans og staðfestingaraðilans - KpMac og KvMac. Netþjónninn sækir KMac til að dulkóða svarið með lyklaskiptingaraðgerðinni KpMac ⊕ KvMac = KMac.
Með því að setja upp þríhliða handaband verður gagnaskipti milli viðskiptavinarins og netþjónsins framkvæmd með öryggisábyrgð.

Þegar rætt er um dreifð véfréttakerfi er ómögulegt að minnast ekki á Chainlink, sem miðar að því að búa til dreifð net véfréttahnúta sem eru samhæf Ethereum, Bitcoin og Hyperledger, með mátkerfi að leiðarljósi: hægt er að uppfæra hvern hluta kerfisins. Til að tryggja öryggi krefst Chainlink þess að hver véfrétt sem tekur þátt í verkefni fái úthlutaða samsetningu af opinberum og einkalyklum. Einkalykillinn er notaður til að búa til hlutaundirskrift sem inniheldur ákvörðun þeirra um gagnabeiðni. Til að fá svar verður að sameina allar hlutaundirskriftir véfrétta netsins.
Chainlink hyggst framkvæma upphaflega sönnunargagn (PoC) fyrir DECO, með áherslu á dreifð fjármálaforrit eins og Mixicles. Þegar þetta er skrifað greindi Forbes frá því að Chainlink hefði keypt DECO frá Cornell háskóla.
Árásir á spámenn

Frá sjónarhóli upplýsingaöryggis voru eftirfarandi árásir á Town Crier skoðaðar:
Óheiðarleg snjallsnertingarkóðainnspýting á TEE hnútum.
Árásin felst í því að senda vísvitandi ógildan snjallsamningskóða til TEE. Þetta gerir árásarmanni sem fær aðgang að hnútnum kleift að framkvæma sinn eigin (sviksamlega) snjallsamning á afkóðuðu gögnunum. Hins vegar verða gildin sem skilað er dulkóðuð með einkalykli og eina leiðin til að fá aðgang að slíkum gögnum er að leka dulkóðaða textanum við skil/afturköllun.
Vörn gegn þessari árás felur í sér að enklavan staðfestir réttmæti kóðans sem staðsettur er á núverandi vistfangi. Þetta er hægt að gera með því að nota vistfangskerfi þar sem samningsvistfangið er ákvarðað með því að rýma samningskóðann.Leki úr dulkóðuðum breytingum á samningsstöðu.
Eðli árásarinnar: Eigendur hnúta sem keyra snjallsamninga hafa aðgang að samningsstöðunni í dulkóðuðu formi utan geymslunnar. Árásarmaður, sem hefur náð stjórn á hnúti, getur borið saman tengiliðastöðuna fyrir og eftir færslu og ákvarðað hvaða viðfangsefni voru færð inn og hvaða snjallsamningsaðferð var notuð, þar sem snjallsamningskóðinn og tæknilegar upplýsingar hans eru aðgengilegar öllum.
Vernd við að tryggja áreiðanleika einingarinnar sjálfrar.Árásir á hliðarrásum.
Sérstök tegund árásar sem notar eftirlit með minni í enclave-einingum og aðgangi að skyndiminni í ýmsum aðstæðum. Dæmi um slíka árás er Prime og Probe.

Röð árásarinnar:- t0: Árásarmaðurinn fyllir allt gagnaskyndiminnið í ferli fórnarlambsins.
- t1: Fórnarlambið keyrir kóða með minnisaðgangi sem er háður viðkvæmum gögnum fórnarlambsins (dulkóðunarlyklum). Skyndiminnislínan er valin út frá lykilbitagildi. Í dæminu á myndinni er lykilbitinn 0 og vistfang X er lesið úr skyndiminnislínu 2. Gögnin sem eru geymd í X eru hlaðin inn í skyndiminnið og færa þannig gögnin sem áður voru þar til hliðar.
- t2: Árásarmaðurinn athugar hvaða skyndiminnislínur hans hafa verið fjarlægðar — línur sem fórnarlambið notar. Þetta er gert með því að mæla aðgangstímann. Með því að endurtaka þessa aðgerð fyrir hvern lykilbita fær árásarmaðurinn allan lykilinn.
Árásarvörn: Intel SGX býður upp á vörn gegn hliðarrásarárásum sem kemur í veg fyrir eftirlit með atburðum sem tengjast skyndiminni, en Prime og Probe árás mun samt sem áður takast vegna þess að árásaraðilinn fylgist með atburðum skyndiminnisins í ferlinu sínu og deilir skyndiminni með fórnarlambinu.

Því er engin áreiðanleg vörn gegn þessari árás í augnablikinu.
Árásirnar Spectre og Foreshadow (L1TF), svipaðar og Prime og Probe, eru einnig þekktar. Þær leyfa að gögn séu lesin úr skyndiminni í gegnum hliðarrás. Til er að draga úr Spectre-v2 veikleikanum sem vinnur gegn báðum þessum árásum.
Í tengslum við DECO veitir þríhliða handabandið öryggisábyrgð:
- Heiðarleiki sannreynda: Sönnunaraðili sem hefur orðið fyrir áhrifum getur ekki falsað upprunaupplýsingar netþjónsins og getur ekki neytt netþjóninn til að samþykkja ógildar beiðnir eða svara rangt gildum beiðnum. Þetta er gert með beiðnamynstrum milli netþjónsins og sannreynda.
- Heiðarleiki sannprófanda: Skert staðfestingaraðili getur ekki valdið því að sannprófandinn fái röng svör.
- Persónuvernd: Staðfestingaraðilinn sem var tölvuþrjótaður skoðar aðeins opinberar upplýsingar (beiðni, nafn netþjóns).
Í DECO eru aðeins mögulegar varnarleysi vegna innspýtingar á umferð. Í upphafi, meðan á þriggja vega handabandinu stendur, getur sannprófandinn staðfest auðkenni netþjónsins með því að nota nýtt nonce-gildi. Hins vegar, eftir handabandið, verður sannprófandinn að reiða sig á vísbendingar netlagsins (IP tölurÞess vegna verður að vernda tenginguna milli staðfestingaraðilans og netþjónsins gegn innspýtingu umferðar. Þetta er gert með því að nota milliþjón.
Samanburður á spádómum
Town Crier byggir á netþjónshliðarlokun, en DECO gerir kleift að auðkenna uppruna gagna með þríhliða handaband og dulkóðun með dulkóðunarlyklum. Þessum véfréttum var borið saman út frá eftirfarandi forsendum: afköstum, öryggi, kostnaði og notagildi.
Bæjarköllari
DECO
frammistaða
Hraðari (0.6 sekúndur að klára)
Hægara (10.50 sekúndur til að klára samskiptareglurnar)
öryggi
Óöruggari
Öruggara
kostnaður
Dýrari
Ódýrara
hagkvæmni
Krefst sérstaks vélbúnaðar
Virkar með hvaða netþjóni sem er sem styður TLS
FrammistaðaDECO krefst þriggja vega handabands, sem tekur 0.37 sekúndur að ljúka yfir LAN. 2PC-HMAC virkar vel fyrir samskipti eftir tengingu (0,13 sekúndur á skrif). Afköst DECO eru háð tiltækum TLS dulkóðunarsvítum, stærð einkagagnanna og flækjustigi sönnunargagna fyrir tiltekið forrit. Ef við notum tvíundavalkostaforrit IC3 sem dæmi, tekur það um það bil 10,50 sekúndur að ljúka samskiptareglunni yfir LAN. Til samanburðar tekur Town Crier um það bil 0,6 sekúndur að ljúka sama forriti, sem gerir það um það bil 20 sinnum hraðara en DECO. Að öllu öðru óbreyttu verður TC hraðari.
öryggiHliðarrásarárásir á Intel SGX-umhverfið eru áhrifaríkar og geta valdið þátttakendum snjallsamninga raunverulegu tjóni. Umferðarinnspýtingarárásir eru mögulegar með DECO, en notkun milliþjóns dregur úr þessum árásum. Þess vegna er DECO öruggara.
KostnaðurKostnaðurinn við vélbúnað sem styður Intel SGX er hærri en kostnaðurinn við að setja upp samskiptareglurnar í DECO. Þess vegna er TC dýrari.
HagnýtniVinna með Town Crier krefst sérhæfðs vélbúnaðar sem styður TEE. Til dæmis er Intel SGX stutt á 6. kynslóð Intel Core örgjörvum og nýrri. DECO, hins vegar, styður hvaða vélbúnað sem er, þó að það sé til DECO stilling sem notar TEE. Þó að uppsetning á þríhliða handabandsstillingum með DECO geti tekið smá tíma, þá er það ómerkilegt miðað við vélbúnaðartakmarkanir Town Crier, sem gerir DECO hagnýtara.
Ályktun
Eftir að hafa skoðað þessi tvö spádóma sérstaklega og borið þau saman út frá fjórum þáttum, er ljóst að Town Crier er lakari en DECO á þremur af fjórum þáttum. DECO er öruggara, ódýrara og hagnýtara, þó að það geti tekið tíma að setja upp þriggja aðila samskiptareglur og það hefur sína galla, svo sem viðbótaraðgerðir með dulkóðunarlyklum. TC er hraðara en DECO, en varnarleysi sem tengist hliðarrásarárás gerir það viðkvæmt fyrir friðhelgi einkalífsins. Mikilvægt er að hafa í huga að DECO var kynnt til sögunnar í janúar 2020, þannig að ekki er liðinn nægur tími til að telja það öruggt. Town Crier hefur verið undir árásum í fjögur ár og hefur gengist undir fjölmargar endurskoðanir, þannig að notkun þess í mörgum verkefnum er réttlætanleg.
Heimild: www.habr.com

