Nederlands
  • public-key
  • private-key
  • asymmetric-cryptography
  • symmetric-cryptography

Openbare sleutel, privésleutel en asymmetrische cryptografie

In dit artikel hebben we de concepten van openbare sleutels, privésleutels en de principes van asymmetrische encryptie geïntroduceerd. We hebben hun voor- en nadelen vergeleken met symmetrische encryptie, evenals de verschillen in hun gebruiksscenario's.

Darcy Ye
Darcy Ye
Developer

Je hebt waarschijnlijk gehoord over privésleutels en openbare sleutels in veel contexten, maar weet je echt wat ze zijn?

Asymmetrische cryptografie vs symmetrische cryptografie

Privésleutels en openbare sleutels zijn concepten in asymmetrische cryptografie (ook bekend als publieke-sleutelcryptografie, PKC).

Asymmetrische cryptografie verwijst naar een methode van het versleutelen of ondertekenen van gegevens met behulp van twee verschillende sleutels (privésleutel + openbare sleutel), wat overeenkomt met de behoefte aan ontsleuteling of handtekeningverificatie. De openbare sleutel is zichtbaar voor iedereen, terwijl de privésleutel alleen beschikbaar is voor de sleutelhouder. Je kunt dit gemakkelijk afleiden uit de namen van de sleutels.

Evenzo kun je waarschijnlijk raden dat symmetrische cryptografie verwijst naar de methode van het versleutelen en ontsleutelen van gegevens met dezelfde sleutel.

We gebruiken daarom eenvoudige annotatie om het encryptie/ontsleutelingproces van zowel symmetrische als asymmetrische cryptografie te tonen.

Encryptie en ontsleuteling

Het is belangrijk op te merken dat de encryptie/ontsleutelingfuncties in symmetrische en asymmetrische encryptiealgoritmen verschillend zijn en vaak verschillende algoritmen gebruiken. Veelgebruikte symmetrische encryptiealgoritmen zijn DES, AES, RC2, RC4 en anderen, terwijl veelgebruikte asymmetrische encryptiealgoritmen RSA en EC zijn.

Logto gebruikt het EC-algoritme voor gegevensoverdrachtsencryptie en -ontsleuteling omdat het efficiënter en veiliger is dan RSA, je kunt dit artikel lezen voor meer details. Logto zal ook RSA ondersteunen in de volgende release voor betere compatibiliteit met sommige legacy-systemen.

Waarom gebruik maken van asymmetrische cryptografie?

Asymmetrische cryptografie lost het probleem van de sleutelverdeling op in symmetrische cryptografie.

Aangezien symmetrische encryptie dezelfde sleutel gebruikt, kan het distribueren van de sleutel via een onveilige netwerkverbinding het risico met zich meebrengen dat de sleutel wordt blootgesteld aan kwaadaardige derden. Een kwaadwillende partij kan de gestolen sleutel gebruiken om toegang te krijgen tot alle informatie die met die sleutel is versleuteld, wat een aanzienlijk beveiligingsrisico vormt.

Twee veelvoorkomende toepassingen van asymmetrische cryptografie

Versleutelde gegevens verzenden

De verzender kan de openbare sleutel van de ontvanger gebruiken om informatie te versleutelen, en de ontvanger gebruikt hun privésleutel om de informatie te ontsleutelen.

Aangezien openbare sleutels theoretisch beschikbaar zijn voor veel mensen, kan de ontvanger in een ideale situatie versleutelde informatie van veel verzenders ontvangen. Bovendien kunnen meerdere verzenders niet weten welke soort informatie andere verzenders naar de ontvanger hebben gestuurd, aangezien alleen de ontvanger (de houder van de privésleutel) de informatie kan ontsleutelen en herstellen.

Openbare sleutels en privésleutels worden vaak gelijktijdig gegenereerd. Wat we hierboven hebben vermeld, is de generatie van privésleutels en openbare sleutels van één partij, en vervolgens de distributie van de openbare sleutel aan haar gebruikers. Als je veilige communicatie tussen beide partijen wilt garanderen, moeten beide partijen hun eigen privésleutels en openbare sleutels genereren en vervolgens hun respectieve openbare sleutels uitwisselen. Op deze manier hebben beide partijen elkaars openbare sleutels en kunnen ze hun eigen privésleutels en de openbare sleutel van de andere partij gebruiken voor encryptie en ontsleuteling.

Een handtekening gebruiken om de gegevensintegriteit te waarborgen

In asymmetrische cryptografie kan de partij die de privésleutel bezit de gegevens die ze verzenden ondertekenen. Vervolgens kan de ontvanger met de openbare sleutel de consistentie van de gegevens en de handtekening verifiëren bij ontvangst van de gegevens, waardoor wordt gegarandeerd dat de gegevens tijdens de transmissie niet zijn gemanipuleerd.

Met behulp van de annotatie die we in het vorige gedeelte hebben gedefinieerd, kunnen het ondertekenen en de handtekeningverificatie als volgt worden weergegeven:

Ondertekenen en verificatie

De verificatie van de digitale handtekening bewijst dat de partij die de handtekening genereert de overeenkomstige privésleutel kent.

Je vindt deze twee genoemde gebruiksgevallen waarschijnlijk heel herkenbaar. In ons dagelijks leven maken bijna alle diensten met een server-clientarchitectuur gebruik van asymmetrische cryptografie om databeveiliging te garanderen.

Als een snelgroeiend gebruikersidentiteitsframework maakt Logto ook uitgebreid gebruik van PKC om de beveiliging van gebruikersgegevens te waarborgen. Nadat gebruikers het inlogproces hebben voltooid, geeft Logto een toegangs-token uit aan gebruikers om hen specifieke machtigingen te verlenen voor toegang tot de vereiste bronnen. De door Logto gepubliceerde openbare sleutel wordt gebruikt om te verifiëren dat het toegangs-token inderdaad door Logto is uitgegeven en niet is gemanipuleerd door kwaadaardige aanvallers.

Terugvallen van asymmetrische cryptografie

Over het algemeen is de sleutelgrootte voor symmetrische encryptie 128 of 256 bits, terwijl de sleutelgrootte voor asymmetrische encryptie 4.096 bits kan bereiken. Dit komt doordat de privésleutel en openbare sleutel wiskundig gerelateerd en unieke sleutelparen zijn. In theorie kan het kennen van de openbare sleutel de berekening van de waarde van de privésleutel mogelijk maken, maar vanwege de complexiteit van de betrokken algoritmen kost dit vaak een aanzienlijke hoeveelheid tijd. Om de taak van het "kraken" van de privésleutel "onmogelijk" te maken, is het gebruik van langere sleutellengtes een eenvoudige benadering.

Conclusies

Asymmetrische encryptie verbruikt meer computerbronnen en tijd in vergelijking met symmetrische encryptie tijdens berekeningen, zoals besproken in het vorige gedeelte. In toepassingen waar communicatie frequent is, kan het wijdverbreide gebruik van asymmetrische encryptie de prestaties en gebruikerservaring beïnvloeden.

In zakelijke scenario's worden symmetrische en asymmetrische encryptie vaak samen gebruikt om prestaties en databeveiliging in balans te brengen. Bij het bouwen van je eigen dienst kun je de beveiligingseisen van gegevens in elke fase overwegen en dienovereenkomstig de geschikte encryptiealgoritmen selecteren.