Meteen naar de inhoud

Certificaten met een geldigheidsduur van 47 dagen komen eraan. Ben je klaar?

Handel nu →

Een introductie tot cipher suites

Een introductie tot cipher suites

Als adviseurs op het gebied van toegepaste cryptografie krijgen wij vaak de vraag voorgeschoteld of het inschakelen van encryptie voldoende is om de veiligheid van digitale communicatie te garanderen.

Wanneer een bericht via een verbinding wordt verzonden, wordt er normaal gesproken een TLS / SSL verbinding wordt gebruikt om encrypt de gegevens in het bericht. Om deze verbinding tot stand te brengen, vindt een TLS-handshake plaats. Binnen die handshake wisselen de client en server beschikbare coderingssuites uit om ervoor te zorgen dat ze dezelfde codering gebruiken tijdens de TLS-handshake.

Een cipher suite bevat instructies voor het beveiligen van de TLS/SSL-verbinding. Deze informatie bevat informatie over welke ciphers door de client of server worden gebruikt om sleutels te maken, gebruikers te verifiëren, etc. Cipher suites moeten tussen de client en de server worden uitgewisseld om ervoor te zorgen dat de in de TLS-handshake gebruikte ciphers overeenkomen en dat de client en de server elkaar kunnen begrijpen.

Laten we nu eens een kijkje achter de schermen nemen en onthullen hoe een TLS-handshake werkt:

Introductie

Hoe werkt een TLS-handshake?

SSL-cijferreeksen

Een TLS-handshake is het proces tussen een client en een server om een ​​beveiligde verbinding tot stand te brengen en de gegevens die via die verbinding worden verzonden, te versleutelen. Een TLS-handshake omvat de volgende stappen:

  1. Klant Hallo

    De client hello-fase omvat het versturen van een verzoek tot communicatie naar de server door de client. De TLS-versie, ondersteunde coderingssuites en een reeks willekeurige bytes, bekend als de "client random", zijn opgenomen in de hello.

  2. Server Hallo

    In de server-hello-modus bevestigt de server de client-hello-modus en zorgt ervoor dat deze een TLS-versie gebruikt die compatibel is met de TLS-versie van de client. De server selecteert ook een compatibele cipher suite uit de door de client aangeboden pakketten en verstuurt zijn eigen coderingspakket. certificaat, de server-random (vergelijkbaar met de client-random) en de openbare sleutel van de client.

  3. Certificaatvalidatie

    De geldigheid van het servercertificaat wordt vervolgens door de client gecontroleerd via de certificaat autoriteitDe certificeringsinstantie (CA) is een zeer betrouwbare entiteit, aangezien zij verantwoordelijk is voor het ondertekenen en genereren van digitale certificaten.

  4. Pre-Master Strijkinstrument

    In deze fase versleutelt de client een willekeurige reeks bytes, de zogenaamde "Pre-Master String", met de publieke sleutel van de server en stuurt deze terug naar de server. Dit zorgt ervoor dat alleen de server de gegevens kan lezen. decoderen de sleutel met een eigen privésleutel, wat een extra beveiligingslaag aan het proces toevoegt.

  5. Sessiesleutel aanmaken

    Vervolgens ontsleutelt de server de pre-mastersleutel, waarna zowel de client als de server sessiesleutels aanmaken op basis van de client-randomsleutel, de server-randomsleutel en de premasterreeks.

  6. Berichten voltooid

    Ten slotte sturen de client en server elkaar berichten dat ze klaar zijn met het aanmaken van hun sleutels, en vergelijken ze de sleutels met elkaar. Als de sessiesleutels overeenkomen, is de TLS-handshake voltooid en worden de sessiesleutels gebruikt om alle gegevens die tussen de server en de client worden verzonden, te versleutelen en te ontsleutelen.

Nu we begrijpen hoe een TLS-handshake werkt, kunnen we ons specifiek richten op de cipher suites in een TLS-handshake.

Op maat gemaakte encryptiediensten

Wij beoordelen, ontwikkelen strategieën en implementeren encryptiestrategieën en -oplossingen.

Cijfer Suites

De coderingssuite bepaalt hoe encryptie wordt toegepast, welke algoritmen worden gebruikt en hoe lang de encryptiesleutel is. Het omvat de sleuteluitwisseling, authenticatie, bulkdata-encryptie en algoritmen die het encryptieproces regelen.

Componenten van een cipher suite

Een cipher suite bestaat hoofdzakelijk uit vier verschillende componenten:

cipher_suite
  1. Sleuteluitwisselingsalgoritme

    Het informatie-uitwisselingsproces vereist een beveiligde verbinding om ongecodeerde gegevens te verzenden, of een sleutel die gedeeld wordt tussen de client en de server. De client gebruikt deze sleutel om gegevens te coderen en de server gebruikt deze om die gegevens te decoderen. Omdat één sleutel wordt gebruikt voor zowel encryptie als decryptie, wordt symmetrische encryptie gebruikt. Om die sleutel te delen, is een algoritme ontwikkeld, het zogenaamde sleuteluitwisselingsalgoritme, dat de symmetrische encryptiesleutel tijdens de overdracht codeert. Dit garandeert de integriteit van de gegevens en de veiligheid van de symmetrische encryptiesleutel.

    Het sleuteluitwisselingsalgoritme is een encryptiealgoritme dat wordt gedeeld tussen de client en de server, zodat beide zijden van de verbinding de symmetrische encryptiesleutel kunnen decoderen en gebruiken. RSA, DH, ECDH en ECDHE zijn allemaal voorbeelden van sleuteluitwisselingsalgoritmen.
  2. Authenticatie-algoritme

    Dit algoritme is een manier om de identiteit van de afzender te verifiëren. Meestal worden een wachtwoord en gebruikersnaam gebruikt om de client te authenticeren. De meest voorkomende authenticatie-algoritmen zijn RSA, DSA en ECDSA.

  3. Bulkgegevensversleutelingsalgoritme

    Het bulkdata-encryptiealgoritme wordt gebruikt om de centrale tekst van het bericht te versleutelen. Omdat het hoofdbestanddeel van het bericht bestaat uit datgene wat aanvallers proberen te stelen of te wijzigen, moet het hier gebruikte algoritme extreem veilig zijn. De meest gebruikte bulkencryptiealgoritmen voor cipher suites zijn AES, 3DES en CAMELLA.

  4. Bericht-authenticatiecode (MAC)-algoritme

    De MAC is een stukje informatie dat wordt meegestuurd om de client te authenticeren. Het MAC-algoritme is het algoritme dat wordt gebruikt om de MAC te versleutelen. De server vergelijkt de ontvangen MAC met de MAC die ze berekenen om er zeker van te zijn dat ze overeenkomen. Normaal gesproken wordt een Cyclic Redundancy Check-algoritme (CRC) gebruikt met een MAC om te controleren op beschadigde delen van het bericht, maar een CRC biedt geen bescherming tegen opzettelijke wijzigingen aan de MAC.

    Als een aanvaller het bericht ontvangt, de MAC wijzigt en een nieuwe checksum berekent, zal de server nooit weten dat de MAC is gewijzigd. SHA-2 is een veelgebruikt MAC-algoritme. MAC garandeert zowel de authenticiteit als de integriteit van het bericht.

Een voorbeeld van de naamgeving van een cipher suite versie 1.2 is TLS_DHE_RSA_AES256_SHA256. Het eerste deel, TLS, specificeert waarvoor de cipher suite wordt gebruikt. TLS is de meest voorkomende reden voor cipher suites. De tweede algoritmenaam, DHE, is het gebruikte algoritme voor sleuteluitwisseling. RSA is het authenticatiealgoritme, AES256 is het algoritme voor bulkdata-encryptie en SHA256 is het MAC-algoritme.

Ciphersuites ondersteund in TLS 1.2

De namen van cipher suites van versie 1.2 zijn kort, maar andere cipher suites ondersteunen andere algoritmen en zijn nog korter. De meest gebruikte cipher suite is versie 1.2, hoewel versie 1.3 al bestaat. De reden om een ​​oudere versie te gebruiken in plaats van een nieuwere versie is het aantal opties dat elke versie biedt.

De namen van cipher suites van versie 1.2 zijn kort, maar andere cipher suites ondersteunen andere algoritmen en zijn nog korter. De meest gebruikte cipher suite is versie 1.2, hoewel versie 1.3 al bestaat. De reden om een ​​oudere versie te gebruiken in plaats van een nieuwere versie is het aantal opties dat elke versie biedt.

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (aanbevolen)
  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (aanbevolen)
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (Zwak)
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (Zwak)
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Beveiligd)
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Beveiligd)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (Zwak)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (Zwak)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (Zwak)
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (Zwak)
  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (Zwak)
  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (Zwak)
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA (Zwak)
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA (Zwak)
  • TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (Zwak)
  • TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (Zwak)
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (aanbevolen)
  • TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 (aanbevolen)
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (aanbevolen)
  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 (Beveiligd)

Ciphersuites ondersteund in TLS 1.3

Versie 1.3 biedt daarentegen slechts vijf cijfers en twee algoritmen in de naamgeving. Versie 1.2 biedt ook veiligere algoritmen dan 1.3. De naamgeving van de cijferreeks en het aantal cijfers dat in een cijferreeks in versie 1.3 wordt aangeboden, verkortten de TLS-handshake echter aanzienlijk. De naam van de cijferreeks in versie 1.3 ziet er als volgt uit: TLS_AES_256_GCM_SHA384. Hoe minder cijfers er worden gebruikt en hoe korter de naam, hoe sneller de TLS-handshake.

  • TLS_AES_256_GCM_SHA384 (aanbevolen)
  • TLS_CHACHA20_POLY1305_SHA256 (aanbevolen)
  • TLS_AES_128_GCM_SHA256 (aanbevolen)
  • TLS_AES_128_CCM_8_SHA256 (Beveiligd)
  • TLS_AES_128_CCM_SHA256 (Beveiligd)

Impact van post-kwantumcryptografie (PQC) op cipher suites

Quantumcomputers kunnen TLS-encryptie kraken met behulp van moderne ECC-gebaseerde cijfers en algoritmen zoals RSA en DSA binnen enkele uren, omdat ze afhankelijk zijn van wiskundige problemen zoals factorisatie van gehele getallen en discrete logaritmen (log). Deze problemen zijn rekenkundig onhaalbaar voor klassieke computers, maar kunnen mogelijk efficiënt worden opgelost door quantumcomputers met behulp van Shors algoritme. Dit vormt een directe bedreiging voor de beveiliging van bestaande cryptografische protocollen, waaronder die welke worden gebruikt in TLS/SSL.

Cipher Suites moeten worden bijgewerkt om post-kwantumalgoritmen te integreren. TLS 1.3, dat momenteel algoritmen zoals ECDHE en RSA gebruikt voor sleuteluitwisseling, moet bijvoorbeeld overstappen op kwantumveilige alternatieven. De herinrichting omvat de selectie van post-kwantumalgoritmen die een evenwicht vinden tussen beveiliging, prestaties en bandbreedte-efficiëntie. ML-KEM (initiële specificatienaam: CRYSTALS-Kyber) wint bijvoorbeeld aan populariteit voor het delen van symmetrische sleutels voor algemene encryptie.

Laten we eens wat beter kijken naar door NIST ondersteunde PQC-algoritmen:

Voor algemene encryptie, die wordt gebruikt bij veilige toegang tot websites, heeft NIST het volgende algoritme geselecteerd.

  • KRISTALLEN-Kyber (Bijgewerkte naam: ML KEM)
    NIST beveelt aan om Kyber te gebruiken in een zogenaamde "hybride modus", gecombineerd met gevestigde "pre-quantum" beveiligingsprotocollen, zoals de elliptische-curve Diffie-Hellman. De aanvraag bevat drie parametersets die zijn ontworpen voor verschillende beveiligingsniveaus:
    Kyber-512 streeft naar een beveiliging die ongeveer gelijk is aan die van AES-128.
    Kyber-768 streeft naar een beveiliging die ongeveer gelijk is aan die van AES-192.
    Kyber-1024 streeft naar een beveiliging die ongeveer gelijk is aan die van AES-256.

Voor digitale handtekeningen, NIST heeft de volgende drie algoritmen geselecteerd, die vaak worden gebruikt voor het verifiëren van identiteiten tijdens digitale transacties of het op afstand ondertekenen van documenten:

  • KRISTALLEN-Dilithium (Bijgewerkte naam: ML DSA)
    Als update voor ronde 2 van het NIST-project werd een variant van Dilithium voorgesteld, genaamd Dilithium-AES. Deze variant gebruikt AES-256 in tellermodus in plaats van SHAKE om de matrix en maskerende vectoren te expanderen en de geheime polynomen te bemonsteren. De volgende varianten van Dilithium zijn beschikbaar:
    Dilithium2-AES
    Dilithium3-AES
    Dilithium5-AES

  • FALCON (Bijgewerkte naam: FN DSA)
    Falcon is gebaseerd op het theoretische raamwerk van Gentry, Peikert en Vaikuntanathan voor rastergebaseerde handtekeningschema's. Falcon behaalt de volgende prestaties:
    VALK-512 (keygen (ms) - 8.64, keygen (RAM) - 14336, tekens/s - 5948.1, verifieert/s - 27933.0, pub-grootte - 897, handtekeninggrootte - 666)
    VALK-1024 (keygen (ms) - 27.45, keygen (RAM) - 28672, tekens/s - 2913.0, verifieert/s - 13650.0, pub-grootte - 1793, handtekeninggrootte - 1280)
    Ter vergelijking: Falcon-512 is in klassieke beveiligingstermen ongeveer gelijk aan RSA-2048, waarvan de handtekeningen en openbare sleutels elk 256 bytes bevatten.
  • SPHINCS + (Bijgewerkte naam: SLH DSA)
    SFINCS+ is een stateless hash-gebaseerd handtekeningenschema. Het bevat meerdere verbeteringen, specifiek gericht op het verkleinen van de handtekeninggrootte. De tweede ronde van de indiening van SPHINCS+ introduceert een splitsing van de bovenstaande drie handtekeningenschema's in een eenvoudige en robuuste variant voor elke hashfunctie. De robuuste variant is precies de SPHINCS+ versie van de eerste ronde-inzending en wordt geleverd met alle eerder gegeven conservatieve veiligheidsgaranties. De inzending stelt drie verschillende handtekeningenschema's voor:
    SFINCS+-SHAKE256
    SFINCS+-SHA-256
    SFINCS+-Haraka

    Deze handtekeningschema's worden verkregen door het instantiëren van de SPHINCS+ constructie met SHAKE256, SHA-256 en Haraka, respectievelijk.

Een actuele TLS-cijfersuite, zoals TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, wanneer het evolueert naar een post-kwantumcijfer, zou het er zo uit kunnen zien TLS_KYBER_DILITHIUM_MET_AES_256_GCM_SHA384.

De volgende tabel geeft de post-quantum cryptografie-algoritmen weer (goedgekeurd door NIST)

KRISTALLEN-KyberKRISTALLEN-DilithiumFALCONSFINCS+-SHA256SFINCS+-HarakaSfincs+-Shake256
Kyber512Dilithium2VALK-512SPHINCS+-SHA256-128f-robuustSPHINC'S+-Haraka-128f-robuustSPHINC'S+-SHAKE256-128f-robuust
Kyber512-90sDilithium3VALK-1204SPHINCS+-SHA256-128f-eenvoudigSFINCS+-Haraka-128f-simpelSPHINC'S+-SHAKE256-128f-simpel
Kyber768Dilithium5-SPHINCS+-SHA256-128s-robuustSPHINCS+-Haraka-128s-robuustSPHINCS+-SHAKE256-128s-robuust
Kyber768-90sDilithium2-AES-SPHINCS+-SHA256-128s-eenvoudigSPHINCS+-Haraka-128s-eenvoudigSPHINC'S+-SHAKE256-128s-simpel
Kyber1024Dilithium3-AES-SPHINCS+-SHA256-192f-robuustSPHINC'S+-Haraka-192f-robuustSPHINC'S+-SHAKE256-192f-robuust
Kyber1024-90sDilithium5-AES-SPHINCS+-SHA256-192f-eenvoudigSFINCS+-Haraka-192f-simpelSPHINC'S+-SHAKE256-192f-simpel
---SPHINCS+-SHA256-192s-robuustSPHINCS+-Haraka-192s-robuustSPHINCS+-SHAKE256-192s-robuust
---SPHINCS+-SHA256-192s-eenvoudigSPHINCS+-Haraka-192s-eenvoudigSPHINC'S+-SHAKE256-192s-simpel
---SPHINCS+-SHA256-256f-robuustSPHINC'S+-Haraka-256f-robuustSPHINC'S+-SHAKE256-256f-robuust
---SPHINCS+-SHA256-256f-eenvoudigSFINCS+-Haraka-256f-simpelSPHINC'S+-SHAKE256-256f-simpel
---SPHINCS+-SHA256-256s-robuustSPHINCS+-Haraka-256s-robuustSPHINCS+-SHAKE256-256s-robuust
---SPHINCS+-SHA256-256s-eenvoudigSPHINCS+-Haraka-256s-eenvoudigSPHINC'S+-SHAKE256-256s-simpel

Ronde 4 van het NIST Post-Quantum Cryptography (PQC) standaardisatieproces

Er zijn verschillende kandidaat-algoritmen naar voren gebracht ter overwegingDit zijn de cryptografische algoritmen die nog steeds worden geëvalueerd om te bepalen of ze geschikt zijn voor standaardisatie in een post-kwantumtijdperk.

Kandidaatalgoritmen voor ronde 4 zijn ontworpen om gedeelde sleutels tussen partijen in een communicatiesysteem veilig vast te leggen, meestal via openbare-sleutelcryptografie. Deze algoritmen zijn als volgt:

  • FIETS (Binaire code-gebaseerde sleutel-encapsulatie)
    BIKE is een op code gebaseerd sleutel-encapsulatiemechanisme gebaseerd op QC-MDPC (Quasi-Cyclic Moderate Density Parity-Check) codes ingediend bij de NIST Post-Quantum Cryptografie StandaardisatieprocesEen openbaar sleutel-encryptiesysteem gebaseerd op foutcorrigerende codes.
  • Klassieke McEliece
    Het McEliece-systeem is ontworpen als eenrichtingsverkeer (OW-CPA), wat betekent dat een aanvaller het codewoord niet efficiënt kan vinden in een cijfertekst en een openbare sleutel, wanneer het codewoord willekeurig wordt gekozen. Het is een cryptosysteem met openbare sleutel, gebaseerd op de moeilijkheidsgraad van het decoderen van een willekeurige lineaire code.
  • hoofdkwartier (Hamming Quasi-Cyclisch)
    hoofdkwartier is een codegebaseerd encryptieschema met openbare sleutels, ontworpen om beveiliging te bieden tegen aanvallen van zowel klassieke als quantumcomputers. Het maakt gebruik van een klasse foutcorrigerende codes die bekend staan ​​als quasi-cyclische codes.
  • SIKE (Supersingulaire Isogenie Sleutel Encapsulatie)
    Het is een KEM gebaseerd op de moeilijkheid om isogenieën te vinden tussen supersinguliere elliptische krommen, een relatief nieuwe aanpak in kwantumresistente cryptografie. Het bevat twee algoritmen:
    Een CPA-beveiligd algoritme voor openbare sleutelversleuteling, SIKE.PKE
    Een CCA-beveiligd sleutel-encapsulatiemechanisme, SIKE.KEM

Langetermijnvoordelen van PQC in Cipher Suites

Vadium Lyubashevsky, een IBM Een cryptografieonderzoeker merkte op dat "algoritmen gebaseerd op roosters, mits goed ontworpen, zelfs efficiënter zijn dan de algoritmen die tegenwoordig worden gebruikt", zei hij. "Hoewel ze misschien groter zijn dan klassieke cryptografie, is hun uitvoeringstijd sneller dan die van klassieke algoritmen gebaseerd op discrete, grotere RSA- of elliptische curven."

Het opnemen van PQC in cipher suites brengt verschillende voordelen met zich mee, zoals:

  1. Quantum-resistente beveiliging
    Het gebruik van het PQC-algoritme leidt tot sterkere encryptie, waardoor het bestand is tegen kwantumdreigingen. Dit beschermt gevoelige gegevens en houdt ze vertrouwelijk en ongewijzigd.
  2. Crypto-behendigheid bereiken
    De implementatie van PQC-algoritmen verbetert de cryptografische flexibiliteit, waardoor organisaties soepel kunnen overstappen van klassieke naar kwantumresistente algoritmen wanneer nieuwe bedreigingen zich voordoen. Deze flexibiliteit zorgt ervoor dat het systeem, de applicatie of andere kritieke asset is ontworpen om de flexibiliteit van cryptografische vereisten aan te passen.
  3. Hybride oplossing
    Een hybride oplossing combineert traditionele cryptografische algoritmen (bijv. RSA) met PQC-algoritmen om achterwaartse compatibiliteit binnen bestaande systemen te bieden en tegelijkertijd quantum readiness te introduceren. Dit zorgt voor een soepele overgang naar PQC zonder de huidige processen te verstoren.
  4. Toekomstbestendige digitale communicatie
    Door PQC te implementeren, wordt voorkomen dat aanvallers versleutelde gegevens opslaan en deze later ontsleutelen wanneer quantumcomputers beschikbaar komen ('nu oogsten, later ontsleutelen').
  5. Naleving van opkomende normen
    Toezichthouders en industrienormen zullen het gebruik van PQC-algoritmen waarschijnlijk in de nabije toekomst verplicht stellen. Een vroege implementatie garandeert naleving en voorkomt last-minute verstoringen.

Hoe kan Encryption Consulting u helpen?

Het Encryptie Adviesdiensten bieden encryptiebeoordelingen en encryptie-audits waar we grondige evaluaties uitvoeren van uw huidige cryptografische infrastructuur om kwetsbaarheden te identificeren en ons voor te bereiden op opkomende kwantumbedreigingen. Dit omvat het beoordelen van digitale certificaten, cryptografische sleutels en algehele cryptogovernance om veerkracht tegen opkomende risico's te garanderen. Ons team ontwikkelt een op maat gemaakt raamwerk voor de overgang naar een conforme cryptografische omgeving die is afgestemd op industriestandaarden zoals NIST. FIPS, en anderen. Wij zorgen ervoor dat de gegevens van uw organisatie veilig blijven en tegelijkertijd worden aangepast aan kwantumbestendige technologieën. Onze strategieën zijn afgestemd op de unieke beveiligingsvereisten en risicobereidheid van uw organisatie, zodat u beveiligingsuitdagingen voor blijft.

Conclusie

Cijfersuites vormen een integraal onderdeel van de TLS-handshake en vertellen de client en server hoe ze hun informatie moeten versleutelen, zodat de ander het kan begrijpen. De TLS-handshake, die een client en server via een beveiligde verbinding met elkaar verbindt, wordt dagelijks gebruikt om verbinding te maken met websites. Het is daarom van cruciaal belang om deze zo veilig mogelijk te maken. Cijfersuites zijn slechts één manier om veilige en betrouwbare verbindingen te garanderen. Code ondertekening, gepast certificaatbeheeren veilige SSH-sleutels zijn alle andere veilige verbindingsmethoden die ook correct moeten worden geïmplementeerd om de veiligste verbinding met servers te garanderen.