PGP

Ganska bra integritet
Sorts krypteringsmjukvara och kommersiell programvara
Författare Philipp Zimmermann
Utvecklaren Philipp Zimmermann
Skrivet i Flerspråkig
Operativ system Linux , macOS , Windows
Första upplagan 1991
senaste versionen
Läsbara filformat Pretty Good Privacy (PGP) Privat/hemlig nyckelring [d] , PGP klartext signerat meddelande [d] , PGP offentlig nyckelblock [d] , PGP privat nyckelblock [d] , PGP ASCII-Armor [d] , PGP diskbild [d] , Pretty Good Privacy (PGP) Public Keyring [d] och PGP-signatur [d]
Genererade filformat PGP-meddelande [d] , Pretty Good Privacy (PGP) Privat/hemlig nyckelring [d] , PGP-klartext signerat meddelande [d] , PGP-publik nyckelblock [d] , PGP privat nyckelblock [d] , PGP ASCII-Armor [ d] , PGP-diskbild [d] , Pretty Good Privacy (PGP) Public Keyring [d] och PGP-signatur [d]
Hemsida openpgp.org

PGP ( engelska  Pretty Good Privacy ) är ett datorprogram , även ett bibliotek med funktioner som låter dig utföra kryptering och digital signering av meddelanden, filer och annan information som presenteras i elektronisk form, inklusive transparent datakryptering på lagringsenheter, såsom en hårddisk. köra.

Ursprungligen designad av Philipp Zimmermann 1991 .

Allmän information

PGP har många implementeringar som är kompatibla med varandra och ett antal andra program ( GnuPG , FileCrypt, etc.) tack vare OpenPGP-standarden ( RFC 4880 ), men med en annan uppsättning funktionalitet. Det finns implementeringar av PGP för alla de vanligaste operativsystemen . Förutom fritt distribuerade implementeringar finns det även kommersiella.

Kompatibilitet

I takt med att PGP utvecklas tillåter vissa system skapandet av krypterade meddelanden med hjälp av nya funktioner som inte är tillgängliga på äldre system. Avsändaren och mottagaren måste vara medvetna om varandras möjligheter, eller åtminstone komma överens om PGP-inställningar.

Säkerhet

1996 beskrev kryptografen Bruce Schneier en tidig version av PGP som "det närmaste kryptosystem av militär kvalitet". För närvarande finns det inte ett enda fall av hackning av PGP-krypterad data med brute force eller sårbarhet hos den kryptografiska algoritmen.

Den kryptografiska styrkan hos PGP är baserad på antagandet att de använda algoritmerna är resistenta mot kryptoanalys på modern hårdvara. Till exempel, i de första versionerna av PGP, användes RSA-algoritmen , baserad på en envägsfunktion (faktorisering), för att kryptera sessionsnycklar. I PGP version 2 kan du dessutom använda IDEA- algoritmen . Därefter tillkom ytterligare krypteringsalgoritmer. Ingen av de algoritmer som används har kända sårbarheter.

Under 2010 lyckades en grupp forskare från Schweiz, Japan, Frankrike, Nederländerna, Tyskland och USA faktorisera en 768-bitars, 232-siffrig RSA - nyckel. Att hitta primtalsfaktorer utfördes med den allmänna metoden för talfältssikten [6] . Det första steget (att välja ett par polynom av grad 6 och 1) tog ungefär ett halvt år av beräkningar på 80 processorer, vilket var ungefär 3 % av tiden som spenderades på huvudsteget av algoritmen (siktning), som utfördes på hundratals datorer under nästan två år. Om vi ​​interpolerar den här tiden för driften av en enda 2,2 GHz AMD Opteron-processor med 2 GB RAM, så skulle det vara cirka 1500 år. Att bearbeta data efter sållning för nästa resurskrävande steg (linjär algebra) tog flera veckor på ett litet antal processorer. Det sista steget efter att ha hittat icke-triviala OSLU-lösningar tog inte mer än 12 timmar.

OSLU-lösningen utfördes med Wiedemann-metoden på flera separata kluster och varade i lite mindre än 4 månader. Storleken på den glesa matrisen var 192 796 550 × 192 795 550 med 27 795 115 920 element som inte var noll. Det tog cirka 105 gigabyte att lagra matrisen på hårddisken. Samtidigt tog det cirka 5 terabyte komprimerad data för att bygga denna matris.

Till slut kunde gruppen beräkna båda primfaktorerna, som var och en är ett 384-bitars, 116-siffrigt tal.

Forskarna är övertygade om att med hjälp av deras faktoriseringsmetod kommer det att vara möjligt att knäcka en 1024-bitars RSA-nyckel inom det kommande decenniet.

Enligt forskarna kan endast RSA-nycklar med en längd på 1024 bitar eller mer efter deras arbete betraktas som ett tillförlitligt krypteringssystem. Dessutom bör kryptering med en nyckel på 1024 bitar överges under de kommande tre till fyra åren. [7] .

Genom att känna till expansionen av modulen till produkten av två primtal, kan motståndaren lätt hitta den hemliga exponenten och därmed bryta RSA. Men hittills tillåter den snabbaste faktoriseringsalgoritmen, General Number Field Sieve-silen, vars hastighet för ett k-bitars heltal är för vissa , inte nedbrytning av ett stort heltal på en acceptabel tid.

Hur PGP fungerar

PGP- kryptering utförs sekventiellt genom hashing, datakomprimering, symmetrisk nyckelkryptering och slutligen offentlig nyckelkryptering, där varje steg utförs av en av flera algoritmer som stöds. Symmetrisk kryptering utförs med en av sju symmetriska algoritmer ( AES , CAST5 , 3DES , IDEA , Twofish , Blowfish , Camellia ) på en sessionsnyckel. Sessionsnyckeln genereras med hjälp av en kryptografiskt stark pseudo-slumptalsgenerator . Sessionsnyckeln krypteras med mottagarens publika nyckel med hjälp av RSA- eller Elgamal-algoritmerna (beroende på typen av mottagarens nyckel). Varje offentlig nyckel motsvarar ett användarnamn eller e-postadress. Den första versionen av systemet kallades Web of Trust och var emot X.509 -systemet , som använde ett hierarkiskt CA-baserat tillvägagångssätt som lades till PGP senare . Moderna versioner av PGP inkluderar båda.

Nycklar

PGP-användaren skapar ett nyckelpar: offentlig och privat nyckel . Vid generering av nycklar anges deras ägare (namn och e-postadress ), nyckeltyp, nyckellängd och dess giltighetstid. Den publika nyckeln används för att kryptera och verifiera den digitala signaturen . Privat nyckel - för att avkoda och skapa en digital signatur.

PGP stöder tre typer av nycklar: RSA v4, RSA legacy (v3) och Diffie-Hellman/DSS ( Elgamal i GnuPG - terminologi ).

För äldre RSA-nycklar kan nyckellängden vara från 1024 till 2048 bitar, och för Diffie-Hellman/DSS- och RSA-nycklar från 1024 till 4096. RSA-legacy-nycklar innehåller ett nyckelpar, medan Diffie-Hellman/DSS- och RSA-nycklar kan innehåller en huvudnyckel och ytterligare nycklar för kryptering. Samtidigt har den elektroniska signaturnyckeln i Diffie-Hellman/DSS-nycklar alltid storleken 1024. Giltighetstiden för varje typ av nyckel kan definieras som obegränsad eller fram till ett specifikt datum. En hemlig fras används för att skydda nyckelbehållaren.

Digital signatur

PGP stöder autentisering och integritetskontroller genom en digital signatur . Som standard används den i kombination med kryptering, men kan även tillämpas på vanlig text. Avsändaren använder PGP för att generera RSA- eller DSA- signaturen . Detta skapar först en hash av klartexten (även känd som en sammanfattning), och signerar sedan hashen digitalt med avsändarens privata nyckel . Algoritmerna MD5 , SHA-1 , RIPEMD-160 , SHA-256 , SHA-384 , SHA-512 kan användas för att bilda en hash . Nyare versioner av PGP stöder MD5 för att bibehålla kompatibilitet med tidigare versioner. RSA- eller DSA-algoritmer används för signering (beroende på nyckeltyp).

Datakomprimering

För att minska storleken på meddelanden och filer, och eventuellt försvåra krypteringsanalys, komprimerar PGP data före kryptering. Komprimering utförs enligt en av algoritmerna ZIP , ZLIB , BZIP2 . Komprimerade, korta och svagt komprimerbara filer komprimeras inte.

Web of Trust

Både vid kryptering av meddelanden och vid verifiering av en digital signatur är det nödvändigt att den publika nyckel som tas emot av mottagaren faktiskt tillhör avsändaren. Med en enkel nedladdning av den publika nyckeln kan den ändras. Sedan de första versionerna har PGP stött certifikat för publika nyckel , med hjälp av vilka ersättningar (eller oavsiktliga överföringsfel) lätt kan kännas igen. Det räcker dock inte att bara skapa ett certifikat som är skyddat från modifiering, eftersom detta endast garanterar certifikatets integritet efter att det skapats. Användare behöver också ett sätt att verifiera att den publika nyckeln i certifikatet verkligen tillhör avsändaren. Sedan de första versionerna har PGP-produkterna inkluderat ett internt certifikatverifieringssystem som kallas webben av förtroende .  Det givna paret "användarnamn - offentlig nyckel" kan signeras av en tredje part, vilket bekräftar korrespondensen mellan nyckeln och ägaren. Sådana signaturer kan ha flera kapslade nivåer av förtroende. Även om många program läser och skriver denna information, är det väldigt få som överväger denna certifikatnivå när de bestämmer sig för att acceptera eller avslå ett certifikat.

Web of trust-protokollet beskrevs först av Zimmermann 1992 i PGP version 2.0-manualen:

Med tiden kommer du att samla på dig andras nycklar som du kan kalla betrodda rekommendatorer. Alla andra kan välja sina betrodda rekommendatorer. Och alla kommer gradvis att samla och distribuera med sina nycklar en uppsättning andra människors certifierade signaturer, och förväntar sig att alla mottagare ska lita på minst en eller två signaturer. Detta gör att du kan skapa ett decentraliserat feltolerant nätverk av alla publika nycklar.

Web of trust-mekanismen har fördelar jämfört med en centraliserad infrastruktur för hantering av offentliga nycklar , till exempel den som används i S/MIME , men har inte blivit allmänt antagen. Användare ville kontrollera riktigheten av certifikat manuellt eller inte alls.

Certifikat

I de senaste OpenPGP-specifikationerna kan betrodda signaturer användas för att stödja skapandet av certifikatutfärdare. Certifikatförtroende innebär att nyckeln verkligen tillhör den angivna ägaren och kan användas för att signera certifikat en nivå ner. Ett nivå 0-certifikat betyder en normal signatur. Nivå 1 innebär att du kan skapa certifikat på nivå 0 med en signerad nyckel. Du kan skapa certifikat på nivå 1 med ett certifikat på nivå 2. Nivå 2 är nästan identisk med graden av förtroende som användare litar på listorna över betrodda certifikat som är inbyggda i webbläsare.

Alla versioner av PGP inkluderar ett sätt att återkalla ett certifikat. Detta är nödvändigt om du vill upprätthålla kommunikationssäkerheten när den privata nyckeln tappas bort eller äventyras . Återkallande av certifikat liknar CRL:er i en centraliserad infrastruktur för offentliga nyckel. Moderna versioner av PGP stöder också certifikatets utgångsdatum.

Problemet med att korrekt avgöra om en publik nyckel tillhör ägaren är typiskt för alla kryptografiska system med asymmetrisk kryptering . Hon har inte tillräckligt bra lösningar. Det ursprungliga PGP-schemat tillåter användaren att bestämma om certifikatvalideringsschemat ska användas, medan de flesta andra infrastrukturer för publika nyckel kräver att varje certifikat ska valideras.

Historik

Tidig historia

1991 skapade Philip Zimmerman den första versionen av PGP. Den första versionen inkluderade den symmetriska krypteringsalgoritmen BassOmatic , skapad av Zimmerman själv. Zimmerman var involverad i anti-kärnkraftsrörelsen och skapade PGP för att säkert använda BBS och lagra filer och meddelanden. Ingen licens krävdes för icke-kommersiell användning, med alla kopior distribuerade all källkod. PGP spreds till Usenet och sedan till Internet .

Brottsutredning

Kort efter lanseringen började PGP användas utanför USA och 1993 inledde den amerikanska regeringen en utredning mot Zimmerman misstänkt för brott mot exportlagar som reglerar distributionen av kryptografiska system med en nyckellängd på mer än 40 bitar. PGP använde nycklar på 128 bitar eller mer.

Zimmerman kringgick på ett skickligt sätt begränsningarna i amerikansk lag. Han publicerade källkoden i en bok publicerad av MIT Press [8] [9] . Koden kunde skannas, kännas igen och kompileras. Export av böcker kan inte förbjudas eftersom den är skyddad av det första tillägget till den amerikanska konstitutionen (ett liknande system användes i krypteringssystemet Snuffle, se Bernstein v. USA ).

1996 avslutades utredningen [10] [11] [12] .

OpenPGP

PGP Inc. var oroad över patent . Företaget skapade en intern standard Unencumbered PGP ("unencumbered PGP"), som inte använder algoritmer som har problem med licenser. Eftersom PGP användes flitigt runt om i världen ville många skapa sin egen PGP 5-kompatibla programvara. 1997, PGP Inc. föreslog en IETF- standard kallad OpenPGP. IETF skapade RFC 2440 (1998) och RFC 4880 (2007).

1999 skapades en gratis implementering av OpenPGP som heter GNU Privacy Guard (GnuPG) av Free Software Foundation .

Förvärv av Network Associates

I december 1997, PGP Inc. togs över av Network Associates Inc (nu McAfee ). NAI fortsatte att exportera genom källtryck. Som en del av NAI utvecklade PGP-teamet diskkryptering, brandvägg, intrångsdetektering och IPsec VPN . Efter att ha legaliserat exporten av kryptografisk programvara 2000, slutade NAI att publicera källkoden, trots invändningar från PGP-teamet.

2001 lämnade Zimmerman NAI, NAI tillkännagav försäljningen av PGP och stopp för PGP-utvecklingen. 2002 avbröt NAI stödet för alla PGP PGP E-Business Server-produkter (den ursprungliga konsolversionen av PGP).

Nuvarande tillstånd

2002 bildade flera tidigare PGP-utvecklare PGP Corporation och köpte ut PGP (förutom konsolversionen). 2003 utvecklade PGP Corporation en ny serverprodukt, PGP Universal.

2010 Symantec Corp. köpte PGP för 300 miljoner dollar.

Kryptografiska applikationer PGP Corporation

PGP utvecklades ursprungligen för e-postkryptering på klientsidan, men inkluderar sedan 2002 även kryptering av bärbara hårddiskar, filer och kataloger, snabbmeddelandesessioner, batchfilöverföring, fil- och katalogskydd i nätverkslagring, och i moderna versioner - även kryptering av HTTP-förfrågningar och svar på serversidan (mod openpgp) och klientsidan (Enigform).

Klientprogram är förenade i PGP Desktop-familjen (inkluderar PGP Desktop EMail , PGP Whole Disk Encryption och PGP NetShare ).

PGP Universal Server låter dig administrera PGP Desktop- baserade klienter centralt från kommandoraden .

2010 förvärvades rättigheterna till applikationen av Symantec för 300 miljoner dollar [13] .

Juridiska aspekter av användning i Ryssland

Hittills finns det inga direkta lagstiftningsförbud mot användning av PGP i Ryssland. Användningen av kryptografi är begränsad enligt lag endast i statliga och kommunala institutioner. FSB instruerar alla statliga myndigheter att endast använda certifierade kryptografiska verktyg. Individer och företag bestämmer själva vilken information som är en affärshemlighet för dem, metoderna för lagring och överföring av sådan information [14] . Informationsresursen Helpdesk24 i artikeln "Legality of use cryptographic methods of information protection" ger utdrag ur federala lagar som förklarar detta problem. [1] Dessutom hävdar författarna till "openPGP in Russia"-projektet att det inte finns några lagar som förbjuder användningen av PGP [15] . En elektronisk signatur som genereras med PGP och dess icke-certifierade motsvarigheter har rättslig kraft i Ryska federationen, eftersom den enligt punkt 3 i artikel 5 i 63-FZ "On Electronic Signature" [16] faller under definitionen av en förbättrad okvalificerad elektronisk signatur [17] . Enligt punkt 2 i artikel 6 i denna federala lag krävs ett avtal mellan deltagarna i elektronisk interaktion för att erkänna ett sådant ES.

Se även

Anteckningar

  1. 1 2 https://web.archive.org/web/web.pa.msu.edu/reference/pgp-readme-1st.html
  2. https://web.archive.org/web/web.mit.edu/network/pgp262-announce.html
  3. 1 2 3 http://openpgp.vie-privee.org/latest.html
  4. https://rjmarq.org/pgp/pgp5.html
  5. https://web.archive.org/web/web.mit.edu/afs/net/mit/jis/www/pgpfaq.html
  6. RSA-768 faktoriseringsmeddelande Arkiverad 13 april 2014 på Wayback Machine 
  7. RSA-768 Factorization Arkiverad 11 februari 2020 på Wayback Machine 
  8. Zimmermann, Philip (1995). PGP källkod och interns. MIT Press. ISBN 0-262-24039-4 . Författarens förord ​​Arkiverad 3 mars 2016 på Wayback Machine
  9. Deklaration av Robert v. Tidigare arkiverad 30 juni 2016 på Wayback Machine 4 OKTOBER 1996 - Förläggarens vittnesmål i Bernstein v. US Department of Justice Arkiverad 4 april 2018 på Wayback Machine // EFF 
  10. Feds Won't Prosecute PGP Creator Arkiverad 5 februari 2016 på Wayback Machine 11 januari 1996, Phil Zimmermann
  11. Här är meddelandet från min ledande försvarsadvokat Arkiverad 15 mars 2016 på Wayback Machine / Phil Zimmermann, 1996-01-12
  12. Phil Zimmermann hemsida . Hämtad 23 februari 2013. Arkiverad från originalet 26 februari 2013.
  13. Symantec köpte PGP Corporation för 300 miljoner dollar Arkiverad 5 mars 2016 på Wayback Machine .
  14. Federal lag "om affärshemligheter" nr 98-FZ Artikel 10 "Skydd av konfidentiell information",
  15. openPGP i Ryssland / Vanliga frågor / openPGP i Ryssland . Hämtad 27 februari 2013. Arkiverad från originalet 20 januari 2013.
  16. Ryska federationens federala lag av den 6 april 2011 N 63-FZ . Hämtad 30 april 2020. Arkiverad från originalet 28 maj 2020.
  17. Om innehållet i konceptet "ELEKTRONISK SIGNATUR" Arkivkopia daterad 5 oktober 2013 på Wayback Machine // Institute of Cryptography, Communications and Informatics, Moskva

Länkar