Connexion sans HTTPS, comment sécuriser?

Pour une webapplication, quand ce dernier n'est pas disponible en tant que mesure de sécurité, est-il possible de faire encore de la connexion un peu sécurisé? E. g.:

  • Marquer les connexions, pour faire répéter les attaques difficile?
  • En quelque sorte crypter le mot de passe envoyé à partir d'un code HTML champ de mot de passe?

En particulier, je suis en utilisant CakePHP AJAX et un appel POST pour déclencher d'authentification (inclut la condition d'utilisateur et mot de passe).

Mise à jour sur le problème:

  • HTTPS n'est pas disponible. Période. Si vous n'aimez pas les la situation, considèrent que c'est une question théorique.
  • Il n'y a pas d'exigences précises en matière, vous avez quoi que HTTP, PHP et un navigateur (cookies, JavaScript, etc.) offre dans la vraie vie (pas de magie RSA binaires, PGP plugins).
  • Question est de savoir quel est le meilleur, vous pouvez faire hors de ce situation, c'est mieux que d'envoyer les mots de passe en clair. Connaître les inconvénients de chacune de ces solutions est un plus.
  • Toute amélioration, mieux que la plaine des mots de passe est la bienvenue. Nous n'avons pas l'objectif de 100% de l33tG0Dhx0r-proff solution. Difficile de fissure est mieux que compliqué de pirater ce qui est mieux qu'une simple reniflement de révéler le mot de passe.
  • Comment sécuriser? Quels sont les enjeux (stade dollar de figure peuvent être guide pratique)? Comment les plus puissants sont les agresseurs potentiels? Je ne voudrais pas échanger des stocks, ou de partager mes secrets les plus sombres sur un site qui n'avait pas de SSL. 🙂
  • Ce type de sécurité est évidemment pas militaire, financière, ni de niveau gouvernemental. Mais toujours mieux que du texte brut de connexion, ce qui est malheureusement commun pour les petits sites ou des lieux de travail derrière de lourds pare-feu, filtrage HTTPS, ou pour pas cher les sites d'hébergement de ne pas fournir HTTPS (pas même une auto-signé pour un différent de l'URL). La question est intéressé par tous les moyens possibles pour augmenter n'importe quel aspect de la sécurité.
  • Pourquoi essayez-vous de faire un point dans le HTTPS est nécessaire. Je sais que le HTTPS ne peuvent pas être entièrement mimiced sur HTTP avec JS/cookies et autres. Il n'y a toujours pas de HTTPS disponibles (Voir description. "Si vous n'aimez pas les la situation, considèrent que c'est une question théorique.") Mais aussi, la plupart des hébergements partagés sont comme ça. Aller à n'importe quel forum de la communauté ou de l'auto blog hébergé ou la plupart des sites, avec moins de 10.000 visiteurs par jour, et vous ne verrez pas un certificat de confiance sur le port 443. Et ils sont encore assez sécurisé! Pourquoi ne pas ajouter un peu plus à leur sécurité? Btw., HTTPS est également pas la panacée.
  • À l'aide de JavaScript pour dissimuler votre mot de passe est toujours une violation de (A3 Brisé d'Authentification et de Gestion de Session)owasp.org/images/0/0f/OWASP_T10_-_2010_rc1.pdf C'est un court-lire et c'est très instructif, et c'est mon point final à cet argument.
  • J'espère que le fait que presque tout le monde sur TELLEMENT d'accord avec vous les réponses à votre question.
  • Tour: les faits et les scénarios, tout comme les exigences, n'est pas démocratique
  • comment votre application se défendre contre les attaques de type firesheep ou de traiter avec OWASP A9?
  • Je ne sais pas. Peut-être que mon application ne permet pas de se défendre contre FooBarMagicHack9000. Mais la question est néanmoins de ne pas avoir HTTPS disponible et ce que vous faites dans ce scénario particulier pour rendre les choses plus difficile à craquer. SSL est pas la panacée non plus.
  • github est maintenant entièrement https à cause de firesheep, facebook et twitter sont bientôt emboîter le pas. Firesheep est rien de nouveau, mais son saumurage attention à OWASP A9. La plus récente problème avec le protocole https est venu à la lumière avec sslstrip, mais c'est facile à défendre contre, il suffit d'activer les STS drapeau. Aussi votre réponse a un -4 parce que n'importe quoi.
  • Qu'en JS mises en SSL ? juste trouvé ceci : www-cs-students.stanford.edu/~tjw/jsbn
  • intéressant!
  • Si vous êtes en cours d'exécution de code via une insécurité canal, cela ne peut pas être fixé, délai. Même si vous pouvez envoyer le code qui établit un canal sécurisé, il ne serait pas question, parce que l'intercepteur suffit de remplacer le code avec les siens. Il faut plutôt se demander comment obscur ce qui se passe pour retarder l'attaquant de la possession de vous.
  • Je recommande fortement de changer la réponse à cette question à quelqu'un d'autre, ou de le laisser sans réponse. La réponse actuelle est terrifiant.
  • Je pense que la question des besoins de clarification. Ou la answerers besoin de re-lire la question. L'OP ne veut sécuriser la connexion, et non pas l'ensemble du protocole. Peut-être il n'est pas nécessaire pour un jeton de session. Peut-être que l'OP veut seulement pour publier des données en association avec un login comme un processus en une étape, etc.
  • J'ai mis à jour ma réponse à proposer une vraie solution. S'il vous plaît changer la réponse à ce poste à quelqu'un d'autre. La sécurité, c'est mon métier, et c'est une grave question qui nécessite une réponse sérieuse.
  • Vous ne pouvez pas simuler HTTPS à l'aide de PHP. Il ya beaucoup d'options pour faire de votre connexion plus sûre, mais si HTTPS n'est pas disponible, vous êtes hors de la chance.
  • La réponse courte: Vous avez besoin de HTTPS pour avoir une authentification sécurisée. C'est gratuit, pourquoi ne pas l'utiliser?
  • Pourquoi croyez-vous HTTPS n'est pas une option? Des hôtes fournir TLS juste beaux de nos jours.
  • Je comprends votre frustration avec les réponses qui ne correspondent pas à vos critères. Pour un non-HTTPS solution, s'il vous plaît accepter SLaks réponse à la place. Actuellement accepté de répondre encourage direct hachage de mot de passe avec MD5, ce qui est très cassé, et beaucoup moins sécurisé (contre observateurs passifs dans le style de Firesheep) que SLaks suggestion de l'utilisation de RSA ou de l'AES. C'est une bien meilleure façon de tirer le meilleur de la situation. 🙂
  • Pourriez-vous veuillez reconsidérer l'acceptation de l'ESL la réponse? C'est insipide et mal conseil de sécurité. Vous ne pouvez pas obtenir la sécurité par le biais de hachage MD5, et "c'est mieux que rien" est incorrect: un MitM pouvez modifier le JS pour ajouter le texte en clair pour les requêtes HTTP et de capturer des mots de passe de cette façon.
  • Votre question est libellée comme suit: For a webapplication, when HTTPS is not available as a security measure, is it possible to still make the login somewhat secure?. La réponse est "Non". Si votre comme que fait ou pas, n'est pas pertinent. tour de la réponse est la seule bonne réponse à votre question, comme l'a demandé.

InformationsquelleAutor sibidiba | 2010-02-25