Question

Je travaille actuellement sur un fournisseur OpenID PHP qui fonctionne via HTTPS (donc SSL cryptée).
Est-il mauvais pour moi de transmettre le mot de passe en texte brut? HTTPS en théorie, ne peuvent être interceptées, donc je ne vois rien de mal. Ou est-ce dangereux à un certain niveau et je ne pas voir cela?

Était-ce utile?

La solution

Il est sûr. Voilà comment fonctionne l'ensemble du Web. Tous les mots de passe dans les formulaires sont toujours envoyés en texte brut, de sorte que son jusqu'à HTTPS pour sécuriser.

Autres conseils

Vous devez toujours vous assurer que vous envoyez via une requête POST, GET pas. Si vous l'envoyez par requête GET, il pourrait être enregistré dans les journaux clair dans l'historique du navigateur de l'utilisateur ou les journaux d'accès du serveur Web.

Si HTTP est désactivé, et vous uniquement utiliser HTTPS, alors vous n'êtes pas vraiment transmettre le mot de passe en texte brut de toute façon.

côté client de hachage. Pourquoi? Permettez-moi de vous parler d'une petite expérience. Marcher jusqu'à l'ordinateur dans la cafétéria de l'entreprise. Ouvrez le navigateur sur le site Web de la société page de connexion (https). Appuyez sur F12, cliquez sur l'onglet réseau, cochez persist vous connecter, réduire au minimum la console mais laissez page Web ouvert à la page de connexion. Asseyez-vous et manger le déjeuner. Regardez comme employé après les journaux des employés sur le site Web de la société et d'être un bon petit journaux travailleur quand fait. Terminer le déjeuner, asseyez-vous à l'ordinateur faire apparaître l'onglet réseau et voir chaque nom d'utilisateur unique et mot de passe en texte clair sous la forme bodys.

Aucun outil spécial, aucune connaissance particulière, pas de fantaisie matériel de piratage, pas keyloggers juste bon vieux F12.

Mais bon, continuez à penser tout ce que vous avez besoin est SSL. Les méchants vous remerciera.

Les autres affiches sont corrects. Maintenant que vous utilisez SSL pour chiffrer le transmission du mot de passe, assurez-vous hachant avec un bon algorithme et le sel de sorte qu'il est protégé quand il est au repos , trop ...

Faisons quelques notes aux réponses précédentes.

D'abord, il est sans doute pas la meilleure idée d'utiliser des algorithmes de hachage côté client. Si votre mot de passe est salé sur le côté serveur, vous ne serez pas en mesure de comparer hash (au moins pas si vous ne stockez pas le hachage client dans la base de données dans l'une des couches de hachage du mot de passe, ce qui est identique ou pire). Et vous ne voulez pas mettre en œuvre l'algorithme de hachage utilisé par la base de données sur le côté client, il serait stupide.

En second lieu, la négociation de clés de chiffrement ne sont pas idéales non. Le MITM pourrait théoriquement (étant donné qu'il a un cert racine installé sur le client) changer les clés cryptographiques et changer avec ses propres clés:

Connexion originale (sans tenir compte) tls d'un serveur théorique qui échange des clés:

clés publiques de demande client> serveur détient les clés privées, générer des clés publiques au client> serveur envoie les clés publiques au client

Maintenant, dans un MITM théorique UnPiste:

clés publiques de demande du client> MITM génère des clés privées faux > Serveur détient les clés privées, générer des clés publiques au client> MITM reçoit les clés publiques du serveur d'origine, maintenant, nous » êtes libre d'envoyer nos fausses clés publiques au client, et chaque fois qu'une demande vient du client, nous décrypter les données du client avec les clés faux, changer la charge utile (ou lire) et chiffrer les clés publiques originales > MITM envoie les clés publiques faux au client.

C'est le point d'avoir un certificat de confiance de CA dans TLS, et voilà comment vous recevez un message de l'avertissement du navigateur si le certificat est pas valide.

En réponse à l'OP., À mon humble avis, vous ne pouvez pas faire cela, parce que, quelqu'un voudra tôt ou tard pour attaquer un utilisateur de votre service et va essayer de casser votre protocole

Qu'est-ce que vous pouvez faire, cependant, est de mettre en œuvre 2FA pour empêcher les gens de jamais essayer de se connecter avec le même mot de passe. Beaware des attaques replay, cependant.

Je ne suis pas très bien avec la cryptographie, s'il vous plaît me corriger si je me trompe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top