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

JavaScript Discussion :

générateur de clés de cryptage asymétrique


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    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é...

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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?

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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é

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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...

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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...

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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...

  12. #12
    Expert éminent
    Avatar de kdmbella
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2010
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 799
    Points : 7 038
    Points
    7 038
    Par défaut
    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 !


  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Merci du conseil, mais comme tu ne m'explique pas ce qui te pousse à dire ça, ça ne m'aide pas beaucoup...

  14. #14
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    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 ?

  15. #15
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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...

    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

  16. #16
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    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.

  17. #17
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    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" ?

  18. #18
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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?

  19. #19
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    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).

  20. #20
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    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...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Cryptage asymétrique en java
    Par loic911 dans le forum Sécurité
    Réponses: 2
    Dernier message: 21/05/2016, 22h49
  2. Générateur de clés de validation (besoin d'être testé)
    Par Demystificator dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 31/05/2010, 20h21
  3. Réponses: 11
    Dernier message: 03/11/2009, 15h20
  4. Clés de cryptage en dure?
    Par kach23 dans le forum 4D
    Réponses: 1
    Dernier message: 07/04/2007, 06h44
  5. Clé de licence / Cryptage asymétrique
    Par Arnard dans le forum Sécurité
    Réponses: 7
    Dernier message: 27/02/2007, 11h38

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