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 :

[BouncyCastle] vérifier signature détachée


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Par défaut [BouncyCastle] vérifier signature détachée
    Bonjour,

    Je débute en cryptographie et j'ai mis en pratique le super tutoriel Cryptographie avec Bouncy Castle de nyal. Bravo c'est vraiment bien fait et j'ai beaucoup appris.

    L'exemple de code pour vérifier une signature procède à la vérification pour une signature attachée au document original à signer.

    Pour mon travail mon problème est que j'ai le document à signer + une signature distincte (sous forme de fichier Pk7) et que je dois procéder à la vérification avec ça.

    Comment procéder ? Dois-je trouver une moyen de concaténer "bêtement" les deux fichiers puis lancer la vérification ? Je n'ai pas encore essayé, ça paraît un peu simpliste comme idée [je répète que je débute, hein ]. Evidemment je n'ai pas la clé privée de la personne qui a signé le document.

    Quelqu'un peut-il me donner la piste SVP ? Je ne pense pas être le premier sur Terre à vouloir faire ça En parallèle après avoir parcouru les forums je vais faire des recherches sur Google.

    D'avance merci !

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 40
    Par défaut
    Exemple de methode pour verifier la signature detachee (KeyTool IUI 2.0), a adapter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private boolean _verifyDetachedSignature(
            String strCrtSigAlgo,
            byte[] bytsText,
            PublicKey pkyPublic,
            byte[] bytsSignature)
                throws Exception
        {
             Signature sig = Signature.getInstance(strCrtSigAlgo, "BC");
             sig.initVerify(pkyPublic);
             sig.update(bytsText);
     
             return sig.verify(bytsSignature);      
        }
    "BC" pour "BouncyCastle"

  3. #3
    Invité de passage
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Par défaut Ça marche, mais...
    ... quand on utilise bouncy castle pour génerée la signature détachée (PKCS#7) , le resultat c'est pas la signature qu'on a besoin pour utilizer avéc cette example qui vous présente.

    PS: Pardon le français, mais je ne parle ni écrit trés bien. Je suis Portugais :c )

    Comment-faire pour détacher seulement la signature qu'on a besoin pour la validation?

    // Generation du fichier CMS/PKCS#7
    // L'argument deux permet de signifier si le document doit être attaché avec la signature
    // Valeur true: le fichier est attaché
    // Valeur false: le fichier est détaché (c'est le cas ici)

    CMSSignedData signedData = signGen.generate(content, false, "BC");
    byte[] signeddata = signedData.getEncoded();

    signeddata n'est pas le signature seulement. Il y a quelquer chose plus (le certificat publique?) et il va retourner false à la validation!

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 40
    Par défaut CMS
    Citation Envoyé par mbarbosa Voir le message
    ... quand on utilise bouncy castle pour génerée la signature détachée (PKCS#7) , le resultat c'est pas la signature qu'on a besoin pour utilizer avéc cette example qui vous présente.

    CMSSignedData signedData = signGen.generate(content, false, "BC");
    byte[] signeddata = signedData.getEncoded();

    signeddata n'est pas le signature seulement. Il y a quelquer chose plus (le certificat publique?) et il va retourner false à la validation!

    C'est different avec une signature de type CMS (Cryptographic Message Syntax) generee par "bouncyCastle".
    tu peux utiliser la methode "BC"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    boolean SignerInformation.verify(...);

  5. #5
    Invité de passage
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Par défaut signature détachée
    Voici la solution :
    //chargement du fichier signé
    File file_to_sign = new File("toto.doc");
    int taille = (int)file_to_sign.length();
    byte[] buffer = new byte[taille];
    DataInputStream in = new DataInputStream(new FileInputStream(file_to_sign));
    try {
    in.readFully(buffer);
    in.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    //validation
    CMSProcessableByteArray content = new CMSProcessableByteArray(buffer);
    CMSSignedData sig = new CMSSignedData(content, signature);
    SignerInformation signer = (SignerInformation)sig
    .getSignerInfos().getSigners().iterator().next();

    CertStore cs = sig
    .getCertificatesAndCRLs("Collection", "BC");
    Iterator iter = cs.getCertificates(signer.getSID()).iterator();
    X509Certificate certificate = (X509Certificate) iter.next();

    boolean v = signer.verify(certificate, "BC");
    return v;

Discussions similaires

  1. Vérifier signature XML SOAP dans service WCF
    Par dev.Amok dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 30/03/2011, 10h24
  2. Réponses: 3
    Dernier message: 22/01/2009, 09h15
  3. [crypto] Vérifier signature RSA-SHA1
    Par Donniebrasko dans le forum C++
    Réponses: 0
    Dernier message: 17/12/2008, 19h30
  4. [BouncyCastle] Co-Signature d'un document
    Par Eleyone dans le forum Sécurité
    Réponses: 3
    Dernier message: 26/11/2008, 16h52
  5. Réponses: 9
    Dernier message: 29/03/2007, 10h59

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