RIV Tekniska Anvisningar Kryptografi ARK_0036
Innehåll 1. Inledning... 2 1.1 Målgrupp... 2 2. Om kryptografiska inställningar... 2 2.1 Cipher suites... 2 3. Krav och rekommendationer... 3 3.1 Cipher Suites... 3 3.2 Prioriteringsordning för PFS... 3 3.3 Övriga rekommendationer... 4 4. Förtydligande Cipher suites... 4 4.1 Protokoll... 4 4.2 Key Exchange Algorithm... 4 4.3 Authentication Algrorithm... 5 4.4 Encryption Algorithm... 5 4.5 Nyckellängd... 5 4.6 Block cipher Mode of operation... 5 4.7 MAC Algorithm... 5 Revisionshistorik Version Författare Kommentar 0.1 Mattias Nordvall Första utkast 0.9 Björn Skeppner Redigerad utgåva 1.0 Björn Skeppner Fastställd Sid 1/6
1. Inledning Detta dokument beskriver de kryptografiska standarder som skall och bör stödjas av tjänstekomponenter som deltar i kommunikation enligt RIV-TA. Syftet med dokumentet är att säkerställa att alla ingående parter kan upprätta en säker kommunikation med varandra, samt lämna rekommendationer kring ytterligare säkerhetshöjande inställningar. Dokumentet kan komma att uppdateras med högre/förändrade krav, vilket innebär att den senaste versionen av detta dokument är det som gäller. 1.1 Målgrupp Målgruppen för detta dokument är systemutvecklare och arkitekter som utvecklar tjänstekomponenter inom ramen för RIV-TA samt parter som ansvarar för system som samverkar inom informationsutbyte enligt RIV TA. 2. Om kryptografiska inställningar Denna typ av inställningar innebär en avvägning mellan kommunikation som å ena sidan är så säker som möjligt och å andra sidan är tillgänglig för de typer av applikationer och mjukvaruplattformar och de krypografiska bibliotek som de använder sig av. Detta dokument beskriver därför en basnivå som alla tjänstekomponenter skall stödja och ändå upprätthålla interoperabilitet. Därefter lämnas rekommendationer kring ytterligare konfigurationer för att uppnå högre säkerhetsnivåer, vilka tjänsterna i möjligaste mån bör försöka nyttja. 2.1 Cipher suites Cipher suites är en kombination av följande parametrar: Key Exchange Algorithm Nyckellängd Encryption Algorithm MAC-algorithm (HMAC alt GMAC) Krypto-mode (t.ex. Galois/Counter mode eller Cipher Block Chaining) Styrande och rekommenderade konfigurationsvärden för dessa parametrar specificeras under kapitel 3. Sid 2/6
3. Krav och rekommendationer 3.1 Cipher Suites Någon av följande cipher suites ska användas i den prioriteringsordning som anges nedan: Stöds bara i TLS 1.2 1. TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 2. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 3. TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 4. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 5. TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 6. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 7. TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 8. TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 9. TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 10. TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 11. TLS_DHE_RSA_WITH_AES_256_CBC_SHA 12. TLS_DHE_RSA_WITH_AES_128_CBC_SHA Stöds i TLS 1.0 och senare 13. TLS_RSA_WITH_AES_256_GCM_SHA384 14. TLS_RSA_WITH_AES_128_GCM_SHA256 15. TLS_RSA_WITH_AES_256_CBC_SHA256 16. TLS_RSA_WITH_AES_128_CBC_SHA256 17. TLS_RSA_WITH_AES_256_CBC_SHA 18. TLS_RSA_WITH_AES_128_CBC_SHA 3.2 Prioriteringsordning för PFS Om man använder en Key Exchange Algoritm som stödjer PFS finns det också ett antal standarder för nyckellängden gällande nycklarna för dessa. Dessa brukar anges som tillägg bakom vald cipher suite och baseras på nyckellängden som används i Diffie-Hellman handskakningen inom själva TLS-sessionen. De ska väljas enligt följande prioriteringsordning: 1. Cipher_Suite_P521 2. Cipher_Suite_P384 3. Cipher_Suite_P256 Sid 3/6
3.3 Övriga rekommendationer Övriga rekommendationer: Avaktivera Client-Initiated Renegotiation Avaktivera TLS-kompression - mot CRIME och TIME-attacker Avaktivera HTTP-kompression eller vidta åtgärder mot CSRF - om man ska vara helt säker från BREACH-attack Avaktivera cachning av HTTP-respons som innehåller känslig info Aktivera forward secrecy (PFS) då ECDHE och DHE används vid förhandling av sessionsnycklar. Sker automatiskt på de flesta webbservrar vid rätt val av cipher suite. Använd alltid senaste versionen av OS/Servermjukvarans TLS-bibliotek. TLS_FALLBACK_SCSV bör aktiveras för att säkerställa att ingen omförhandling av kommunikationen till lägre cipher protokollversioner Maximal TLS-sessionslängd utan omförhandling är 24h Maximal inaktiv TLS-sessionslängd är 30 minuter HCC Funktion utfärdad av SITHS type 3 CA V1 ska föredras framför funktion utfärdad av SITHS type 2 CA V1 4. Förtydligande Cipher suites 4.1 Protokoll Protokoll syftar i det här fallet på de olika versionerna av SSL och TLS, som används för kryptering och autentisering av http-trafik. 4.1.1 Krav TLS 1.0 ska stödjas Det är tillåtet (rekommendabelt) att försöka förhandla fram en senare version 4.2 Key Exchange Algorithm Key Exchange Algorithm definierar algoritm och utbytesflöde för symmetriska krypteringsnycklar då en session upprättas eller omförhandlas. 4.2.1 Krav RSA skall stödjas DHE och ECDHE får stödjas Sid 4/6
4.3 Authentication Algrorithm Authentication Algorithm definierar den process där två kommunikationsparter verifierar varandras identitet. 4.3.1 Krav RSA skall stödjas ECDSA och DSS får stödjas (kräver andra certifikat än SITHS) 4.4 Encryption Algorithm Encryption Algorithm definierar själva krypteringen av de meddelanden som skickas. 4.4.1 Krav AES skall stödjas 4.5 Nyckellängd Nyckellängden avser hur långa krypteringsnycklar som genereras för en session. 4.5.1 Krav 128 bitar skall stödjas 256 bitar eller högre- får stödjas 4.6 Block cipher Mode of operation Mode of operation definierar hur man säkert tillämpar en chiffer singel-blocket operation för att säkert överföra datamängder större än ett block 4.6.1 Krav CBC skall stödjas (kräver >= TLS 1.0) GCM får stödjas (kräver TLS 1.2) 4.7 MAC Algorithm MAC Algorithm syftar på den metod som används för att verifiera att överföringen är felfri. 4.7.1 Krav SHA skall stödjas SHA256 och SHA384 får stödjas (kräver TLS 1.2) Sid 5/6