API de Cryptographie
•Rappel
les fournisseurs de service de cryptographie pouvant être :
- Java Cryptography, le standard du monde java
- IBM i Cryptographic Services (un jeu d'APi, proposé par IBM i)
- Network Authentication Service (Kerberos utilisé dans le cadre d'un SSO EIM)
- IBM i TLS et JSSE, utilisés par la couche transport (HTTPS, par exemple)
Les clés peuvent être stockées dans des magasins de clé (keystore), il en existe 4
- Digital certificate manager, certificate store (pour DCM)
- CCA keystore (utilisé par les Co-processeurs 4767/4764)
- JCE keystore, utilisé par Java
- Cryptographic Services keystore pour les API de cryptographie
c'est uniquement de ce dernier point dont nous parlerons ensuite
• Dans le cas des API, vous allez crypter avec des clés.
s'offrent à vous les solutions suivantes :
- utiliser une clé en clair (un texte, comme dans cet exemple donné par IBM)
ou la clé est 'hashkeyhashkeyaahashkeyhashkeyaa' convertit en ASCII , peu fiable
- une clé venant d'un keystore (magasin de clés)
- une clé cryptée par une clé en clair (passphrase)
- une clé cryptée par une "master key"
- une clé cryptée par une clé venant d'un keystore
- une clé cryptée par une clé venant un certificat
- une clé dérivée d'un paramètre PKCS5 (chiffrement par mot de passe)
- vous avez donc des MASTER KEY (1 à 8) plus une pour crypter les sauvegardes et une pour crypter les ASP
Elles peuvent être définies
- par API (Qc3SetMasterKeyI)
- par Commande (SETMSTKEY)
notez aussi les commandes RMVCKMKSFE et
CLRMSTKEY
- par interface graphique (Navigator for i)
Le système d'exploitation IBM i est en mesure de stocker huit clés principales, auxquelles les utilisateurs n'auront pas accès et qu'ils ne pourront pas modifier directement (y compris le responsable de la sécurité). Ces clés principales sont des clés AES 256 bits ; elles peuvent être utilisées avec les API des services de chiffrement pour protéger d'autres clés. En outre, le système d'exploitation stocke et gère deux clés principales dont l'objectif est particulier : l'une est destinée au chiffrement du pool de mémoire secondaire (ASP), l'autre au chiffrement des clés principales sur le support de sauvegarde système (SAVSYS). |

- et des magasins de clés "système", enregistrés dans des fichiers, toujours gérables par Navigator for i


après ouverture

- Création d'une clé

donnez un label

fonctions interdites (non coché, tout est donc possible)

Algorithme de cryptage
- HMAC_MD5
- HMAC_SHA1
- HMAC_SHA256
- HMAC_SHA384
- HMAC_SHA_512
- DES
- triple DES
- RC2
- RC4
- RSA
- ECC (elliptic curve)

Confirmez en cliquant sur "Terminer"
- Toutes les APi qui suivent, utilisent les notions que nous venons de voir et celles vues dans ce cours
- Gestion des clés (alternative à Navigator for i)
- Génération de clés
- Cryptage/décryptage
- Authentification
- Génération de nombres aléatoires
- Génération de contextes : les contextes sont des paramètres mémorisés et peuvent utilisés ensuite, lors d'appels successifs à des API
Exemple de mise en oeuvre
- Déclaration des API

- Cryptage AES avec une clef "en clair"
- Déclaration, mise en place des valeurs
- Exécution
- Résultat

- Cryptage (TDES) avec une clé stockée dans un keystore
- Déclaration, mise en place des valeurs
- Exécution
- Résultat

- CONSTANTES Constantes utilisées par les exemples
- ENC_KEY cryptage avec une clé en clair
- ENC_STORE cryptage avec une clé d'un magasin
- CHKRSA Vérification d'une signature basée sur un certificat (PEM)
Sinon, Voyez cet exemple de la documentation, de génération de clés symétriques
Copyright © 1995,2020 VOLUBIS