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

Développement Discussion :

Sécurisation des échanges sur un réseau en Java


Sujet :

Développement

  1. #1
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut Sécurisation des échanges sur un réseau en Java
    Bonjour,

    J'étudie en ce moment les pistes pour la programmation d'un réseau de serveurs de sockets en Java.

    Les différents serveurs se répartissent les clients automatiquement et agissent finalement comme une grosse entité.

    Je voudrais que les communications entre ces serveurs soient cryptées, et que selon la configuration du réseau, les communications avec les clients puissent l'être également.

    Seul le serveur maitre possède une configuration particulière qu'il réplique sur un nouveau serveur qui se connecte au réseau. Les autres serveurs ne connaissent au départ que l'adresse et le port du serveur maitre.

    Donc, avant la séquence d'initialisation, tous les serveurs esclaves sont strictement identiques.


    Si j'utilise SSL, comment gérer les certificats ? (je n'ai jamais utilisé SSL dans un programme)

    Et si c'est la voie que je prends, il ne me semble pas (à moins que je ne me trompe) que je pourrais utiliser le même port pour des connexions clientes non sécurisées et des connexions d'autres serveurs sécurisées.
    C'est pourtant quelque chose que j'aurais apprécié dans ce cas, mais ce n'est pas non plus indispensable.


    J'attends impatiemment vos lumières.



    PS : Bonne et Heureuse Année !

  2. #2
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    pour la gestion des certificats, ça depend du niveau de sécurité que tu veux ...
    tu peux trés bien avoir qu'un seul certificat 'serveur'.

    ou alors plus compliqué, mais plus sûr si tu as peur que des entités de ton réseaux soient corrompues:
    tu génère un nouveau certificat pour chaque nouvelle entitée que tu crée (client ou serveur)
    le client utilise un certificat pour authentifier son serveur, et chiffre avec son certificat unique.

    en regardant qui utilise quel certificat et à quel moment, tu peux révoquer les certificats qui auraient été "perdu"
    (exemple, le même certificat utilisé par plus d'une entité => le certificat s'est baladé et tes clients ne sont pas des clients autorisé)

    je me relis et je ne sais pas si je suis très clair, surtout sur la deuxieme partie

  3. #3
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Je crois que dans les grandes lignes j'ai à peu près compris ce que tu voulais dire.

    Je verrais d'un bonne œil le fait qu'un serveur ou qu'un client crée un certificat lors de son instanciation, mais la question qui se pose désormais est "Comment mettre cela en œuvre ?".

    Pourrais-tu aller un peu plus loin, s'il te plaît, et m'expliquer comment faire ?

  4. #4
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    puisque tu travaille en java, regarde du coté des packages javax.net.ssl
    mes compétences en java sont malheureusement très limités :S

    soit tu utilise une connexion SSL avec un certificat pour le serveur (c'est amplement suffisant dans la plupart des cas)

    soit tu fait plus compliqué:
    -1-le client une connexion SSL au serveur
    cette connexion ne sers qu'a authentifier le serveur, elle est fermée ensuite
    -2-le serveur se reconnecte au client (avec le certificat du client, toujours en SSL)
    c'est la connexion qui vas réellement servir


    la première méthode à l'avantage d'être simple et la plupart du temps suffisamment 'secure'
    la deuxième méthode rajoute la possibilité de révoquer les certificats des clients corrompus

  5. #5
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Merci beaucoup, je vais me pencher là-dessus.

    Dommage qu'il n'y ait ici de système comme les Duke Stars des forums Sun.

  6. #6
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    J'ai réfléchi un peu plus à la situation et en fait je n'ai nul besoin de l'aspect vérification de l'identité d'un client ou d'un serveur, mais simplement le chiffrement de la communication.
    Ai-je vraiment besoin de SSL ou existe-t-il un autre système de chiffrement par clefs asynchrone efficace ?

  7. #7
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Est-ce que quelqu'un peut me dire de quelle manière générer dans le code un certificat TLS pour sécuriser une connexion.

    Je voudrais générer des certificats à la volée pour chaque connexion.

  8. #8
    Membre éprouvé
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Par défaut
    faut voir si des librairies comme libgcrypt ont des bindings java
    sinon y'as des package pour java, je connais pas, mais y'as surement de quoi générer un certificat

    sinon en dernier recours y'as des outils en ligne de commande (ou un petit prog en C avec la libgcrypt) qui font ça trés bien

  9. #9
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Il est souvent fait référence au certificats X.509, quels sont les différents certificats et quels sont les atouts de chacun ?

  10. #10
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    J'ai trouvé ce que je vais pouvoir implémenter à cette adresse ==> http://www.authsecu.com/nntp/comp-la...encryption.htm

    Chiffrement des échanges par clés asymétriques grâce à l'algorithme RSA.

    L'API a utiliser est Java Cryptographic Extension (JCE).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste des postes sur le réseau
    Par Houssem dans le forum WinDev
    Réponses: 1
    Dernier message: 04/08/2006, 20h46
  2. extinction des postes sur mon réseau
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 09/06/2006, 23h54
  3. Réponses: 2
    Dernier message: 19/12/2005, 20h11
  4. [serveur de mail] Partager des mails sur un réseau
    Par FFF dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 03/10/2005, 12h39

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