Deel 2: Ontstaan ​​van Ledger Recover - Veilig verdelen van de aandelen | Grootboek

Deel 2: Ontstaan ​​van Ledger Recover – Veilig verdelen van de aandelen | Grootboek

Bronknooppunt: 2785813

Welkom terug bij het tweede deel van onze blogserie over Grootboek herstellen's ontstaan! Ons doel is om de vele technische hindernissen te onderzoeken die men tegenkomt bij het bouwen van een seed recovery-service, en hoe Ledger Recover deze oplost met een veilig ontwerp en veilige infrastructuur.

In het vorig deel, hebben we onderzocht hoe u een back-up kunt maken van een Secret Recovery Phrase door deze te splitsen en hoe Ledger Recover dit voor u doet met behulp van Pedersen verifieerbaar geheim delen.

Nu je drie aandelen hebt, is de volgende vraag: hoe kunt u ze veilig distribueren naar uw back-upproviders? Inderdaad, als een kwaadwillende partij alle shares onderschept terwijl u ze verzendt, verslaat het in de eerste plaats het doel van het splitsen van het zaad. In cybersecurity heet dit een Man-in-the-Middle-aanval, waar een aanvaller tussen u en uw ontvanger staat en met de communicatie knoeit om te proberen geheimen te ontdekken.

Wanneer u Ledger Recover gebruikt, wordt de verzending van uw seed uitgevoerd via een veilig distributiemechanisme. Het is gebaseerd op verschillende cryptografische tools en wiskundige concepten die we grondig zullen uitleggen.

We zullen beginnen met een meer gedetailleerde beschrijving van het probleem. Vervolgens introduceren we verschillende cryptografische tools en wiskundige concepten die Ledger Recover gebruikt om uw seed-shares veilig te distribueren naar back-upproviders.

Courier-In-The-Middle: een voorbeeld uit de echte wereld

De meest voor de hand liggende manier om jezelf te beschermen tegen een tussenpersoon met slechte bedoelingen, is door er helemaal geen te hebben. Je zou zelf naar de huizen van je vrienden kunnen lopen of ze op dezelfde, afgesloten locatie kunnen verzamelen om de aandelen te bezorgen. Maar dit wordt veel moeilijker als u niet bij elkaar bent en de aandelen naar een kennis op afstand wilt sturen.

Ervan uitgaande dat het netwerk waarover we communiceren (bijvoorbeeld de post) inherent onbetrouwbaar is, hoe kunnen we dan garanderen dat afluisteraars nooit een glimp van onze geheime delen kunnen opvangen?

Het is tijd om Alice en Bob, en de beruchte Eve, drie bekende cryptografische persona's voor te stellen. Alice heeft een geheim dat ze met Bob wil delen, en heeft geen andere keus dan het via Eve, hun onbetrouwbare koerier, te sturen. In cryptografische woorden, Alice en Bob willen een veilig communicatiekanaal met elkaar opzetten om hun geheim veilig uit te wisselen.

Dit is wat Alice en Bob zouden kunnen doen:

  • Alice stopt haar geheim in een doos, sluit deze af met haar persoonlijke hangslot voordat ze het naar Bob stuurt.
  • Als Bob de doos ontvangt, voegt hij eraan toe zijn eigen hangslot en stuurt het terug.
  • Alice kan nu haar sleutel gebruiken om haar hangslot uit de doos te halen voordat ze het nog een laatste keer verzendt.
  • Om het proces te voltooien, gebruikt Bob gewoon zijn sleutel om zijn hangslot te verwijderen en - eindelijk - het geheim van Alice op te halen.

Tijdens de uitwisseling, wanneer Eve de doos in haar handen heeft gehad, werd deze altijd beschermd, hetzij door het slot van Alice, hetzij door dat van Bob, of beide.

Hoewel dit een uitstekend begin is, moeten er in dit scenario nog verschillende problemen worden opgelost:

  • Wederzijdse authenticatie: Alice en Bob hebben onfeilbare manieren nodig om te controleren of elk hangslot echt van de andere partij komt. Anders zou Eve het kunnen verwisselen met haar eigen doos en hangslot en Alice of Bob voor de gek houden door te geloven dat zij de andere partij is.
  • Geheimhouding doorgeven: Als Eve de afgesloten doos had gestolen en later de sleutel van Alice of Bob had gestolen, kon ze het oorspronkelijke geheim achterhalen. In plaats daarvan willen we ervoor zorgen dat toekomstige lekken van langetermijnsleutels oudere gestolen pakketten niet in gevaar kunnen brengen.
  • Behoud van privacy: In dit scenario worden de adressen van Alice en Bob bekendgemaakt aan de koerier. In het digitale equivalent van dit proces willen we een protocol dat niets onthult over de ontvangers.
Beveiliging van digitale berichten

In digitale veiligheid, een beveiligd kanaal is een manier om gegevens tussen twee over te dragen geverifieerd partijen die gegevens vertrouwelijkheid en integriteit zijn gegarandeerd. Wanneer u een beveiligd kanaal gebruikt, kunnen aanvallers uw communicatie niet afluisteren of manipuleren.

Het protocol van Ledger Recover voor zowel back-up als herstel is gebaseerd op een Beveiligd kanaalprotocol, of SCP. Het maakt gebruik van meerdere tools van de moderne cryptografie-toolbox, zoals symmetrische en asymmetrische codering, certificaten en digitale handtekeningen.
De volgende secties geven u een korte inleiding over al deze concepten, waardoor u het hele beveiligingsschema dat in Ledger Recover wordt gebruikt, kunt begrijpen.

Symmetrische cryptografie: een krachtige, maar beperkte tool

Om de vertrouwelijkheid van de gegevens die tussen twee partijen worden uitgewisseld te garanderen, worden de gegevens meestal versleuteld en ontsleuteld met dezelfde geheime sleutel.
Dit proces wordt genoemd symmetrische cryptografie, dat is de studie van primitieven die een enkele geheime sleutel gebruiken om een ​​of meer eigenschappen van een veilig kanaal te garanderen.

Hoewel het een krachtig hulpmiddel is om uw communicatie te beschermen, heeft symmetrische cryptografie enkele duidelijke beperkingen: stel dat Alice verschillende gecodeerde berichten met Bob wil uitwisselen. Ze kiest eerst een geheime sleutel, deelt die vervolgens met Bob, voordat ze berichten gaat versturen.
Het probleem wordt nu natuurlijk: hoe deelt Alice de geheime sleutel veilig met Bob? Als iemand de sleutel in handen krijgt, is de communicatie tussen Alice en Bob niet langer vertrouwelijk.
Alice zou Bob persoonlijk kunnen ontmoeten om hem de sleutel te geven, maar waarom zouden ze in dit geval dan niet praten, weg van nieuwsgierige oren?

Voor digitale communicatie hebben we een veilige methode nodig om de symmetrische sleutel te delen en de beveiligde gegevensuitwisseling op gang te brengen. Het is tijd om het werk van twee titanen van moderne cryptografie te introduceren, Whitfield Diffie en Martin Hellman.

Asymmetrische cryptografie: uw geslachtsdelen verbergen
Diffie-Hellman belangrijke overeenkomst

Met Public Key Cryptography bedachten Diffie en Hellman een nieuwe benadering voor het beveiligen van communicatie. Ze definieerden een protocol met twee verschillende sleutels voor codering en decodering. De twee sleutels worden gewoonlijk genoemd openbare en privésleutels, die een paar vormen dat kan worden gebruikt om gegevens te versleutelen/ontsleutelen en te ondertekenen/verifiëren.

Openbare en privésleutels
Public key cryptografie is de basis van de meeste van onze digitale beveiliging. Het wordt gebruikt om u op internet te beschermen, en het is ook hoe u het eigendom van munten en tokens op alle openbare blockchains bewijst.

Lees meer over dit onderwerp op Ledger Academy!

Wat voor ons echt overtuigend is, is hoe Diffie en Hellman voorstelden om cryptografie met openbare sleutels te gebruiken om symmetrische sleutels te verspreiden. Hun methode, bekend als Diffie-Hellman sleuteluitwisseling, bestaat uit heen en weer uitwisselingen tussen twee partijen om uiteindelijk overeenstemming te bereiken over een gedeeld geheim. Indien correct uitgevoerd, zijn afluisteraars niet in staat om hetzelfde gedeelde geheim te berekenen uit de informatie die ze horen.

Een gedeeld geheim genereren k

De TL; DR is dat Eve in het bovenstaande diagram wiskundig niet in staat is om het geheim te achterhalen k ook al heeft ze toegang tot alle communicatie van Alice en Bob. Om te begrijpen waarom dit gedeelde geheim veilig is voor afluisteraars, moeten we ons verdiepen in een beetje groepentheorie. 

De beveiliging van de Diffie-Hellman-sleuteluitwisseling is afhankelijk van de complexiteit van het discrete logaritmeprobleem over een cyclische groep. Een cyclische groep is een groep die wordt gegenereerd door een enkel element.
In een notendop, Alice en Bob voeren de volgende stappen uit om overeenstemming te bereiken over een gedeeld geheim k:

  1. Alice en Bob zijn het eens over een cyclische groep G van bestelling n gegenereerd door een element g
  2. Alice trekt willekeurig een getal 0 < a < n en verzendt pa = gra ∈G naar Bob
  3. Bob trekt willekeurig een getal 0 < b < n en verzendt pb = grb ∈G naar Alice
  4. Alice berekent het gedeelde geheim k =(blzb )a ∈G
  5. Bob berekent het gedeelde geheim k =(blza )b ∈G

De veiligheid van het protocol hangt af van de hardheid van het vinden k=gab gegeven g, ga, gb. Dit heet de Berekening Diffie-Hellman-aanname (CDH). De hypothese dat CDH moeilijk op te lossen is veronderstelt dat de discreet logaritme probleem is moeilijk op te lossen.

Hoewel het gedeelde geheim in dit schema veilig is voor afluisteren, is er geen garantie op de oorsprong van de gegevens die worden uitgewisseld. Om de interactie veilig te laten verlopen, moeten Alice en Bob op de een of andere manier hun identiteit aan elkaar bewijzen.

Wederzijdse authenticatie en digitale handtekening

Een handgeschreven handtekening wordt meestal gebruikt om de inhoud van een document te erkennen en te accepteren. Alleen de ondertekenaar kan de handtekening zetten, maar iedereen die "weet" hoe de handtekening eruitziet, kan controleren of het document door de juiste persoon is ondertekend.

Hoewel het vergelijkbare eigenschappen heeft, biedt een digitale handtekening extra sterke garanties door gebruik te maken van asymmetrische cryptografie:

  • Authenticity : iedereen kan verifiëren dat het bericht is ondertekend met de privésleutel die overeenkomt met de opgegeven openbare sleutel.
  • Niet-afwijzing: de ondertekenaar kan niet ontkennen dat hij het bericht heeft ondertekend en verzonden.
  • Integriteit: het bericht is tijdens de verzending niet gewijzigd.

Nu, zolang we kennen en vertrouwen de publieke sleutel van onze correspondent kunnen we de authenticiteit van alle berichten controleren door hun digitale handtekening te verifiëren.
In de meeste gevallen kennen we onze correspondent echter niet goed, of moeten ze om veiligheidsredenen regelmatig hun private/publieke sleutelpaar wijzigen. Dit vraagt ​​om een ​​extra laag van verificatie en vertrouwen in de vorm van Certificaten, die de beschrijving van een entiteit en hun openbare sleutel bevatten.

Elk certificaat is ondertekend door een bovenliggende openbare sleutel. Door een Root Certificate Authority (of Root CA) te hebben die we altijd vertrouwen, kunnen we een vertrouwensketen creëren met behulp van opeenvolgende digitale handtekeningen.

Elliptische curven: cryptografie met openbare sleutels van het volgende niveau

Elliptische kromme cryptografie (ECC) is een deelgebied van Public Key Cryptografie dat bestaat uit het gebruik van elliptische krommen voor cryptografische toepassingen, bijvoorbeeld voor codering of handtekeningschema's. 
Gebaseerd op de huidige bekende wiskunde, biedt ECC een aanzienlijk veiligere basis dan eerdere cryptografiesystemen met openbare sleutels RSA.

Met hetzelfde beveiligingsniveau heeft ECC kleinere sleutellengtes in vergelijking met andere asymmetrische cryptosystemen, waardoor het een goede keuze is voor ingebedde systemen met beperkte middelen.
Als je meer wilt weten, dit artikel kan elliptische krommen helpen beter te begrijpen.

Orde van een elliptische kromme
De volgorde van een element g van een groep is een belangrijke parameter van de Diffie-Hellman-sleuteluitwisseling. Als de groep een elliptische curve is, is dat element een punt en is de volgorde het aantal keren dat het bij zichzelf kan worden opgeteld voordat het rond de beginwaarde gaat.
Merk op dat deze optelling niets te maken heeft met uw gebruikelijke som over reële getallen, maar vergelijkbare eigenschappen van optelling heeft.

Laten we de elliptische curve nemen E: j2 =x3 +2x +3 boven het veld 𝔽97 als voorbeeld. Als discrete functie wordt het weergegeven door de punten in de onderstaande afbeelding. We zullen ons concentreren op het punt P =(3, 6) en al zijn veelvouden.

Dat zien we na 5.P, we zijn terug bij het begin en we raken dezelfde punten als voorheen. Ongeacht de waarde van de scalaire waarde P wordt vermenigvuldigd met, zullen we altijd een van onze 5 beginpunten halen.
Aldus de volgorde van P is 5, en de subgroep die het genereert bevat precies 5 punten. Voor cryptografische toepassingen is de volgorde echter veel groter dan 5, waardoor de willekeur toeneemt.

Pureer het allemaal: ECDH met authenticatie

We hebben nu alle tools die we nodig hebben om een ​​geweldig sleuteluitwisselingsprotocol te maken:  Elliptische kromme Diffie-Hellman (ECDH).

ECDH is een gestandaardiseerd cryptografisch schema dat de hierboven beschreven Diffie-Hellman-sleuteluitwisseling implementeert, door Elliptic Curve-cryptografie te gebruiken om de sleutelparen en het gedeelde geheim te genereren.

Geverifieerde ECDH-sleuteluitwisseling

Het begint met het selecteren van een elliptische curve en het genererende punt. De twee partijen wisselen vervolgens vertrouwde certificaten uit, waarmee ze de authenticiteit van hun respectievelijke openbare sleutels kunnen verifiëren. Eenmaal geauthenticeerd, kunnen ze een gedeeld geheim k genereren dat wordt berekend als:

k = dA ​ dB . G
dA: de privésleutel van Alice
dB: Bob's privésleutel
G: EC-punt

Om de voorwaartse geheimhouding eigendom, moet het paar sleutels van zowel Alice als Bob kortstondig zijn, dwz ze worden ter plekke gegenereerd en gebruikt voor een enkele uitvoering van het protocol. We hebben het over een Elliptic Curve Diffie-Hellman Ephemeral (ECDHE). In dit scenario worden de kortstondige sleutels ondertekend door zowel de statische sleutels op het apparaat als de HSM's, waardoor een sterke authenticatie van de sleutels mogelijk is. Zelfs als ongeautoriseerde toegang tot de statische sleutels in de toekomst zou plaatsvinden, zou dit geen decoderingsmogelijkheden bieden voor de uitwisselingen die worden beschermd door de kortstondige sleutels.

Verder hebben we een opmerkelijke verbetering van het protocol doorgevoerd door de statische sleutels van de apparaten binnen het beveiligde kanaal te verbergen. Deze voorzorgsmaatregel voorkomt dat aanvallers zicht krijgen op het statische certificaat van de apparaten, wat op zijn beurt kan leiden tot het lekken van unieke identificatiegegevens die worden gebruikt tijdens back-up-/herstelbewerkingen.

Terug naar Ledger Recover: de reis van een zaadje

Oké, tijd om even stil te staan.

We hebben veel onderwerpen behandeld, met betrekking tot zowel beveiliging als wiskunde, en het resultaat is een protocol om veilig te communiceren via elk onveilig netwerk. Laten we samenvatten wat we tot nu toe hebben gezien:

Twee entiteiten kunnen beveiligde communicatie hebben via een onveilig kanaal door a uniek geheim dankzij de ECDHE, wat een implementatie is van het Diffie-Hellman-sleutelovereenkomstprotocol dat gebruikt kortstondige sleutels om het voorwaartse geheim te beschermen. Elke entiteit is daartoe in staat controleer de echtheid van hun correspondent dankzij een initiaal Certificaatverificatie.

In het geval van Ledger Recover hebben we vier beveiligde kanalen opgezet met behulp van het Secure Channel Protocol. Deze kanalen verbinden het apparaat met elk van de back-upproviders en de orchestrator, die allemaal zijn uitgerust met Hardware Security Modules (HSM's).

Elke actor houdt zijn persoonlijk certificaat bij, ondertekend door een Ledger-certificaat dat fungeert als de basis van de vertrouwensketen. Wanneer het apparaat van de gebruiker voor het eerst de intentie om een ​​back-up uit te voeren naar de Orchestrator verzendt, start het een geverifieerde ECDHE. Onder deze mTLS sessies verzendt de Orchestrator informatie die toekomstige veilige kanalen koppelt aan het specifieke back-upverzoek van de gebruiker, samen met de identiteit van de gebruiker die ter validatie zal worden gevraagd bij het uitvoeren van een later herstel van de seed.

Geheimen beveiligen met HSM's
Hoezeer we het ook proberen te vermijden, het is soms nodig om geheimen op servers op te slaan en te verwerken. Dit kan riskant zijn omdat het beschermen van servers en hun toegang een niet-triviale taak is. Om dit risico te beperken, gebruiken bedrijven en sectoren die waarde hechten aan beveiliging Hardwarebeveiligingsmodules. Het zijn gespecialiseerde hardware die cryptografische sleutels beschermen en cryptografische verwerking bieden. We zullen meer over HSM's praten in latere delen van deze blogserie.

Alles is klaar om eindelijk het meest kritieke deel van de hele operatie uit te voeren: het verzenden van de drie shares van het zaad van de gebruiker.

Opnieuw creëren we nieuwe beveiligde kanalen, maar deze keer tussen het Ledger-apparaat van de gebruiker en de HSM's van de back-upprovider direct. De seed shares worden in een end-to-end gecodeerd kanaal verzonden naar hun uiteindelijke opslagplaats, terwijl wordt gegarandeerd dat ze de juiste bestemming bereiken (dit is waar de verifieerbaarheid van Pedersen Secret Sharing geïntroduceerd in deel 1 is nuttig).
Het apparaat van de gebruiker verifieert de HSM's van de back-upproviders één voor één, en de back-upproviders weten dat ze uitwisselen met het unieke officiële Ledger-apparaat dat dit specifieke back-upverzoek heeft geïnitieerd.
Behalve het apparaat van de gebruiker en de HSM's van de back-upproviders ziet niemand ooit de seed-shares versleuteld door de symmetrische sleutels van deze wederzijds geverifieerde beveiligde kanalen, zelfs niet de Orchestrator.

Veilig ontvangen... en opgeslagen?

In dit deel hebben we verschillende nieuwe concepten geïntroduceerd, waarvan sommige vrij technisch zijn. Elk van deze concepten is vereist om een ​​veilige transmissie tot stand te brengen die de vertrouwelijkheid en integriteit van de uitwisseling garandeert. Ongeacht de veiligheid van het netwerk, we kunnen nu onze geheime aandelen verzenden zonder bang te hoeven zijn dat ermee wordt geknoeid of dat ze worden onderschept. Dat is een behoorlijke upgrade!

Het hele proces wordt ondersteund door degelijke cryptografie en veilige hardware, in de vorm van uw Ledger-hardwareapparaat en HSM's die eigendom zijn van elke back-upprovider.

Het is nu tijd om verder te gaan met het herstellen van de zaadaandelen! Het enige wat we hoeven te doen is de back-upproviders vragen om ons de shares terug te sturen die ze op hun infrastructuur hebben opgeslagen...

Maar wacht even: hoe slaan ze deze zeer gevoelige gegevens precies op? Het zou ons geen goed doen als we de veiligste communicatiekanalen hadden, maar onze back-upproviders hielden de aandelen gewoon in leesbare tekst en smeekten om gestolen te worden.

Dus voordat we het hebben over herstel: we komen er wel, dat beloof ik! –, we moeten een snelle omweg maken in deel 3 om de veiligheid van onze zaadaandelen in rust te bespreken. Blijf kijken!

Tijdstempel:

Meer van Grootboek