🇨🇿 Jak One-shot Signatures Zlepší Zabezpečení Cardano

Cardano chrání neměnnost účetní knihy mimojiné pomocí schématu Key-Evolving Signature (KES). KES schéma poskytuje takzvané dopředné zabezpečení. Pokud dojde ke kompromitaci podpisových klíčů, nelze je zneužít k přepsání historie hlavní knihy. Cardanoův protokol totiž obsahuje mechanismus, kdy se klíče používané pro podepisování bloků střídají a staré klíče se mažou. Jedním z bezpečnostních předpokladů je, že staking pool operátoři (SPO) odstraní staré klíče. Systém One-shot Signatures (OSS) posílí zabezpečení Cardano tím, že se podpisové klíče po podepsání každého nového bloku sami sebe zničí. Blok nebude možné znovu podepsat, protože k tomu nebude existovat žádný klíč.

Dopředné zabezpečení a KES

Dopředné zabezpečení je vlastnost kryptografických systémů, která zajišťuje, že kompromitace aktuálního klíče neohrozí utajení minulých relací neboť k tomu bylo použito jiných klíčů.

Jinými slovy, i když je protivník schopen získat dešifrovací klíč, nemůže jej použít k dešifrování minulé komunikace. Je to proto, že každá relace používá jedinečný klíč, který se po použití odstraní nebo aktualizuje.

Podobný princip se používá v Cardano pro podepisování bloků.

Pokud je tajný klíč v určitém okamžiku kompromitován, podpisy vygenerované před tímto okamžikem zůstávají platné a nezfalšovatelné.

Toho je dosaženo rozdělením doby trvání signatáře do období a použitím jiného tajného klíče pro každé období. Tajný klíč pro každé období je odvozen z předchozího a po použití je vymazán. Veřejný klíč zůstává stejný pro všechna období.

KES omezuje rozsah každého tajného klíče na určité období (aktuálně 90 dní) a zajišťuje, že staré tajné klíče budou vymazány a neobnovitelné. Proto, i když protivník získá tajný klíč pro určité období, může zfalšovat podpisy pouze pro toto období, nikoli pro jakékoli předchozí nebo budoucí období.

Pokud protivník získá podpisové klíče jednoho operátora, může přepsat pouze ty bloky, které byly tímto operátorem vyraženy v období, kdy byl klíč aktivní. To může být relativně malý počet bloků. Vedoucí slotů jsou losováni náhodně na základě jejich staků. V síti Cardano existuje velké množství SPO. Aby měl protivník šanci kompromitovat Cardano, musel by získat nejen jeden klíč, ale mnoho klíčů od velkého počtu SPO.

Jedním ze způsobů, jak získat podpisové klíče, je ukrást je SPO. Pokud SPO odstraní staré klíče, nelze je ukrást. Smazání klíčů však nelze vynutit. SPO si teoreticky mohou ponechat staré klíče.

Systém OSS může zabránit provádění útoků, protože nebudou existovat klíče, které by bylo možné zneužít. Každý nový blok bude podepsaný unikátním klíčem který bude vytvořený pouze pro jednorázový podpis.

One-shot Signatures

V předchozím článku jsme objasnili základní principy one-shot signatures. Tato kvantová kryptografie má velký potenciál využití. Podíváme se, jak jej lze využít k posílení bezpečnosti Cardana.

Jednorázové podpisy lze použít k implementaci uspořádaných podpisů, tedy specifického mechanismu, ve kterém je možné určit platnost sekvence zpráv nebo bloků.

Systém OSS je typ podpisu, kde lze jakýkoli tajný klíč použít k podepsání pouze jedné zprávy a poté k autodestrukci. Tento koncept je zvláště užitečný v kontextu technologie blockchain, kde je zásadní zachování integrity a pořadí bloků.

Pořadí bloků je klíčové, protože určuje stav blockchainu v daném okamžiku. Pokud by se změnilo pořadí bloků, vedlo by to k jinému stavu blockchainu.

Klíčovou roli při udržování tohoto pořádku hrají digitální podpisy. Když je vytvořen nový blok, je podepsán tvůrcem bloku. Tento podpis slouží jako pečeť, která ověřuje pravost bloku a jeho pozici v blockchainu.

Použití jedinečného klíče pro každý podpis může poskytnout další vrstvu zabezpečení. Protože každý klíč lze použít pouze jednou, je nemožné znovu použít klíč k podepsání jiného bloku nebo ke změně pořadí existujících bloků. S OSS není možné přepsat historii Cardano ledgeru.

Takže v podstatě může uspořádaná sekvence jednorázových podpisů pomoci uživatelům deterministicky identifikovat, které bloky jsou platné a které ne, a tím zajistit integritu a pořadí blockchainu.

Seřazené podpisy si můžete představit jako sérii zamčených krabic, z nichž každá obsahuje jedinečný klíč. Tyto boxy jsou uspořádány v určitém pořadí. Klíč v každé krabici lze použít pouze jednou k odemknutí další krabice v sérii a poté se sama zničí. To znamená, že každý tajný klíč (nebo jedinečný klíč v krabici) lze použít k podepsání pouze jedné zprávy. Pořadí podpisů je určeno pořadím políček.

V kontextu KES lze na uspořádané podpisy pohlížet jako na sekvenci klíčů, které se používají v určitém pořadí pro podepisování. Každý klíč v této sekvenci lze použít pouze jednou a poté se sám zničí. To znamená, že i ve stejném období by byly k podepisování různých bloků použity různé klíče. Ne pouze jediný klíč pro dané období tak jak je tomu dnes.

Tato změna by mohla potenciálně zvýšit bezpečnost sítě Cardano tím, že by byla odolnější vůči určitým typům útoků. Mohlo by to například pomoci zabránit útokům na dlouhou vzdálenost (long-range attacks), kdy se útočník snaží přepsat historii blockchainu pomocí starých klíčů.

Pojďme si vysvětlit základní koncept toho, jak fungují uspořádané podpisy.

Když strana podepíše zprávu, uvede také značku (tag) t. Podpisový klíč umožňuje podepisovat jakoukoli zprávu, ale požadavkem je, aby zprávy bylo možné podepisovat pouze v pořadí se zvyšujícím se t. To znamená, že jakmile je zpráva podepsána na tagu t0, je pak nemožné podepsat zprávu na minulém tagu (t1 < t0). Každá zpráva je tedy podepsána s ohledem na značku t.

Veřejný klíč bude veřejným klíčem pro jednorázové schéma podpisu.

Pro podepsání zprávy na tagu t je nutné vytvořit nový jednorázový podpisový pár veřejného a soukromého klíče a delegovat jej na nový veřejný klíč. Při podepisování za účelem delegování podepište celý trojitý veřejný klíč/značku/zprávu.

Podpis se skládá z celého řetězce podpisů od původního veřejného klíče po nejnovější veřejný klíč.

Ověření vyžaduje ověření řetězce podpisů a také to, že se značky v řetězci vyskytují ve zvyšujícím se pořadí.

Myšlenka je taková, že jediný způsob, jak vytvořit nový podpis, je připojit jej k řetězci podpisů.

Jakmile tedy protivník vytvoří podpis na tagu t0, zavázal se ke všem podpisům, které vytvoří na tagu t1 < t0. Pokud se pokusí podepsat jinou zprávu v t1, bude to představovat rozvětvení řetězu, čímž dojde k porušení jednorázové bezpečnostní vlastnosti.

Jak by OSS zabránil útokům na Cardano?

V tuto chvíli nejsou známy žádné podrobnosti o tom, jak by mohl být systém OSS implementován. Přesto se dá předpokládat, jak by takový systém mohl fungovat.

Jak bylo vysvětleno v předchozí části, systém může pracovat se značkami. Tagy mohou definovat pořadové číslo bloku. Při podepisování nového bloku bude nutné inkrementovat tag (pořadové číslo).

Když je blok podepsán a značka je inkrementována, je vygenerován jedinečný identifikátor. Tento jedinečný identifikátor je spojen se specifickou kombinací bloku (blok může být reprezentován hashem), podpisem a tagem.

Zkusme si to vysvětlit na zjednodušeném příkladu.

Představte si, že hrajete hru se stavebnicemi se svými přáteli (jste SPO). Každý z vás má jedinečnou sadu bloků (kostek stavebnice) a společně stavíte věž. Každý blok představuje sadu transakcí nebo část dat a věž představuje blockchain.

Jednorázové podpisy jsou jako jedinečné nálepky, které si každý z vás nalepí na svůj blok, když jej přidáte do věže. Tato nálepka je tak speciální, že ji lze použít pouze jednou a poté zmizí (klíč se sám zničí). Vyrábí se pomocí tajného klíče, který je jako mávnutím kouzelného proutku. Zde je ale háček – kouzelná hůlka dokáže vytvořit pouze jednu nálepku a pak se rozbije.

Nyní řekněme, že se chcete ujistit, že bloky (nebo transakce) jsou přidány do věže (nebo blockchainu) ve správném pořadí. Zde přicházejí na řadu značky a jedinečné identifikátory.

Každá nálepka (nebo podpis), kterou vytvoříte kouzelnou hůlkou (nebo tajným klíčem), má jedinečný štítek nebo identifikátor. Tato značka může být číslo nebo kód, který se pro každou nálepku liší. Když položíte svůj blok na věž, každý uvidí štítek na vaší nálepce a přesně ví, kam se v pořadí hodí.

Pokud se tedy někdo pokusí bloky přesunout nebo přidat blok na špatné místo, budete to vědět, protože štítky na nálepkách by byly mimo pořadí. Takto mohou uspořádané podpisy pomoci zajistit správnou sekvenci bloků v blockchainu.

A co kouzelné hůlky (nebo tajné klíče)? Poté, co použijete hůlku k vytvoření nálepky, rozbije se (nebo se sama zničí). To znamená, že i když někdo najde vaši zlomenou hůlku, nemůže ji použít k výrobě nové nálepky nebo k pokazení pořadí bloků ve věži.

Můžete se zeptat, co někomu brání v tom, aby použil různé kouzelné hůlky (klíče) ke stavbě jiné věže (blockchain) se stejným nebo podobným pořadím bloků (sekvencí značek).

Vytvoření jiného blockchainu, který odpovídá pořadí původního, není tak jednoduché, jak to zní.

Každá kouzelná hůlka (klíč) je jedinečná a může vytvořit pouze nálepku (podpis) pro konkrétní blok. Protivník tedy nemůže použít jinou hůlku k vytvoření nálepky pro blok, který již jednu má.

Při útoku na dlouhou vzdálenost se protivník pokouší vytvořit jiný blockchain počínaje nějakým okamžikem v minulosti. Je to jako snažit se postavit jinou věž od středu. Pamatujte však, že nálepky (podpisy) z minulých bloků již existují a nelze je změnit. Protivník je tedy nemůže jen tak nahradit novými.

V blockchainu je pořadí bloků určeno mechanismem konsenzu. Toto je jako pravidlo v naší hře, které říká, že o pořadí bloků ve věži rozhodují všichni hráči společně. Protivník tedy nemůže změnit pořadí bloků sám od sebe.

Závěr

Jakmile bude OSS implementováno v Cardano, budou záruky bezpečnosti výrazně vyšší. Spáchat útok na velkou vzdálenost bude téměř nemyslitelné. Protivník nemůže získat klíče, které byly sebezničeny ihned po podepsání bloků.

Článek připravili Cardanians s podporou od Cexplorer.

Přečtěte si celý článek: https://cexplorer.io/article/how-one-shot-signatures-will-strengthen-cardano-s-security