Som konsulter inom tillämpad kryptografi stöter vi ofta på frågan om det räcker med att aktivera kryptering för att garantera säkerheten i digital kommunikation.
När ett meddelande skickas över en anslutning, normalt en TLS / SSL anslutning används för att kryptera data i meddelandet. För att skapa denna anslutning sker en TLS-handskakning. Inom den handskakningen utbyter klienten och servern tillgängliga chiffersviter för att säkerställa att de använder samma chiffer under TLS-handskakningen.
En chiffersvit ger instruktioner om hur man säkrar TLS/SSL-anslutningen genom att tillhandahålla information om vilka chiffer som används av klienten eller servern för att skapa nycklar, autentisera användare etc. Chiffersviter måste utbytas mellan klienten och servern för att säkerställa att chiffern som används i TLS-handskakningen matchar och att klienten och servern kan förstå varandra.
Nu ska vi ta dig bakom kulisserna och avslöja hur en TLS-handskakning fungerar:
Beskrivning
Hur fungerar en TLS-handskakning?

En TLS-handskakning är den process som utförs mellan en klient och en server för att skapa en säker anslutning och kryptera data som skickas genom den anslutningen. En TLS-handskakning innehåller följande steg:
- Kund Hej
Klientens hello-steg innebär att klienten skickar en begäran till servern om kommunikation. TLS-versionen, chiffersviter som stöds och en sträng av slumpmässiga byte som kallas "klientslump" ingår i hello-steget.
- Server Hej
I serverns hello bekräftar servern klientens hello och säkerställer att den använder en TLS-version som är kompatibel med klientens TLS-version. Servern väljer också en kompatibel krypteringssvit bland de som erbjuds av klienten och skickar dess certifikat, serverns slumpmässiga värde (liknande klientens slumpmässiga värde) och klientens publika nyckel.
- Validering av certifikat
Giltigheten av serverns certifikat kontrolleras sedan av klienten via certifikatmyndighetCertifikatutfärdaren, eller CA, är en mycket betrodd enhet som har ansvaret för att signera och generera digitala certifikat.
- Förhandssträng
I det här steget krypterar klienten en slumpmässig sträng av byte, kallad "Pre-Master String", med serverns publika nyckel och skickar den tillbaka till servern. Detta säkerställer att endast servern kan Avkryptera nyckeln med sin egen privata nyckel, vilket ger processen ett extra säkerhetslager.
- Skapande av sessionsnyckel
Servern dekrypterar sedan premaster-nyckeln, och både klienten och servern skapar sessionsnycklar från klientens slumpmässiga nyckel, serverns slumpmässiga nyckel och premaster-strängen.
- Avslutade meddelanden
Slutligen skickar klienten och servern meddelanden till varandra som säger att de har skapat sina nycklar, och de jämför nycklarna med varandra. Om sessionsnycklarna matchar är TLS-handskakningen klar, och sessionsnycklarna används för att kryptera och dekryptera all data som skickas mellan servern och klienten.
Nu när vi förstår hur en TLS-handskakning fungerar kan vi fokusera specifikt på chiffersviter i en TLS-handskakning.
Cipher sviter
Krypteringssviten avgör hur kryptering tillämpas, vilka algoritmer som används och krypteringsnyckelns storlek. Den inkapslar nyckelutbyte, autentisering, massdatakryptering och algoritmer som styr krypteringsprocessen.
Komponenter i en chiffersvit
En chiffersvit består huvudsakligen av fyra olika komponenter:

- Algoritm för nyckelutbyte
Informationsutbytesprocessen kräver en säker anslutning för att skicka okrypterad data eller en nyckel som delas mellan klienten och servern. Klienten använder denna nyckel för att kryptera data, och servern använder den för att dekryptera informationen. Eftersom en nyckel används för både kryptering och dekryptering används symmetrisk kryptering. För att dela den nyckeln skapades en algoritm som kallas nyckelutbytesalgoritm för att kryptera den symmetriska krypteringsnyckeln under överföringen. Detta säkerställer informationens integritet och säkerheten för den symmetriska krypteringsnyckeln.
Nyckelutbytesalgoritmen är en krypteringsalgoritm som delas mellan klienten och servern så att varje sida av anslutningen kan dekryptera och använda den symmetriska krypteringsnyckeln. RSA, DH, ECDH och ECDHE är alla exempel på nyckelutbytesalgoritmer. - Autentiseringsalgoritm
Denna algoritm är ett sätt att säkerställa avsändarens identitet. Vanligtvis används ett lösenord och användarnamn för att autentisera klienten. De vanligaste autentiseringsalgoritmerna är RSA, DSA och ECDSA.
- Algoritm för massdatakryptering
Masskrypteringsalgoritmen används för att kryptera meddelandets huvuddel. Eftersom huvuddelen av meddelandet är vad angriparna försöker stjäla eller modifiera, bör algoritmen som används här vara extremt säker. De vanligaste masskrypteringsalgoritmerna som används av chiffersviter är AES, 3DES och CAMELLA.
- Algoritm för meddelandeautentiseringskod (MAC)
MAC-adressen är en del av informationen som skickas för att autentisera klienten. MAC-algoritmen är den algoritm som används för att kryptera MAC-adressen. Servern jämför den mottagna MAC-adressen och den MAC-adress de beräknar för att säkerställa att de matchar. Normalt används en cyklisk redundanskontrollalgoritm, eller CRC, med en MAC-adress för att kontrollera om det finns skadade delar av meddelandet, men en CRC kan inte skydda mot avsiktliga ändringar av MAC-adressen.
Om en angripare får tag på meddelandet, ändrar MAC-adressen och beräknar en ny kontrollsumma, kommer servern aldrig att veta att MAC-adressen har ändrats. SHA-2 är en vanlig MAC-algoritm. MAC säkerställer både meddelandets äkthet och integritet.
Ett exempel på namngivning av en chiffersvit i version 1.2 är TLS_DHE_RSA_AES256_SHA256. Den första delen, TLS, anger vad chiffersviten används till. TLS är den vanligaste anledningen till att chiffersviter används. Det andra algoritmnamnet, DHE, är nyckelutbytesalgoritmen som används. RSA är autentiseringsalgoritmen, AES256 är algoritmen för massdatakryptering och SHA256 är MAC-algoritmen.
Chiffersviter som stöds i TLS 1.2
Namnen på chiffersviter i version 1.2 är korta, men andra chiffersvitversioner stöder andra algoritmer och är ännu kortare. Den mest använda chiffersvitversionen är version 1.2, även om version 1.3 redan finns. Anledningen till att använda en äldre version framför en nyare version är antalet alternativ som erbjuds av varje version.
Namnen på chiffersviter i version 1.2 är korta, men andra chiffersvitversioner stöder andra algoritmer och är ännu kortare. Den mest använda chiffersvitversionen är version 1.2, även om version 1.3 redan finns. Anledningen till att använda en äldre version framför en nyare version är antalet alternativ som erbjuds av varje version.
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (Rekommenderas)
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Rekommenderas)
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (Svag)
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (Svag)
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Säker)
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Säker)
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (Svag)
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (Svag)
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (Svag)
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (Svag)
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (Svag)
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (Svag)
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA (Svag)
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA (Svag)
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (Svag)
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (Svag)
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (Rekommenderas)
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 (Rekommenderas)
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (Rekommenderas)
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Säker)
Chiffersviter som stöds i TLS 1.3
Version 1.3, å andra sidan, erbjuder bara fem chiffer och inkluderar två algoritmer i sin namngivning. Version 1.2 erbjuder också säkrare algoritmer jämfört med 1.3. Namngivningen av chiffersviten och antalet chiffer som erbjuds i en chiffersvit i version 1.3 förkortade dock TLS Handshake avsevärt. Namnet på chiffern som används i version 1.3 ser ut så här: TLS_AES_256_GCM_SHA384. Ju färre chiffer som används och ju kortare namnet är, desto snabbare blir TLS Handshake.
- TLS_AES_256_GCM_SHA384 (Rekommenderas)
- TLS_CHACHA20_POLY1305_SHA256 (Rekommenderas)
- TLS_AES_128_GCM_SHA256 (Rekommenderas)
- TLS_AES_128_CCM_8_SHA256 (Säker)
- TLS_AES_128_CCM_SHA256 (Säker)
Postkvantkryptografins (PQC) inverkan på krypteringssviter
Kvantdatorer kan bryta TLS-kryptering med moderna ECC-baserade chiffer och algoritmer som RSA och DSA på några timmar, eftersom de förlitar sig på matematiska problem som heltalsfaktorisering och diskreta logaritmer (log). Dessa problem är beräkningsmässigt ogenomförbara för klassiska datorer men kan potentiellt lösas effektivt av kvantdatorer med Shors algoritm. Detta utgör ett direkt hot mot säkerheten hos befintliga kryptografiska protokoll, inklusive de som används i TLS/SSL.
Chiffersviter behöver uppdateras för att införliva post-kvantumalgoritmer. Till exempel måste TLS 1.3, som för närvarande använder algoritmer som ECDHE och RSA för nyckelutbyte, övergå till kvantsäkra alternativ. Omdesignen inkluderar att välja post-kvantumalgoritmer som balanserar säkerhet, prestanda och bandbreddseffektivitet. Till exempel blir ML-KEM (Initial Specification name- CRYSTALS-Kyber) alltmer populärt för att dela symmetriska nycklar för generell kryptering.
Låt oss titta närmare på NIST-stödda PQC-algoritmer:
För allmän kryptering, som används vid säker åtkomst till webbplatser, har NIST valt följande algoritm.
- KRISTALLER - Kyber (Uppdaterat namn: ML KEM)
NIST rekommenderar att man använder Kyber i ett så kallat "hybridläge", och kombinerar det med etablerade "pre-kvantum"-säkerhetsprotokoll, såsom Diffie-Hellman med elliptisk kurva. Inlämningen innehåller tre parameteruppsättningar utformade för olika säkerhetsnivåer:
Kyber-512 syftar till säkerhet ungefär motsvarande AES-128.
Kyber-768 syftar till säkerhet ungefär motsvarande AES-192.
Kyber-1024 syftar till säkerhet ungefär motsvarande AES-256.
För digitala signaturer, NIST har valt följande tre algoritmer, som vanligtvis används för att verifiera identiteter under digitala transaktioner eller signera dokument på distans:
- KRISTALLER-Dilitium (Uppdaterat namn: ML DSA)
Som en uppdatering för omgång 2 av NIST-projektet föreslogs en variant av Dilithium, kallad Dilithium-AES. Denna variant använder AES-256 i räknarläge istället för SHAKE för att expandera matrisen och maskeringsvektorerna och sampla de hemliga polynomen. Följande varianter av Dilithium finns tillgängliga:
Dilitium2-AES
Dilitium3-AES
Dilitium5-AES - FALK (Uppdaterat namn: FN DSA)
Falcon är baserad på Gentry, Peikert och Vaikuntanathans teoretiska ramverk för gitterbaserade signaturscheman. Falcon uppnår följande prestanda:
FALCON-512 (keygen (ms)- 8.64, keygen (RAM)- 14336, signerar/s- 5948.1, verifierar/s- 27933.0, publiceringsstorlek- 897, signaturstorlek- 666)
FALCON-1024 (keygen (ms)- 27.45, keygen (RAM)- 28672, signerar/s- 2913.0, verifierar/s- 13650.0, publiceringsstorlek- 1793, signaturstorlek- 1280)
För att göra en jämförelse är Falcon-512 ungefär likvärdig, i klassiska säkerhetstermer, med RSA-2048, vars signaturer och publika nycklar använder 256 byte vardera. - SPHINCS+ (Uppdaterat namn: SLH DSA)
SFINKER+ är ett statslöst hashbaserat signaturschema. Det innehåller flera förbättringar, specifikt inriktade på att minska signaturstorleken. Andra omgången av SPHINCS-inlämningen+ introducerar en uppdelning av ovanstående tre signaturscheman i en enkel och robust variant för varje val av hashfunktion. Den robusta varianten är exakt SPHINCS+ versionen från första omgångens inlämning och kommer med alla de konservativa säkerhetsgarantier som tidigare givits. Inlämningen föreslår tre olika signaturscheman:
SFINKER+-SKAKA256
SFINKER+-SHA-256
SFINKER+-Haraka
Dessa signaturscheman erhålls genom att instansiera SPHINCS+ konstruktion med SHAKE256, SHA-256 respektive Haraka.
En aktuell TLS-krypteringssvit, såsom TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, när den utvecklas till en postkvantchiffer, kan se ut som TLS_KYBER_DILITHIUM_WITH_AES_256_GCM_SHA384.
Följande tabell representerar postkvantumkryptografialgoritmer (NIST-godkända)
| KRISTALLER-Kyber | KRISTALLER-Dilitium | FALK | SPHINCS+-SHA256 | SPHINCS+-Haraka | SFINCER+-SHAKE256 |
| Kyber512 | Dilitium2 | FALCON-512 | SPHINCS+-SHA256-128f-robust | SPHINCS+-Haraka-128f-robust | SPHINCS+-SHAKE256-128f-robust |
| Kyber512-90-talet | Dilitium3 | FALCON-1204 | SPHINCS+-SHA256-128f-enkel | SPHINCS+-Haraka-128f-enkel | SPHINCS+-SHAKE256-128f-enkel |
| Kyber768 | Dilitium5 | - | SPHINCS+-SHA256-128s-robust | SPHINCS+-Haraka-128s-robust | SPHINCS+-SHAKE256-128s-robust |
| Kyber768-90-talet | Dilitium2-AES | - | SPHINCS+-SHA256-128s-enkel | SPHINCS+-Haraka-128s-enkel | SPHINCS+-SHAKE256-128s-enkel |
| Kyber1024 | Dilitium3-AES | - | SPHINCS+-SHA256-192f-robust | SPHINCS+-Haraka-192f-robust | SPHINCS+-SHAKE256-192f-robust |
| Kyber1024-90-talet | Dilitium5-AES | - | SPHINCS+-SHA256-192f-enkel | SPHINCS+-Haraka-192f-enkel | SPHINCS+-SHAKE256-192f-enkel |
| - | - | - | SPHINCS+-SHA256-192s-robust | SPHINCS+-Haraka-192s-robust | SPHINCS+-SHAKE256-192s-robust |
| - | - | - | SPHINCS+-SHA256-192s-enkel | SPHINCS+-Haraka-192s-enkel | SPHINCS+-SHAKE256-192s-enkel |
| - | - | - | SPHINCS+-SHA256-256f-robust | SPHINCS+-Haraka-256f-robust | SPHINCS+-SHAKE256-256f-robust |
| - | - | - | SPHINCS+-SHA256-256f-enkel | SPHINCS+-Haraka-256f-enkel | SPHINCS+-SHAKE256-256f-enkel |
| - | - | - | SPHINCS+-SHA256-256s-robust | SPHINCS+-Haraka-256s-robust | SPHINCS+-SHAKE256-256s-robust |
| - | - | - | SPHINCS+-SHA256-256s-enkel | SPHINCS+-Haraka-256s-enkel | SPHINCS+-SHAKE256-256s-enkel |
Omgång 4 av NIST:s standardiseringsprocess efter kvantkryptografi (PQC)
Flera kandidatalgoritmer har föreslagits för övervägandeDet här är de kryptografiska algoritmer som fortfarande utvärderas för att avgöra deras lämplighet för standardisering i en postkvant-era.
Kandidatalgoritmer för runda 4 är utformade för att säkert etablera delade nycklar mellan parter i ett kommunikationssystem, vanligtvis genom kryptografi med offentlig nyckel. Dessa algoritmer är följande:
- CYKEL (Binärkodbaserad nyckelinkapsling)
BIKE är en kodbaserad nyckelinkapslingsmekanism baserad på QC-MDPC (Quasi-Cyclic Moderate Density Parity-Check)-koder som skickas till NIST Post-Quantum Cryptography Standardization ProcessEtt krypteringssystem med offentlig nyckel baserat på felkorrigerande koder. - Klassisk McEliece
McEliece-systemet var utformat för att vara envägs (OW-CPA), vilket innebär att en angripare inte effektivt kan hitta kodordet från en chiffertext och en offentlig nyckel, när kodordet väljs slumpmässigt. Det är ett kryptosystem med offentlig nyckel baserat på svårigheten att avkoda en slumpmässig linjär kod. - HQC (Hamming kvasicyklisk)
HQC är ett kodbaserat krypteringsschema med offentliga nycklar utformat för att ge säkerhet mot attacker från både klassiska och kvantdatorer. Det använder en klass av felkorrigerande koder som kallas kvasicykliska koder. - SIKE (Supersingulär isogennyckelinkapsling)
Det är en KEM baserad på svårigheten att hitta isogenier mellan supersingulära elliptiska kurvor, en relativt ny metod inom kvantresistent kryptografi. Den innehåller två algoritmer:
En CPA-säker krypteringsalgoritm för offentliga nyckelr, SIKE.PKE
En CCA-säker nyckelinkapslingsmekanism, SIKE.KEM
Långsiktiga fördelar med PQC i Cipher Suites
Vadium Lyubashevsky, en IBM En kryptografiforskare nämnde att ”Algoritmer baserade på gitter, när de är korrekt utformade, faktiskt är mer effektiva än algoritmer som används idag”, sa han. ”Även om de kan vara större än klassisk kryptografi, är deras körtid snabbare än de klassiska algoritmerna baserade på diskreta, större RSA- eller elliptiska kurvor”.
Att integrera PQC i chiffersviter medför flera fördelar, såsom:
- Kvantbeständig säkerhet
Att använda PQC-algoritmen leder till starkare kryptering, så att den kan motstå kvanthot. Detta skyddar känsliga data och håller dem konfidentiella och oförändrade. - Uppnå kryptoagilitet
Att använda PQC-algoritmer förbättrar kryptoflexibiliteten, vilket gör det möjligt för organisationer att smidigt övergå mellan klassiska och kvantresistenta algoritmer när nya hot uppstår. Denna flexibilitet säkerställer att systemet, applikationen eller andra kritiska tillgångar är utformade för att anpassa sig till kryptografiska krav. - Hybridlösning
En hybridlösning kombinerar traditionella kryptografiska algoritmer (t.ex. RSA) med PQC-algoritmer för att ge bakåtkompatibilitet inom befintliga system samtidigt som kvantumförberedelser införs. Detta säkerställer en smidig övergång till PQC utan att störa nuvarande verksamheter. - Framtidssäkrande digital kommunikation
Implementeringen av PQC förhindrar nu angripare från att lagra krypterad data och dekryptera den senare när kvantdatorer blir tillgängliga ("skörda nu, dekryptera senare"). - Överensstämmelse med nya standarder
Tillsynsmyndigheter och branschstandarder kommer sannolikt att kräva användning av PQC-algoritmer inom en snar framtid. Tidig implementering säkerställer efterlevnad och undviker störningar i sista minuten.
Hur kan krypteringskonsultation hjälpa till?
Vår Krypteringsrådgivningstjänster erbjudanden krypteringsbedömningar och krypteringsgranskningar där vi genomför grundliga utvärderingar av er nuvarande kryptografiska infrastruktur för att identifiera sårbarheter och förbereda oss för nya kvanthot. Detta inkluderar bedömning av digitala certifikat, kryptografiska nycklar och övergripande kryptostyrning för att säkerställa motståndskraft mot föränderliga risker. Vårt team utvecklar ett anpassat ramverk för övergången till en kompatibel kryptografisk miljö som är i linje med branschstandarder som NIST, FIPS, och andra. Vi säkerställer att din organisations data förblir säker samtidigt som vi anpassar oss till kvantresistenta teknologier. Våra strategier är skräddarsydda efter din organisations unika säkerhetskrav och risktolerans, vilket hjälper dig att ligga steget före säkerhetsutmaningarna.
Slutsats
Krypteringssviter är en integrerad del av TLS Handshake och talar om för klienten och servern hur de ska kryptera sin information så att den andra förstår. TLS Handshake, som kopplar samman en klient och server i en säker anslutning, används varje dag för att ansluta till webbplatser, så det är oerhört viktigt att se till att den är så säker som möjligt. Krypteringssviter är bara ett sätt att säkerställa säkra och pålitliga anslutningar. Kodsignering, ordentligt certifikathanteringoch säkra SSH-nycklar är alla andra säkra anslutningsmetoder som också måste implementeras korrekt för att säkerställa den säkraste anslutningen till servrar.
