Concepts/OpenPGP For Beginners/da: Difference between revisions

From KDE UserBase Wiki
(Importing a new version from external source)
 
(Importing a new version from external source)
 
(59 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages />
<languages />


== Introduction ==
== Introduktion ==


The effective security of a cryptography solution depends more on knowing what you do and what certain technical facts mean (and what not!) than on key lengths and the software itself. Thus this article shall give an introduction to the [https://en.wikipedia.org/wiki/Pretty_Good_Privacy OpenPGP] core concepts.  
En kryptografisk løsnings effektive sikkerhed afhænger mere af, at du ved hvad du gør og af hvad visse tekniske fakta betyder (og hvad de ikke betyder!) end af nøglelængden af og af selve softwaren. Denne artikel skal derfor give en introduktion til centrale begreber i [https://da.wikipedia.org/wiki/Pretty_Good_Privacy OpenPGP].  


This tutorial is for beginners so any too complicated stuff is left out. Furthermore you will not find explanations of how to get something done with a certain software. You have the software documentation for that. This will help you to better understand the actions explained there.  
Denne vejledning er for begyndere, så det mere komplicerede stof er udeladt. Desuden finde du ikke forklaringer på, hvordan man bruger forskellige programmer. Det har du programmanualerne til. Dette skal hjælpe dig til bedre at forstå de handlinger, som forklares her.  


There is another [[Special:myLanguage/Concepts/OpenPGP_Getting_Started|article that prepares you for key generation]] and one explaining [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|advanced concepts]].
Der er en anden [[Special:myLanguage/Concepts/OpenPGP_Getting_Started|artikel, som gør dig klar til nøglegenerering]] og en, som forklarer [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|avancerede begreber]].


== Asymmetric keys ==
== Asymmetriske nøgler ==


OpenPGP uses key pairs. This means that there is always a ''secret key'' and a ''public key'' belonging together. In contrast to the very intuitive concept of symmetric encryption (i.e. the same password encrypts and decrypts the data) this is hard to understand. Don't think about that, just accept it; the math behind this is a nightmare so for most people going into details would be a stressful waste of time.
OpenPGP bruger nøglepar. Dette betyder, at der altid er en "hemmelig nøgle" og en "offentlig nøgle", som hører sammen. I modsætning til det meget intuitive begreb om symmetrisk kryptering (dvs. når samme nøgle bruges til at kryptere og dekryptere data) er dette svært at forstå. Tænk ikke for meget over det, acceptér det blot: matematikken bag er et mareridt, så det vil være et frustrerende spild af tid for de fleste at gå i detaljer med det.


As the names suggest: The secret key is to be known to its owner only, and the public key should be known to everyone ideally. With symmetric encryption the problem was to safely share the password with the recipient of a message. With public keys the problem has changed: Now the hard part is to be sure that you are using the correct public key (and not a forged one an attacker tries to trick you into using).
Som navnet antyder kendes den hemmelige nøgle kun af sin ejer, mens den offentlige nøgle ideelt set skulle være kendt af alle. Med symmetrisk kryptering var problemet, hvordan du sikkert delte kodeordet med modtageren af en meddelelse. Med offentlige nøgler er problemet ændret: Nu er den vanskelige del at sikre dig, at du bruger en korrekt offentlig nøgle (og ikke en forfalsket nøgle, som en angriber prøver at narre dig til at bruge).


== Encryption ==
== Kryptering ==


One of the two functions of OpenPGP is encryption. You encrypt data to one ore more public keys (symmetric encryption i.e. using a password instead is possible but rarely used). For decrypting the data the secret key of one of the recipient keys is needed.  
En af OpenPGP's to funktioner er kryptering. Du krypterer data med en eller flere offentlige nøgler (symmetrisk kryptering, dvs. brug af et kodeord er også en mulighed, men anvendes sjældent). Til dekryptering af data skal man bruge en af modtagernøglernes hemmelige nøgler.  


Except for the already mentioned problem "Which is the right key to encrypt for?" encryption - decryption is a quite simple operation because there is no room for misunderstanding: You encrypt something and nobody except the owner(s) of the recipient key(s) can read it. And you can either decrypt data or you can't. The decrypted data itself may be hard to understand but the decryption operation is not. But: Part of the "Which is the right key to encrypt for?" question is not only "Who is the owner of this key?" but also "Is this key secure enough for the data to be encrypted?". This is not about key length or similar but about key handling. Thus at least before sending critical information: Ask the key owner about the security level of the key!
Bortset fra de allerede nævnte problem med "Hvad er den rette nøgle at kryptere med?" så er kryptering - dekryptering en ret enkel operation, da der ikke er mulighed for misforståelser: Du krypterer noget, og ingen andre end modtagernøglernes ejere kan læse det. Og du kan enten dekryptere data eller du kan ikke. De dekrypterede data er måske svære at forstå, men selve dekrypteringshandlingen er ikke. Dog: Spørgsmålet "Hvad er den rette nøgle at kryptere med?" går ikke bare på "Hvem ejer denne nøgle?" men også "Er denne nøgle sikker nok til de data, der skal krypteres?". Dette handler ikke om nøglelængde og lignende men om nøglehåndtering. Før du sender kritiske data bør du således spørge nøgleejeren om nøglens sikkerhedsniveau!


== Digital signatures ==
== Digitale signaturer ==


The encryption of data can be kind of reversed: Instead of creating data which only one key can understand you can create data which everyone can understand but which only one key can have created. This impossibility to create the same data without access to the respective secret key makes this data a signature. Once again: Don't ask for how this is possible unless you really like math.  
Kryptering af data kan vendes om på en måde: I stedet for at lave data, som kun en nøgle kan forstå kan du lave data som alle kan forstå, men som kun kan være lavet med én nøgle. Umuligheden af at kunne oprette de samme data uden adgang til den rette hemmelige nøgle gør disse data til en digital signatur. Igen: Spørg ikke hvordan dette kan lade sig gøre med mindre du virkelig holder af matematik.  


One of the great things about digital cryptography is: In contrast to a handwritten signature it is very easy for everyone (OK: for everyone's computer) to check that this signature was made by a certain key. If you can relate a certain key to a person then you can also relate a digital signature to this person – unless, of course, the key has been compromised. You may have noticed: At this point the task becomes an organizational and legal one.  
En af de store fordele ved digital kryptografi er, at i modsætning til en underskrift kan enhver (eller enhvers computer) let tjekke, om signaturen blev lavet med en given nøgle. Hvis du kan knytte en given nøgle til en person, så kan du også knytte en digital signatur til den person - medmindre nøglen er blevet kompromitteret, selvfølgelig. Som du måske har bemærket er opgaven nu mere organisatorisk og juridisk.  


Technology does not solve all of your problems. And it is extremely important that you are always aware where the border between the technical and organizational problems is.
Teknologi løser ikke alle dine problemer; og det er ekstremt vigtigt at du altid er opmærksom på, hvor grænsen imellem det teknologiske og det organisatoriske problem er.


And relating a key to a person is not the hard part! That is: "What does the signature mean?" Is your interpretation of a signature legally binding for its creator? The meaning can be as low as a timestamp (which is a perfectly valid an serious application for crypto signatures!), proving nothing more than that a certain document existed at a certain time (and was not created later).  
Den vanskelige del er ikke at relatere en nøgle til en person men at afgøre: "Hvad betyder signaturen?" Er din fortolkning af en signatur juridisk bindende for underskriveren? Betydningen kan være så simpel som et tidsstempel (som er en seriøs anvendelse af signaturkryptering!), som ikke beviser andet end at et givet dokument fandtes på et givet tidspunkt (og ikke er blevet oprettet senere).  


If somebody signs all his emails (to prevent address forgery) then the pure fact that he sent a certain document within such a signed email does not mean anything except for that he probably wanted to offer you a look at it. If the email (the signed part, not the unsigned subject) says something like "I accept the attached agreement" then the meaning is clear and the remaining risk of the recipient is mainly a technical one (compromised low security key).  
Hvis nogen signerer alle sine e-mails (for at forhindre forfalskning), så betyder den kendsgerning alene at han vedhæftede et givet dokument til en sådan signeret e-mail intet andet end at  han nok ønsker at vise dig det. Hvis e-mailen (den signerede del, ikke det usignerede emne) siger noget i retning af "Jeg accepterer den vedhæftede aftale", så er betydningen klar og modtagerens risiko er hovedsaligt af teknisk natur (kompromiterede nøgler af lav sikkerhed).  


Thus it makes sense to have different keys at different security levels: One for reasonably securing everyday tasks and another one for signing agreements (where the key policy documents explain the limits and privileges of the respective key).
Det giver således mening at have nøgler til forskellige sikkerhedsniveauer: Én til passende sikring af hverdagsopgaver og en anden til at underskrive aftaler (hvor et nøglepolitik-dokument beskriver de respektive nøglers begrænsninger og privilegier).


In contrast to encryption the signature of data does not (technically) have an addressee. Everyone with access to the public key can check the signature. In many cases that is not a problem (or in contrast: It may even be a requirement). Instead of selecting an addressee you select the secret key which shall be used to create the signature (if you have more than one).
I modsætning til kryptering har datasignaturer (teknisk set) ingen modtager. Enhver med adgang til den offentlige nøgle kan tjekke signaturen. I mange tilfælde er dette ikke et problem (det kan endda være nødvendigt). I stedet for at vælge en modtager vælger du den hemmelige nøgle, som skal bruges til at oprette signaturen (hvis du har mere end en).


The big "Which is the right public key?" problem occurs with signatures, too. Not with creating signatures but when interpreting a successful signature validation. The real life question is: "What does a signature mean?" Obviously a signature by "any" key does not mean anything. Everyone can have created it. The signature itself does not state more than: "Somebody with access to the secret key decided to create this signature." This is a technical fact without relevance in real life.
Der er også et stort problem med "Hvilken offentlige nøgle er den rette?" for signaturer. Ikke ved oprettelsen af signaturen men ved fortolkning af en valideret signatur. I det virkelige liv er spørgsmålet: "Hvad betyder signaturen?" Det er klart, at ingen nøglesignatur betyder noget i sig selv. Enhver kan have lavet den. Signaturen i sig selv siger ikke andet end at "Nogen, men adgang til den hemmelige nøgle har lavet denne signatur." Dette er et teknisk faktum uden reel relevans.




== Relating keys to people ==
== Hvordan man knytter nøgler til personer ==


This is another hard and complicated part. And because only few people do this correctly the whole system is much less secure than most people believe. You have to tell apart four components of this check. The first is the easiest: the key itself. You have to be sure that you are using the right key material (just the huge random number itself).  
Dette er endnu en vanskelig og kompliceret del; og da der ikke er mange, som gør dette korrekt, så er hele systemet mindre sikkert end de fleste tror. Du skal kunne skelne imellem fire komponenter af dette tjek. Den første er den letteste: nøglen selv. Du skal sørge for at bruge det rette nøglemateriale (bare det enorme tilfældige tal selv).  


As keys are to big to be compared manually a secure hash is used instead. Once again: Evil math stuff you fortunately need not understand. A hash function does this: You throw any kind and amount of data at it (from a single digit to a DVD image file) and it outputs a "number" of fixed length. If it is (considered) impossible to create two different inputs which create the same output then the hash function is secure.  
Da nøgler er for store til at blive sammenlignet manuelt, så bruges i stedet en sikker hashværdi. Endnu en gang: kompliceret matematik, som du heldigvis ikke behøver at forstå. En hashfunktion gør følgende: Du giver den en hvilken som helst slags data af vilkårlig størrelse (fra en enkelt decimal til en DVD-billedfil) og den beregner et "tal" af fast længde. Hvis det kan anses for umuligt at få samme output for forskellige data, så er hashfunktionen sikker.  


OpenPGP currently uses the hash function [https://en.wikipedia.org/wiki/Secure_Hash_Algorithm SHA-1] for identifying keys. SHA-1 has security issues but they do not affect the usage in OpenPGP. A SHA-1 value looks like this:
OpenPGP bruger i øjeblikket hashfunktionen [https://en.wikipedia.org/wiki/Secure_Hash_Algorithm SHA-1] til at identificere nøgler. SHA-1 har sikkerhedsproblemer, men de påvirker ikke dens anvendelse i OpenPGP. En SHA-1-værdi ser således ud:


     7D82 FB9F D25A 2CE4 5241  6C37 BF4B 8EEF 1A57 1DF5
     7D82 FB9F D25A 2CE4 5241  6C37 BF4B 8EEF 1A57 1DF5


This is called the fingerprint of the key. There are two ways of being safe about the identity of a key (the raw key material) without third parties involved: You get either the key itself from a secure source (USB stick handed over by the key owner) or you get the fingerprint from a secure source (which is obviously much easier as you can print is on small pieces of paper, even on your business card, and spread them).
Dette kaldes nøglens fingeraftryk. Der er to måder at være sikker på en nøgles (det rå nøglemateriales) identitet uden at involvere en tredjepart. Du modtager enten selv nøglen fra en sikker kilde (USB-stik udleveret af nøglens ejer) eller du får fingeraftrykket fra en sikker kilde (det er tydeligvis meget nemmere, da du kan printe det på små stykker papir, selv på dit visitkort og sprede dem):


Your OpenPGP application shows you the fingerprint of the key you got from an insecure source and you compare "what is" with "what it should be". If that is the same then you can be sure about the key itself. Thus: Always have small slips of paper with your fingerprint with you.
Dit OpenPGP-program viser dig fingeraftrykket for en nøgle, som du har modtaget fra en usikker kilde, og du sammenligner "hvad det er" med "hvad det burde være". Hvis det er det samme, så kan du være sikker på selve nøglen. Hav altid små stykker papir med dit fingeraftryk på dig.


A public OpenPGP key (a "certificate") consists of two parts: the key material and the user IDs. A user ID is just a text string. The typical usage of this string is:
En offentlig OpenPGP-nøgle (et "certifikat") består af to dele: nøglematerialet og brugerens ID. Et bruger-ID er blot en tekststreng. Den typiske anvendelse af strengen er:


     Firstname Lastname (comment) <email address>
     Fornavn Efternavn (kommentar) <e-mail-adresse>


Many user IDs do not have a comment, some do not have an email address and there are keys without a (real) name, too (e.g. for anonymous usage). Even if you are sure about the fingerprint the name, email, and comment can be wrong.  
Mange bruger-ID'er har ingen kommentar, nogle har ingen e-mail-adresse, og der findes også nøgler uden noget (rigtigt) navn (fx til anonymt brug). Selv hvis du er sikker på fingeraftrykket kan navn, e-mail og kommentar være forkerte.  


Email is rather easy to check (send an encrypted message to the address and wait for a response which guarantees your message to be decrypted).  
Det er ret let at tjekke e-mail-adressen (send en krypteret besked til adressen og vent på svar, hvilket sikrer dig at din besked er blevet dekrypteret).  


Checking the identity of unknown persons is not easy. At keysigning parties this is done by checking passports and the like. But would you recognize a well forged passport?  
Det er ikke let at tjekke ukendte personers identitet. Til nøglesignerings-fester gøres dette ved at tjekke pas og lignende; men ville du genkende et godt forfalsket pas?  


Fortunately for your own purposes the identity is usually not so important. "The one I met on that event who calls himself Peter" is usually enough. So this is more a problem for the web of trust (see below).  
Heldigvis er identiteten normalt ikke så vigtig for dine egne formål. "Ham jeg mødte ved denne begivenhed, som kaldte sig Peter" er som regel nok. Så dette er mere et problem for the web of trust (se nedenfor).  


Comments can be critial, too: The comment "CEO of whatever inc." may make a real difference (if not to you then to somebody else). The question when to accept (and certify) a user ID is a really complicated one.  
Kommentarer kan også være kritiske. Kommentaren "Direktør i et-eller-andet A/S" kan gøre en virkelig forskel (om ikke for dig så for andre). Spørgsmålet om hvornår man skal acceptere (og verificere) en brugers ID er virkelig kompliceret.  


Most people don't understand this problem and thus reduce their own security and that of others. You can make this decision for others easier by having user IDs which consist of just your name or just your email address. This may be easier acceptable by someone checking your user IDs.
De fleste forstår ikke dette problem og reducerer således deres egen sikkerhed og andres. Du kan gøre beslutningen lettere for andre ved at have bruger-ID'er som kun består af dit navn eller kun af din e-mail-adresse. Dette kan være lettere at acceptere for den der tjekker dine bruger-ID'er.


If you are sure about a user ID you should certify it. This means that you make a digital signature over the public key and this user ID. You can make this certification for yourself only (called a "local signature") or for the public (the "web of trust"). If a key has several user IDs then you can decide which ones you certify.  
Hvis du er sikker på et bruger-ID, så bør du certificere det. Det betyder, at du laver en digital signatur over den offentlige nøgle og denne brugers ID. Du kan lave denne certifikation til dig selv (kaldet en "lokal signatur") eller til offentligheden ("web of trust"). Hvis en nøgle har flere bruger-ID'er, så kan du beslutte, hvilke du vil certificere.  


You can give a rough hint how well you have checked the user ID and key, too. It makes a big difference to OpenPGP applications (and so should it to you!) whether they recognize a key as "valid" or not.  
Du kan også give indikation af, hvor godt du har tjekket bruger-ID'et og nøglen. Det gør en stor forskel for OpenPGP-programmer (og burde også gøre det for dig) om  de ser en nøgle som "gyldig" eller ej.  


The keys you have the secret key for are considered valid automatically. The others can become valid by signatures of your own keys. And by keys of others.
De nøgler, hvor du har den tilsvarende hemmelig nøgle betragtes automatisk som gyldige. De andre kan gøres gyldige ved signering med din egen nøgle og også ved andres nøgler.


== The web of trust (WoT) ==
== The web of trust (WoT) ==


In connection with OpenPGP you will often hear about the web of trust. This in an indirect method for relating people to keys, a mighty but complicated technology. Beginners should not use the web of trust but first become familiar with verifying and certifying keys directly. The WoT is explained in the article [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|OpenPGP For Advanced Users]].
I forbindelse med OpenPGP vil du ofte høre om the web of trust. Dette er en indirekte metode til at knytte personer til nøgler, som en effektiv men kompliceret teknologi. Begyndere bør ikke bruge the web of trust men først blive fortrolige med direkte verificering og certificering af nøgler. WoT bliver forklaret i artiklen [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|OpenPGP for avancerede brugere]].






== Summary of key usage ==
== Oversigt over brug af nøgler ==


{| class="wikitable" border="1"<!--}-->
{| class="wikitable" border="1"<!--}-->
|-
|-
! you need
! du skal bruge
! in order to
! for at kunne


|-
|-
| rowspan="2"| the public key of another person
| rowspan="2"| en anden persons offentlige nøgle
| encrypt data for him
| kryptere data til ham


|-
|-
| check those key's signatures (technical correctness, not key validity)
| tjek disse nøglers signaturer (teknisk korrekthed, ikke nøglernes gyldighed)


|-
|-
| rowspan="2"| your secret subkeys
| rowspan="2"| dine hemmelige undernøgler
| decrypt data that has been encrypted for you
| dekryptere data som er blevet krypteret til dig


|-
|-
| create signatures for data
| opret signaturer for data


|-
|-
| rowspan="2"| your secret main key
| rowspan="2"| din hemmelige hovednøgle
| manage your key (add user IDs or subkeys, change settings like expiration date)
| håndtere dine nøgler (tilføje bruger-ID'er eller undernøgler, ændre indstillinger så som udløbsdato)


|-
|-
| certify other keys (i.e. some or all of their user IDs)
| certificere andre nøgler (dvs. nogle af eller alle deres bruger-ID'er)


|-
|-
| the fingerprint of the key of another person
| fingeraftryk af en anden persons nøgle
| ensure that you have imported the right key (before certifying the key either locally or for the public)
| sørg for at du har importeret den rigtige nøgle (før du certificerer nøglen enten lokalt eller for offentligheden)
<!--{-->|}
<!--{-->|}




== Further reading ==
== Videre læsning ==


* [[Special:myLanguage/Concepts/OpenPGP_Getting_Started|Getting Started with OpenPGP]]
* [[Special:myLanguage/Concepts/OpenPGP_Getting_Started|Kom i gang med OpenPGP]]


* [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|OpenPGP For Advanced Users]]
* [[Special:myLanguage/Concepts/OpenPGP_For_Advanced_Users|OpenPGP for avancerede brugere]]




[[Category:Getting Started]]
[[Category:Kom i gang/da]]
[[Category:Internet]]
[[Category:Internet/da]]
[[Category:Security]]
[[Category:Sikkerhed/da]]
[[Category:Tutorials]]
[[Category:Vejledning/da]]
[[Category:New Users]]
[[Category:Nye brugere/da]]

Latest revision as of 15:55, 4 July 2013

Introduktion

En kryptografisk løsnings effektive sikkerhed afhænger mere af, at du ved hvad du gør og af hvad visse tekniske fakta betyder (og hvad de ikke betyder!) end af nøglelængden af og af selve softwaren. Denne artikel skal derfor give en introduktion til centrale begreber i OpenPGP.

Denne vejledning er for begyndere, så det mere komplicerede stof er udeladt. Desuden finde du ikke forklaringer på, hvordan man bruger forskellige programmer. Det har du programmanualerne til. Dette skal hjælpe dig til bedre at forstå de handlinger, som forklares her.

Der er en anden artikel, som gør dig klar til nøglegenerering og en, som forklarer avancerede begreber.

Asymmetriske nøgler

OpenPGP bruger nøglepar. Dette betyder, at der altid er en "hemmelig nøgle" og en "offentlig nøgle", som hører sammen. I modsætning til det meget intuitive begreb om symmetrisk kryptering (dvs. når samme nøgle bruges til at kryptere og dekryptere data) er dette svært at forstå. Tænk ikke for meget over det, acceptér det blot: matematikken bag er et mareridt, så det vil være et frustrerende spild af tid for de fleste at gå i detaljer med det.

Som navnet antyder kendes den hemmelige nøgle kun af sin ejer, mens den offentlige nøgle ideelt set skulle være kendt af alle. Med symmetrisk kryptering var problemet, hvordan du sikkert delte kodeordet med modtageren af en meddelelse. Med offentlige nøgler er problemet ændret: Nu er den vanskelige del at sikre dig, at du bruger en korrekt offentlig nøgle (og ikke en forfalsket nøgle, som en angriber prøver at narre dig til at bruge).

Kryptering

En af OpenPGP's to funktioner er kryptering. Du krypterer data med en eller flere offentlige nøgler (symmetrisk kryptering, dvs. brug af et kodeord er også en mulighed, men anvendes sjældent). Til dekryptering af data skal man bruge en af modtagernøglernes hemmelige nøgler.

Bortset fra de allerede nævnte problem med "Hvad er den rette nøgle at kryptere med?" så er kryptering - dekryptering en ret enkel operation, da der ikke er mulighed for misforståelser: Du krypterer noget, og ingen andre end modtagernøglernes ejere kan læse det. Og du kan enten dekryptere data eller du kan ikke. De dekrypterede data er måske svære at forstå, men selve dekrypteringshandlingen er ikke. Dog: Spørgsmålet "Hvad er den rette nøgle at kryptere med?" går ikke bare på "Hvem ejer denne nøgle?" men også "Er denne nøgle sikker nok til de data, der skal krypteres?". Dette handler ikke om nøglelængde og lignende men om nøglehåndtering. Før du sender kritiske data bør du således spørge nøgleejeren om nøglens sikkerhedsniveau!

Digitale signaturer

Kryptering af data kan vendes om på en måde: I stedet for at lave data, som kun en nøgle kan forstå kan du lave data som alle kan forstå, men som kun kan være lavet med én nøgle. Umuligheden af at kunne oprette de samme data uden adgang til den rette hemmelige nøgle gør disse data til en digital signatur. Igen: Spørg ikke hvordan dette kan lade sig gøre med mindre du virkelig holder af matematik.

En af de store fordele ved digital kryptografi er, at i modsætning til en underskrift kan enhver (eller enhvers computer) let tjekke, om signaturen blev lavet med en given nøgle. Hvis du kan knytte en given nøgle til en person, så kan du også knytte en digital signatur til den person - medmindre nøglen er blevet kompromitteret, selvfølgelig. Som du måske har bemærket er opgaven nu mere organisatorisk og juridisk.

Teknologi løser ikke alle dine problemer; og det er ekstremt vigtigt at du altid er opmærksom på, hvor grænsen imellem det teknologiske og det organisatoriske problem er.

Den vanskelige del er ikke at relatere en nøgle til en person men at afgøre: "Hvad betyder signaturen?" Er din fortolkning af en signatur juridisk bindende for underskriveren? Betydningen kan være så simpel som et tidsstempel (som er en seriøs anvendelse af signaturkryptering!), som ikke beviser andet end at et givet dokument fandtes på et givet tidspunkt (og ikke er blevet oprettet senere).

Hvis nogen signerer alle sine e-mails (for at forhindre forfalskning), så betyder den kendsgerning alene at han vedhæftede et givet dokument til en sådan signeret e-mail intet andet end at han nok ønsker at vise dig det. Hvis e-mailen (den signerede del, ikke det usignerede emne) siger noget i retning af "Jeg accepterer den vedhæftede aftale", så er betydningen klar og modtagerens risiko er hovedsaligt af teknisk natur (kompromiterede nøgler af lav sikkerhed).

Det giver således mening at have nøgler til forskellige sikkerhedsniveauer: Én til passende sikring af hverdagsopgaver og en anden til at underskrive aftaler (hvor et nøglepolitik-dokument beskriver de respektive nøglers begrænsninger og privilegier).

I modsætning til kryptering har datasignaturer (teknisk set) ingen modtager. Enhver med adgang til den offentlige nøgle kan tjekke signaturen. I mange tilfælde er dette ikke et problem (det kan endda være nødvendigt). I stedet for at vælge en modtager vælger du den hemmelige nøgle, som skal bruges til at oprette signaturen (hvis du har mere end en).

Der er også et stort problem med "Hvilken offentlige nøgle er den rette?" for signaturer. Ikke ved oprettelsen af signaturen men ved fortolkning af en valideret signatur. I det virkelige liv er spørgsmålet: "Hvad betyder signaturen?" Det er klart, at ingen nøglesignatur betyder noget i sig selv. Enhver kan have lavet den. Signaturen i sig selv siger ikke andet end at "Nogen, men adgang til den hemmelige nøgle har lavet denne signatur." Dette er et teknisk faktum uden reel relevans.


Hvordan man knytter nøgler til personer

Dette er endnu en vanskelig og kompliceret del; og da der ikke er mange, som gør dette korrekt, så er hele systemet mindre sikkert end de fleste tror. Du skal kunne skelne imellem fire komponenter af dette tjek. Den første er den letteste: nøglen selv. Du skal sørge for at bruge det rette nøglemateriale (bare det enorme tilfældige tal selv).

Da nøgler er for store til at blive sammenlignet manuelt, så bruges i stedet en sikker hashværdi. Endnu en gang: kompliceret matematik, som du heldigvis ikke behøver at forstå. En hashfunktion gør følgende: Du giver den en hvilken som helst slags data af vilkårlig størrelse (fra en enkelt decimal til en DVD-billedfil) og den beregner et "tal" af fast længde. Hvis det kan anses for umuligt at få samme output for forskellige data, så er hashfunktionen sikker.

OpenPGP bruger i øjeblikket hashfunktionen SHA-1 til at identificere nøgler. SHA-1 har sikkerhedsproblemer, men de påvirker ikke dens anvendelse i OpenPGP. En SHA-1-værdi ser således ud:

   7D82 FB9F D25A 2CE4 5241  6C37 BF4B 8EEF 1A57 1DF5

Dette kaldes nøglens fingeraftryk. Der er to måder at være sikker på en nøgles (det rå nøglemateriales) identitet uden at involvere en tredjepart. Du modtager enten selv nøglen fra en sikker kilde (USB-stik udleveret af nøglens ejer) eller du får fingeraftrykket fra en sikker kilde (det er tydeligvis meget nemmere, da du kan printe det på små stykker papir, selv på dit visitkort og sprede dem):

Dit OpenPGP-program viser dig fingeraftrykket for en nøgle, som du har modtaget fra en usikker kilde, og du sammenligner "hvad det er" med "hvad det burde være". Hvis det er det samme, så kan du være sikker på selve nøglen. Hav altid små stykker papir med dit fingeraftryk på dig.

En offentlig OpenPGP-nøgle (et "certifikat") består af to dele: nøglematerialet og brugerens ID. Et bruger-ID er blot en tekststreng. Den typiske anvendelse af strengen er:

   Fornavn Efternavn (kommentar) <e-mail-adresse>

Mange bruger-ID'er har ingen kommentar, nogle har ingen e-mail-adresse, og der findes også nøgler uden noget (rigtigt) navn (fx til anonymt brug). Selv hvis du er sikker på fingeraftrykket kan navn, e-mail og kommentar være forkerte.

Det er ret let at tjekke e-mail-adressen (send en krypteret besked til adressen og vent på svar, hvilket sikrer dig at din besked er blevet dekrypteret).

Det er ikke let at tjekke ukendte personers identitet. Til nøglesignerings-fester gøres dette ved at tjekke pas og lignende; men ville du genkende et godt forfalsket pas?

Heldigvis er identiteten normalt ikke så vigtig for dine egne formål. "Ham jeg mødte ved denne begivenhed, som kaldte sig Peter" er som regel nok. Så dette er mere et problem for the web of trust (se nedenfor).

Kommentarer kan også være kritiske. Kommentaren "Direktør i et-eller-andet A/S" kan gøre en virkelig forskel (om ikke for dig så for andre). Spørgsmålet om hvornår man skal acceptere (og verificere) en brugers ID er virkelig kompliceret.

De fleste forstår ikke dette problem og reducerer således deres egen sikkerhed og andres. Du kan gøre beslutningen lettere for andre ved at have bruger-ID'er som kun består af dit navn eller kun af din e-mail-adresse. Dette kan være lettere at acceptere for den der tjekker dine bruger-ID'er.

Hvis du er sikker på et bruger-ID, så bør du certificere det. Det betyder, at du laver en digital signatur over den offentlige nøgle og denne brugers ID. Du kan lave denne certifikation til dig selv (kaldet en "lokal signatur") eller til offentligheden ("web of trust"). Hvis en nøgle har flere bruger-ID'er, så kan du beslutte, hvilke du vil certificere.

Du kan også give indikation af, hvor godt du har tjekket bruger-ID'et og nøglen. Det gør en stor forskel for OpenPGP-programmer (og burde også gøre det for dig) om de ser en nøgle som "gyldig" eller ej.

De nøgler, hvor du har den tilsvarende hemmelig nøgle betragtes automatisk som gyldige. De andre kan gøres gyldige ved signering med din egen nøgle og også ved andres nøgler.

The web of trust (WoT)

I forbindelse med OpenPGP vil du ofte høre om the web of trust. Dette er en indirekte metode til at knytte personer til nøgler, som en effektiv men kompliceret teknologi. Begyndere bør ikke bruge the web of trust men først blive fortrolige med direkte verificering og certificering af nøgler. WoT bliver forklaret i artiklen OpenPGP for avancerede brugere.


Oversigt over brug af nøgler

du skal bruge for at kunne
en anden persons offentlige nøgle kryptere data til ham
tjek disse nøglers signaturer (teknisk korrekthed, ikke nøglernes gyldighed)
dine hemmelige undernøgler dekryptere data som er blevet krypteret til dig
opret signaturer for data
din hemmelige hovednøgle håndtere dine nøgler (tilføje bruger-ID'er eller undernøgler, ændre indstillinger så som udløbsdato)
certificere andre nøgler (dvs. nogle af eller alle deres bruger-ID'er)
fingeraftryk af en anden persons nøgle sørg for at du har importeret den rigtige nøgle (før du certificerer nøglen enten lokalt eller for offentligheden)


Videre læsning