Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/09/2008, à 18:24

Arcane

Question de noob:comment on cache une chose dans un systeme opensource

Bonjour à tous, je suis pas sur d'etre dans la bonne catégorie mais je vais poser ma question:

Comment est ce que l'on (ou comment le systeme) fait pour cacher une clé d'accès par exemple une clé pour du cryptage dans un système open source donc, où tout est en libre accès et consultation.

Voila je suis désolé du niveau de ma question mais ca fait super longtemps que je me la pose.
++

Hors ligne

#2 Le 29/09/2008, à 18:27

siick

Re : Question de noob:comment on cache une chose dans un systeme opensource

Tout est libre d'accès effectivement... le code source oui , mais TON pc n'est pas open source lui tout n'est pas libre d'accès dessus et heureusement.

Hors ligne

#3 Le 29/09/2008, à 18:50

Arcane

Re : Question de noob:comment on cache une chose dans un systeme opensource

Ok mais dernier truc, il y a un code d'acces pour accéder à ton pc (genre celui que tu utilise pour te logger en root et qui t'autorise à tout faire) et celui est forcément stocké en clair puisque l'ordi en a besoin pour démarrer. C'est le serpent qui se mord la queue...

Exemple de merde: en 1ere j'avais une calculette (une ti-82) avec la fonction pour faire des programmes et je m'étais posé la question comment mettre un mot de passe pour lancer un programme? Mais le seul truc que je pouvais faire (jsuis pas informaticien non plus) c'était de le mettre dans le programme sus-dité qui était lisible en clair et donc il suffisait de lire sur une certaine ligne mon mdp. Pourquoi donc c'est pas la meme chose?

Voila j'espere avoir été assez clair.
++ et merci

Dernière modification par Arcane (Le 29/09/2008, à 18:52)

Hors ligne

#4 Le 29/09/2008, à 19:05

R@ND@LL

Re : Question de noob:comment on cache une chose dans un systeme opensource

Bah pourquoi stocké en clair?
L'ordi peut bien le stocker en héxadécimal, en binaire, en ce qu'il veut... Limite en Ascii art!
Il sait le lire couramment, ce qui n'est pas le cas de la plupart des gens qui pourraient aller fouiner dans ton système.

Pas besoin de le mettre en clair du tout. (C'était un des problèmes de Mac OS X, si je me rappelle bien, dans ses premières versions, le mot de passe de l'administrateur était en clair dans un fichier texte... Pas top niveau sécurité)

Je ne sais pas comment GNU/Linux stocke son mot de passe, mais je doute que ce soit en clair, sinon, il n'équiperait pas une grande partie des serveurs de la planète big_smile

(Ca ferait froid dans le dos, ça...)


Si l'amour est aveugle, il faut palper.
Pourquoi remettre à deux mains ce qu'on peut faire à une seule?
(J'en ai plein des comme ça, si vous voulez passer pour un abruti en société...)

Hors ligne

#5 Le 29/09/2008, à 19:11

Arcane

Re : Question de noob:comment on cache une chose dans un systeme opensource

Oui mais qu'il soit en hexadécimale ou en ascii c'est pas un probleme pour un pc.
Et au pire, tu dis toi meme que certaines personnes peuvent le lire et donc pourrait trouver ton mot de passe  en 'pseudo-compréhensible-pour-un-humain' dans un fichier.

Franchement je comprends pas...
Dsl

Hors ligne

#6 Le 29/09/2008, à 19:35

Benjdev

Re : Question de noob:comment on cache une chose dans un systeme opensource

Il est crypté, avec un algorithme que ton pc connais... mais pas les autres !

[EDIT] Petite faute d' Aurtôgraffe... peut-être mon sens du rythme...

Dernière modification par Benjdev (Le 29/09/2008, à 19:38)


Boire du café empêche de dormir. Par contre, dormir empêche de boire du café. "L'excellent du chat", Geluck
Fibré, chez red... Enfin, internet une semaine sur deux quoi !
coinbase.com/join/devine_za3?

Hors ligne

#7 Le 29/09/2008, à 19:49

kaer

Re : Question de noob:comment on cache une chose dans un systeme opensource

Première remarque, ton système est connu et tous les algos qu'il utilise mais pas ses données et en particulier les clés générées par ce système.

Sinon, ce que tu as besoin de comprendre je pense c'est les fonctions de "hash" (et peut-être aussi la cryptographie asymétrique). Ces fonctions de hash sont des fonctions qui ont la particularité de produire un résultat à partir duquel on ne peut pâs retrouver l'élément qui a permis de le calculer. Donc tu rentres un nouveau mot de passe, le systéme calcule et stocke en "clair" le hash calculé à partir de ton mot de passe MAIS PAS ton mot de passe lui-même. La fois suivante, tu rentres ton mot de passe, le hash est recalculé et si c'est le même tu es identifié.

Bon c'est trés résumé et simplifié mais ça donne une idée j'espère.

Si tu veux une idée de comment on utilise ça en python, tu peux lire cette page par exemple:
http://forum.hardware.fr/hfr/Programmation/Python/crypter-decrypter-pass-sujet_53908_1.htm

Le module SHA est "deprecated" au profit de hashlib mais ça donne une idée. Si tu lis l'anglais, la doc de hashlib: http://docs.python.org/lib/module-hashlib.html

Dernière modification par kaer (Le 29/09/2008, à 20:03)

Hors ligne

#8 Le 29/09/2008, à 21:05

Benjdev

Re : Question de noob:comment on cache une chose dans un systeme opensource

@kaer : Oui, effectivement, l'algo est le même, ce sont ses résultats qui ne sont pas connus... mais je n'aurais pas fait mieux que ta réponse !;) (j'ai des difficultés d'expression quand ça se rapproche des math... je devrais arrêter de les enseigner...:/)


Boire du café empêche de dormir. Par contre, dormir empêche de boire du café. "L'excellent du chat", Geluck
Fibré, chez red... Enfin, internet une semaine sur deux quoi !
coinbase.com/join/devine_za3?

Hors ligne

#9 Le 29/09/2008, à 21:22

Arcane

Re : Question de noob:comment on cache une chose dans un systeme opensource

Ok je commence à cerner le truc.
Mais (dis moi si c'est dans les liens que tu m'as filé) je pense qu'on aura un truc sans fin, on doit pouvoir remonter à comment la fonction hash créé son mdp, càd que cette fonction (que je suppose opensource) à un algorythme qui lui permet de créer un hash à partir d'un mdp et de le comparer sans écrire clairement ce mdp sur le disque; cependant (et la je vais peut etre dire une grosse connerie) mais il ne me semblait pas que le 'hasard' existait en informatique et que donc on pourait remonter au mdp grace au hash en voyant comment celui ci a été créé (en étudiant l'algo de la fonction hash).

Eh bah je sais pas si je suis clair mais merci de m'aider à comprendre.
Je vais regarder tes liens kaer.
++

Dernière modification par Arcane (Le 29/09/2008, à 21:23)

Hors ligne

#10 Le 29/09/2008, à 22:49

Benjdev

Re : Question de noob:comment on cache une chose dans un systeme opensource

Le seul moyen c'est le "bruteforce", ou force brute je pense : en voyant le hash on ne peut pas remonter au mot de passe (en voyant Exc**, le célèbre tableur, marcher, on ne peut pas remonter au code... et aucun hasard là-dedans).
On peut juste faire tourner l'algorithme à la limite jusqu'à avoir le même hash... ça risque d'être long ! (de même que l'on peut recréer un code pour refaire Exc** à l'identique... mais c'est long, il on a toujours de légères différences...)


Boire du café empêche de dormir. Par contre, dormir empêche de boire du café. "L'excellent du chat", Geluck
Fibré, chez red... Enfin, internet une semaine sur deux quoi !
coinbase.com/join/devine_za3?

Hors ligne

#11 Le 29/09/2008, à 23:09

Kanor

Re : Question de noob:comment on cache une chose dans un systeme opensource

Je sais que pour le hash le plus utilisé il existe des base avec la correspondance avec tous les mots des différent dico donc il est vraiment pas conseillé de mettre un mot commun comme mot de passe

Hors ligne

#12 Le 29/09/2008, à 23:15

z6p

Re : Question de noob:comment on cache une chose dans un systeme opensource

Ben en fait ton mdp est chiffré avec un algo non réversible : ton mot de passe donne un hash, et c'est lui qui est stocké. Retrouver le mdp à partir du hash n'est pas possible, mais il existe comme le dit Kanor des tables de correspondance. Lorsque tu te loggue, ton pc hashe le mdp que tu rentre et compare l'empreinte avec celle présente sur ton pc.

les hash des  mdp sont stockés dans /etc/shadow il me semble ...

Maintenant l'algo des hashage est connu, c'est juste que dans un sens on sait calculer, et dans l'autre ca prendrait tres longtemps ...

Si ca interesse quelqu'un je ressortirai mes cours sur le chiffrement en informatique, on avait étudié ca à l'IUT

Dernière modification par z6p (Le 29/09/2008, à 23:19)

Hors ligne

#13 Le 01/10/2008, à 15:31

Copernicus

Re : Question de noob:comment on cache une chose dans un systeme opensource

Sur Wikipedia recherche ces mots-clé :

Cryptographie (portail) http://fr.wikipedia.org/wiki/Portail:Cryptologie
fonction de hachage
MD5 (celui de windows)
Blowfish
....

Bonne lecture :-)


_______________________________________
Copernicus "The Big Newbie" from Alionet ;-)
Ubuntu LTS 6.06 - AMD 3500+ 1Go Nvidia 6800 GS
SuSE 10.1 - AMD 1800+ 1Go Ati 8500

Hors ligne

#14 Le 01/10/2008, à 15:54

Nasman

Re : Question de noob:comment on cache une chose dans un systeme opensource

Je pense qu'il existe plusieurs mots de passe qui conduisent au même hash - mais il faut avoir un bol monstrueux pour tomber sur un qui marche.
Nota: le hash md5 d'une iso ubuntu fait 128 bits (16 octets) si je ne me trompe pas. Celà veut dire qu'il y a beaucoup moins d'informations dans le hash md5 que dans le fichier originel d'environ 700 Mo.
A mon avis si tu calcules le hash md5 d'une image iso et que tu trouve celui d'une distribution, il y a de très fortes chances que ton iso soit celui de la distribution en question et non pas un fichier qui donnerait la même chose par pur hasard.

Dernière modification par Nasman (Le 01/10/2008, à 15:55)


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#15 Le 01/10/2008, à 17:16

Zakhar

Re : Question de noob:comment on cache une chose dans un systeme opensource

Arcane a écrit :

Ok je commence à cerner le truc.
Mais (dis moi si c'est dans les liens que tu m'as filé) je pense qu'on aura un truc sans fin, on doit pouvoir remonter à comment la fonction hash créé son mdp, càd que cette fonction (que je suppose opensource) à un algorythme qui lui permet de créer un hash à partir d'un mdp et de le comparer sans écrire clairement ce mdp sur le disque; cependant (et la je vais peut etre dire une grosse connerie) mais il ne me semblait pas que le 'hasard' existait en informatique et que donc on pourait remonter au mdp grace au hash en voyant comment celui ci a été créé (en étudiant l'algo de la fonction hash).

Eh bah je sais pas si je suis clair mais merci de m'aider à comprendre.
Je vais regarder tes liens kaer.
++

La cryptograhie est une très belle science et très difficile à comprendre wink

Je vais essayer de résumer/vulgariser !

Tu as trois techniques communément utilisées selon les cas :

- La technique de la clé secrète
elle permet un excellent cryptage/décryptage, aussi puissant que la clé est longue.
C'est la technique que tu décris avec ta calculatrice.
Cette technique a cependant une grosse faiblesse que tu as bien vue : la clé secrète.
En effet, il faut bien protéger cette clé, sinon tout ce que tu as crypté avec est perdu.
Et bien sûr, la protéger avec une autre clé secrète n'a pas d'intérêt, tu l'as bien vu aussi... vu que tu ne fais que reporter le problème sur la nouvelle clé secrète.

C'est pourquoi de brillants mathématiciens ont inventé la
- technique du "hash"
Cette technique consiste à produire une empreinte à partir de l'élément à protéger.
Un peu comme si on prenait ton empreinte digitale.
On va te demander de présenter ton doigt, et si on retrouve la même empreinte, on présumera que c'est toi, sans avoir besoin de ta photo en entier.
Cette technique est très intéressante dans les cas où on n'a pas besoin de retrouver l'original du message. En effet, c'est une technique irreversible.... et même si tu connais l'algorithme, il ne te servira à rien.
Irreversible ça veut dire que tu peux crypter, mais pas décrypter. C'est très vulgarisé, parce qu'en réalité tu ne cryptes pas, l'image de l'empreinte est meilleure. En effet, si je te présente une empreinte, il ne t'es pas possible de remonter à la personne car de l'information a été "détruite" : de ta photo entière, je n'ai gardé que l'empreinte digitale.
Pour un mot de passe ça suffit, puisqu'en appliquant la même technique tu pourras comparer que le résultat est bien identique.
La nuance, comme le signale Nasman, l'algorithme n'est bien sûr pas bijectif. Il existe donc plusieurs mots de passe qui vont donner un résultat identique, mais la chance que ça t'arrive est inversement proportionnelle à la longueur du hash.

Pour te donner une idée, suppose que tu sois capable de tester 1 milliards de mots de passe à la seconde, tu tomberas sur une empreinte identique tous les 10 millions de milliards de milliards d'année avec un MD5 à 128bits !
C'est donc même plus fiable que ton empreinte digitale.

Le "hash" est donc idéal. Si ce n'est pas assez fort tu peux augmenter la taille de la "signature" sans problème. Mais il a un immense inconvénient, il n'est pas réversible.

Il n'est donc pas du tout adapté à des choses que tu veux cacher puis retrouver ensuite en les "décryptant". Par exemple un message que tu veux échanger avec des amis.


La dernière technique qui a été trouvée par des mathématiques encore plus géniaux est :
- la technique de clé asymétrique.
Une clé asymétrique est en fait une paire de clé.
Elle est composée d'une clé publique et d'une clé privée.
La clé privée doit bien sûr être protégée. Mais une technique de hash décrite plus haut appliquée sur les mots de passe de ton système devrait bien marcher pour en garder l'accès.

La clé publique est publique... comme son nom l'indique.
Si quelqu'un veut envoyer un message, il le crypte avec la clé publique.
Seul le possesseur de la clé privée sera capable de décrypter.

Après, comme toute technique de protection, le tout est le temps qu'il te faut pour décrypter. Avec le hash tu vois que c'est considérable, avec une bonne clé asymétrique le temps pour attaquer en force brute est aussi énorme.
Là il faut que tu me crois sur parole, parce que ça fait appel à des domaines des mathématiques que l'on effleure à peine en Math Spé, comme les fonctions elliptiques tongue

Cette technique marche aussi très bien pour la vérification d'identité (SSL)
Tu veux vérifier que le serveur auquel tu es connecté est bien celui qu'il dit être:
- tu choisis un message au hasard : "Bonjour le monde !" par exemple
- tu le cryptes avec la clé publique du serveur
- le serveur le décrypte (lui seul peut le faire car il faut la clé privée pour ça)
- le serveur applique dessus une technique de "hash" (empreinte) connue, genre MD5 et renvoit la réponse
- tu vérifies, en appliquant le même MD5 à ta phrase d'origine, que tu as bien correspondance.

Même si quelqu'un a "écouté" la séquence et bien tout noté, il ne pourra même pas se faire passer pour le serveur puisque la fois d'après tu vas prendre une toute autre phrase et donc tout sera changé.

Par contre la technique que tu as employée avec ta calculatrice pour dissimuler le mot de passe s'appelle de la stéganographie. Bon, là tu l'as faite un peu basique, mais tu peux avec cela cacher des informations dans une image. Ces techniques ont une aura un peu noire car elles sont employées par des personnes peu scrupuleuses et je ne m'y attarderais donc pas plus.

Dernière modification par Zakhar (Le 01/10/2008, à 17:18)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#16 Le 01/10/2008, à 21:02

Arcane

Re : Question de noob:comment on cache une chose dans un systeme opensource

Putain bah Zakhar ca c'est de la réponse.

Merci de m'avoir éclairé (les differentes techniques), même si je comprends pas tout: genre 'impossible à decrypter' mais ca il faut avoir l'algorithme sous les yeux, je pense, pour comprendre et meme si je sors tout juste d'une prépa pc j'en ai un peu ma claque des maths (en plus j'étais pas bon en algebre hmm) donc je peux/veux pas explorer le sujet plus.
Meme si cela dit ca a l'air tres interessant en effet.

En tout cas merci encore de tes explications (je vais faire un marque page tiens pour retrouver ton post).
++ et au plaisir.
et merci aussi aux autres.

Hors ligne

#17 Le 02/10/2008, à 08:50

Nasman

Re : Question de noob:comment on cache une chose dans un systeme opensource

Exemple de cryptage à sens unique (pour illustrer):
Tu as un mot de passe comme "azerty". Tu ne retiens qu'un caractère sur deux, soit "aet". A partir de "aet" et de l'algorithme "prendre un caractère sur deux" comment fais tu pour retrouver "azerty" ?
Par compte les mots de passe comme "aqestd", "awextc","apejtb"... te donneront le même résultat et seront acceptés une fois transformés par l'algorithme.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#18 Le 02/10/2008, à 09:44

kaer

Re : Question de noob:comment on cache une chose dans un systeme opensource

@Nasman: ton exemple n'est pas le meilleur car même si il semble à sens unique, en fait, d'un point de vue opérationnel, il ne l'est pas: tous les "faux" mots de passe que tu indiques marcheront aussi bien que le vrai.

@Zakhar: malgré quelques imprécisions dans let termes et les concepts, c'est une bon petit résume. Attention toutefois:
- ne pas confondre décrypter (ou plutôt déchiffrer) et casser un chiffrement.
- la force brute, c'est essayer toutes les clés possibles, une par une. A part allonger les clés pour multipier les possibilités et empécher un trop grand nombre d'essai, rien ne résiste à ça.
- quand on discute de sécurité informatique, il est important de faire la différence entre:
    * la qualité d'un algorithme
    * la robustesse de son implémentation
    * la longueur des clés
- enfin, si en SSL, il y a un challenge et sa réponse avec cryptographie asssymétrique puis échange de données en cryptographie symétrique, c'est uniquement pour des questions de performances.

@Arcane: les liens que j'avais mis, c'était pour illustrer le simple fait qu'il y a des librairies de crypto est que si on comprend les principes (exposés ici), on peut les utiliser sans comprendre les fondements mathématiques mis en oeuvre dans leur implémentation. Je pensais que c'était ça qui t'interessait.

Hors ligne

#19 Le 02/10/2008, à 10:49

Nasman

Re : Question de noob:comment on cache une chose dans un systeme opensource

Le principe d'un mot de passe avec un hash MD5 fait qu'effectivement plusieurs mots de passe donneront le même résultat - mais il faut encore les trouver. L'exemple que j'ai mis est évidemment trivial puisque des portions du mot de passe ne sont pas utilisés.

Effectivement, rien ne résiste (en théorie) à la force brute mais celà peut durer longtemps (il faut quand même prévoir les performances des ordinateurs qui s'améliorent) et puis dans certains cas on peut augmenter les temps entre chaque tentative.


PC fixe sous Bionic 64 bits et portable avec Focal 64 bits

Hors ligne

#20 Le 02/10/2008, à 11:06

®om

Re : Question de noob:comment on cache une chose dans un systeme opensource

Il ne faut pas non plus utiliser de mots de passes trop simples ou trop courants.

Par exemple :

$ md5sum <<< toto
11a3e229084349bc25d97e29393ced1d  -

Recherchez 11a3e229084349bc25d97e29393ced1d sur google, vous aurez la réponse smile

PS: Attention cependant, ceci est le md5 de "toto\n" :

$xxd -p <<< toto
746f746f0a

(il y a un 0a à la fin, le code de newline)
Alors que si ou veut le md5 de "toto" :

$ printf toto | md5sum
f71dbe52628a3f83a77ab494817525c6  -
$ printf toto | xxd -p
746f746f

Recherchez f71dbe52628a3f83a77ab494817525c6, vous aurez aussi la réponse smile

Dernière modification par ®om (Le 02/10/2008, à 11:39)

Hors ligne

#21 Le 02/10/2008, à 11:17

kuri

Re : Question de noob:comment on cache une chose dans un systeme opensource

il peut y avoir plusieurs mdp possibles pour un meme cryptage si les mdp sont plus longs que les mdp cryptes, comme vous dites.

voici un mdp de 10 caracteres, crypte :
test:$1$M5Lix0T/$6PCl7AmiKKpKwGCexzMAe.:14154:0:99999:7:::
(enfin je vous montre le resultat de /etc/shadow)
donc, je doute qu il y ai 2 chaines donnant la meme chaine cryptee

on reconnai le type d algo utilise par son $1$ (typique)
a bruteforcer c est tres long (je n ai pas fait ca depuis des annees) mais avec un TBIRD 1.4ghz, je tentait 3400 combinaisons/seconde, mon mot de passe fait 10 caracteres, calculez le temps necessaire pour faire toute les combinaisons possibles (d autant plus que l on est pas censes connaitre la taille du mdp, donc faut demarrer a 3 caracteres)

bonne chance donc wink

c est aussi pour cela qu il est parfois impose de changer son mdp chaque semaine ... car c est le temps pour decrypter un mdp crypte de la sorte (si on utilise que des lettres et chiffres, pas de caracteres speciaux), globalement (avec une seule machine, et si il fait 8 caracteres).

pour ceux que ca interesse, allez demander a google si il connait john the ripper.

n oubliez que chaque caractere en + dans le mot de passe augmente le temps necessaire pour le bruteforcer d une valeur phrenomenale, a 12 caracteres deja ca deviens infernal.

Dernière modification par kuri (Le 02/10/2008, à 12:24)

Hors ligne

#22 Le 02/10/2008, à 11:31

denis56

Re : Question de noob:comment on cache une chose dans un systeme opensource

Heu... roll .. y'a ça aussi dans mon ordi que j' joue à packman !?! 

J'adore ce forum !
merci aux noobs pour leur « Question de noob » et aux geeks pour leur « réponse avec cryptographie asssymétrique ».

Ça donne ce genre de fil passionnant...

Merci !


Debian Jessie souvent, Xubuntu parfois,
Bénévole @ Rhizomes

Hors ligne