Table des matières
Public Key Cryptographic Standard
Tous les PKCS sont sur rsa.com.
- PKCS#1: RSA Cryptography Standard
- PKCS#3: Diffie-Hellman Key Agreement Standard
- PKCS#5: Password-Based Cryptography Standard
- PKCS#6: Extended-Certificate Syntax Standard
- PKCS#7: Cryptographic Message Syntax Standard
- PKCS#8: Private-Key Information Syntax Standard
- PKCS#9: Selected Attribute Types
- PKCS#10: Certification Request Syntax Standard
- PKCS#11: Cryptographic Token Interface Standard
- PKCS#12: Personal Information Exchange Syntax Standard
- PKCS#13: Elliptic Curve Cryptography Standard
- PKCS#15: Cryptographic Token Information Format Standard
Voir /glossaire/pkcs pour des liens de références.
PKCS#7 - Cryptographic Message Syntax Standard
Décrit la syntaxe pour les données sur lesquelles ont été appliquées des opérations cryptographiques, comme la signature électronique ou le chiffrement.
Cette spécification fait partie des Public-Key Cryptography Standards produits par la société RSA. PKCS#7 décrit la syntaxe pour pour les données sur lesquelles ont été appliquées des opérations cryptographiques, comme la signature électronique ou le chiffrement. La récursivité est supportée, comme par exemple le chiffrement de données signées.
Voir aussi Cryptographic Message Syntax (CMS) RFC2315 RFC2630 RFC3369 RFC 3852.
Voir aussi la RFC3851 (Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification) qui indique notamment les conten-type et les extensions des fichiers (chapitre 3.2.1. The name and filename Parameters).
La spécification Cryptographic Message Syntax (CMS, RFC 2630), utilisée par S/MIME 3, est issue de PKCS#7.
Extensions usuelles de fichiers PKCS#7 : .p7s (données signées), .p7m (données chiffrées)
MIME Type | File Extension |
---|---|
application/pkcs7-mime (SignedData, EnvelopedData) | .p7m |
application/pkcs7-mime (degenerate SignedData certificate management message) | .p7c |
application/pkcs7-mime (CompressedData) | .p7z |
application/pkcs7-signature (SignedData) | .p7s |
Un message signé par Mozilla ou Outlook a en pièce jointe un fichier PKCS#7 (ou CMS) qui contient la signature (.p7s). Le contenu d‘un message chiffré par Mozilla ou Outlook est placé dans une pièce jointe (.p7m).
Exemple d'un mail signé avec Thunderbird : mail_signe.txt
ra
PKCS#11 - Cryptographic Token Interface Standard
- API Mozilla, approvisionnement PKCS https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pkcs11
- exemple avec la webextension firefox-pkcs11-loader par la “Estonian Information System Authority”
- Chromium PKCS #11 Software Mechanisms and Resources
- Chrome does not provide a mechanism to specify a PKCS#11 provider, only Firefox does.
- Use any of the available chrome extension like
- Signer.Digital Chrome Extension (Digital Signature of eReturns, PDF & Web User Auth, RSA Encryption/Decryption, Certificate Enrollment/Download on Smartcard)
wget
etcurl
permettent l'authentification depuis un token pkcs11 6.3. Configuring applications to authenticate using certificates from smart cards (RedHat)- OpenSC provides a set of libraries and utilities to work with smart cards. Its main focus is on cards that support cryptographic operations, and facilitate their use in security applications such as authentication, mail encryption and digital signatures. OpenSC implements the standard APIs to smart cards
- OpenSC tools comme gérer les tokens PKCS#11 et PKCS#15
Token products:
- SafeNet eToken 5110 (37 €)
- Product brief by Gemalto https://www.linux.org/attachments/safenet-etoken-5110-product-brief-pdf.3477/
- Digicert knowledge base Initialize a SafeNet eToken 5110CC
- Gemalto SafeNet eToken 5300 (49 €)
- La technologie basée sur certificat génère et enregistre les données d'accès personnelles d'un utilisateur, comme les clés privées, mots de passe et certificats numériques, au sein de l'environnement sécurisé de la puce Smartcard.
- Nitrokey Start (29 €)
- Cryptographic algorithms: RSA 2048 bit, RSA 4096 bit, ECC 256 bit EdDSA, ECDSA (with NIST P256 and secp256k1), ECDH (with X25519, NIST P256 and secp256k1), MD5, RIPEMD-160, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Storage capacity: 3 keys (decryption, signing, authentication)
- Nitrokey products
- Documentation dont linux et en français
- OpenSC compatible
- Feitian ePass2003 (9 £)
- Onboard key-generation, digital signature and crypto operations, PKCS#11, Onboard RSA, ECC, AES, SHA-1, SHA-2, X.509 Certificate Storage, 64KB EEPROM
- OpenSC compatible
Token sellers:
- https://www.javacardos.com – dedicated to building a comprehensive Java Card platform.
- http://www.aventra.fi – ships from Finland, Aventra-MyEID-PKI-card card
- http://www.cryptoshop.com – ships from Austria
- http://shop.kernelconcepts.de/ – ships from Germany, OpenPGP v2 card and CryptoStick token
- http://www.logidata-int.fr – ships from France
- http://www.smartcardfocus.com – ships from UK
Fournisseurs de signature électronique “officielle” hardware (avec token usb)
Pour des essais de manips avec pkcs#11, OpenSC (pkcs-tool) et OpenSSL voir la page du token SafeNet eToken 5110.
Chiffrement et déchiffrement avec Javascript dans navigateur
Questions/discussions
- [What about a WASM API](https://github.com/ThalesGroup/pycryptoki/issues/42) at ThalesGroup/pycryptoki
Thales propose une API en Python
Web eID: electronic ID smart cards on the Web
- Utilise la Browser Native Messaging API
- Exemple avec Javascript et Php
Les technos pour permettre l'usage d'un eToken:
- Ne pourrait-on pas faire la même chose avec WASM ?
- Browser Native Messaging
PKCS#12 - Personnal Information Exchange Syntax Standard
Cette spécification fait partie des Public-Key Cryptography Standards produits par la société RSA. C‘est un standard pour stocker des clés privées, des clés publiques et des certificats en les protégeant en confidentialité et en intégrité (soit par mot de passe - le plus courant - soit avec de la cryptographie asymétrique - plus rare et non utilisé dans les produits grands publics). Les données sont stockées dans un format binaire.
C‘est le format communément utiliser pour stocker un certificat et sa clé privée associée dans un fichier protégé en confidentialité et intégrité par un mot de passe. Ce format est utilisé par Mozilla et Internet Explorer/Outlook pour importer et exporter un certificat avec sa clé privée associée.
Extensions usuelles de fichiers PKCS#12 : .p12, .pfx (Microsoft utilise cette extension pour désigner des fichiers au format PKCS#12 ; voir la rubrique PFX)