Delen via


Handmatige uitwisseling van sessiesleutels

Notitie

In de procedure die in deze sectie wordt beschreven, wordt ervan uitgegaan dat de gebruikers (of CryptoAPI-clients) al hun eigen set openbare/persoonlijke sleutelparen hebben en ook elkaars openbare sleutels hebben verkregen.

 

In de volgende afbeelding ziet u hoe u deze procedure gebruikt om een versleuteld bericht te verzenden.

een versleuteld bericht verzenden

Deze aanpak is kwetsbaar voor ten minste één veelvoorkomende aanvalsvorm. Een pipet kan kopieën van een of meer versleutelde berichten en de versleutelde sleutels verkrijgen. Op een later tijdstip kan het afluisteren een van deze berichten naar de ontvanger verzenden en kan de ontvanger niet weten dat het bericht niet rechtstreeks van de oorspronkelijke afzender afkomstig is. Dit risico kan worden verminderd door tijdstempels te gebruiken voor alle berichten of met behulp van serienummers.

De eenvoudigste manier om versleutelde berichten naar een andere gebruiker te verzenden, is door het bericht te verzenden dat is versleuteld met een willekeurige sessiesleutel, samen met de sessiesleutel die is versleuteld met de sleuteluitwisseling van de openbare sleutel van de ontvanger.

Hieronder volgen de stappen voor het verzenden van een versleutelde sessiesleutel.

Een versleutelde sessiesleutel verzenden

  1. Maak een willekeurige sessiesleutel met behulp van de functie CryptGenKey.
  2. Versleutel het bericht met behulp van de sessiesleutel. Deze procedure wordt besproken in gegevensversleuteling en ontsleuteling.
  3. Exporteer de sessiesleutel naar een blob--sleutel met de functie CryptExportKey, waarmee wordt opgegeven dat de sleutel moet worden versleuteld met de openbare sleutel van de doelgebruiker.
  4. Verzend zowel het versleutelde bericht als de versleutelde sleutel-BLOB naar de doelgebruiker.
  5. De doelgebruiker importeert de sleutel-BLOB in zijn of haar CSP met behulp van de functie CryptImportKey. Hiermee wordt de sessiesleutel automatisch ontsleuteld, mits de openbare sleutel van de doelgebruiker is opgegeven in stap 3.
  6. De doelgebruiker kan het bericht vervolgens ontsleutelen met behulp van de sessiesleutel, volgens de procedure die wordt besproken in Gegevensversleuteling en -ontsleuteling.