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

API standards et tierces Java Discussion :

[javamail] certificat en piece jointe


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut [javamail] certificat en piece jointe
    Bonjour,
    j'aimerai creer une classe java permettant d'envoyer un mail en y intégrant un certificat...
    je ne suis pas developpeur et je vous demande de bien vouloir m'aider...il faut utiliser javamail pour l'envoie de mail mais comment y integrer un certificat...
    avez vous des exemple?

  2. #2
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    il y a des exemples partout sur internet.
    as tu fais des tests ?

    exemple :
    http://www.javaworld.com/javaworld/j...-javamail.html

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut
    merci bcp pour la réponse...

    mon problème c'est que je dois envoyer un mail en Java en Intégrant une certificat (un mail signé) .p12 par exemple.

    Une deuxième question: est que tu sais ou est ce qu'on peut avoir des certificat pour faire des tests?

    je m'excuse si je n'etais pas clair...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par spopo69 Voir le message
    merci bcp pour la réponse...

    mon problème c'est que je dois envoyer un mail en Java en Intégrant une certificat (un mail signé) .p12 par exemple.

    Une deuxième question: est que tu sais ou est ce qu'on peut avoir des certificat pour faire des tests?

    je m'excuse si je n'etais pas clair...
    Salut

    Pour avoir un certificat de tests le mieux est d'en produire toi même. en installant openssl par exemple.
    Une remarque : tu n'envoies jamais l'objet p12 avec un mail, car il contient aussi la clef privée que toi seul est sensé connaitre. D'ailleurs un objet PKCS#12 c'est le certificat plus la clef privée, le tout protégé par un mot de passe.
    Pour un mail signé c'est une enveloppe PKCS#7 qu'il va falloir envoyer avec, contenant le certificat (juste la clef publique donc) et la signature.

    Bref je ne l'ai jamais fait en Java mais il y en a qui ont essayé, et ils ont eu des problèmes. Tu utilises un provider spéial ? (FlexiProvider, BouncyCastle, ...) ou celui par défaut ? JavaMail ?

  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 George7
    Pour un mail signé c'est une enveloppe PKCS#7 qu'il va falloir envoyer avec, contenant le certificat (juste la clef publique donc) et la signature.

    Bref je ne l'ai jamais fait en Java mais il y en a qui ont essayé, et ils ont eu des problèmes. Tu utilises un provider spéial ? (FlexiProvider, BouncyCastle, ...) ou celui par défaut ? JavaMail ?
    C'est très facile avec BouncyCastle, il suffit d'utiliser la classe org.bouncycastle.mail.smime.SMIMEEnvelopedGenerator
    qui permet d'obtenir un MimeBodyPart compatible avec Javamail.

    Il suffit ensuite de construire son mail normalement.

    Pour moi pas de problèmes mais j'ai pas encore fait de vrais gros volumes de tests...

    Citation Envoyé par spopo69
    j'aimerai creer une classe java permettant d'envoyer un mail en y intégrant un certificat...
    je ne suis pas developpeur et je vous demande de bien vouloir m'aider...il faut utiliser javamail pour l'envoie de mail mais comment y integrer un certificat...
    avez vous des exemple?
    Tu n'es pas développeur mais tu dois créer une classe java ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marco46 Voir le message
    C'est très facile avec BouncyCastle, il suffit d'utiliser la classe org.bouncycastle.mail.smime.SMIMEEnvelopedGenerator
    qui permet d'obtenir un MimeBodyPart compatible avec Javamail.

    Il suffit ensuite de construire son mail normalement.

    Pour moi pas de problèmes mais j'ai pas encore fait de vrais gros volumes de tests...
    Ok je ne savais pas avec BouncyCastle. Merci bien pour l'info

  7. #7
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    Oui d'accord mais derniers question pour simuler un keystore ou un CA tu vois une idée?? Car à ce que j'ai cru voir BouncyCastle ne me permet pas d'en gérer non? car il me faut une "unité" qui me permette de recevoir les certificats et de les stocker.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Qu'entends tu par "simuler un keystore ou une CA" ?
    De où proviennent les certificats ? Pour ce la il faut avoir une CA qui s'en occupe.
    Il te faut pouvoir récupérer (à la main si tu le désires) les certificats des gens à qui tu es suceptible d'envoyer un email crypté. Ces certificats tu peux les sauvegarder dans un keystore (un fichier jks fera très bien l'affaire).
    Bref je ne vois aps ton problème là et je ne sais pas non plus ce que tu veux faire exactement (juste envoyer des mails cryptés ou aussi gérer les certificats ?), je ne sais pas ce que tu as déjà fait.
    Je veux juste t'avertir que si tu as besoin de générer des certificats qui vont servir vraiment en production, il vaut mieux faire ça assez rigoureusement pour éviter une énorme faille de sécurité. Bref je ne connais pas la finalité de la chose chez toi, mais s'il ne s'agit "que" d'envoyer des mails cryptés, les liens donnés ici te suffiront, il faut juste savoir comment avec BouncyCastle, on peut charger les certificats d'un keystore.

    Bref j'ai vraiment besoin de plus d'information et je ne suis pas sûr de comprendre tes questions

  9. #9
    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
    pour simuler un keystore ou un CA tu vois une idée??
    Non je vois parce que c'est des choses différentes.
    Un keystore c'est un conteneur à clefs privées et à certificats.
    Un CA c'est une Autorité de Certification (AC en fr donc ...), c'est à dire que c'est un certificat qui représente une organisation à laquelle tu fais confiance pour générer d'autres certificats qui seront signés par un certificat auto-signé représentant cette AC. Un certificat d'AC est donc toujours en bout de chaine et est vital pour vérifier la validité de la chaine.

    Donc tu vois c'est pas pareil. Mais peut être voulais-tu dire : comment stocker un X.509 d'une AC dans un magasin en local ?
    Tu n'as pas besoin de BouncyCastle pour ça, regarde la Javadoc de la JCE de Java6. Fais tes recherches.

    Car à ce que j'ai cru voir BouncyCastle ne me permet pas d'en gérer non?
    BouncyCastle n'est pas une API au sens C++ du terme. C'est à dire qu'elle ne propose pas QUE des fonctionnalités directe. Elle s'intègre en tant que provider dans la JCE. Si tu ne comprends pas ce que je te dis, tu as besoin de faire des recherches
    Les providers de base de la JCE gèrent certains formats, et BouncyCastle en ajoute d'autres ou fournit des implémentations légèrement différentes d'existants (PKCS#12).

    car il me faut une "unité" qui me permette de recevoir les certificats et de les stocker.
    C'est un magasin. (keystore).
    Tu as différents formats. Cf juste ci-dessus.

  10. #10
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    Ok je ré explique je dois creer une application mail sécurisé (s/mime compatible) en intégrant un module cryptho, je dois générer une publique et une private key, pour générer un X509 et cela doit etre associé a un CA pour stocker et retrouver les certificats.
    Maintenat à ca que j'ai cru voir c'est assez difficile de "faire " sois meme les certificats à moins d'utiliser open ssl (je vais voir dans cette voie).... et pour simuler un CA la javaoue ke je vois pas tres bien.
    En gros quand le destinataire et la source n'ont pas la meme publique clé j'indique que le message n'est peut etre pas sécurisé?
    Mais je ne vois pas trop bien l'interet d'utiliser un CA car la clé est déja contenu dans le certificat dc pas besoin de la demander au CA non?

  11. #11
    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
    Wouaw, quel bordel dans ta tête !

    Il te faut lire de la doc générique sur les infrastructures de sécurité à clef publiques sur le net avant de te lancer là dedans sinon tu vas te noyer.

    Ça :
    En gros quand le destinataire et la source n'ont pas la meme publique clé j'indique que le message n'est peut etre pas sécurisé?
    Ça veut absolument rien dire.

    Mais je ne vois pas trop bien l'interet d'utiliser un CA car la clé est déja contenu dans le certificat dc pas besoin de la demander au CA non?
    Une CA signe un certificat utilisateur (de bout de chaine) OU une CA intermédiaire qui elle signe une autre CA Int ou un certificat utilisateur.
    Le fait de signer permet d'avaliser l'origine et le contenu des données du X.509.
    Donc, les CA servent à définir une chaine de certification qui permet de déterminer si tel ou tel certificat est bien authentique..

    Donc ... aucun rapport avec ce que tu dis.

    Maintenat à ca que j'ai cru voir c'est assez difficile de "faire " sois meme les certificats à moins d'utiliser open ssl (je vais voir dans cette voie).... et pour simuler un CA la javaoue ke je vois pas tres bien.
    Un CA est un certificat auto-signé. Rien de + (sauf qqs attributs X.509 spécifiques). L'utilisateur déclare simplement au système qu'il fait confiance à ce CA.

    Non c'est assez facile de faire ça avec BouncyCastle. Il te faut trouver de la bonne doc.

    La meilleure à ma disposition est un bouquin de l'auteur de l'API :
    Beginning Cryptography with Java de David Hook. Ya tout ce que tu demandes dedans.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GuiomNantes Voir le message
    Ok je ré explique je dois creer une application mail sécurisé (s/mime compatible) en intégrant un module cryptho, je dois générer une publique et une private key, pour générer un X509 et cela doit etre associé a un CA pour stocker et retrouver les certificats.
    Maintenat à ca que j'ai cru voir c'est assez difficile de "faire " sois meme les certificats à moins d'utiliser open ssl (je vais voir dans cette voie).... et pour simuler un CA la javaoue ke je vois pas tres bien.
    En gros quand le destinataire et la source n'ont pas la meme publique clé j'indique que le message n'est peut etre pas sécurisé?
    Mais je ne vois pas trop bien l'interet d'utiliser un CA car la clé est déja contenu dans le certificat dc pas besoin de la demander au CA non?
    Attends :
    Un client mail ne DOIS PAS avoir le droit de créer des certificats ni de générer des clefs, mais doit en utiliser des déjà existants.
    Source et destinataire n'ont jamais la même clef publique (c'est tout l'intérêt des clefs publiques). Bref là j'ai vraiment l'impression que tu confonds des choses et que tu ne maîtrises pas vraiment tous les concepts des PKI (Infrastructures à clef publique).
    Ton Thunderbird est capable d'envoyer des mails cryptés mais n'est en aucun responsable de la génération des clefs et des certificats. Pour ça il faut une CA, qui permet de générer des certificats pour les utilisateurs (après contrôle afin de ne pas donner des certificats à tout le monde), de générer des CRL pour indiquer quels certificats on été révoqués afin de garantir l'intégrité des certificats distribués.
    Pour des test tu peux très bien générer tes certificats toi même avec openssl, mais en production ne surtout pas faire ca comme ca si to appli est destinée à être utilisée entre plusieurs personne. Bref là il y avraiment des notions de sécurité à voir (PKI notamment).
    Mais encore une fois, on ne sait toujours pas pourquoi tu veux envoyer des mails cryptés : est-ce toujours entre les même entités statiques, ou plutôt comme un client mail genre thunderbird ?

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Marco46
    Un CA est un certificat auto-signé. Rien de +
    Non une CA racine est autosignée, mais une CA peut très bien être signée par une autre CA

    Sinon oui pareil que Marco46 : rensiegne toi sur les certificats, les PKI, les CA comment ca marche, les grosse failles qui peuvent arriver etc etc... Il vaut mieux se renseigner sur le sujet pour faire un programme qui utilise une PKI ouvertement (avec des utilisateurs qui peuvent être n'importe qui)
    De plus la lecture de l'API de crypto de Java te sera nécessaire pour savoir comment tout ca marche en Java.
    Bref beaucoup de lecture déjà avant de commencer l'implémentation

Discussions similaires

  1. [Javamail] Récupérer les pieces jointes
    Par mrfirefunk dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 05/03/2012, 01h21
  2. [ITEXT et JAVAMAIL] envoyer pdf en piece jointe
    Par maniolo dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 15/05/2009, 14h06
  3. [javaMail] recevoir piece jointe
    Par jc_romeo dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 24/08/2007, 10h29
  4. [Javamail] Pieces jointes
    Par miloux32 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 06/04/2007, 17h05
  5. Indy - email, html et piece jointe
    Par nut62 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 13/12/2002, 10h25

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