IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

Problème déchiffrement X.509


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut Problème déchiffrement X.509
    Bonjour

    En fait je n'arrive pas à comprendre le fonctionnement du certificat X.509 lors d'un envoi de mail avec un client mail (S/MIME compatible) , je m'explique:
    L'utilisateur A possede donc une clé publique et privée, il veut envoyer un message à B. Donc A ecrit son message il l'encode avec sa clé privée, et l'envoie à B .
    B recoit le message il consulte son KeyStore si il verifie la présence de la clé publique de A, première question si la clé n'est pas présente il fait quoi? Le message est effacé?
    Et deuxième question si il trouve la la clé publique, j'ai lu dans different faq qu'il arrivait à déchiffrer le message, mais comment? vu que le message par A a ete encodé avec sa clé privée il ne peut pas la decoder avec la clé publique de A non?
    Et troisième question le message est envoyé "texte" est envoyé est toujours avec le certificat nan?

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Apparemment le procédé que tu décris est la signaturee d'un email et non sons chiffrement. Le certificat est envoyé avec le message en clair et le message signé (sous forme d'un objet PKCS#7) Ce certificat contient la clef publique de A. Le principe d'un algorithme à clef publique (ou asymétrique) est justement que les deux opérations de chiffrement/déchiffrement se font avec deux clefs différentes, donc dans le cas d'une signature, A étant le seul à connaitre sa clef privée (en théorie), il est le seul à pouvoir produire cette signature, mais toute personne recevant le certificat peut la vérifier grâce à la clef publique incluse dedans.
    Bref si le client mail est S/MIME compatible, un fichier nommé .p7s est envoyé attaché au mail, celui ci contient la signature et le certificat donc pas besoin d'avoir le certificat de A dans un keystore, mais plutôt le certificat d'une des CA de la chaine ayant signé le certificat de A, pour être sûr que ce certificat est "de confiance".
    Si le certificat n'est pas "de confiance" (ie aucune CA de la chaine n'est trouvée dans un keystore dans ton cas), alors le message ne doit pas être supprimé (enfin tu peux mais c'est dommage), il faut juste indiquer que la vérification de la signature n'a pas pu marcher entièrement car tu ne peux pas être sûr que tu fais confiance à ce certificat. Ceci dit tu peux quand même afficher tont exte en clair vu que dans le cas d'une signature ce texte est envoyé en clair.
    J'espère ne pas t'avoir embrouillé
    Tschau

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut Dechiffrement Chiffrement
    Merci pour ta réponse , mais du coup j'ai une question comment se passe le déchiffrement, car tu dis que A code le message avec sa clé privée, il ajoute d'une certaine maniere sa clé publique au certificat mais comment B peut la décrypter car il n'aura que la clé publique et pas la clé privée ( Et si c'est pas la même clé ca peut pas marcher non?))

    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Comme je l'ai dit : ca marche car c'est le principe même des algorithmes à clef publique (ou asymétriques)... Renseigne toi sur le sujet, RSA en est l'exemple le plus connu.
    Ensuite juste pour rectifier : la clef publique n'est pas "ajoutée au certificat". Un certificat est un objet qui contient la clef publique d'une personne et l'identité du propriétaire de la clef. Il permet d'assurer (via une signature) que la clef publique est bien celle de la personne qui prétend en être le propriétaire. C'est le principe des PKI (Public Key Infrastucture).

  5. #5
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par GuiomNantes
    L'utilisateur A possede donc une clé publique et privée, il veut envoyer un message à B. Donc A ecrit son message il l'encode avec sa clé privée, et l'envoie à B .
    Citation Envoyé par GuiomNantes
    mais du coup j'ai une question comment se passe le déchiffrement, car tu dis que A code le message avec sa clé privée
    Attention aux termes que tu emploies. La confusion encodage/chiffrement est fréquente et induit une confusion de concepts dans ton esprit.

    L'encodage c'est l'équivalent du Morse. C'est à dire que les données sont transformées selon une norme de représentation différente. Il n'y a aucune notion de secret là dedans. C'est une manière différente de transmettre la même information : Base64, Quoted-Printable, ...

    Le chiffrement c'est l'équivalent du cryptage de canal + (avec un décodeur ouai je sais ils utilisent pas les bons mots eux aussi). Si tu n'as pas la clé de déchiffrement, les données te resteront innaccessibles :
    RSA, 3DES, AES ...

    Dans les algorithmes de chiffrement il en existe 2 catégories : les symétriques (3DES, AES, ...) et les asymétriques (RSA, ...)

    Les symétriques nécessitent seulement une clef (chaine alphanumérique) pour chiffrer les données à partir de cette clef. La confidentialité repose donc sur le secret de cette clef et tout le problème est la transmission de cette clef entre interlocuteurs.

    Les asymétriques fonctionnent avec des paires de clefs. Chaque interlocuteur a 2 clefs. Une privée (qu'il est donc seul à connaitre et qu'il ne transmet jamais), et une publique qui est accessible à tout le monde.

    Chiffrement :
    Pour envoyer un message chiffré à A, B télécharge la clef PUBLIQUE de A, chiffre le message avec. A récupère le message et déchiffre avec sa clef PRIVEE.
    L'analogie à avoir en tête, c'est comme si A fournissait la serrure pour fermer un coffre. Le coffre étant le message. Et il est le seul à avoir l'unique clef existante permettant d'ouvrir ces serrures.

    Signature :
    C'est en quelque sorte l'inverse. B signe avec sa clef PRIVEE, et A déchiffre la signature avec la clef PUBLIQUE de B. Il obtient alors l'empreinte numérique des données transmises, il ne reste qu'à effectuer la comparaison.

    Pourquoi ces différences de fonctionnement alors que les algos sont les mêmes pour signer et chiffrer ? Je ne sais pas. Ca marche comme ça c'est tout

    Comme te l'as dit George7, c'est un sujet assez complexe qui nécessite pas mal de recherches et de lecture.

    Je te conseille fortement la lecture de Beginning Cryptography with Java de David Hook chez www.wrox.com
    Ça m'a beaucoup aidé. C'est un (ou LE je sais plus) fondateur du projet BouncyCastle.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    Pourquoi ces différences de fonctionnement alors que les algos sont les mêmes pour signer et chiffrer ? Je ne sais pas. Ca marche comme ça c'est tout
    Tout simplement car dans une signature on ne veut pas que les gens ne puissent pas comprendre le message, mais qu'on puisse être sûr que c'est bien la personne qui prétend avoir envoyé le message qui l'a fait. Donc ben comme A est le seul à connaitre sa clef privée, il signe avec, et lui seul peut le faire, et tout le monde grâce à sa clef publique peut la vérifier. Ceci ne marche pas avec un algorithme symétrique, car la clef est la même dans les deux opérations chiffrement/déchiffrement

Discussions similaires

  1. RSA : problème déchiffrement
    Par profsagot dans le forum Débuter
    Réponses: 2
    Dernier message: 26/11/2009, 20h03
  2. RSA problème déchiffrement
    Par el_heinze dans le forum C
    Réponses: 0
    Dernier message: 22/06/2009, 12h13
  3. RSA problème déchiffrement
    Par el_heinze dans le forum Linux
    Réponses: 0
    Dernier message: 22/06/2009, 10h34
  4. Réponses: 11
    Dernier message: 05/09/2008, 15h54
  5. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo