Tudnivalók: |
- A Miniscript lehetővé teszi olyan Bitcoin szoftveres pénztárcák felépítését, amelyek lehetetlenné teszik a hátsó ajtó kihasználását. Örömmel mondhatjuk, hogy a Ledger az első olyan kereskedelmi hardvertárca-gyártó, amely támogatja a miniscriptet.
- A kiegészítő funkciók a felhasználói élmény veszélyeztetése nélkül megvalósíthatók. |
A hardveres aláíró eszközöket úgy tervezték, hogy megvédjék a felhasználót a különféle általános támadási vektoroktól, mint például:
- Jogosulatlan hozzáférés és a vetőmag kivonása
- A társított szoftvertárcáját megfertőző rosszindulatú program
- Szoftver biztonsági rések magán az eszközön
Mint minden vállalkozásnak, a gyártónak is az az érdeke, hogy olyan eszközöket gyártson törhetetlen ahogy tudnak. Ennek a küldetésnek a sikere a legfontosabb, és az olyan biztonsági cégek, mint a Ledger, a múltjukon alapuló hírnévre támaszkodnak.
Néhány felhasználónak azonban továbbra is aggályai lehetnek. Mi akadályozza meg magát a céget abban, hogy elrejtőzzön a hátsó ajtó a készülékekben?
Saját felügyelet alatt mi ne bízzon, ellenőrizzük.
De tud-e a felhasználó tényleg ellenőrizze, hogy az eszköznek nincs-e hátsó ajtója?
Ez a kulcskérdés, amelyet ez a cikk megvizsgál. Pontosabban, ez a cikk a következő témákkal foglalkozik:
- mi az a hátsó ajtó, és miért nehéz, ha nem lehetetlen bebizonyítani, hogy nincs ilyen;
- miért csak a felhasználók védhetik meg magukat ettől a kockázattól;
- hogyan tesz lehetővé a miniscript gyakorlati megoldásokat erre a kihívásra a bitcoin pénztárcák számára.
Azáltal, hogy Ön az első támogatott hardveres pénztárca miniscript, reméljük, hogy ösztönözni tudjuk a fejlesztőket arra, hogy biztonságos megoldásokat építsenek és frissítsék az egész iparágunkat, és kiküszöböljük egy ilyen rendszerszintű kockázat bekövetkezésének lehetőségét.
Hogyan építsük fel a bezárhatatlan aláíró eszköz
Fogalmazzuk meg egyértelműen: nem lehet.
Ahhoz, hogy megvédje magát egy esetleges hátsó ajtóval szemben, más támadási modellre van szüksége, mint amit fent vázoltunk: ebben a forgatókönyvben az ellenfél lehet maga az eladó, vagy egy sérült bennfentes.
A probléma gyakran hangoztatott megoldása a nyílt forráskód: végül is, ha meg tudja vizsgálni a kódot, mi lehet a hiba?
Az igazság azonban összetettebb. Mivel az eladó összeszereli a hardvert, egy hátsó ajtó teljes egészében benne lehet. A hardvert úgy lehet megtervezni, hogy bizonyos pontokon figyelmen kívül hagyja a szoftvert, és rosszindulatú kódot hajtson végre.
Az általános célú számítástechnikai eszközökön (például laptopon vagy telefonon) futó szoftverekkel ellentétben a hardver átvizsgálása a mai technológia mellett gyakorlatilag lehetetlen. Még ha a hardverspecifikációk teljesen nyílt forráskódúak lennének, az áramkör minden egyes kapujának részleteivel kiegészítve, akkor is magas költségű berendezésekre lenne szükség, hogy ellenőrizni lehessen, hogy egy adott chip ezeknek megfelelően épül-e fel.
Hogyan készítsünk hátsó ajtót egy hardveres pénztárcához
Íme néhány legegyszerűbb módszer, amellyel egy rosszindulatú hardvergyártó bevezethet egy hátsó ajtót, valamint néhány olyan módszert, amellyel a hatékony felhasználók megvédhetik magukat.
Magtermesztés
Sok eszköz lehetőséget kínál magok generálására (más néven a Titkos helyreállítási kifejezés) közvetlenül a készüléken, a Igaz véletlenszám-generátor.
😈 A gonosz eszköz olyan magokat generálhat, amelyek véletlenszerűnek tűnnek, de valójában előre láthatóak a támadó számára.
🛡️ A hatékony felhasználók megkerülhetik ezt a problémát, ha offline emlékeztetőt generálnak. Ezenkívül robusztus jelmondat teljesen független magot is generálhat, amelyet a hardvergyártó nem tud megjósolni. A kompromisszum az, hogy a felhasználóknak gondoskodniuk kell arról, hogy az emlékeztető szavakon kívül megfelelő biztonsági másolatot készítsenek a jelmondatról.
Nyilvános kulcs levezetése
Hardveres pénztárcák származtatják és exportálják a nyilvános kulcsok (más néven xpubs, röviden kiterjesztett nyilvános kulcs pontjában meghatározottak szerint BIP-32 Az xpubs az érmék fogadásához szükséges címek generálására szolgálnak.
😈 A gonosz eszköz visszaadhatja a támadó által vezérelt nyilvános kulcsokat a magból származó helyes kulcsok helyett.
🛡️ A felhasználók ellenőrizhetik a származtatottat xpub egy másik, offline eszközön. A vetőmag más eszközökön történő bejuttatása azonban saját kockázatokkal jár. A biztonságtudatos felhasználók veszélyesnek ítélhetnek minden olyan eszközt, amely hozzáfért a maghoz, és akár megsemmisítheti azokat. A tipikus felhasználónak nehézséget okozhat az eljárás helyes végrehajtása, miközben kezeli a további kockázatokat.
Információk kiszivárogtatása
An légrés gyakran javasolják megoldásként annak megakadályozására, hogy egy rosszindulatú vagy feltört eszköz kiszűrje a privát kulcsokat. Hiszen ha egy eszköz nem tud kommunikálni a külvilággal, akkor semmi károsat nem tud csinálni, igaz?
Nem egészen!
Az eszköz mindig tud kommunikálni, amikor használatban van: aláírásokat állít elő. Ezek az aláírások olyan tranzakciókba kerülnek, amelyeket sugároznak és örökre tárolnak a blokkláncon.
Az aláírás egy véletlenszerű megjelenésű, legalább 64 bájt hosszúságú bájtkarakterlánc. Mivel azonban egynél több érvényes aláírás is megfelelhet ugyanannak az üzenetnek, egy rosszindulatú eszköz minden aláírás létrehozásakor néhány bit információt közölhet azáltal, hogy több aláírást generál, és szelektíven választja ki, hogy melyiket tegye közzé.
😈 Egy szélhámos eszköz nem véletlenszerű aláírásokat hozhat létre, amelyek sok tranzakció során felfedik a támadó magját!
Egy ilyen hátsó ajtó telepítésében sikeres támadónak csupán meg kell várnia a rosszindulatú aláírások megjelenését a blokkláncon, amíg elegendő információval nem rendelkezik a teljes mag rekonstruálásához.
🛡️ ECDSA aláírások esetén a nonce determinisztikus származtatásának szabványos módszerével (pl. RFC6979) meghiúsítja ezt a támadást, feltéve, hogy ellenőrzi, hogy az előállított aláírás megegyezik a várt aláírással. Ennek az esetnek a biztosításához azonban egy második eszközt is be kell tölteni ugyanazzal a vetőmaggal, ami az előző részben említett gyakorlati problémákhoz vezet.
🛡️ Érdekes megközelítés az okos módszer alkalmazása kényszeríteni az eszközt, hogy ténylegesen válasszon egy véletlenszerű nonce-t. Az erre a célra szolgáló protokoll, az ún anti-exfil or antiklepto, jelenleg a Blockstream Jade és ShiftCrypto BitBox02 hardveres pénztárcákban van implementálva. Olvass tovább ShiftCrypto blogja, amely egy ilyen támadás végrehajtásának technikai leírását is tartalmazza.
Jó, akkor nincs remény?
A legtöbb fent felsorolt védekezés🛡️ többnyire kifejezett, tolakodó műveleteket követel meg a felhasználótól, hogy megvédje magát: vagy úgy, hogy magától generálja a magot (lényegében az agy segítségével helyettesíti a hardvertárcából származó funkciókat), vagy egy további eszköz a számítások helyes végrehajtásának ellenőrzésére.
Az anti-exfil protokoll azonban kiemelkedik: mivel mindig van egy gép, amely a hardver aláíró és a külvilág között közvetít, ez a gép segíthet. A hardveres aláíró interaktív protokollján keresztül ez lehetséges érvényesíteni valóban véletlenszerű nonce használata, ezáltal csökkentve vagy kiküszöbölve a végső aláírás jelentős manipulálásának esélyét.
Ebben a blogbejegyzésben elsősorban az ilyen típusú intézkedésekre vagyunk kíváncsiak: noha az UX-t jelentősen rontó stratégiák vonzóak lehetnek a nagyfelhasználók számára, valószínűleg javítanak. rosszabb a gyakorlatban a technikailag kevésbé ügyes felhasználók számára – ami a túlnyomó többség.
A biztonsági modell
Standard modell hardveres aláírók számára
A hardver-aláíró gyártók célja, hogy megvédjék a felhasználókat számos lehetséges fenyegetéstől (további részletekért lásd: Fenyegetés modell). Ebben a cikkben egy nagyon fontos tulajdonságra összpontosítunk, amely a következőképpen foglalható össze:
A felhasználókat nem lehet megtéveszteni olyan műveletekkel, amelyek alapvesztéssel járnak, feltéve, hogy megértik és a jóváhagyás előtt ellenőrzik a képernyőn megjelenő információkat.
Jóváhagyás szükséges minden kényes művelethez, különösen az aláírásokhoz. A mag védelme hiábavaló lenne, ha a rosszindulatú programok tetszőleges üzenetekhez tudna aláírásokat generálni, például egy tranzakcióhoz, amely elszívja az összes pénzt!
Nagyon fontos hangsúlyozni, hogy a fenti tulajdonságnak akkor is érvényesnek kell lennie, ha a szoftvertárca teljesen feltört. A laptop/telefon képernyőjén megjelenő tartalmak nem megbízhatóak: A rosszindulatú programok lecserélhetik a címeket, megtéveszthetik Önt, hogy mely címek az Öné, tranzakciót mutathatnak be, de egy másikat továbbíthatnak az eszközre aláírásra stb.
Ezért a hardveres aláíró eszközön futó firmware és alkalmazások a szoftvertárcát eleve figyelembe veszik megbízhatatlan és megbízhatatlan.
Hátsóajtó elleni biztonsági modell szoftveres pénztárcákhoz
Ebben a részben teljesen felcseréljük a szerepeket. Most szeretnénk megtervezni a szoftveres pénztárca amely megakadályozza, hogy a hardvergyártó ellopjon vagy alapveszteséget okozzon, még akkor is, ha az eszköz teljesen rosszindulatú.
Ezért ez nem lehet a tulajdonsága eszköz: inkább a tulajdonsága szoftveres pénztárca beállít. A következőképpen foglalhatnánk össze:
Feltéve, hogy a szoftvertárca nem kerül veszélybe, a hardvergyártó nem okozhat pénzveszteséget a felhasználónak.
Ez ellentmondásosnak tűnhet, mivel egyenesen ellentmond a fent részletezett szabványos biztonsági modellnek. A „hátsó ajtó hiánya” azonban azt jelenti, hogy „pontosan azt teszik, amit tenniük kell”. Mivel a szoftvertárca az nap interfész az aláíró eszköz és a külvilág között, ez az egyetlen hely, ahol a helytelen viselkedés elleni védelem érvényesíthető – akár hiba, akár az eszköz kifejezett kompromittálása miatt.
Vegye figyelembe, hogy ez a modell jelentősen túlmutat egy eszközhibán, például egy kihasználható programhibán. Ebben az esetben egy olyan forgatókönyv szerint működünk, ahol az eszköz aktívan törekszik forrásveszteség okozására.
Természetesen nincs védelem, ha a gyártó sikeresen kompromittált mindkét az eszközt és a szoftvertárcát futtató gépet is. Ezért rendkívül fontos annak biztosítása, hogy szoftvertárcája nyílt forráskódú és auditálható legyen, különösen, ha ugyanaz a szállító építette, amelyik a hardvert is gyártja.
A miniscript szerepe
A Miniscript felvértezi a pénztárcafejlesztőket azzal a képességgel, hogy teljes mértékben kihasználják a bitcoin Script fejlett funkcióit. A miniscript-feloldás hihetetlen lehetőségeinek áttekintéséért lásd: korábbi blogbejegyzésünk. Érdemes meghallgatni is A Stephan Livera Podcast 452. epizódja egy beszélgetésre arról, hogy mit hoz a miniscript a bitcoin világába.
A Ledger Bitcoin alkalmazás a 2.1.0-s kiadása óta támogatja a miniscriptet, amelyet 2023 februárjában vezettek be. A Bitcoin 2023 konferencián Miamiban a Wizardsardine bejelentette az 1.0-ás verzióját. Liana pénztárca, az első telepített pénztárca miniscript alapján.
Ennek a bejegyzésnek az alapötlete, hogy egy bitcoin pénztárca számlát nem csak eggyel, hanem azzal is meg lehet védeni többszörös kulcsok. Ez rugalmas biztonsági keretrendszereket tesz lehetővé, ahol még egy kulcs teljes meghibásodása vagy kompromittálása sem katasztrofális.
Multisig töpreng
A Multisig egy jelentős fejlesztés az öngondoskodási megoldás erejében. A Bitcoin Script programozhatóságának kihasználásával lehetővé teszi olyan pénztárcák létrehozását, amelyekhez több kulcsra van szükség egyetlen kulcs helyett. A k-nak,-nek-n A multisig pénztárca kombinációját igényli k érvényes aláírások, összesen n lehetségesek.
A multisig azonban UX-terhelést is ró a felhasználóra, és új hibalehetőségeket kínál. A 3-ból 3 multisig-beállítás, amely három különböző kulcsot foglal magában, amelyeket biztonságosan tárolnak külön helyen, erős biztonságot kínál… de ez azt is jelenti, hogy ha még egy egyetlen a kulcs elveszett, az érmék végleg elérhetetlenné válnak!
Ezért a nagyobb redundanciát kínáló beállítások (mint például a 2-ból 3 vagy az 3-ből 5) általában népszerűbbek: ha egyetlen kulcs elveszik, a többi kulcs továbbra is megkönnyítheti a helyreállítást. Ez azonban kompromisszumot vezet be: ha egy kulcsot anélkül, hogy Ön tudta, az általános biztonság jelentősen csökken!
A vállalatok hasonlóak Casa és a Lánc nélküli tőke saját őrzési megoldásokra specializálódtak, ahol ügyfeleik kulcsainak egy kisebb részét birtokolják. Segítik a felhasználókat azáltal is, hogy végigvezetik őket a bevezetési folyamaton, és leegyszerűsítik a felügyeleti rendszerek használatát, ami egyébként ijesztő lehet a legtöbb nem műszaki felhasználó számára.
Miniscript és időzített helyreállítási útvonalak
Liana miniszkriptet használ olyan pénztárcák létrehozásához, amelyek többféle költési módot kínálnak:
- elsődleges kiadási feltétel, amely azonnal elérhető;
- egy vagy több további kiadási feltétel, amely egy bizonyos időszak után válik elérhetővé (ún timelock).
Ez sok érdekes felhasználási esetet tesz lehetővé:
- felépülés: Szabványos pénztárca egyetlen aláírással vagy több jellel az elsődleges kiadási útvonalként; de egy külön helyreállítási mechanizmus (kulcs más maggal, multisig, tech-hoz értő barát, letétkezelő) 6 hónap után elérhetővé válik.
- kormányzási : A két igazgatóval rendelkező társaság 2-2-t alapíthat a társaság pénztára számára; nézeteltérés esetén egy megbízható ügyvéd 6 hónap elteltével hozzáférhet a pénzeszközökhöz.
- Pusztuló multisig: A pénztárca 3-ból 3-ból indul, 2 hónap után 3-ból 6-ra vált át, és 1 hónap után 3-ból 9-essé válik.
- Automatikus öröklés: A 6 hónap utáni felépülési út három gyermeke közül kettőt magában foglal; esetleg 2 év után a második felépülési út közjegyzőt igényel, ha az örökösök nem tudnak konszenzusra jutni.
Megjegyzés: az összes fenti példa az a relatív időzár, amely az érmék korára utal (vagyis: amikor utoljára mozgatták az alapokat). A kompromisszum az, hogy a felhasználónak ne felejtse el elkölteni az érméket (azzal, hogy elküldi őket magának), ha az időzár lejártához közeledik.
Ez csak néhány példa, de elegendőnek kell lennie ahhoz, hogy meggyőzze az olvasót arról, hogy a miniscript jelentős előrelépés a Bitcoinban rejlő lehetőségek kiaknázása felé. programozható pénz.
Wallet szabályzat regisztráció
A több kulcsot használó Bitcoin pénztárca számlák esetén (legyen szó multisig-ről vagy kifinomultabb miniscript-alapú megoldásokról) kulcsfontosságú, hogy az eszközt megtanítsuk azonosítani az adott fiókhoz tartozó címeket. Ez az egyetlen módja annak, hogy az eszköz segítse a felhasználót abban, hogy a megfelelő címekről kapjon vagy költsön…
A házirend érvényesítése és a xpubs a cosigner egy megbízható biztonsági mentéssel szemben elengedhetetlen, de viszonylag időigényes.
A jó hír az, hogy ezt csak egyszer kell megtenni:
Ha egy szabályzatot regisztrált egy névvel (a „Decaying 3/3” példában), az eszköz képes lesz felismerni, amikor ilyen házirendet alkalmaznak.
A műszaki részletek iránt érdeklődők további információt a BIP javaslat.
Házirend biztonsági mentése
Az egyik kritikus szempont az, hogy bár a többkulcsos házirendek lehetővé teszik a privát kulcsok tranzakciók engedélyezésére, annak ismeretére minden a nyilvános kulcsok (és a pontos szabályzat) szükségesek.
A magtól eltérően azonban a szabályzat és a nyilvános kulcsok biztonsági mentése sokkal kevésbé kockázatos: ha valaki felfedezné, nyomon követheti az ehhez a szabályzathoz kapcsolódó összes tranzakciót. Bár ez nem ideális – a magánélet fontos! − ez nem olyan vészes, mint az érmék elvesztése, és kevésbé csábítja a potenciális támadókat. Következésképpen a szabályzat több példányának tárolása forró pénztárcákban, kinyomtatása és különféle helyeken való tárolása, titkosítása és felhőtárhelyen való tárolása stb. mind életképes stratégia.
A kihúzhatatlan egy aláírású pénztárca
Tegyünk egy lépést hátra. Már tárgyaltuk a több aláírást tartalmazó pénztárcát, de most visszatérünk az alapokhoz, hogy létrehozzunk egy aláírást tartalmazó pénztárcát. Pontosabban olyan pénztárcát akarunk úgy érzi, és a úgy néz ki, mint egy egyaláírású pénztárca, a kezdeti beállítási fázis után. Célunk azonban egy olyan pénztárca létrehozása, amelyből a gyártó még akkor sem tudja ellopni az Ön pénzét, ha az rosszindulatú 😈, és a hardveres aláíró eszköz kiszámíthatatlan módon viselkedik.
A megközelítés könnyen általánosítható a több aláírást tartalmazó pénztárcák esetében.
Az alábbi példák a következő nyelven lesznek megírva politikaminiscript helyett. Az irányelveket az emberek könnyebben elolvashatják és átgondolhatják, és automatizált eszközökkel miniszkriptekké is lefordíthatók. További információ a miniscriptről és a szabályzatról.
A hardveres pénztárca megvédheti Önt a szabványos biztonsági modellben. A Miniscript megvédheti Önt a hátsó ajtó elleni biztonsági modellben (és még sok másban!).
Nulladik lépés: a status quo
A legtöbb felhasználó manapság ezt az irányelvet használja: egyetlen kulcs, amely a hardvertárcában előállított magból származik.
pk(key_ledger)
Természetesen semmilyen módon nem lehet bizonyítani a hátsó ajtó hiányát.
Első lépés: duplázd meg ezeket a kulcsokat
Az első lépés egyszerű:
and(pk(key_ledger), pk(key_client))
Itt, key_client
a felhasználó gépén jön létre, ezért a Hot Key. Lényegében ez egy 2-ből 2 multisig beállítás. A legfontosabb szempont az, hogy a felhasználó nem sok interakciót folytat vele key_client
: a szoftveres pénztárca előállítja ezt a kulcsot, belefoglalja a tárca biztonsági másolatába, és szükség esetén aláírja (például amikor a felhasználó a hardveres aláírójával van elfoglalva).
Ez már elég érdekesnek tűnik: az alapok nélküle elkölthetetlenek key_client
, amely nem érhető el a hardvergyártó számára; Még ha a gonosz eladó teljes mértékben ismeri is az eszköz kulcsát, továbbra sem tudná mozgatni az alapokat anélkül, hogy kifejezetten megcélozná a felhasználót, például a szoftveres pénztárcáját futtató gép kompromittálásával.
Van azonban egy probléma: a pénztárca bevezetése során a hardveres aláíró az egyetlen entitás, amely képes előállítani a nyilvános kulcsot (xpub). key_ledger
a pénztárcában használt. Ezért az eszköz szándékosan generálhat a rossz xpub-ot a támadó irányítja, és később elutasítja (vagy nem tudja) aláírni. Vitathatatlan, hogy ez egy meglehetősen szélsőséges támadási forgatókönyv: a hátsó ajtó készítője nem lophatja el az alapokat, és a legtöbb, amit tehet, hogy egyénileg megcélozza a felhasználót, és váltságdíjat követel („Segíthetek visszaszerezni a pénzét, ha a felét kifizeti nekem ”).
Reálisabban, ez növeli a tévedések esélyét: most már van két magja / privát kulcsa, és szüksége van mindkét hogy el tudjunk költeni. Ha bármelyiket elveszti, az érmék örökre zárva lesznek.
Második lépés: időzített helyreállítás
Bevezetünk egy külön helyreállítási kulcsot, amely csak egy meghatározott időzár után érhető el: and(older(25920)
, pk(key_recovery))
, ahol 25920 a blokkok hozzávetőleges száma 6 hónap alatt. A teljes szabályzat a következőképpen alakul:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
Ez hasonló az előző forgatókönyvhöz, de egy csavarral: ha key_ledger
or key_client
bármilyen okból elérhetetlenné válik (leggyakrabban a magmentés elvesztése miatt!), a helyreállítási útvonal 6 hónap elteltével válik elérhetővé.
Számos lehetőség van key_recovery
, mindegyiknek megvan a maga kompromisszuma:
a. Használjon másikat Hot Key. Ez praktikus megoldás mindaddig, amíg a felhasználó nem emlékszik visszaállítani az időzárat. Ha azonban a gyorsbillentyűk veszélybe kerülnek (ez a forgatókönyv általában meglehetősen valószínűnek tekinthető!), a támadó megpróbálhat hozzáférni az alapokhoz, amint az időzár lejár, versenyt indítva ezzel a jogos tulajdonossal.
b. Használjon külön hardveres aláíró eszközt. Ez egy robusztus megoldás, és szükség esetén más szállítóval kombinálva is használható; azonban növeli a beállítás bonyolultságát és a felhasználói élményt a felhasználó költségeit.
c. Használjon megbízható külső szolgáltatást. A szoftvertárca egy xpub-ot importálhat egy külső szolgáltatásból, így használva azt key_recovery
. Ez a harmadik fél csak akkor megbízható, ha az időzár lejár, ami vonzó kompromisszum lehet néhány felhasználó számára.
Mint már említettük, mint minden időzárral rendelkező szabályzat esetében, fontos, hogy a felhasználó ne felejtse el frissíteni az érméket az időzár lejárta előtt.
Harmadik lépés: a nem megbízható harmadik fél
Keverjük össze az (a) és (c) ötletet: a helyreállítási útvonalhoz szükségünk van egy helyi gyorsbillentyűre key_recovery_local
, És egy key_recovery_remote
amelyet egy félig megbízható szolgáltatás üzemeltet; az időzárat is megtartjuk.
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
Ez csökkenti a helyreállítási szolgáltatáshoz szükséges bizalom szintjét. Óvatosan kell azonban eljárnunk: maga a szolgáltatás figyelheti a blokkláncot és észlelheti az UTXO-jainkat – elvégre ők biztosították nekünk a key_recovery_remote
xpub, így képesek keresni az ebből származó pubkey-ket tartalmazó UTXO-kat key_recovery_remote
. Még az időzár lejárta előtt is megismerhetik pénzügyi történetünket, és akkor is, ha soha nem vettük igénybe szolgáltatásukat.
Megjegyzés: A karófák bizonyos házirendek esetében kiküszöbölhetik ezt az adatvédelmi problémát, de ez nem mindig van így, és alapos értékelést igényel az adott szabályzat alapján.
Negyedik lépés: vakítsd el a harmadik felet 🙈
Annak érdekében, hogy a helyreállítási szolgáltatás ne ismerje meg pénzügyi előzményeinket, az általuk közölt pubkey használata helyett használhatunk egy vak xpub technika mflaxman itt részletesen kifejtette. Röviden, használat helyett key_recovery_remote
szabályzatunkban négy 31 bites véletlen számot választunk a
, b
, c
, d
(A vakító tényezők), és a következőket használjuk BIP-32 származtatott pubkey:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
Nagyon fontos, hogy mi is hozzátesszük key_recovery_remote
, és a vakító tényezők a
, b
, c
és a d
biztonsági másolatunkba, későbbi hivatkozás céljából.
Ha valaha is használnunk kell a helyreállítási szolgáltatást, akkor felfedjük a
, b
, c
, d
nekik. Addig nem tudják felfedezni, hogy a kulcsok az övékből származnak key_recovery_remote
közzétételre kerülnek a blokkláncon: a 4 vakító tényező lehetséges kombinációinak száma az 2^(31*4) = 2^124
, ami lehetetlenné teszi mindannyiuk erőszakos kikényszerítését.
Ötödik lépés: túl sok gyorsbillentyű megégetheti Önt 🔥
Sikerült a szoftvertárcánkat visszavonhatatlanná tenni. Azonban bevezettünk egy másik problémát: mindkét kiadási feltétel helyben generált, forró kulcs, amelyet a hardvertárca nem igazolt. Ezért, ha a gazdagépet feltörték, az ráveheti Önt, hogy regisztrálja a házirendet a pubkey-k használatával. key_client
és a key_recovery_local
, de véletlenszerű, nem kapcsolódó privát kulcsokat helyezzünk el a biztonsági másolatunkban (ne feledje, a forró kulcsok a biztonsági másolatunk részét képezik!).
Ez alapvetően az összes pénzt a pénztárcába küldi elkölthetetlen, mivel senki sem ellenőrzi az aláíráshoz szükséges privát kulcsokat.
Van néhány megoldás a probléma megoldására:
- A beépítés során, miután a biztonsági másolatunkat papírra nyomtattuk, egy külön eszközzel ellenőrizhetjük, hogy a biztonsági másolat privát és nyilvános gyorsbillentyűi valóban egyeznek-e. Ez a megközelítés kiküszöbölné a problémát, mivel biztosak lennénk, hogy minden szükséges kulcs birtokában rendelkeznénk az átépítéshez és aláíráshoz.
- Hozzáadhatunk még egy költési feltételt még hosszabb időzárral (9 hónap, 38880 blokk), amelyhez csak egy
key_ledger_failsafe
a hardvereszközről. Ily módon a legrosszabb forgatókönyvben, amikor minden más meghiúsul, visszatérünk az egyszeri aláíró eszköz biztonságához. Normál üzemben soha nem hagynánk lejárni az első időzárat, így a második időzár sem jár le!
A második megközelítéssel a végső politika így nézne ki
or(
and(pk(key_ledger), pk(key_client)),
or(
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote_blind))
),
and(older(38880), pk(key_ledger_failsafe))
),
)
Ez a szoftveres pénztárca-konfiguráció minden olyan biztonsági tulajdonságot kielégít, amelyet az elején igényeltünk. Sőt, fellendülési utat kínál a fő kiadási kulcsok esetén key_ledger
elveszett. Szép funkció!
Beépülés a visszakaphatatlan szoftvertárcába
Milyen lenne a felhasználói élmény egy ilyen összetett szabályzatot alkalmazó pénztárcánál? Íme egy rövid áttekintés:
- A felhasználó megnyitja a szoftvertárcát, és megkezdi az új fiók létrehozását.
- A szoftvertárca felszólítja a felhasználót, hogy csatlakoztassa aláíró eszközét, és lekéri az xpubs fájlokat
key_ledger
és akey_ledger_failsafe
. - A szoftvertárca önállóan generálja a key_client gyorsbillentyűt.
- A szoftvertárca megszerzi
key_recovery_remote
társ-aláíró szolgáltatásból, vagy lehetővé teszi a felhasználó számára, hogy más módon határozzon meg egy kulcsot. Opcionálisan kiszámítja akey_recovery_remote_blind
a korábban említett vakítási technikával. - A szoftvertárca biztonsági másolatot készít a házirendről, amely tartalmazza a pontos miniscript szabályzatot, az összes xpub-ot és a kiterjesztett privát kulcsot.
key_client
gyorsbillentyű. Ezt a biztonsági másolatot biztonságosan tárolják (például papírra nyomtatják vagy külön eszközre mentik). - Végül a szoftvertárca utasítja a felhasználót, hogy regisztrálja a házirendet az eszközön. A felhasználó keresztellenőrzi a biztonsági másolatot (papíron vagy bármilyen más adathordozón, kivéve a szoftvertárca által vezérelt képernyőt).
A szoftvertárca kezeli a fenti lépések többségét, így a felhasználó részvétele nem nagyobb terhet ró, mint amennyire ma már szüksége van egy többaláírású pénztárca beállításához.
A bevezetés csak néhány percet vesz igénybe, amint egy jó UX készül hozzá. Ha elkészült, a szoftveres pénztárca olyan felhasználói élményt tud nyújtani, amely nagyon hasonló egy tipikus egyaláírásos pénztárcához. Így fog a miniscript mindent megváltoztatni: azzal, hogy eltűnik a felhasználó szeme elől!
Taproot fejlesztések
A Ledger a Bitcoin alkalmazás márciusban megjelent 2.1.0-s verziója óta támogatja a miniscriptet. Míg a taproot címekre történő fogadás és az onnan történő költés támogatása engedélyezve volt a karógyökér puhavilla 2021 novemberében most az utolsó simításokat tesszük az ütemterv következő lépésén: a taproot miniscript-támogatásán.
A Taproot óriási hatással lesz a cikkben bemutatott megközelítések használhatóságára. Ha az elsődleges költési pálya egykulcsos költési feltétel, akkor a fellendülési költési utak megléte észlelhetetlen lesz a blokkláncon, hacsak nem használják ki őket. Ez nagymértékben javítja a magánélet védelmét azáltal, hogy teljesen megszünteti az ujjlenyomatokat a szokásos költési útvonalon. Ezenkívül javítja a méretezhetőséget, mivel a szokásos költési pálya a lehető legköltséghatékonyabbá válik. Ez azt jelenti, hogy a helyreállítási útvonalak jelenléte miatt nem merülnek fel többletköltségek, kivéve, ha azokat használják. Ez egy jelentős frissítés a SegWit-tranzakciókhoz képest, amelyek megkövetelik a teljes szkript közzétételét, beleértve az összes kiadási feltételt is, bármilyen költés során.
Végül a fejlettebb protokollok, mint pl MuSig2 (nemrég szabványosított) és FROST fel fogja tölteni a taproot kulcsútját. A Schnorr aláírásokra épülő protokollok lehetővé teszik egyetlen létrehozását összesített pubkey amivel ábrázolható egy n-nak,-nek-n több aláírás vagy a k-nak,-nek-n küszöb séma. Ez lehetővé tenné a taproot billentyűút használatát olyan esetekben is, amelyeket manapság gyakrabban ábrázolnak speciális multisig szkriptek.
Következtetések
Ez a cikk egy kis (de fontos) rést tár fel annak a hatalmas tervezési területnek a területén, amelyet a miniscript a szoftveres pénztárcák számára szabadít fel.
Megmutattuk, hogyan lehet a miniscript segítségével létrehozni egy „hátraajtó nélküli” szoftvertárcát, miközben egy további helyreállítási útvonalat is hozzáadunk, amely lehetővé teszi a katasztrofális kulcsvesztések megelőzését. Míg a hardveres aláíró eszközök nem tudják érvényesíteni az anti-backdoor biztonsági modellt, a miniscript támogatásával olyan szoftveres pénztárcákat tesznek lehetővé, amelyek pontosan ezt teszik!
A többaláírási sémák, az időzárak, a vak xpubok és a gyorsbillentyűk kombinációjának okos felhasználásával olyan biztonságos pénztárcakonfigurációt mutattunk be, amely egyensúlyban tartja a biztonságot, a magánéletet és a robusztusságot.
Ezen túlmenően azzal érveltünk, hogy ez lehetséges anélkül, hogy negatívan befolyásolná a felhasználói élményt, mivel a beállítás összetettsége nem jelent nagy további UX-tehert.
Izgatottan várjuk, hogy a miniscript milyen lehetőségeket nyit meg a bitcoin öngondoskodás következő generációja számára.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :van
- :is
- :nem
- :ahol
- $ UP
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- képesség
- Képes
- Rólunk
- felett
- Abszolút
- teljesen
- hozzáférés
- igénybe vett
- hozzáférhető
- összhangban
- Fiók
- Fiókok
- Akció
- cselekvések
- aktívan
- tulajdonképpen
- hozzá
- hozzáadásával
- mellett
- További
- Ezen kívül
- címek
- fejlett
- Után
- ellen
- kor
- Támogatás
- cél
- Minden termék
- lehetővé
- lehetővé teszi, hogy
- mentén
- már
- Is
- Bár
- mindig
- an
- és a
- bejelentés
- Másik
- bármilyen
- bármi
- app
- tetszetős
- megjelenik
- alkalmazások
- megközelítés
- megközelít
- jóváhagyás
- hozzávetőleges
- VANNAK
- vitathatóan
- érvelt
- cikkben
- AS
- megjelenés
- segít
- társult
- At
- támadás
- ellenőrizhető
- engedélyez
- Automatizált
- autonóm módon
- elérhető
- vissza
- hátsó ajtó
- háttal ellátott
- támogatás
- mentés
- egyenlegek
- alapján
- alapvető
- Alapvetően
- Alapjai
- BE
- mert
- válik
- válik
- előtt
- Kezdet
- hogy
- lent
- BEST
- között
- Túl
- Bitcoin
- Bitcoin Wallet
- bitcoin pénztárcák
- Keverék
- blockchain
- Blocks
- Blockstream
- Blog
- mindkét
- Agy
- Bring
- rádióadás
- Bogár
- épít
- épült
- teher
- éget
- üzleti
- elfoglalt
- de
- by
- hívott
- TUD
- nem tud
- képes
- óvatos
- eset
- esetek
- végzetes
- Okoz
- okozó
- óvatosság
- bizonyos
- kihívás
- esély
- változik
- Gyerekek
- csip
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- választja
- azt állította,
- világosan
- felhő
- felhő tárolási
- kód
- érmék
- kombináció
- kombinációk
- kereskedelmi
- Közös
- általában
- kommunikálni
- Companies
- vállalat
- Társaságé
- teljes
- teljesen
- bonyolult
- bonyolultság
- Veszélyeztetett
- veszélyeztetése
- számítások
- számítástechnika
- aggodalmak
- feltétel
- Körülmények
- Konferencia
- Configuration
- Csatlakozás
- megegyezés
- Következésképpen
- Fontolja
- figyelembe vett
- tartalmazott
- vezérelt
- ellenőrzések
- meggyőz
- kijavítására
- sérült
- Költség
- tudott
- Tanfolyam
- teremt
- létrehozása
- teremtés
- Teremtő
- kritikai
- kritikus szempont
- kritikus
- Jelenleg
- gondnok
- Őrizet
- Ügyfelek
- Veszélyes
- Elutasítása
- csökken
- úgy gondolja
- meghatározott
- Kereslet
- igazolták
- telepített
- Származtatott
- leírás
- Design
- tervezett
- kívánatos
- részlet
- részletes
- részletek
- kimutatására
- fejlesztők
- eszköz
- Eszközök
- különböző
- nehéz
- csökkenő
- közvetlenül
- igazgatók
- eltűnő
- katasztrofális
- felfedez
- felfedezése
- tárgyalt
- vita
- Megjelenik
- do
- nem
- Nem
- csinált
- kétszeresére
- két
- alatt
- minden
- könnyebb
- könnyen
- erőfeszítés
- bármelyik
- megszüntetése
- megszüntetése
- más
- hangsúlyt helyez
- munkavállaló
- lehetővé
- engedélyezve
- lehetővé teszi
- végén
- érvényesíteni
- elég
- biztosítására
- biztosítása
- belépés
- csábító
- Egész
- teljesen
- egység
- felszerelés
- hibák
- különösen
- alapvető
- lényegében
- létrehozni
- stb.
- értékelés
- Még
- EVER
- Minden
- minden
- pontosan
- példa
- példák
- izgatott
- kivégez
- végrehajtott
- Gyakorol
- létezés
- várható
- tapasztalat
- lejárat
- Exploit
- feltárja
- export
- nyúlik
- külső
- szélső
- megkönnyítése
- tényezők
- nem sikerül
- Kudarc
- meglehetősen
- Esik
- messze
- Funkció
- Jellemzők
- február
- kevés
- utolsó
- pénzügyi
- pénzügyi történelem
- Találjon
- vezetéknév
- rugalmas
- Flip
- Összpontosít
- következő
- következik
- A
- örökké
- Előre
- négy
- keretek
- gyakran
- barát
- ból ből
- Tele
- teljesen
- funkcionalitás
- alap
- alapok
- Továbbá
- hiábavaló
- jövő
- Általános rendeltetésű
- általában
- generál
- generált
- generál
- generáló
- generáció
- adott
- Go
- megy
- jó
- nagy
- nagymértékben
- kellett
- fél
- hardver
- hardver eszköz
- Hardver pénztárca
- Hardvertárca gyártó
- Hardveres pénztárcák
- káros
- Legyen
- tekintettel
- segít
- ennélfogva
- történelem
- tart
- remény
- vendéglátó
- házigazdája
- FORRÓ
- Hogyan
- azonban
- http
- HTTPS
- hatalmas
- Az emberek
- ötlet
- ideális
- ötletek
- azonosítani
- if
- azonnal
- Hatás
- ütköztető
- végre
- importál
- fontos
- lehetetlen
- javul
- in
- magában foglalja a
- Beleértve
- amely magában foglalja
- Növeli
- hihetetlen
- valóban
- független
- Egyénileg
- ipar
- információ
- eredendően
- kezdetben
- belső
- Bennfentes
- inspirál
- telepítése
- példa
- helyette
- szándékosan
- kölcsönhatásba
- interaktív
- kamat
- érdekelt
- érdekes
- Felület
- bele
- bevezet
- Bevezetett
- Bemutatja
- intrusively
- bevonása
- bevonásával
- kérdés
- IT
- ITS
- maga
- éppen
- csak egy
- Kulcs
- kulcsok
- Ismer
- tudás
- ismert
- táj
- nyelv
- hordozható számítógép
- keresztnév
- a későbbiekben
- ügyvéd
- vezetékek
- TANUL
- tanulás
- legkevésbé
- Főkönyv
- balra
- jogos
- kevesebb
- hadd
- szint
- erőfölény
- mint
- Valószínű
- összekapcsolt
- Listázott
- betöltés
- helyi
- helyszínek
- zárt
- Hosszú
- hosszabb
- néz
- hasonló
- veszít
- vesztes
- le
- veszteség
- elveszett
- gép
- Fő
- Többség
- csinál
- KÉSZÍT
- Gyártás
- malware
- kezeli
- kezelése
- manipuláló
- mód
- Gyártó
- Gyártók
- sok
- március
- Mérkőzés
- Lehet..
- eszközök
- intézkedések
- mechanizmus
- közepes
- említett
- csupán
- üzenet
- üzenetek
- módszer
- mód
- Miami
- esetleg
- miniscript
- kisebbség
- Perc
- Küldetés
- hibákat
- modell
- pénz
- ellenőrzés
- hónap
- több
- Ráadásul
- a legtöbb
- többnyire
- mozog
- áthelyezve
- sok
- többszörös
- multisig
- kell
- név
- közeledik
- elengedhetetlen
- Szükség
- szükséges
- igények
- negatívan
- hálózatba
- soha
- Új
- hír
- következő
- szép
- nem
- nem műszaki
- normális
- november
- november 2021
- Most
- szám
- számok
- megszerzi
- of
- ajánlat
- felajánlás
- Ajánlatok
- Nem elérhető
- on
- Beszállás
- egyszer
- ONE
- azok
- csak
- nyitva
- nyílt forráskódú
- nyit
- üzemeltetési
- Művelet
- Lehetőségek
- Opciók
- or
- érdekében
- Más
- másképp
- mi
- ki
- vázolt
- kívül
- felett
- átfogó
- áttekintés
- saját
- tulajdonos
- Papír
- Legfőbb
- rész
- különösen
- párt
- ösvény
- Fizet
- Teljesít
- talán
- időszak
- tartósan
- fázis
- telefon
- Hely
- Helyek
- Plató
- Platón adatintelligencia
- PlatoData
- pont
- pont
- Politikák
- politika
- Népszerű
- lehetőségek
- lehetséges
- esetleg
- állás
- potenciális
- potenciálisan
- hatalom
- Gyakorlati
- gyakorlatilag
- gyakorlat
- pontos
- pontosan
- előre
- Kiszámítható
- jelenlét
- be
- bemutatott
- megakadályozása
- megakadályozza
- előző
- korábban
- elsősorban
- elsődleges
- nyomtatás
- Előzetes
- magánélet
- magán
- magánkulcs
- Saját kulcsok
- Probléma
- problémák
- eljárás
- folyamat
- gyárt
- Készült
- termel
- megfelelően
- ingatlanait
- ingatlan
- javasolt
- védelme
- védett
- védelme
- védelem
- protokoll
- protokollok
- Bizonyít
- ad
- feltéve,
- nyilvános
- nyilvános kulcs
- nyilvános kulcsok
- közzétesz
- közzétett
- Kiadás
- cél
- tesz
- elhelyezés
- kérdés
- Futam
- véletlen
- Váltságdíj
- Inkább
- el
- Olvass
- Olvasó
- felismerve
- ok
- fogadó
- nemrég
- elismerik
- rekord
- felépülés
- kifejezés
- Regisztráció
- nyilvántartott
- regisztráció
- viszonylag
- engedje
- felszabaduló
- támaszkodnak
- eszébe jut
- cserélni
- képvisel
- képviselők
- hírnév
- szükség
- kötelező
- megköveteli,
- kapott
- megtartása
- visszatérés
- mutatják
- jobb
- Kockázat
- kockázatok
- Kockázatos
- ütemterv
- erős
- robusztusság
- Szerep
- szerepek
- futás
- fut
- azonos
- azt mondják
- skálázhatóság
- beolvasás
- forgatókönyv
- rendszer
- rendszerek
- elcsen
- Képernyő
- szkriptek
- Második
- Rész
- biztonság
- biztosan
- biztonság
- lát
- mag
- magok
- keres
- látszik
- Úgy tűnik,
- SegWit
- Öngondnokság
- elküldés
- érzékeny
- küldött
- különálló
- szolgáltatás
- készlet
- felépítés
- számos
- rövid
- kellene
- kimutatta,
- <p></p>
- aláírások
- jelentős
- jelentősen
- aláírás
- Jelek
- hasonló
- Egyszerű
- egyszerűsítése
- óta
- egyetlen
- kicsi
- okos
- So
- szoftver
- megoldások
- Megoldások
- SOLVE
- néhány
- Valaki
- nemsokára
- kifinomult
- forrás
- Hely
- szakosít
- különleges
- specifikációk
- költ
- Költési
- standard
- állványok
- kezdődik
- Állapot
- Lépés
- Lépései
- Még mindig
- tárolás
- memorizált
- tárolása
- stratégiák
- erő
- Húr
- erős
- Küzdelem
- sikeres
- sikeresen
- ilyen
- összegez
- Túltöltés
- támogatás
- Támogató
- Támogatja
- feltételezett
- szisztémás
- rendszerszintű kockázat
- Systems
- Foglalkozások
- Vesz
- Taproot
- cél
- célzás
- Műszaki
- technikailag
- Technológia
- feltételek
- mint
- hogy
- A
- Az érmék
- azok
- Őket
- maguk
- akkor
- Ott.
- ezáltal
- ebből adódóan
- Ezek
- ők
- dolgok
- Szerintem
- Harmadik
- ezt
- azok
- fenyegetések
- három
- küszöb
- Keresztül
- Így
- idő
- időigényes
- nak nek
- Ma
- mai
- is
- szerszámok
- Témakörök
- Végösszeg
- felé
- Nyom
- vágány
- múlttal
- Vonat
- tranzakció
- Tranzakciók
- átmenetek
- fordít
- kincstár
- Fák
- igaz
- Bízzon
- Megbízható
- hűtlen
- igazság
- csavar
- kettő
- típusok
- tipikus
- képtelen
- megért
- szabadjára engedi
- nem úgy mint
- kinyit
- kinyitja
- kiszámíthatatlan
- -ig
- frissítés
- us
- használhatóság
- használ
- használt
- használó
- User Experience
- Felhasználók
- használ
- segítségével
- hasznosít
- hasznosított
- kihasználva
- ux
- ÉRVÉNYESÍT
- fajta
- különféle
- Hatalmas
- eladó
- ellenőrzött
- ellenőrzése
- változat
- nagyon
- életképes
- fontos
- sérülékenységek
- várjon
- pénztárca
- Pénztárcák
- akar
- volt
- Út..
- módon
- we
- voltak
- Mit
- amikor
- bármikor
- vajon
- ami
- míg
- egész
- miért
- Wikipedia
- lesz
- val vel
- belül
- nélkül
- szavak
- világ
- lenne
- írott
- Rossz
- év
- még
- te
- A te
- magad
- zephyrnet
- nulla