2010-04-01 5 views
4

Je suis novice au "monde de la cryptographie". J'ai commencé à travailler avec OPENSSL. J'ai besoin de quelques informations et fondamentalement j'ai quelques doutes. J'ai un fichier au format DER. J'ai lu le fichier en utilisant la commande suivante, "openssl x509 -inform DER -dans le nom de fichier.der -text" J'ai obtenu ce que je devais être. Je voulais savoir: 1. Quelle est la différence entre PKCS7, DER et X509? (Ma compréhension est, DER est le format, X509 est un certificat et PKCS7 est la norme)En ce qui concerne: PKCS7, X509 et DER

  1. j'ai écrit un fichier de test qui accepte le fichier DER et fournit la version, série Numéro, Sujet, Date de validité avant et Date de validité après, Mais je suis incapable d'obtenir un certificat vérifié. Voici l'API utilisée.

    int i = X509_verify (X509 * x509, X509_get_pubkey (X509 * x509)); Mais la valeur 'i' est 'i' < 0 (zéro) C'est pourquoi je reçois des "problèmes de vérification de signature". Comment surmonter cela?

  2. Dans Mon fichier de test, je ne parviens pas à lire «Algorithme de signature», «Informations sur la clé publique», «Extensions X509v3» et «----- BEGIN CERTIFICATE -----» à «- --- CERTIFICAT DE FIN ----- "

Veuillez donner quelques entrées.

Merci à l'avance. openSid

Répondre

12

PKCS # 7 est une norme de cryptographie publiée par RSA Security en 1993 qui traite des données auxquelles la cryptographie est appliquée. C'est une norme pour la façon d'emballer les données en toute sécurité. PKCS # 7 fait référence à la norme X.509, en tant que source pour le formatage des certificats. X.509 est un document de normes de sécurité étendu publié en 1998 qui inclut, entre autres, des formats de fichiers de certificats.

X.509 précise que les certificats doivent être codées en utilisant les règles de codage distinctives de la norme ASN.1 (documentée dans le X.208 et maintenant X.608), publié en 1984.

Ainsi, DER explique comment encoder des chaînes et des données source numériques dans un format binaire, X.509 indique quelles données doivent entrer dans un certificat numérique, et PKCS # 7 indique comment ce certificat doit être utilisé pour signer numériquement un message.


Privacy Enhanced Mail - une sorte d'outil publié avant OpenSSL - nécessaire pour passer PKCS # 7 « enveloppé » données autour dans les e-mails au moment échangés sur les systèmes pris en charge uniquement 7 caractères ASCII bits - " PEM "a créé la norme d'utilisation de Base64 pour encoder les certificats X.509 requis par PKCS # 7, et stocker le base64 à l'intérieur ----- BEGIN ??? ----- ----- END ??? - ---- où ??? peut être une clé privée RSA, une clé publique PSA, un certificat, etc.

+0

FYI: pkcs7 Les fichiers der/pem peuvent regrouper de nombreux certificats où un der/pem x509 ne peut pas regrouper des chaînes non liées. C'est pourquoi pkcs7 est considéré comme une exportation en masse aujourd'hui etc. Exemple lorsque le fichier PE32 de Windows est signé avec un certificat 'signature de code', il contient deux chaînes dans l'en-tête OPTIONS Security, les chaînes 'codesign' et 'timestamp' dans un bloc de données au format unique. – shadowbq

0

Les composants PKCS sont PKCS # 1, PKCS # 5, PKCS # 7, PKCS # 8, PKCS # 9, PKCS # 10 et PKCS # 12, Les normes PKCS sont des spécifications produites par RSA Laboratories en coopération avec des développeurs de systèmes sécurisés dans le monde entier dans le but d'accélérer le déploiement de la cryptographie à clé publique.

Un utilisateur peut demander un certificat auprès d'une autorité de certification pour que cet utilisateur envoie sa clé publique dans un objet PKCS # 10 à l'autorité de certification. Une fois la demande approuvée, l'autorité de certification émet un certificat enveloppé dans un objet au format PKCS # 7.

PKCS # 7 définit un format standard pour les données qui ont eu la cryptographie appliqué, PKCS # 7 spécifie uniquement un format de données, pas le choix de tous les algorithmes spécifiques (X509)

certificat X.509 est un Clé publique empaquetée avec des informations sur le propriétaire et l'émetteur du certificat