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 :

Java et SSL : comment faire?


Sujet :

Sécurité Java

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut Java et SSL : comment faire?
    Salut,

    Je n'y connais pas grand chose en sécurité/cryptage (les cours concernant ce large domaine sont l'année prochaine ).

    Je souhaiterais sécuriser une communication entre un client et un serveur. Il y a 1 serveur et n clients, et je voudrais que quand le client envoie des données (un mot de passe par exemple), on ne puisse pas le lire par monitoring réseau (par exemple avec wireshark). Certes, on ne peut diffuser que le hash md5, mais le problème reste entier, car si par monitoring on récupère le md5, et que le serveur n'a besoin que du md5, on a tout ce qu'il faut pour se connecter au serveur, même si l'on ne connait pas le mot de passe source.

    J'ai donc pensé à utiliser SSL (le nom sonne bien, on le voit un peu partout sous linux). Donc, comme google est mon ami, j'ai tapé Java SSL et je suis tombé sur plusieurs tutoriels / articles concernant JSSE.

    Le gros problème, c'est qu'il faut côté client utiliser keytool
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    keytool -genkey -v -keyalg RSA -keystore keystore
    et lancer le programme avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Djavax.net.ssl.trustStore=keystore -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword="motdepasse" nomClient
    , ce qui n'est pas envisageable dans le cas de programmes "grand public" (même si ça n'est pas le cas de ce que j'ai à faire ici, mais sur le principe).

    Je voudrais quelque chose comme quand on se connecte en ssh, on indique l'ip, il nous demande si on accepte le certificat, et on fait oui, et voilà, on est connecté et c'est crypté (on ne peut pas décrypter -facilement en moins de 3 mois- les données qui transitent).


    Si vous avez des tutoriels/articles/idées, merci d'avance

    ®om

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 361
    Points : 403
    Points
    403
    Par défaut
    Salut,

    J'utilise Mina pour tout ce qui est I/O (avec java.nio).
    Dans cette lib il y a un filtre pour utiliser SSL lors des communications.

    Voila la source du filtre.

    Je n'en sais pas plus.

  3. #3
    Membre expérimenté Avatar de BainE
    Inscrit en
    mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 1 327
    Points : 1 513
    Points
    1 513
    Par défaut
    SAlut,

    il n existe pas des lib implémentant la pilosophie PGP (pretty good privacy je crois) en java ?

    Sinon cryptage RSA

    Parce que SSL necessite un serveur web non ?
    "vaste programme"

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 361
    Points : 403
    Points
    403
    Par défaut
    Citation Envoyé par BainE
    Parce que SSL necessite un serveur web non ?
    Non pas besoin. C'est dans la couche session il me semble, donc indépendant de ce qu'il y a au dessus comme application.
    Enfin bon ici il ne peut pas utiliser SSL donc bon ...

    RSA c'est un bon moyen vu que seul son serveur pourra décrypter.
    Il y a les interfaces fournies par java mais les implémentations ... ?

  5. #5
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par ®om
    Le gros problème, c'est qu'il faut lancer le programme avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -Djavax.net.ssl.trustStore=keystore -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword="motdepasse" nomClient
    , ce qui n'est pas envisageable dans le cas de programmes "grand public" (même si ça n'est pas le cas de ce que j'ai à faire ici, mais sur le principe).
    Je pense que ces trois options (le trustStore, le keyStore et le mot de passe du keyStore) peuvent être spécifiées directement dans ton code (client) plutôt que dans la ligne de commandes utilisée pour lancer ton client : il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.setProperty("javax.net.ssl.trustStore", "...");
    System.setProperty("javax.net.ssl.keyStore", "...");
    System.setProperty("javax.net.ssl.keyStorePassword", "...");
    Dès lors, pour assurer la confidentialité des données échangées ainsi que l'authentification du serveur auprès des clients, il suffit de
    1. créer un certificat côté serveur
    2. ajouter ce certificat dans le trustStore du client
    3. distribuer ce trustStore avec chaque client


    Si tu désires, en plus, authentifier tes clients côté serveur, il faut
    1. créer un certificat pour chaque client
    2. ajouter ce certificat dans le keyStore du client
    3. gérer l'authentification client côté serveur


    Voilà, j'espère que ça t'aidera.
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  6. #6
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    Bonjour,

    Merci pour vos réponses...

    Concernant l'authentification, j'ai lu qu'elle était optionnelle : ça tombe bien, je n'en ai pas besoin.
    Concernant le RSA, ça sert simplement (en pratique) à crypter des clés pour d'autres algorithmes (crypter tout un message en RSA est inenvisageable, trop coûteux).

    Je précisé que je m'occupe de la partie client (faite en java), le serveur sera réalisé en delphi par quelqu'un d'autre, mais je pense que ça ne pose pas de problèmes.

    J'aimerais donc trouver un exemple tout simple d'une connexion et d'une communication SSL sans authentification (mais juste le cryptage des données).

    Merci d'avance.

  7. #7
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Concernant l'authentification, j'ai lu qu'elle était optionnelle...
    Je pense que seule l'authentification du client côté serveur est optionnelle* : du côté client, je pense que le serveur t'envoie toujours son certificat.
    Dans ton code Java, tu dois donc gérer ce certificat.
    Pour ce faire, tu as deux solutions :
    • la première est d'ajouter le certificat du serveur dans le trustStore que tu renseignes dans ton code (comme expliqué plus haut)
    • la deuxième est de créer un un trustStoreManager qui a confiance en tout le monde (cette alternative est bien entendu moins sécurisée que la précédente)


    [EDIT:] * : optionnelle dans le sens où elle n'est pas imposée par le protocole SSL (mais elle peut très bien être imposée par un serveur)
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  8. #8
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    Citation Envoyé par aJavaDeveloper
    Je pense que seule l'authentification du client côté serveur est optionnelle* : du côté client, je pense que le serveur t'envoie toujours son certificat.
    Le serveur c'est à nous de le créer aussi, il doit y avoir moyen de désactiver ceci...

    De plus, je ne veux pas utiliser l'authentification car (déjà je n'en ai pas besoin, mais en plus) des serveurs il peut y en avoir plusieurs, qu'on ajoute ou qu'on enlève, le client devra taper l'ip du serveur auquel il veut se connecter...

  9. #9
    Membre averti Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : juin 2007
    Messages : 248
    Points : 300
    Points
    300
    Par défaut
    Le serveur c'est à nous de le créer aussi, il doit y avoir moyen de désactiver ceci...
    L'authentification du serveur côté client n'est pas optionnelle, comme tu peux le voir ici : http://www.securiteinfo.com/cryptographie/ssl.shtml.
    Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie.
    Confucius

  10. #10
    Membre expert
    Avatar de Janitrix
    Inscrit en
    octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : octobre 2005
    Messages : 3 391
    Points : 3 399
    Points
    3 399
    Par défaut
    Il existe tout à fait une implémentation de SSL en Java.

    Son utilisation est très simple, car très proche des Socket normaux.

    Il existe deux classes : SSLSocket pour le client et SSLServerSocket pour le serveur.

    Je ne connais pas de bon tutoriels sur ce sujet, tu dois pouvoir facilement en trouver sur le net (il y en a un sur dvp il me semble, je vais te chercher ça). Néanmoins, si le sujet t'intéresse vraiment, tu peux acheter le livre Java Security, de Jamie Jaworski. Bien qu'il peut sembler ancien, ce livre demeure une référence pour tout ce qui concerne l'utilisation de la cryptographie avec Java (enfin, pour moi en tout cas).

    Bon courage

  11. #11
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    J'ai écrit un petit test de serveur... sans gestion des certificats...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class Server {
     
    	public static void main(String... args) throws Exception {
    		int port = 4444;
     
    		ServerSocketFactory serverFactory = SSLServerSocketFactory.getDefault();
    		ServerSocket server = serverFactory.createServerSocket(port);
    		Socket socket = server.accept();
     
    		InputStream in = socket.getInputStream();
    		OutputStream out = socket.getOutputStream();
     
    		System.out.println("return : " + in.read());
     
    		out.write(5);
     
    		in.close();
    		out.close();
    	}
     
    }
    À l'exécution, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" javax.net.ssl.SSLException: No available certificate or key corresponds to the SSL cipher suites which are enabled.
    	at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.checkEnabledSuites(SSLServerSocketImpl.java:303)
    	at com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:253)
    	at ssl.Server.main(Server.java:49)
    Pourquoi faut-il absolument un certificat si on ne veut pas d'authentification? C'est nécessaire juste pour l'encryption des données?
    Si oui, peut-on générer un certificat "à la volée" par le serveur, sans utiliser keytool manuellement, par exemple avec une passphrase générée aléatoirement dans un String (on s'en fout de la clé générée, car on n'utilise pas l'authentification, on veut juste le cryptage)?

    (car c'est vraiment le gros problème des exemples qu'on trouve sur internet, l'utilisation du keytool manuellement)

    Merci de votre aide...

  12. #12
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    En attendant (et par désespoir), j'ai créé une clé avec keytool que j'ai mis sur le serveur et le client (de test).

    Quand je lance le client, dont voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class Client {
     
    	public static void main(String... args) throws Exception {
    		int port = 4444;
    		String hostname = "localhost";
     
    		System.setProperty("javax.net.ssl.keyStore","remotepowerkey");
    		System.setProperty("javax.net.ssl.keyStorePassword","ceciestunkeystore");
     
    		SocketFactory socketFactory = SSLSocketFactory.getDefault();
    		Socket socket = socketFactory.createSocket(hostname, port);
     
    		InputStream in = socket.getInputStream();
    		OutputStream out = socket.getOutputStream();
     
    		out.write(3);
    		System.out.println("return : " + in.read());
     
    		in.close();
    		out.close();
    	}
     
    }
    J'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1520)
    	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:182)
    	at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:176)
    	at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:975)
    	at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:123)
    	at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:511)
    	at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:449)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:817)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1029)
    	at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:621)
    	at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    	at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:73)
    	at ssl.Client.main(Client.java:52)
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285)
    	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191)
    	at sun.security.validator.Validator.validate(Validator.java:218)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)
    	at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)
    	at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:954)
    	... 9 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)
    	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)
    	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:280)
    	... 15 more
    En cherchant sur google, j'ai trouvé cette page : http://blogs.sun.com/andreas/entry/n...unable_to_find
    What this usually means is that the server is using a test certificate (possibly generated using keytool) rather than a certificate from a well known commercial Certification Authority such as Verisign or GoDaddy.
    o_O
    Je ne vais quand même pas m'inscrire à une autorité de certification pour mon petit test minable de connexion ssl. Après sur le site il y a tout un truc expliqué pour contourner cela, c'est super compliqué...


    Je voudrais juste faire le "hello world" de la connexion ssl cryptée, je ne comprends pas comment faire...

    ®om

  13. #13
    Membre expert
    Avatar de Janitrix
    Inscrit en
    octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : octobre 2005
    Messages : 3 391
    Points : 3 399
    Points
    3 399
    Par défaut
    Je trouve ton code un peu léger. Le seul code que j'ai sous la main n'est pas très propre mais il fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SSLSocket talk;
    KeyManagerFactory kmf;
    KeyStore ks;
    TrustManagerFactory tmf;
    SSLContext sslc;
     
    kmf = KeyManagerFactory.getInstance("sunx509");
    ks = KeyStore.getInstance("JKS");
    ks.load(getClass().getResourceAsStream("SSLKeys/ckeystore"),"password".toCharArray());
    kmf.init(ks, "password".toCharArray());
    tmf = TrustManagerFactory.getInstance("sunx509");
    tmf.init(ks);
    sslc = SSLContext.getInstance("TLS");
    sslc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
    SSLSocketFactory sf = sslc.getSocketFactory();
    talk = (SSLSocket) sf.createSocket(serverName, port);
    Et voici le code serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    KeyManagerFactory kmf;
                KeyManager[] km;
                KeyStore ks;
                TrustManagerFactory tmf;
                TrustManager[] tm;
                SSLContext sslc;
                ks = KeyStore.getInstance("JKS");
                ks.load((getClass().getResourceAsStream("SSLKeys/skeystore")), "password".toCharArray());
                kmf = KeyManagerFactory.getInstance("sunx509");
                kmf.init(ks, "password".toCharArray());
                km = kmf.getKeyManagers();
                tmf = TrustManagerFactory.getInstance("sunx509");
                tmf.init(ks);
                tm = tmf.getTrustManagers();
                sslc = SSLContext.getInstance("TLS");
                sslc.init(km, tm, null);
                SSLServerSocketFactory ssf = sslc.getServerSocketFactory();
                server = (SSLServerSocket) ssf.createServerSocket(666);
    Les noms des classes sont assez clairs pour comprendre le code, mais si tu as besoin de plus d'explication, je commenterais le code.

    Bonne chance.

  14. #14
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    Ah, j'ai enfin trouvé quelque chose qui marche (sans définir chaque composante à la main) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class Client {
     
    	public static void main(String... args) throws Exception {
    		int port = 4444;
     
    		TrustManager[] trustAllCerts = { new X509TrustManager() {
     
    			public java.security.cert.X509Certificate[] getAcceptedIssuers() {
    				return null;
    			}
     
    			public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
     
    			public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {}
    		} };
     
    		SSLContext context = SSLContext.getInstance("SSL");
    		context.init(null, trustAllCerts, new java.security.SecureRandom());
     
    		String hostname = "localhost";
     
    		System.setProperty("javax.net.ssl.keyStore", "lekeystore");
    		System.setProperty("javax.net.ssl.keyStorePassword", "lepassword");
     
    		SocketFactory socketFactory = context.getSocketFactory();
    		Socket socket = socketFactory.createSocket(hostname, port);
     
    		InputStream in = socket.getInputStream();
    		OutputStream out = socket.getOutputStream();
     
    		out.write(3);
    		System.out.println("return : " + in.read());
     
    		in.close();
    		out.close();
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public class Server {
     
    	public static void main(String... args) throws Exception {
    		int port = 4444;
     
    		System.setProperty("javax.net.ssl.keyStore", "lekeystore");
    		System.setProperty("javax.net.ssl.keyStorePassword", "lepassword");
     
    		ServerSocketFactory serverFactory = SSLServerSocketFactory.getDefault();
    		ServerSocket server = serverFactory.createServerSocket(port);
    		Socket socket = server.accept();
     
    		InputStream in = socket.getInputStream();
    		OutputStream out = socket.getOutputStream();
     
    		System.out.println("return : " + in.read());
    		out.write(5);
     
    		in.close();
    		out.close();
    	}
     
    }

  15. #15
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2005
    Messages : 2 815
    Points : 3 017
    Points
    3 017
    Par défaut
    Bon maintenant que ça marche en java, il semble y avoir un problème d'interopérabilité des certificats générés par keytool... Il n'est pas possible de les utiliser en delphi?

    Si non, quel outil utiliser pour avoir des clés "portables" (utilisables dans n'importe quel langage)?

Discussions similaires

  1. Connexion SSL? comment faire?
    Par Zan dans le forum Sécurité
    Réponses: 14
    Dernier message: 23/10/2011, 22h35
  2. [IIS 6.0] Installer SSL : Comment faire
    Par *.Har(d)t dans le forum IIS
    Réponses: 0
    Dernier message: 18/12/2008, 15h00
  3. [Réseaux] Comment faire un sniffer en JAVA ?
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 17
    Dernier message: 09/12/2005, 04h24
  4. Réponses: 6
    Dernier message: 05/12/2005, 17h22
  5. Réponses: 5
    Dernier message: 24/11/2005, 00h08

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