Vägledning för kryptografi

Vägledning för kryptografi är en fördjupning som beskriver förslag till riktlinjer för algoritmer, kryptografiska nycklar och hashfunktioner som erkänns och tillåts för användning.

Inledning

Denna vägledning beskriver förslag för hur kryptering och kryptografiska säkerhetsåtgärder kan implementeras inom er organisation och bör endast betraktas som vägledande. Beroende på dels informationsklassningen och övriga verksamhets-, omvärlds- och riskanalyser kan kryptografiska säkerhetsåtgärder som inte tas upp i denna vägledning behöva tillämpas. Det kan också vara så att striktare tillämpningar behöver göras än de föreslagna relationerna mellan KLASSAs konsekvensnivåer och nivåer av kryptografiska säkerhetsåtgärder. Ofta är den svagaste punkten i tillämpningen av kryptografiska säkerhetsåtgärder nyckelhanteringen, och därför bör alltid första prioritet vara att säkerställa en bra process med väl etablerade rutiner för nyckelhantering.

Med kryptografisk säkerhetsåtgärd avses att kryptografi tillämpas på ett sådant sätt att information skyddas med hänsyn till framförallt konfidentialitet och riktighet men även tillgänglighet. I praktiken kan kryptografiska säkerhetsåtgärder tillämpas vid exempelvis autentisering av användare, elektroniska underskrifter eller bevarande av hemlig information.

Utöver vad som tas upp i denna vägledning är även termer som PKI (eng. Public Key Infrastructure) och HSM (eng. Hardware Security Module) vanligt förekommande i samband med diskussion av kryptografiska säkerhetsåtgärder inom en organisation. Dessa aspekter tas inte upp explicit i denna vägledning men kan ofta vara nödvändiga att ha kännedom om för en fullständig förståelse för en organisations kryptografiska säkerhetsåtgärder. Vidare avser inte denna vägledning att förklara kryptografi eller delar utav den med undantag för några begreppsdefinitioner. Grundläggande kunskap om kryptografi kan vara nödvändigt för att tillgodogöra sig vägledningen fullt ut.

Definitioner

De begrepp och termer som presenteras i tabellen nedan är vanligt förekommande vid diskussion av kryptografi som säkerhetsåtgärd. Listan är inte uttömmande, för ytterligare begrepp och dess definitioner hänvisas till: SIS-TR 50:2015 - Terminilogi för informationssäkerhet.

Tabell 1 - Översikt av vanligt förekommande termer och dess definitioner
Begrepp / Term Definition / Beskrivning
Asymmetrisk kryptering Kryptoteknik där olika nycklar används för kryptering och dekryptering
Autentiseringsalgoritm Algoritm som används för kryptografisk autentisering
Autentiseringsnyckel Nyckel som används i en autentiseringsalgoritm
Hashfunktion Funktion som avbildar en godtyckligt lång datasträng till en datasträng med fast värde
Hashvärde/hashsumma Värde som är resultatet av en hashfunktion
Krypteringsnyckel Varierbar information som används för kryptering och dekryptering vid symmetrisk kryptering
Kryptografi Metoder och principer för att skydda information mot oönskad insyn och manipulation
Kryptografisk algoritm Algoritm för beräkning av en kryptografisk funktion
Nyckelhantering Administrativa och tekniska metoder för skapande, förvaring, distribution, användning och förstöring samt eventuell certifiering av krypteringsnycklar och/eller privata nycklar
Nyckelpar Par bestående av en privat nyckel och en publik nyckel för användning inom asymmetrisk kryptering
Privat nyckel Den nyckel i ett nyckelpar som hålls hemlig
Publik nyckel Den nyckel i ett nyckelpar som inte hålls hemlig
Signeringsnyckel Privat nyckel som används för att skapa digitala signaturer
Symmetrisk kryptering Kryptoteknik där samma nyckel används för kryptering och dekryptering
Tillförlitlighet Mått på i vilken grad ett system levererar information av den kvalitet det säger sig leverera

Relation till KLASSAs konsekvensnivåer

Det finns inget direkt samband mellan en klassningsnivå och valet av algoritm, protokoll och kryptografisk period. Fokus i denna vägledning ligger därför på att generell nyckelhantering, slumptalsgenerering och val av nyckelbärare uppfyller en tillräcklig nivå.

Tabell 2 - Översikt över relationen mellan KLASSAs konsekvensnivåer och lämpliga motsvarande nivåer av kryptografiska säkerhetsåtgärder.
KLASSAs konsekvensnivå Vägledande nivå för kryptografiska säkerhetsåtgärder
Av betydelse för Sveriges säkerhet (tidigare benämnd synnerligen allvarlig skada) Nyckelhantering, val av protokoll, algoritmer, slumptal och kryptografisk period samt val av nyckelbärare bör motsvara nivå 4 *
Allvarlig skada Nyckelhantering, val av protokoll, algoritmer, slumptal och kryptografisk period samt val av nyckelbärare bör motsvara nivå  3
Betydande skada

Nyckelhantering, val av protokoll, algoritmer, slumptal och kryptografisk period samt val av nyckelbärare bör motsvara nivå  2

Måttlig skada Nyckelhantering, val av protokoll, algoritmer, slumptal och kryptografisk period samt val av nyckelbärare kan motsvara nivå  1 **
Försumbar skada inget krav på kryptografiska säkerhetsåtgärder **

* Vid hantering av kryptografiska skyddsåtgärder för information med en konsekvens av betydelse för Sveriges säkerhet bör man beakta krav ställda på kryptografiska säkerhetsåtgärder i bland annat: Säkerhetsskyddsförordningen (2018:658), Försvarsmaktens föreskrifter om signalskyddstjänsten (FFS 2019:9) och Säkerhetspolisens föreskrifter om säkerhetsskydd (PMFS 2019:2)

** I många praktiska tillämpningar används kryptografiska säkerhetsåtgärder standardiserat även om konsekvensen bedöms som måttlig eller försumbar, i sådana fall kan kryptografiska säkerhetsåtgärder tillämpas ändå enligt organisations lägst acceptabla nivå.

Kryptografiska säkerhetsåtgärder

Nyckelhantering

Nyckelhantering eller livscykelhantering av krypteringsnycklar är en mycket viktig del för tilliten till informations konfidentialitet och integritet, vid oaktsam hantering av krypteringsnycklar finns det risk för att informationen röjs och att att dess riktighet kan komma att ifrågasättas. Det bör finnas en formell process med etablerade rutiner för beställning, skapande, tilldelning, distribution, förvaring, förnyelse, spärrande och destruering av krypteringsnycklar och nyckelpar.

Figur 1 - Översikt över nyckelhanteringens tre faser

Figur 1 - Översikt över nyckelhanteringens tre faser

Tabell 3 - Översikt av krav på nyckelhantering per nivå.
Nivå / Fas Skapande av krypteringsnyckel Användning & Förvaring Destruering *
Nivå 4

Beställning och skapande av krypteringsnycklar följer en etablerad rutin och bör innefatta:

  • Dokumentation och formell identifiering av beställare/användare samt dokumentation av avsett användningsområde
  • Slumptalsgenerering som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 4 eller ISO/IEC 19790:2020 nivå 4.[4]
  • Säker distribution av nycklar

Vid användning och förvaring av krypteringsnycklar finns det etablerade rutiner som täcker:

  • Skyddsåtgärder för krypteringsnycklar vid förflyttning och förvaring som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 4 eller ISO/IEC 19790:2020 nivå 4.[4]
  • Åtgärder vid förlust eller kompromettering av krypteringsnycklar
  • Säkerhetskopiering av krypteringsnycklar
Vid destruering av krypteringsnycklar ska det finnas en etablerad rutin som säkerställer att krypteringsnycklar destrueras på ett sådant sätt att återskapande inte är möjligt.
Nivå 3

Beställning och skapande av krypteringsnycklar följer en etablerad rutin och bör innefatta:

  • Dokumentation och formell identifiering av beställare/användare samt dokumentation av avsett användningsområde
  • Slumptalsgenerering som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 3 eller ISO/IEC 19790:2020 nivå 3.[3]
  • Säker distribution av nycklar

Vid användning och förvaring av krypteringsnycklar finns det etablerade rutiner som täcker:

  • Skyddsåtgärder för krypteringsnycklar vid förflyttning och förvaring som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 3 eller ISO/IEC 19790:2020 nivå 3.[3]
  • Åtgärder vid förlust eller kompromettering av krypteringsnycklar
  • Säkerhetskopiering av krypteringsnycklar
Vid destruering av krypteringsnycklar ska det finnas en etablerad rutin som säkerställer att krypteringsnycklar destrueras på ett sådant sätt att återskapande inte är möjligt.
Nivå 2

Beställning och skapande av krypteringsnycklar följer en etablerad rutin och bör innefatta:

  • Dokumentation av beställare/användare samt avsett användningsområde
  • Slumptalsgenerering med en hård- eller mjukvarumodul som är konstruerad för slumptalsgenerering som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 2 eller ISO/IEC 19790:2020 nivå 2. [2]
  • Säker distribution av nycklar

Vid användning och förvaring av krypteringsnycklar finns det etablerade rutiner som täcker:

  • Skyddsåtgärder för krypteringsnycklar vid förflyttning och förvaring som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 2 eller ISO/IEC 19790:2020 nivå 2. [2]
  • Åtgärder vid förlust eller kompromettering av krypteringsnycklar
  • Säkerhetskopiering av krypteringsnycklar
Vid destruering av krypteringsnycklar ska det finnas en etablerad rutin som säkerställer att krypteringsnycklar destrueras på ett sådant sätt att återskapande inte är möjligt.
Nivå 1

Beställning och skapande av krypteringsnycklar följer en etablerad rutin och bör innefatta:

  • Dokumentation av avsett användningsområde
  • Slumptalsgenerering med en hård- eller mjukvarumodul som är konstruerad för slumptalsgenerering som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 1 eller ISO/IEC 19790:2020 nivå 1. [1]
  • Dokumentering av avsett användningsområde
  • Säker distribution av nycklar

Vid användning och förvaring av krypteringsnycklar finns det etablerade rutiner som täcker:

  • Skyddsåtgärder för krypteringsnycklar vid förflyttning och förvaring som motsvarar minst FIPS 140-2, FIPS 140-3 nivå 1 eller ISO/IEC 19790:2020 nivå 1. [1]
  • Åtgärder vid förlust eller kompromettering av krypteringsnycklar
  • Säkerhetskopiering av krypteringsnycklar
Vid destruering av krypteringsnycklar ska det finnas en etablerad rutin som säkerställer att krypteringsnycklar destrueras på ett sådant sätt att återskapande inte är möjligt.

* Att endast radera en krypteringsnyckel i ett system är sällan tillräckligt, information kan ofta återskapas med olika metoder. Krypteringsnycklarna eller hela det medium som dom förvarats på behöver oftast skrivas över flera gånger med slumpmässig information.

Dom olika nivåerna i standarderna FIPS 140-2, FIPS 140-3 och ISO/IEC 19790:2020 är i stort sett likadana, nivå 1 och 2 medger nyttjande av kryptografiska moduler och funktioner som finns i vanlig hård- och mjukvara medan nivå 3 och 4 kräver specifik och ändamålsenlig hård- och mjukvara, så kallad kryptografisk hårdvarumodul (ofta kallad efter sin engelska akronym: HSM, Hardware Security Module). Mer detaljer återfinns i respektive standard men dom innebär i korthet:

  1. Utnyttjande av standardhårdvaras (ex. PC eller server) inbyggda krypto-funktionalitet alternativt mjukvara utvecklad specifikt för att utföra kryptografiska funktioner.
  2. Kompletterar nivå 1 med: krav på plombering av hårdvara eller förvaring i låsta utrymmen samt minst någon typ av roll-baserad autentisering för att utföra en funktion.
  3. Kompletterar nivå 2 med: krav på att upptäcka manipuleringsförsök, förändringar i miljö (ex. spänning eller temperatur) samt möjlighet att självradera innehåll. Vidare krävs individbaserad autentisering för att utföra en funktion.
  4. Kompletterar nivå 3 med: krav på ett fullständigt omslutande fysiskt skydd av kryptomodulen samt möjlighet till omedelbar självradering vid upptäckta manipuleringsförsök, oavsett om hårdvaran är strömsatt eller ej. Vidare krävs individbaserad fler-faktors autentisering för att utföra en funktion.

Allmänna principer för nyckelhantering

Det bör inom organisation vara fastställt vilka roller som ska finnas och vara en del av den kryptografiska nyckelhanteringen, beroende på om man nyttjar egen PKI eller inte så kan antalet roller variera stort. En enkel och tydlig beställningsprocess bör vara etablerad för att underlätta arbetsflöden och dokumentation.

Skapande av krypteringsnyckel

Skapande av en krypteringsnyckel eller ett nyckelpar bör föregås av en formell beställning som specificerar vem och eventuellt vad som ska nyttja krypteringsnyckeln. Det bör även framgå vilken typ av nyckel som ska skapas, särskilt ställda krav och användningsområde. Generellt ska en nyckel eller ett nyckelpar endast användas för ett enda syfte.

Vid skapande av en krypteringsnyckel så bör en slumptalsgenerator användas som är konstruerad för att generera slumptal. För nivå 3 och 4 bör slumptalsgeneratorn vara validerad mot antingen FIPS 140-2, FIPS 140-3 eller ISO/IEC 19790:2020, vilket i praktiken oftast innebär nyttjande av en kryptografisk hårdvarumodul (eng. HSM, Hardware Security Module).

När nyckeln är skapad behöver den distribueras till den person eller system som ska nyttja den och det bör finnas rutin för att säkerställa att rätt mottagare tar emot nyckeln. Dessutom ska nyckelmaterialet ha adekvat skydd under distribution och förvaring som minst tillhandahåller motsvarande skydd som krävs för den skyddade informationen som nyckeln krypterar.

Användning av nycklar

Nycklar som används behöver oftast vara lättåtkomliga, samtidigt måste dom hanteras på ett sådant sätt att dom ständigt har adekvat skydd. Vanligast är att nycklar hanteras i RAM eller på en hårddisk i en dator eller server och för nivå 1 och 2 räcker det som regel att nyckelmaterial förvaras i RAM eller på en hårddisk som är inlåst eller under uppsikt. Säkerhetskopiering av nycklar är i de flesta fall nödvändig om man identifierat en risk för att kritisk eller viktigt information blir otillgänglig på grund av att nycklar förloras, skadas eller på annat sätt blir otillgängliga.

Destruering av nycklar

När en krypteringsnyckel inte längre ska användas ska den och eventuella kopior destrueras, det kan dock finnas eventuella krav på arkivering vilket påverkar hur och när en krypteringsnyckel ska destrueras. En privat nyckel ska destrueras omedelbart på ett sådant sätt att den inte går att återställa med varken digitala eller fysiska verktyg och metoder. Publika nycklar kan destrueras efter behov, de kan behövas en längre tid för att verifiera digitala signaturer eller elektroniska underskrifter.

Slumptalsgeneratorer och nyckelbärare

Slumptalsgeneratorer

Slumptal och slumptalsgeneratorer (eng. RBG, Random Bit Generator) som används för att skapa slumptal är en viktigt del i etableringen av krypteringsnycklar. Slumptalsgeneratorn kan användas tillsammans med en eller flera entropikällor för att öka slumpmässigheten av det genererade slumptalet. För lägre krav på kryptografiskt skydd (motsvarande nivå 1 eller 2) räcker oftast dom inbyggda slumptalsgeneratorerna.

Nyckelbärare

Nyckelbärare eller kryptografisk modul är det medium på vilket nyckelmaterial förvaras och hanteras, de kan vara byggda som både endast mjukvara eller en kombination av mjuk- och hårdvara.  Nyckelbäraren behöver skyddas på ett sådant sätt att den kryptografiska säkerhetsåtgärden inte kan antas vara verkningslös. Detta kan ske genom exempelvis ytterligare kryptering med lämplig kryptografisk algoritm eller fysiskt skydd i en kryptografisk hårdvarumodul eller i en skyddad zon.

Val av algoritmer, slumptal och kryptografisk period

Att välja, kravställa och konfigurera rätt protokoll, tillåtna algoritmer, slumptal och kryptografisk period behöver genomföras för att kryptografiska säkerhetsåtgärder ska fylla en funktion. Det finns ingen direkt korrelation mellan val av protokoll, algoritm och kryptografisk period och nivån av kryptografiskt skydd. Detta medför att det är viktigt att valet av protokoll, algoritm och kryptografisk period görs med hänsyn till hur organisationens nyckelhantering fungerar.

Algoritmer

Det finns ett flertal algoritmer som lämpar sig olika bra för olika syften. Vanligast är att referera till symmetriska algoritmer, asymmetriska algoritmer och hashfunktioner. Äldre algoritmer som kan förekomma i systemkonfigurationer men som inte längre är tillräckligt säkra är exempelvis Data Encryprion Standard (DES, 3TDES) och Secure Hash Algorithm (SHA-1).

Tabell 5 - Översikt över algoritmer och rekommenderade nyckelstorlekar
Algoritm Funktion/Syfte Möjliga nyckel- eller hashstorlekar Rekommenderad kryptografisk period Rekommenderad sista användning för nyckellängder *
Nyckellängd Årtal
Advanced Encryption Standard (AES) Symmetrisk kryptering för skydd av information 128-bitar, 192-bitar, 256-bitar

≤ 2 år

≥ 128 ≤ 2026
RSA för Autentisering Asymmetrisk kryptering för autentisering av entitet 2048-bitar, 3072-bitar, 4096-bitar ≤ 2 år

2048

≥ 3072

≤ 2022

≤ 2026

RSA för digital signering Asymmetrisk kryptering för digital signering 2048-bitar, 3072-bitar, 4096-bitar ≤ 2 år

2048

≥ 3072

≤ 2022

≤ 2026

Elliptic Curve Diffie-Hellman (ECDH) Key Exchange Asymmetrisk kryptering för autentisering av entitet 160-bitar, 192-bitar, 224-bitar, 256-bitar, 320-bitar, 384-bitar, 512-bitar ≤ 2 år

≤ 256

≥ 384

≤ 2022

≤ 2026

Elliptic Curve Digital Signature Algorithm (ECDSA) Asymmetrisk kryptering för digital signering 160-bitar, 192-bitar, 224-bitar, 256-bitar, 320-bitar, 384-bitar, 512-bitar ≤ 2 år

≤ 256

≥ 384

≤ 2022

≤ 2026

Secure Hash Algorithm (SHA-2) Hashfunktion för beräkning av en informationsmängds representation

224-bitar, 256-bitar, 384-bitar, 512-bitar **

-

≤ 224

≥ 256

≤ 2022

≤ 2026

Secure Hash Algorithm (SHA-3) Hashfunktion för beräkning av en informationsmängds representation 224-bitar, 256-bitar, 384-bitar, 512-bitar ** -

≤ 224

≥ 256

≤ 2022

≤ 2026

* Det rekommenderade sista året för användning är inte absolut, denna vägledning tillämpar den strängaste bedömningen, andra har gjort bedömningen att dom specificerade nyckellängderna bör vara adekvata till och även efter år 2030.

** Bit-storleken för hashalgoritmer avser inte en nyckelstorlek utan storleken på hashvärdet som representerar informationsmängden.

Kryptografisk period

En kryptografisk period avser den tidsperiod en specifik nyckel och algoritm får användas för att med bibehållen säkerhet kryptera data. I tabell 5 återges rekommenderade kryptografiska perioder för vanliga algortimer och nyckellängder där ingen överstiger 2 år. Förutsatt att man genomför en riskanalys och anpassar säkerhetsåtgärder kan den kryptografiska perioden mycket väl vara längre, till exempel för nyckelpar som används till rot- och utfärdandecertifikat i ett PKI. En mängd faktorer påverkar vilken längd på den kryptografiska perioden som bör tillämpas, bland annat:

  • Den kryptografiska funktionens styrka (det vill säga kombinationen av algoritm och nyckellängd)
  • Miljön i vilken ett system befinner sig (exempelvis en låst datahall eller ett öppet kontorslandskap)
  • Personalomsättning av administratörer
  • Skyddas information i kommunikation eller i vila
  • Hotbild mot information

Vidare gäller även dessa generella punkter för val av kryptoperiod:

  • Kortare kryptografisk period ger ökad säkerhet men också högre administrativ börda i de fall nyckeldistribution är en manuell process.
  • Säkerhetsåtgärder för krypteringsnycklar i form av rutiner samt fysiskt och logiskt skydd av nycklar har större inverkan på den kryptografiska perioden än valet av algoritm och nyckelstorlek.
  • Ju känsligare information som skyddas med kryptografiska skyddsåtgärder, desto kortare bör den kryptografiska perioden vara.

Referenser och hänvisningar

Informationssäkerhet, SIS/TK 318 (2015): Teknisk rapport SIS-TR 50:2015 - Terminologi för informationssäkerhet

Informationssäkerhet, SIS/TK 318 (2020): Svensk standard SS-EN ISO/IEC 19790:2020 Informationsteknik - Säkerhetstekniker - Säkerhetskrav för kryptomoduler (ISO/IEC 19790:2012)

https://www.msb.se/siteassets/dokument/regler/forfattningar/msbfs-2020-7-foreskrifter-om-sakerhetsatgarder-i-informationssystem-for-statliga-myndigheter.pdf

Barker, E. (2019): NIST Special Publication 800-57 Part 1 Revision 5, Recommendation for Key Management: Part 1 - General

Barker, E., Dang, Q. (2015): NIST Special Publication 800-57 Part 3 Revision 1, Recommendation for Key Management: Part 3 - Application-Specific Key Management Guidance

National Institute of Standards and Technology (2002): FIPS PUB 140-2, Security Requirements for Cryptographic Modules

National Institute of Standards and Technology (2019): FIPS PUB 140-3, Security Requirements for Cryptographic Modules

  • Senast ändrad: 2022-07-27 11:27