PKCS#11 (Cryptoki) is een standaard ontwikkeld door RSA Laboratories voor het samenwerken van programma's met cryptografische tokens, smartcards en andere soortgelijke apparaten met behulp van een uniforme programmeerinterface die via bibliotheken wordt geïmplementeerd.
De PKCS#11-standaard voor Russische cryptografie wordt ondersteund door de technische standaardisatiecommissie “Cryptographic Information Protection” (
Als we het hebben over tokens met ondersteuning voor Russische cryptografie, dan kunnen we praten over softwaretokens, software- en hardwaretokens en hardwaretokens.
Cryptografische tokens zorgen zowel voor de opslag van certificaten en sleutelparen (publieke en private sleutels) als voor het uitvoeren van cryptografische bewerkingen in overeenstemming met de PKCS#11-standaard. De zwakke schakel hier is de opslag van de privésleutel. Als de publieke sleutel verloren gaat, kunt u deze altijd herstellen met behulp van de private sleutel of deze uit het certificaat halen. Het verlies/vernietiging van een privésleutel heeft ernstige gevolgen. U kunt bijvoorbeeld geen bestanden decoderen die met uw openbare sleutel zijn gecodeerd, en u kunt geen elektronische handtekening (ES) plaatsen. Om een elektronische handtekening te genereren, moet u een nieuw sleutelpaar genereren en, voor wat geld, een nieuw certificaat aanvragen bij een van de certificeringsinstanties.
Hierboven noemden we software-, firmware- en hardwaretokens. Maar we kunnen een ander type cryptografisch token overwegen: de cloud.
Vandaag zul je niemand verrassen
Het belangrijkste hier is de beveiliging van de gegevens die zijn opgeslagen in het cloudtoken, voornamelijk de privésleutels. Kan een cloudtoken hierin voorzien? Wij zeggen - JA!
Hoe werkt een cloudtoken? De eerste stap is het registreren van de client in de tokencloud. Om dit te doen, moet er een hulpprogramma beschikbaar zijn waarmee u toegang krijgt tot de cloud en uw login/bijnaam daarin kunt registreren:
Na registratie in de cloud moet de gebruiker zijn token initialiseren, namelijk het tokenlabel instellen en, belangrijker nog, de SO-PIN en gebruikerspincodes instellen. Deze transacties mogen uitsluitend via een beveiligd/gecodeerd kanaal worden uitgevoerd. Het hulpprogramma pk11conf wordt gebruikt om het token te initialiseren. Om het kanaal te versleutelen, wordt voorgesteld een versleutelingsalgoritme te gebruiken Magma-CTR (GOST R 34.13-2015).
Om een overeengekomen sleutel te ontwikkelen op basis waarvan het verkeer tussen client en server wordt beveiligd/versleuteld, wordt voorgesteld om het aanbevolen TK 26-protocol te gebruiken.
Er wordt voorgesteld om dit wachtwoord te gebruiken op basis waarvan de gedeelde sleutel wordt gegenereerd
Het gebruik van dit mechanisme zorgt ervoor dat toegang tot persoonlijke tokenobjecten in de cloud via SO- en USER-PIN-codes alleen beschikbaar is voor de gebruiker die deze met het hulpprogramma heeft geïnstalleerd pk11conf.
Dat is alles. Na het voltooien van deze stappen is het cloudtoken klaar voor gebruik. Om toegang te krijgen tot het cloudtoken hoeft u alleen maar de LS11CLOUD-bibliotheek op uw pc te installeren. Bij gebruik van een cloudtoken in applicaties op Android- en iOS-platforms wordt een bijbehorende SDK meegeleverd. Het is deze bibliotheek die wordt gespecificeerd bij het verbinden van een cloudtoken in de Redfox-browser of wordt geschreven in het bestand pkcs11.txt. De LS11CLOUD-bibliotheek communiceert ook met het token in de cloud via een beveiligd kanaal gebaseerd op SESPAKE, gecreëerd bij het aanroepen van de PKCS#11 C_Initialize-functie!
Dat is alles, nu kunt u een certificaat bestellen, in uw cloudtoken installeren en naar de website van de overheidsdiensten gaan.
Bron: www.habr.com