Sessionsnøgle (TEK): Definition og rolle i symmetrisk kryptering

Sessionsnøgle (TEK): Lær hvordan symmetriske nøgler beskytter trafik, mindsker angreb og sikrer nøgle-distribution — klar forklaring og praktiske råd.

Forfatter: Leandro Alegsa

En sessionsnøgle er en symmetrisk nøgle til engangsbrug, som anvendes til at kryptere alle meddelelser i en enkelt kommunikationssession. Et nært beslægtet begreb er trafik-krypteringsnøgle eller TEK, som betegner enhver symmetrisk nøgle, der bruges til at kryptere trafikmeddelelser. I praksis ændres TEK'er ofte — i nogle systemer dagligt, i andre for hver enkelt meddelelse — for at begrænse eksponeringen ved evt. nøglekompromis.

Hvorfor bruge sessionsnøgler?

  • For det første bliver flere kryptoanalytiske angreb lettere, når der er mere krypteringstekst, der krypteres med en bestemt nøgle, til rådighed. Ved at begrænse antallet af meddelelser, der krypteres med en enkelt nøgle, vanskeliggøres disse angreb.
  • For det andet kræver mange ellers gode krypteringsalgoritmer, at nøglerne distribueres sikkert, før krypteringen kan anvendes. Alle symmetriske hemmelige nøglealgoritmer har denne uønskede egenskab. Der findes andre algoritmer, som ikke kræver sikker distribution af hemmelige nøgler, men de er for langsomme til at være praktiske til kryptering af lange meddelelser (se kryptering med offentlige nøgler). Ved at bruge en af disse "asymmetriske" algoritmer til at distribuere en krypteret hemmelig nøgle til en anden, hurtigere symmetrisk nøglealgoritme er det muligt at forbedre den samlede ydelse betydeligt.

Hvordan etableres sessionsnøgler?

Der findes flere almindeligt anvendte metoder til at etablere sessionsnøgler mellem parter:

  • Manuelt eller præ-delt: Parterne deler en hemmelig nøgle på forhånd (pre-shared key). Dette er enkelt, men skalerer dårligt og er risikofyldt, hvis nøglen genbruges for længe.
  • Asymmetrisk kryptering: En symmetrisk sessionsnøgle krypteres med modtagerens offentlige nøgle og sendes sikkert. Dette er almindeligt i protokoller, hvor en offentlig nøgle-infrastruktur (PKI) er tilgængelig.
  • Diffie–Hellman og derivater: Parterne udfører et nøgleudvekslingsprotokol (eksempelvis Diffie–Hellman eller varianter), ofte kombineret med en nøgleafledningsfunktion (KDF) for at generere en tilfældig sessionsnøgle. Dette kan give kortvarig sikkerhed uden direkte overførsel af selve nøglen.

Nøgleegenskaber og levetid

Valg af sessionsnøgler handler ikke kun om tilfældighed, men også om længde og levetid:

  • Længde: Nøglens bitlængde skal være tilstrækkelig til at modstå brute-force-angreb i den forventede levetid. Moderne anbefalinger varierer efter algoritme, men typisk anvendes 128 bit eller mere for symmetriske nøgler.
  • Levetid: Kortere levetid (hyppigere rotation) mindsker det samlede skadeomfang ved nøglekompromis, men øger kompleksiteten i nøglehåndtering. I mange protokoller roteres TEK'er automatisk efter bestemte tidsintervaller eller trafikmængder.
  • Forward secrecy: Ved at bruge ephemeral nøgleudveksling (f.eks. ephemeral Diffie–Hellman) kan man opnå forward secrecy, så tidligere sessioner forbliver sikre, selv hvis en langsigtet nøgle kompromitteres.

Sikker opbevaring og håndtering

Sessionsnøgler skal genereres og håndteres sikkert:

  • Tilfældighed og entropi: Som alle kryptografiske nøgler skal sessionsnøgler være uforudsigelige. I praksis betyder det, at de som regel skal vælges tilfældigt fra en pålidelig kilde til entropi. Svage eller forudsigelige tilfældighedskilder fører til sårbarheder.
  • Lagring: Midlertidige nøgler bør holdes i sikre hukommelsesområder og aldrig skrives til vedvarende lagring uden kryptering. I systemer med høje krav kan hardwarebaserede løsninger (HSM'er eller sikre elementer) benyttes til nøglebeskyttelse.
  • Nøgleafledning: I stedet for at overføre rå nøgler kan systemer bruge en delt hemmelighed eller masternøgle og aflede sessionsnøgler ved hjælp af standardiserede KDF'er. Dette reducerer eksponering og gør rotation enklere.

Sikker brug i krypteringsmodi

Selv korrekt genererede sessionsnøgler kan misbruges, hvis kryptografiske operationer ikke udføres korrekt:

  • Brug af unikke IV'er eller nonces pr. krypteret meddelelse for at undgå genbrugssvækkelser.
  • Foretræk autenticerede krypteringsmodi (AEAD) for at undgå separate integritetskontroller og minimere risikoen for forfalskning.
  • Undgå genbrug af samme sessionsnøgle til forskellige formål (f.eks. både kryptering og HMAC) uden en sikker nøgleafledningsmekanisme.

Eksempler fra praksis

Sessionsnøgler anvendes i mange protokoller og systemer: TLS/SSL bruger sessionsnøgler til at kryptere HTTP-trafik, IPsec etablerer TEK'er til sikring af netværkstrafik mellem enheder, og SSH bruger sessionsnøgler til at beskytte interaktive forbindelser. I alle disse tilfælde kombineres nøgleudveksling, KDF'er, og mekanismer til rotation og beskyttelse.

Risici og modforanstaltninger

Nogle af de største risici ved sessionsnøgler er:

  • Nøglekompromis: Hvis en sessionsnøgle kompromitteres, kan den tilsvarende trafik aflyttes eller manipuleres. Hyppig rotation og kort levetid mindsker skaden.
  • Dårlig tilfældighed: Forudsigelige nøgler gør systemer trivielt brudbare. Brug verificerede tilfældighedsgeneratorer og overvåg entropi.
  • Implementationsfejl: Forkert brug af krypteringsbiblioteker eller genbrug af nonces kan skabe svagheder selv med stærke nøgler.

Best practices — kort

  • Generér sessionsnøgler fra højkvalitets tilfældighedskilder.
  • Brug korte nøglelevetider og automatiser rotation, hvor det er muligt.
  • Anvend sikre nøgleudvekslingsprotokoller og KDF'er til at skabe sessionsnøgler fra en delt hemmelighed.
  • Benyt AEAD-modi og sikre noncer/IV'er for hver meddelelse.
  • Opbevar nøgler sikkert (brug HSM eller sikre hukommelsesmekanismer ved behov).

Som det sidste: Som alle kryptografiske nøgler skal sessionsnøgler vælges således, at de er uforudsigelige for en angriber. I det almindelige tilfælde betyder det, at de skal vælges tilfældigt. Manglende valg af sessionsnøgler (eller enhver anden nøgle) er en stor ulempe i ethvert kryptosystem.

Spørgsmål og svar

Q: Hvad er en sessionsnøgle?


A: En sessionsnøgle er en symmetrisk nøgle til engangsbrug, der bruges til at kryptere alle meddelelser i en kommunikationssession.

Q: Hvad er forskellen mellem en sessionsnøgle og en trafik-krypteringsnøgle (TEK)?


Svar: En TEK henviser til enhver symmetrisk nøgle, der bruges til at kryptere trafikmeddelelser, mens en sessionsnøgle specifikt bruges til at kryptere alle meddelelser i en kommunikationssession.

Q: Hvorfor bruges sessionsnøgler?


A: Sessionsnøgler anvendes, fordi de hjælper med at løse nogle reelle problemer, f.eks. gør kryptoanalytiske angreb vanskeligere og gør det muligt at anvende hurtigere krypteringsalgoritmer ved at distribuere en krypteret hemmelig nøgle på sikker vis.

Spørgsmål: Hvordan skal sessionsnøgler vælges?


Svar: Sessionsnøgler skal vælges tilfældigt, så de er uforudsigelige for en angriber.

Spørgsmål: Hvad sker der, hvis der vælges den forkerte type sessionsnøgler?


Svar: Hvis der vælges den forkerte type sessionsnøgler, kan det være en stor ulempe i ethvert kryptosystem.

Spørgsmål: Hvor ofte ændres TEK'er typisk?


Svar: TEK'er ændres typisk ofte; i nogle systemer dagligt og i andre systemer for hver meddelelse.

Spørgsmål: Hvilken anden algoritme kan bruges til at forbedre ydeevnen ved brug af symmetriske nøglealgoritmer? Svar: Offentlig nøglekryptografi kan bruges til at distribuere en krypteret hemmelig nøgle til en anden, hurtigere symmetrisk nøglealgoritme, hvilket kan forbedre den samlede ydeevne betydeligt.


Søge
AlegsaOnline.com - 2020 / 2025 - License CC3