J'ai remarqué dans le html de mon routeur ce paramètre:
form.addParameter('Password', base64encode(SHA256(Password.value)));
Donc quand je tape le mot de passe passw
j'obtiens ceci via sslstrip
:
2018-09-25 21:13:31,605 POST Data (192.168.1.1):
Username=acc&Password=ZTQ1ZDkwOTU3ZWVjNzM4NzcyNmM2YTFiMTc0ZGE3YjU2NmEyNGZmNGNiMDYwZGNiY2RmZWJiOTMxYTkzZmZlMw%3D%3D
Ce hachage est-il facile à déchiffrer via bruteforce/dictionnaire? Je suis toujours un débutant, mais cela ressemble à un double cryptage pour moi. De plus, existe-t-il un moyen plus rapide d'obtenir ce mot de passe que de le déchiffrer?
C'est un hachage sha256 non salé en base64. Ce n'est pas un double cryptage, mais simplement un encodage inutile.
Un hachage non salé signifie qu'il est trivial de simplement rechercher le hachage sur Google et il trouvera probablement le résultat.
I l'URL l'a décodé, puis décodé à partir de base64 , puis transmis à une base de données de hachage en ligne .
Le résultat a été:
Hash Type Result
e45d90957eec7387726c6a1b174da7b566a24ff4cb060dcbcdfebb931a93ffe3 sha256 passw
Le fait qu'il s'agisse d'un hachage non salé facilite la recherche. Tout l'encodage est une commodité pour le service de connexion, pas un contrôle de sécurité.
Avec un sel, vous ne pouvez pas simplement le rechercher, vous devez donc utiliser la force brute. Si vous connaissiez le sel, le succès dépend du mot de passe et de la liste de mots que vous utilisez. Il existe des méthodes pour rendre la liste de mots plus efficace pour le bruteforcing, mais c'est finalement une fonction du temps.
Il est trivial de rompre en raison des éléments suivants:
Base64 n'est pas du tout un cryptage, c'est un schéma de codage. Le décodage de Base64 est trivial.
SHA256 est un algorithme cryptographique conçu pour valider les données et est donc conçu pour être rapide. Cela signifie que les ordinateurs spécialisés avec plusieurs GPU peuvent vérifier les mots de passe hachés avec SHA256 à des vitesses incroyables. Le record de crackage de mot de passe SHA256 au moment de la rédaction est de 21,4 GH/s (21 milliards de hachages par seconde) fixé par 25 GPU. Dans le but de hacher en toute sécurité un mot de passe SHA256 est un mauvais choix. Les principales fonctions de dérivation sont la voie à suivre. SHA256 est faible pour le hachage de mot de passe mais idéal pour la validation des données/messages.
Tout le monde convient que l'utilisation d'un hachage non salé est très mauvaise et que sha256 n'est pas une fonction de hachage idéale. Cependant cette sagesse concerne le stockage des mots de passe, pas leur transmission.
Nous ne savons pas comment le mot de passe est validé sur l'appareil cible.
Pour tout ce que nous savons, les données sont ensuite transmises via une fonction d'étirement de mot de passe, salées et hachées sur le périphérique cible (qui serait sécurisé) ou simplement comparées à une valeur littérale stockée (non sécurisée).
Si les communications avec le routeur se font toujours via HTTPS comme indiqué dans la question, cela n'ajoute rien à la protection des données en transit et est redondant. Si la communication se faisait via HTTP, on pourrait soutenir qu'elle empêche certaines attaques très triviales (mais pas, par exemple, une simple attaque de relecture).