Taggat med: tls

Nyheterna i Transport Layer Security version 1.3 (TLS 1.3)

SSL och TLS har under lång tid säkrat upp en betydande del av den krypterade kommunikationen på Internet. Sedan SSL version 1.0 släpptes internt hos Netscape Communications år 1994 så har det hänt en hel del.

Den nya versionen som just nu håller på att utvecklas inom en arbetsgrupp hos IETF har versionsnumret 1.3 där målsättningen är högre prestanda samt tillhandahålla en ännu högre säkerhet. Man kan säga att designkriteriet för denna nya version är ”less is more” och det innebär att en hel del föråldrade krypton har fått stryka på foten:

  • RSA är borttaget – Tillhandahåller inte Forward Secrecy
  • Svaga Diffie-Hellman grupper kan inte användas (SSL_OP_SINGLE_DH_USE)
  • CBC är borta – Är orsaken till attacker såsom Lucky13 och BEAST
  • RC4 samt SHA1 får inte längre användas
  • Export-algoritmer (ansvarig för attacker såsom FREAK, LogJam etc)
  • Nytt är ChaCha-Poly1305 samt stöd för OCB-modes (tipstack till Joachim Strömbergson)
  • Algoritmen för RSA-padding är Probablilistic Signature Scheme (PSS)
  • Nytt meddelande av typen EncryptedExtension. Som nu är krypterat, tidigare skickades många okrypterat

När det gäller prestanda så har ett antal åtgärder införts:

  • 0-RTT samt 1-RTT

Genom att få ner antalet TCP-paket som måste skickas fram och tillbaka vid varje anslutning så kan snabbare TLS (och webbsidor etc) uppnås.

Här följer en bild hur 1-RTT ser ut där klienten skickar ett ClientHello direkt, samt så gissar klienten vilka krypton som kommer att användas:

När du sedan har en session etablerad så kan sedan 0-RTT användas vid senare tillfälle (Session Resumption) men detta möjliggör dock återuppspelningsattacker.

Vill du redan nu testa TLS 1.3 i Google Chrome så kan du göra följande:

  1. Skriv in ”chrome://flags/” i adressbaren och trycker enter
  2. Gå till ”Maximum TLS version enabled.” och välj ”TLS 1.3”
  3. Starta om Chrome

Och vill du testa med Firefox så behöver du ladda hem senaste nightly-build där TLS 1.3 är påslaget som standard.

Och nu när vi besöker kryptera.se och tar upp Developer Tools (DevTools) så synes följande:

Viktigt att tillägga är att TLS 1.3 inte är färdigt ännu och ändras löpande. Detta gör att mjukvara såsom OpenSSL är försiktiga med att göra förändringar. Den senaste uppdateringen till TLS 1.3 heter draft-19 och släpptes för cirka 2 veckor sedan.

För att exempelvis Nginx ska stödja TLS 1.3 så måste även OpenSSL stödja detta. Och OpenSSL kommer med stöd inom några veckor i version 1.1.1.

Uppdaterad: 2017-06-06, användes internt hos Netscape. Inte Mozilla som grundades först många år senare.

Oberoende granskning av OpenVPN

OpenVPN är ett otroligt populärt verktyg för att skapa upp VPN-anslutningar och används av majoriteten av alla VPN-tjänster. Private Internet Access (PIA) med bl.a. Rick Falkvinge kommer att betala för en oberoende granskning av OpenVPN som leds av kryptologen Dr. Matthew Green. Matthew hade tidigare hand om den öppna granskningen av TrueCrypt. PIA är ett företag som tillhandahåller VPN-anslutningar och som använder OpenVPN

OpenVPN har funnits sedan 2001 och använder en variant på SSL/TLS som kanal för kommunikation och går att köra på operativsystem såsom Solaris, Linux, OpenBSD, FreeBSD, NetBSD, QNX, Mac OS X, iOS, Android och Windows från version XP.

PIA meddelar att efter granskningen är klar och OpenVPN åtgärdat eventuella brister så kommer rapporten att publiceras på deras hemsida.

Senast en sårbarhet uppdagades i OpenVPN var under 2016 då födelsedags-attacken Sweet32 som går mot 64-bits algoritmer såsom den som OpenVPN använder som standard, BF-CBC.

Och viktigt att notera är att OpenVPN används på både klienten och servern. Ett alternativ till OpenVPN är att köra stunnel eller IPSEC.

Uppdatering: Under tiden jag skrev denna artikel har två andra relaterade nyheter dykt upp:

  • Algo lyfts upp som ett nytt alternativ till IPSec och OpenVPN
  • OSTIF meddelar att de anlitar Quarks Lab för att också granska OpenVPN. Samma franska företag som tidigare granskade VeraCrypt

TLS/SSL-läget i Sverige

Företaget Kirei har nu lanserat en webbtjänst där de listar 788 svenska organisationer och deras tillhörande betyg från SSL Labs. Bakomliggande kod är öppen källkod och ligger på Github för den som vill komma med ändringar.

Generellt kan man se att det inte ser speciellt bra ut. Antalet organisationer som får sämsta betyg F är otroligt många och även antalet sajter som överhuvudtaget inte har TLS är ännu fler.

För den som vill erhålla högsta betyg, A+ så går det bl.a. att följa SSL Labs A+. Givetvis så saknar vi regeringen.se som tillhandahåller ett felaktigt certifikat via Akamai och som annars brukar vara bra att föregå med gott exempel:

Regeringen TLS Akamai

Skärmdump från TLS-kollen:

TLS/SSL i SverigeUppdatering: Emil Tullstedt tipsade mig på Twitter att en ny RFC har släppts som går ut på att fasa ut SSLv3: https://www.rfc-editor.org/rfc/rfc7568.txt

 

🔐 Microsoft gillar Forward Secrecy (PFS)

Microsoft

Nyligen så släppte Microsoft en relativt anonym säkerhetsuppdatering med nummer 3042058. Denna uppdatering kastar om ordningen samt lägger till nya krypteringsalgoritmer gällande Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, och Windows Server 2012 R2.

Att en så stor spelar som Microsoft gör denna ändring får så klart stora konsekvenser för IT-säkerheten i stort på internet, till det bättre om du frågar mig. För just Forward Secrecy (PFS) gör att temporära nycklar används för sessioner och således kan äldre information ej återskapas även om den privata nyckeln röjs som i fallet med Heartbleed-buggen. För TLS handlar det framförallt om Diffie-Hellman DHE och Diffie-Hellman med elliptiska kurvor, ECDHE.

Följande nya ciphersuites stödjer nu Microsofts ovan operativsystem (och framtida?):

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256

Och i Microsofts fall så är de Schannel som har hand om SSL/TLS och ovan nya algoritmer. Du kan även manuellt ändra ordningen på följande sätt:

  1.  At a command prompt, type gpedit.msc, and then press Enter. The Local Group Policy Editor is displayed.
  2. Expand Computer Configuration, expand Administrative Templates, expand Network, and then click SSL Configuration Settings.
  3. Under SSL Configuration Settings, click SSL Cipher Suite Order.
  4. In the SSL Cipher Suite Order pane, scroll to the bottom.
  5. Follow the instructions that are labeled How to modify this setting.

Kommentar från Henrick Hellström på Streamsec:

– Uppdateringen är ”anonym” främst eftersom den inte kommer att bli tillgänglig via Windows Update förrän fjärde kvartalet. ”Microsoft is initially offering the 3042058 update via the Microsoft Download Center only in order to give customers the opportunity to test the new features before making them a default part of their environments; the update will be available via Microsoft Update and WSUS in Q4 2015.”

– Jag håller med om att PFS borde vara standard, men tycker att din motivering kanske är lite överförenklad. I praktiken skulle en läckt privat nyckel (genom heartbleed eller på annat sätt) nog inte skydda gammal data det minsta. Lyckas du komma in som administrator på en server (t ex genom en MITM följd av selektiv blockering mot Remote Desktop när administratören försöker logga in) kan du förmodligen ganska enkelt återskapa det mesta som hänt på den servern genom att analysera loggfiler och auditrecords i databasfilerna, utan att behöva dekryptera någon gammal SSL/TLS-trafik.

– Omvänt, det stora problemet om någon lyckas kopiera din privata nyckel, är att du högst sannolikt aldrig kommer att få reda på det. Även om all gammal trafik kommer att förbli konfidentiell, kommer all framtida trafik från den tidpunkten att kunna dekrypteras av angriparen.

Faktorisera 512 bitar RSA SSL/TLS

Nyligen så uppdagades en ny attack mot SSL/TLS vid namn SMACK. Denna attack nyttjar det faktum att många webbsajter i dagsläget erbjuder gamla krypteringsalgoritmer där bl.a. RSA 512 bitar finns med samt en sårbarhet i klienter.

Att faktorisera 512 bitar RSA går relativt snabbt med hjälp av ett kluster hos exempelvis Amazon EC2. Och med hjälp av 75 st servrar hos Amazon tar det cirka 7h och kostar runt 800 SEK. Och verktyget som användes för detta är bl.a. cado-nfs (eller så kan även ggnfs + msieve användas).

Men hur utbrett är problemet eg. med dessa korta nyckellängder på serversidan? Jo, av 14 miljoner sajter som stödjer SSL/TLS så har 36.7% detta problem. Och problemet i detalj består i att om en klient såsom OpenSSL eller Apples SecureTransport får tillbaka ett svar som inkluderar export-grade RSA så kommer dessa klienter att acceptera svaret, även om de ej frågat efter export-grade RSA.

Förfarandet steg för steg:

  1. När klienten skickar sitt Hello-meddelande så frågar den efter standard RSA
  2. Angripare som sitter i mitten (MITM) ändrar detta svar till export RSA
  3. Servern svarar med sin 512-bitars export RSA-nyckel, signerad med sin nyckel för långa livslängder (long term key).
  4. Klienten sväljer detta svar på grund av OpenSSL/SecureTransport-buggen.
  5. Angriparen faktoriserar RSA för att hitta den privata nyckeln
  6. När klienter krypterar ‘pre-master secret’ till servern så kan nu angriparen dekryptera TLS huvudhemlighet (master secret)
  7. Nu kan angriparen se klartext och injicera nytt innehåll

Demonstration av hur attacken kan nyttjas mot NSA (eller rättare skrivet, Akamai):

nsa-fake copy

PGP är dött

PGPPGP (och numera GPG) är ett av det bästa som hänt modern krypterad kommunikation, men tyvärr är GPG svårt att använda och det är lätt att det blir fel. Det behövs ett omtag när det gäller GPG och vi väntar bara på att bägaren ska rinna över innan det händer.

För sanningen är, att GPG är tillräckligt bra. Visst behövs det göras en hel del när det gäller UX, metadata och forward secrecy men så länge det bara fungerar så behövs det inte åtgärdas.

Men hur kan den stora massan börja att använda krypterad E-post? Även om TLS på E-post (STARTTLS) blir mer utbrett så är detta ej ett komplett skydd.

Är det så att det eventuellt behövs en stor kampanj på Kickstarter för att någon nytt system ska bli det nästa GPG? För fortsättningsvis kommer vi att använda GPG och vi kommer att göra fel och nycklar kommer att bli röjda för vem kommer ihåg när Aftonbladet publicerade sin privata nyckel?

Buggar blir fixade och GnuPG har fått en större budget nuförtiden, så det går sakta men säkert åt rätt håll med intiativ såsom Google End-to-end.

”Key distribution is the hardest problem in end-to-end encryption”

Google

Läs även kloka ord av Moxie samt Whiteout

Gratis SSL/TLS med Let’s Encrypt

Let’s Encrypt är ett nytt initiativ av Internet Security Research Group som backas upp av en mängd stora företag där målet är att tillhandahålla TLS helt gratis.

Företagen som sponsrar satsningen är följande:

Gratis TLS

Även är ett av målen att det ska vara lätt att komma igång. Därför behöver du enbart skriva följande kommando för att komma igång:

$ sudo apt-get install lets-encrypt
$ lets-encrypt example.com

Underliggande säkra protokoll som används är nyutvecklat och går under namnet ACME (Automated Certificate Management Environment) och används för att underlätta verifiering av domännamn. Detta har varit krångligt tidigare då E-post och dylikt har används för SSL/TLS-certifikat.

Specifikationen är tillgänglig via Github här: https://github.com/letsencrypt/acme-spec/blob/master/draft-barnes-acme.md

Projektet kommer att starta/fungera från sommaren 2015.

Vi spår Kryptotrender 2015

Vad händer inom krypteringsvärlden? Vad är nytt och vad är på gång? Generellt kan man säga att anonymitet och personlig integritet är otroligt populärt och då söker sig många per automatik till olika mjukvaror som är starkt beroende av kryptering på ett eller annat sätt. Faktum är att det finns väldigt få mjukvaror som inte innehåller någon slags kryptografi.

Kryptotrender 2015

Nedan finner du sådant som jag ser i spåkulan som kommer att inträffa under nästkommande år:

  • Fler publika granskningar liknande Open Crypto Audit Project
  • Minst en sårbarhet kommer att uppdagas i en TLS-implementation
  • Utbredningen av Off-the-Record (OTR) meddelandeappar kommer att fortgå
  • Google kommer att ansluta till Tor
  • Fler butiker och handlare kommer att ta emot kryptovalutan Bitcoin (taxibolaget Uber?, Klarna)
  • Skadlig kod blir bättre på att använda kryptering, tyvärr. I form av obfuskering som Gauss-payload och ransomware där dina filer krypteras och hålls som gisslan
  • Fler företag väljer att göra kryptering som standard såsom Apple och dess hårddiskkryptering. Seamless (sömlös?) är ett bra ord

Vad tror du? Kommer Bitcoin att floppa, Tor att upphöra? Lämna gärna en kommentar om just dina spådomar inför framtiden.

Följ Kryptera.se i sociala medier på Facebook eller Twitter.

Allvarlig sårbarhet i Microsoft Schannel

microsoftIgår släppte Microsoft sina månatliga patchar för November och en av de mer allvarligare sårbarheterna som åtgärdas medger kodexekvering över nätverket (MS14-066).

Sårbarheten som åtgärdas återfinnes i Microsoft Secure Channel (Schannel) och är den del som hanterar SSL/TLS. Denna sårbarhet gäller enbart Windows Server men Microsoft patch även inkluderar Windows 7 och 8.

Tyvärr så framgår inga temporära åtgärder som kan genomföras för att förmildra en eventuell attack (workarounds).

Även så har Microsoft uppdaterat sina cipher suites och stödjer nu Galois/counter mode (GCM) samt perfect forward secrecy med hjälp av DHE + RSA.

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256

Läs mer här:  technet.microsoft.com/library/security/ms14-066

GnuPG 2.1

Efter fyra år av beta-testande så har nu äntligen den stabila utgåvan av PGP-programvaran GnuPG 2.1 släppts.

Denna nya version stödjer bl.a. elliptiska kurvor (ECC). ECC kan då exempelvis användas för sub-nycklar eller signering. Framöver kommer standard att bli Bernsteins Curve 25519 men stöd för andra ECC-typer finnes (se nedan).

Även så har stödet för PGP-2 helt skrotats då detta är förlegat (använder bl.a. MD5).

Vill du skapa nycklar med elliptiska kurvor gör du enligt följande:

$ gpg2 --expert --full-gen-key
gpg (GnuPG) 2.1.0; Copyright (C) 2014 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
   (7) DSA (set your own capabilities)
   (8) RSA (set your own capabilities)
   (9) ECC and ECC
  (10) ECC (sign only)
  (11) ECC (set your own capabilities)
Your selection? 9
Please select which elliptic curve you want:
   (2) NIST P-256
   (3) NIST P-384
   (4) NIST P-521
   (5) Brainpool P-256
   (6) Brainpool P-384
   (7) Brainpool P-512
[.. resten bortklippt ..]

Övriga nyheter är förbättrat stöd för X509-nyckeltyper, förbättrad hantering av nyckelservrar (dock ej över TLS ännu). En annan trevlig säkerhetshöjande nyhet är gpg-agent som nu hanterar din privata nyckel och således behöver ej gpg eller gpgsm känna till denna, dock finns viss bakåtkompatibilitet kvar.

Och som vanligt kan du läsa mer om GnuPG 2.1 ”modern” på gnupg.org.

Övrig intressant kuriosa: Vill du ej skicka hela din PGP-nyckellista i klartext över nätverket med kommandot gpg –refresh-keys så bör du snegla på parcimonie.