Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2011, 17h01   #1
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Par défaut générateur de clés de cryptage asymétrique

Bonjour,

existe-t-il une librairie javascript qui permette de générer une clé rsa (ou autre algo asymétrique) privée, publique, et d'encoder et de décoder des fichiers avec ces clés ? j'ai pas trouvé...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 08h35   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Ben ici, il est surtout question de JavaScript dans le navigateur et à ce niveau, générer une clé privée n'est rien moins qu'un non sens.
Ceci dit, il existe des librairies JavaScript serveur qui semblent faire ça. Par exemple Node.js
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h25   #3
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
Ben ici, il est surtout question de JavaScript dans le navigateur et à ce niveau, générer une clé privée n'est rien moins qu'un non sens.
Ah? Pourquoi?
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h32   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Ben parce que si tu génères la clé privée dans le navigateur, tout le monde y aura potentiellement accès... ce qui n'est habituellement pas le but recherché
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h41   #5
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
désolé de bugguer comme ça, je connais pas assez bien ces points là, mais comment quelqu'un d'extérieur pourrait accéder à ma clé privée? Comment il devrait s'y prendre pour faire ça?
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h55   #6
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
j'ai peut-être trouvé quelque chose ici : http://shop-js.sourceforge.net/crypto2.htm

malgré tout je reste curieux de ta réponse Bovino
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h59   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
C'est juste qu'en général, JavaScript s'exécute sur une page Web, que cette page Web est donc potentiellement accessible par tout le monde et donc le code de création de ta clé aussi.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h03   #8
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
le code de création? tu veux dire l'algo ? oO
Ben l'algo de RSA est bien accessible à tout le monde. Pourtant on n'a pas abandonné le ssl...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h32   #9
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
bon, j'ai trouvé ça aussi : http://www-cs-students.stanford.edu/~tjw/jsbn/rsa2.html,

mais j'ai absolument aucune idée de comment les utiliser... je vois des e, des n, des d, p, q, etc, plein de fonctions prenant en compte différents paramètres, mais je n'ai absolument aucune idée de comment générer un paire clé publique/clé privée, et les utiliser pour crypter/décrypter...

Si quelqu'un est plus à l'aise que moi avec la crypto...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h38   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Citation:
Envoyé par Sharcoux
le code de création? tu veux dire l'algo ? oO
Ben l'algo de RSA est bien accessible à tout le monde. Pourtant on n'a pas abandonné le ssl...
L'algo c'est une chose, le code de création, c'est ce qui va te permettre d'utiliser l’algorithme avec des paramètres déterminés qui permettront de générer la clé. Du coup, si ces paramètres sont accessibles, alors la clé le sera aussi.

Ceci dit, j’admets que j'ai peut-être été un peu excessif dans mon jugement
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h46   #11
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
L'algo c'est une chose, le code de création, c'est ce qui va te permettre d'utiliser l’algorithme avec des paramètres déterminés qui permettront de générer la clé. Du coup, si ces paramètres sont accessibles, alors la clé le sera aussi.

Ceci dit, j’admets que j'ai peut-être été un peu excessif dans mon jugement
Euh... ouais, parce que sur la page web tu trouveras que l'algo. Les paramètres ils seront déterminés lors de l'exécution sur la machine du client.

Sinon, je suis toujours preneur si quelqu'un a trouver un script de cryptage et qu'il arrive à l'utiliser... Parce que pour le moment y a rien qui marche...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 12h06   #12
Membre Expert
 
Avatar de kdmbella
 
Homme Demazy Mbella
Développeur Web
Inscription : août 2010
Messages : 620
Détails du profil
Informations personnelles :
Nom : Homme Demazy Mbella
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2010
Messages : 620
Points : 1 470
Points : 1 470
je pense que tu devrait encore relire la théorie sur RSA et celle sur les clés privées avant de chercher la solution a ton problème !

__________________
Trois personnes peuvent garder un secret si deux d'entre elles sont mortes. :Benjamin Franklin
L'humanité se divise en trois catégories : ceux qui ne peuvent pas bouger, ceux qui peuvent bouger, et ceux qui bougent : Benjamin Franklin
Le hasard, c'est le déguisement que prend Dieu pour voyager incognito: Albert Einstein
bon je m'arrête là au risque de me faire buter
kdmbella est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/07/2011, 14h42   #13
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Merci du conseil, mais comme tu ne m'explique pas ce qui te pousse à dire ça, ça ne m'aide pas beaucoup...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 01h51   #14
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 868
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 868
Points : 1 375
Points : 1 375
En fait le problème repose sur la génération de ta clé privée sans la recevoir du serveur sinon ça sert à rien de crypter tes données sur le reseau si on a pu intercepter la clé de décryptage juste avant.

Et comme il n'existe pas d'algo pour générer des nombres premiers(clé privés) je ne vois pas comment le client pourrait en obtenir une sans la récupérer sur le réseau.


En fait si, j'imagine bien un moyen un peu compliqué. Le serveur possède un clé privée et t'envoie une clé publique pour que tu puisses lui envoyer des messages privés.

Après il te suffit de générer un grand nombre aléatoire(très grand) et de l'envoyer au serveur. En supposant que le serveur ait accès à une grande base de données de clés privées, il pourrait en choisir une aléatoirement à t'envoyer. A laquelle il soustrairait d'abord le nombre que tu lui as envoyé.

Il t'enverrait donc(de façon non cryptée) une clé tronquée d'une valeur que seul toi et lui connaissez. Il te suffirait donc du coté client et recoller les morceau et ainsi obtenir ta clé privée. De là tu pourras générer des clés publiques et les distribuer. Par exemple au serveur qui enfin à son tour pourra t'envoyer des donner cryptées.

Si je ne dis pas de bêtises ?
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 10h07   #15
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
pourquoi on ne pourrait pas envoyer au client un fichier contenant un très grand nombre de nombres premiers? Il n'aurait alors plus qu'à en choisir au hasard dans la liste...

Citation:
comme il n'existe pas d'algo pour générer des nombres premiers
Euh... C'est pas tout à fait vrai : !n - 1 est premier. Mais je vois ce que tu veux dire
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 10h36   #16
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 868
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 868
Points : 1 375
Points : 1 375
Citation:
Envoyé par Sharcoux Voir le message
Euh... C'est pas tout à fait vrai : !n - 1 est premier. Mais je vois ce que tu veux dire
Génial, tu es un génie qui vient de révolutionner la création des nombres premiers ! .... oups ah non, (!5-1) = 119 = 7*17 zut alors !

En dehors du fait de ce que tu dis est faux, même en supposant que ça aurait pu être vrai, ça aurait généré un nombre beaucoup trop restreint de nombres qui aurait croient de façon factoriel(donc dépassant l'exponentiel à partir d'une certaine valeur) ce qui aurait vachement limité le nombre de clé, donc facilement retrouvable à moins d'en générer des infiniment grandes ce qui auraient été impossible à utiliser vu la lenteur des calculs de cryptage à partir d'un certain point.
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 10h57   #17
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 868
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 868
Points : 1 375
Points : 1 375
Citation:
Envoyé par Sharcoux Voir le message
pourquoi on ne pourrait pas envoyer au client un fichier contenant un très grand nombre de nombres premiers? Il n'aurait alors plus qu'à en choisir au hasard dans la liste...
Bon, disons que pour avoir un minimum de sécurité, une clé doit avoir être écrite de minimum 50 chiffres(pour l'exemple, certains me diront qu'il en faut plus ou moins) donc une valeur de 10^50. (taille = 50 octets)

Maintenant, supposons que tu en envois 10.000.000.000, (bah oui, si tu n'en envoies que 2-3 le hacker aura vite fait le tour de ta liste avec un algo) donc 50octets * 10.000.000.000 = 500Go. J'espère que tu as ta réponse et que tu comprends pourquoi ce n'est pas possible pour une page web. (et encore, il me semble évident que 10 milliards c'est encore bien trop peu, même si je n'ai jamais testé ni de chiffres sous la main qui en parle.)

En plus, le hacker aura toujours toutes les clés "potentielles". Or il n'existe pas de liste exhaustible des nombres premiers. En tout cas pas à partir du moment où les valeurs deviennent intéressante pour du cryptage. (> 10^50).


edit: bon dis nous simplement ce que tu voulais faire, on pourra sans doute te donner une solution plus adaptée.

usage de page sécurisée "https" ?
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h17   #18
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
Génial, tu es un génie qui vient de révolutionner la création des nombres premiers ! .... oups ah non, (!5-1) = 119 = 7*17 zut alors !
euh... Oui, en fait, j'ai mélangé avec autre chose, dsl, vieux souvenirs

Désolé.

Par contre, il y a quand même quelque chose que je ne comprends pas : les générateurs rsa actuels (celui que tu peux exécuter depuis le shell par exemple), ne prennent pas 500Go d'espace disque. Ca signifie donc qu'il y a bien un moyen de générer ces clés, sans en faire un stock de 10.000.000.000, non?
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 11h35   #19
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 868
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 868
Points : 1 375
Points : 1 375
Citation:
Envoyé par Sharcoux Voir le message
euh... Oui, en fait, j'ai mélangé avec autre chose, dsl, vieux souvenirs

Désolé.

Par contre, il y a quand même quelque chose que je ne comprends pas : les générateurs rsa actuels (celui que tu peux exécuter depuis le shell par exemple), ne prennent pas 500Go d'espace disque. Ca signifie donc qu'il y a bien un moyen de générer ces clés, sans en faire un stock de 10.000.000.000, non?
Désolé, je ne connais pas le générateur en question.

Mais il existe plusieurs solution:
1) soit réclamer une clé au serveur( en la cryptant d'une façon ou d'une autre) (je pense que c'est le cas des connexions sécurisées https)

2) soit avoir un stock lors de l'installation (pas besoin d'en avoir 10 milliards, je disais 10 milliards dans le cas où tu le recevrais par le reseau en visible pour que le hacker ne puisse savoir choisir laquelle. on peut ici supposer que tu l'as installé avec un disque ou que le petit nombre que tu as reçu, tu l'as reçu de façon crypté.) (je pense que beaucoup de serveurs ont leurs stock [qu'ils renouvellent ou non en permanence])

3) un vrai générateur, si tu veux les générer dans un temps court, je pense qu'un ordi peut facilement en générer des de taille de 50 caractères (valeur ~10^50) avec un bon algo, après je ne connais pas les limites de javascript dans un navigateur. Et ça risque fort de déprendre de ton visiteur. (nb: je pense que le générateur utilise des algo pour créer des nombres potentiellement premiers et puis les testes pour vérifier qu'ils le sont bien, et si ce n'est pas le cas, en essaye un autre).
Willpower est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 13h09   #20
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
Citation:
je pense que le générateur utilise des algo pour créer des nombres potentiellement premiers et puis les testes pour vérifier qu'ils le sont bien, et si ce n'est pas le cas, en essaye un autre
Oui, c'est probable, mais du coup, ça me parait parfaitement réalisable en javascript... D'où retour à la case départ...
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h01.


 
 
 
 
Partenaires

Hébergement Web