English French German Spanish Russian
Password hash - TECHNICAL SUPPORT / WEB APPs BUGS - Ryzom Community ForumHomeGuest

TECHNICAL SUPPORT / WEB APPs BUGS


uiWebPrevious1uiWebNext

#1 Report | QuoteMultilingual 

Multilingual | [English] | Français
Hi,

In the official changelog I found the following entry:
Hashing passwords in SHA-512 instead of DES

Well, it's not the case, sorry. I just changed my account password and it is still stored in DES. There is two easy way to prove it. The first one is to manually use the HTTP request used to ask for the password salt:
http://shard.ryzom.com:40916/login/r2_login.php?cmd=ask&login =account_name&lg=en

Simply replace "account_name" by your account name and remove the extra space added by this dirty forum engine (example). The answer should be the number "1" followed by ":" and the salt. A two characters salt is used for DES meanwhile the SHA-512 shouls use a 16 characters salt.
The second proof is the 8 character maximum length of DES. If you have a longer password, you can authenticate into the web app with only the 8 first characters because the others are ignored.


The SHA-512 hashing scheme has been written a few years ago and it used to work on Ryzom core just fine. Apparently, someone broke it and nobody actually tested it before writing the v3 changelog. By the way, it was written as a quick and dirty alternative to DES, not as a long-terme feature. You should have a look at PBKDF2, bcrypt, scrypt or, better, Argon2.

---

Markanjio di Segafredo
Noble Gardien des Matis - Noble Matis Guardian
Fléau de l'Empire - Scourge of the Empire

#2 Report | Quote[fr] 

Bonjour,

Bien évidemment que nous ne pouvons pas supprimer le support de DES tant qu'il reste des clients 2.1 en circulation... Sinon comment se connecteraient ils au serveur ?

Les nouveaux clients utilisent "cp=2" comme paramètre (tu peux vérifier dans le code du client) afin d'utiliser le nouvel algorithme et recevoir un sel adéquat.

Et n'oublie pas que Ryzom est open-source, si tu veux nous filer un coup de main, ce ne serait pas de refus :)

Voir commit : https://bitbucket.org/ryzom/ryzomcore/commits/acaab165f282349c172 08e7677f9605625272b3e

Last edited by Xiombarg (2 years ago)

---

Kervala - Ryzom volunteer developer - Working on different clients

#3 Report | Quote[fr] 

J'ai oublié de répondre à ton dernier paragraphe :p

Il n'a jamais été activé par défaut, il y a juste son support qui a été implémenté côté client.

Quand peux-tu dire qu'il a fonctionné et qu'il a été testé ?

Pour info, j'ai écrit ce changelog et tu peux vérifier ma participation (kervala / Cédric OCHS) sur la page de commits de Ryzom Core, je ne suis pas un étranger... Si tu veux accuser quelqu'un accuse moi, mais sache que je suis un joueur comme toi sauf que je contribue à Ryzom bénévolement sur mon temps libre car je l'aime...

---

Kervala - Ryzom volunteer developer - Working on different clients

#4 Report | Quote[fr] 

Je nomme Markanjio responsable de la team Ryzom Security !

---

Misugi
Misulud productions

#5 Report | Quote[fr] 

Xiombarg
Bien évidemment que nous ne pouvons pas supprimer le support de DES tant qu'il reste des clients 2.1 en circulation... Sinon comment se connecteraient ils au serveur ?
Ça tombe bien, le support de SHA-512 ne supprime pas le support de DES, les deux algos cohabitent paisiblement. Juste tout nouveau mot de passe utilisera SHA-512.
Xiombarg
Quand peux-tu dire qu'il a fonctionné et qu'il a été testé ?
Issue #206
Pull request #80
Xiombarg
Et n'oublie pas que Ryzom est open-source, si tu veux nous filer un coup de main, ce ne serait pas de refus :)
Xiombarg
Pour info, j'ai écrit ce changelog et tu peux vérifier ma participation (kervala / Cédric OCHS) sur la page de commits de Ryzom Core, je ne suis pas un étranger... Si tu veux accuser quelqu'un accuse moi, mais sache que je suis un joueur comme toi sauf que je contribue à Ryzom bénévolement sur mon temps libre car je l'aime...
Ne t'en fais pas, je sais parfaitement qui tu es et ce que tu fais. Par contre de ton côté tu n'as pas du remarquer que c'est moi l'auteur du patch initial pour le support de SHA-512.

---

Markanjio di Segafredo
Noble Gardien des Matis - Noble Matis Guardian
Fléau de l'Empire - Scourge of the Empire

#6 Report | Quote[fr] 

Visiblement tu ne connais pas assez bien ton sujet Markanjio... et pour quelqu'un qui parle de sécurité, c'est moyen :p

Donc je t'explique rapidement.

Le serveur web (car c'est lui qui envoi le sel) gère très bien le SHA-512 car c'est du php, même s'il n'est pas actif pour le moment (y a une raison évidente à cela que j'expliquerai)

Les clients v3.0 le gèrent tout aussi bien, et cela depuis quelques temps sur les betas de Kervala.

Donc, tu prend un client v3.0, tu active le SHA-512 sur le serveur web et c'est magique: ça fonctionne parfaitement. On à tester ça depuis un moment avec kervala, et tout roule. On a bien évidement repris le code de ryzom core que tu avais fait.

Cette situation, c'est celle que tu as tester. Situation idéale où tout est compatible SHA-512


Voici maintenant la situation de ryzom avant les patchs des clients v3.0 :

Les client en v2.x ne sont pas compatibles SHA-512 (d'où la release note qui dis que le support à été ajouter).
Donc ce qui se passe avec ces clients v2 :
- Le client demande un sel au serveur (en DES, il sait pas faire autrement)
- Le serveur lui envoi le sel pour qu'il crypte le mot de passe (Il lui envoi en DES, sinon le client comprendra pas...)
- Le client lui envoi le mot de passe crypter qui servira à l'authentifier

Et c'est là que ça coince. Les clients v2 ne savent qu'utiliser DES. Du coup, quoi que tu fasse, le mot de passe est tronquer à 8 caracères... par le client

Et là tu va me dire, oui mais, les v3 se connectent avec SHA-512 et les v2 avec DES, ça cohabite paisiblement.

C'est vrai, mais niveau sécurité ont y gagne quoi? Rien du tout...
Car il suffit d'un client v2 pour n'avoir qu'à saisir les 8 premiers caractères de ton mot de passe et se logger. C'est comme avoir une porte blindée mais une fenêtre en bois moisi à coté.

Au passage, il n'y a que le serveur web de connection au jeu qui est resté en DES.
Il n'est pas possible de se logguer sur le compte de facturation avec juste les 8 premire caractères. Le serveur secure.ryzom.com est lui en SHA-512

Et maintenant que va-t-il se passer ?

Une fois la mise en place du client v3 sur l'AppleStore, ont pourra dire que seul SHA-512 sera accepté. Les clients v2 ne pourront plus se connecter pour des raisons de sécurité

---

< Ryzom Developer >

#7 Report | Quote[fr] 

Markanjio
Ne t'en fais pas, je sais parfaitement qui tu es et ce que tu fais. Par contre de ton côté tu n'as pas du remarquer que c'est moi l'auteur du patch initial pour le support de SHA-512.

Excuse moi, je ne pouvais pas savoir que tu étais [removed] ou alors tu l'as dit quelque part, mais je ne m'en souvenais plus :( Donc effectivement tu as contribué à Ryzom, merci beaucoup :)

Pour le reste, Ulukyn a répondu.

Last edited by Tiximei (2 years ago) | Reason: Edited to protect personal information

---

Kervala - Ryzom volunteer developer - Working on different clients

#8 Report | Quote[fr] 

Ulukyn
Une fois la mise en place du client v3 sur l'AppleStore, on pourra dire que seul SHA-512 sera accepté. Les clients v2 ne pourront plus se connecter pour des raisons de sécurité

Bonjour,
Je me permet d'intervenir.
Suite à mon problème en mode Direct3D, je compte utiliser le client v2.1 pour jouer.
Je viens de lire la remarque d'Ulukyn et je me demande si ce sera valable pour les clients Windows également ?
Autrement dit : peut-on encore utiliser le client v2.1 sous Windows et pour combien de temps ?

Last edited by Misugi (2 years ago)

---

Misugi
Misulud productions

#9 Report | Quote[fr] 

Pour le moment on peut, jusqu'à ce que le serveur sera màj, ce qui devrait ce passer assez prochainement vu que la migration est finis. De toute façon, les clients 2.1 ne seront plus supporté, et donc on manquera des objets une fois des trucs de ryzom forge ajouté

---



#10 Report | Quote[fr] 

Misugi
Bonjour,
Je me permet d'intervenir.
Suite à mon problème en mode Direct3D, je compte utiliser le client v2.1 pour jouer.
Je viens de lire la remarque d'Ulukyn et je me demande si ce sera valable pour les clients Windows également ?
Autrement dit : peut-on encore utiliser le client v2.1 sous Windows et pour combien de temps ?

Par défault, ce sera en SHA-512 (donc pas de client v2) car une grande majorité utilisera un client v3

On pourra toujours rajouter une option (legacy) pour ceux qui pour une raison ou pour une autre, voudrons toujours utiliser le client v2 un certain temps. Ils continueront à se connecter en DES (donc mot de passe tronqué) si cela leur convient et basculeront en SHA-512 quand il le voudrons.

Avec l'option legacy, il sera possible de se connecter avec un client v2 ou v3
Sans l'option legacy, pas de connexion avec un client v2

Pour les mise à jour, c'est possible (même si c'est un peu laborieux). Il faut avoir l'exe v3 dans un coin:

1 - Remplacer l'exe par un v3
2 - Activer le patching
3 - Patcher
4 - Désactiver le patching
5 - Remettre l'exe v2

En théorie cela devrait fonctionner au moins quelques temps :p

Last edited by Moondev (2 years ago)

---

< Ryzom Developer >

#11 Report | Quote[fr] 

Moondev
Visiblement tu ne connais pas assez bien ton sujet Markanjio... et pour quelqu'un qui parle de sécurité, c'est moyen :p

J'ai d'abord cru à de l'ironie. Puis, lorsque j'ai vu que tu tentais de m'expliquer ce que je sais déjà, j'en ai déduit que tu était malheureusement sérieux. Je vais donc commencer par te dire que lorsque l'on connait son sujet, l'on utilise la bonne terminologie et non des termes barbares sans aucun sens.
Moondev
Donc ce qui se passe avec ces clients v2 :
Pas exactement, voici les corrections à apporter à tes propos :
Moondev
- Le client demande un sel au serveur (en DES, il sait pas faire autrement)
Strictement aucun rapport avec DES, le client fait une simple requête HTTP.
Moondev
- Le serveur lui envoi le sel pour qu'il crypte le mot de passe (Il lui envoi en DES, sinon le client comprendra pas...)
Le serveur lui envoie le sel qu'il a sans se soucier de l'algo utilisé. En fonction de l'algo, le sel a une taille différente, mais ça ne change encore rien, les clients v2 et v3 auront le sel quel que soit sa longueur.
Moondev
- Le client lui envoi le mot de passe crypter qui servira à l'authentifier
Le client hash le mot de passe avec le sel qu'il a reçu. Le seul cas où ça coince c'est si l'utilisateur utilise un client v2 et a un pass stocké en SHA-256 car il ne pourra pas calculer le bon hash. Donc en gros, ça coince uniquement si le joueur a modifié son mot de passe avant de mettre à jour son client.
Nombre de cas probables : faible à négligeable.
Correction de la situation : réinstallation du jeu avec un client à jour.

Bref, du moment qu'un installateur v3 est disponible, le nombre de cas problématiques est faible et la solution aisée et peu coûteuse.

Last edited by Tiximei (2 years ago) | Reason: Fixed the language button

---

Markanjio di Segafredo
Noble Gardien des Matis - Noble Matis Guardian
Fléau de l'Empire - Scourge of the Empire

#12 Report | Quote[fr] 

Merci Ulukyn pour les infos.

[edit]
Je viens d'essayer et ça fonctionne bien !
J'ai copié 2 fichiers de la v3 : ryzom_client_r.exe et nel_drv_direct3d_win_r.dll
Patch appliqué avec succès !

Last edited by Misugi (2 years ago)

---

Misugi
Misulud productions

#13 Report | Quote[fr] 

Misugi
Merci Ulukyn pour les infos.

[edit]
Je viens d'essayer et ça fonctionne bien !
J'ai copié 2 fichiers de la v3 : ryzom_client_r.exe et nel_drv_direct3d_win_r.dll
Patch appliqué avec succès !

top :)

---

< Ryzom Developer >
uiWebPrevious1uiWebNext
 
Last visit Wed Jun 20 17:15:18 2018 UTC
P_:

powered by ryzom-api