Frage

Ich habe die unglückliche Anforderung des Aufbaus einer Seite erhalten, die ein neues Kennwort für den authentifizierten Benutzer anzeigt. Ich habe erfolglos diese Anforderung als eine allgemein schlechte Idee protestiert, aber ich denke, die Jury noch heraus ist so vielleicht gibt es Argumente gegen ein neues Passwort anzeigt, die ich noch nicht ausprobiert haben. Haben Sie irgendwelche Vorschläge?

Zweitens wäre es besser, das Passwort als Bild für den Benutzer angezeigt wird, statt als Text. Ich mache mir Sorgen um den Text „gekratzt“ werden, die ich gehe davon aus schwieriger sein würde mit einem Bild. Wie kann ich sicherstellen, dass das Bild nicht durch den Browser des Benutzers zwischengespeichert werden?

Vielen Dank im Voraus,

War es hilfreich?

Lösung

Ich bin mir nicht sicher, was Sie bauen und was ist die Anforderungen, aber als Faustregel halte ich nicht für ein schweres dieses Sicherheitsproblem. Schauen wir auf die Angriffsvektoren:

  1. Man in the Middle-Angriff auf dem HTTP-Text Verkehr -. Ein Bild, insbesondere ein verschleierte gegen OCR (CAPTCHA-Stil) wird diesen Angriff verhindern, sondern auch einfach über HTTPS als porneL erwähnt
  2. Screen Scraping durch eine Remote-Desktop-Anwendung - HTTPS-Schutz wird nicht helfen, noch ein Bild als das Chaos auf einem Bildschirm muss ohnehin von einem Menschen gelesen wird (ein menschlicher Angreifer kann auch Ihren verschleiertes Bild Schutz gegen „Mann in der Umgehung Mitte“durch den Hörer anweist, das Bild zu archivieren und dann über sie gehen manuell). Wenn ein Mensch hinter dem Bildschirm Schaber ist, dann haben Sie keinen Schutz.
  3. über die Schulter Abhören - wenn die Angreifer einfach hinter dem Benutzer stehen, dann wieder -. Sie haben keinen Schutz

Sie beachten, dass, wenn Sie Ihr Passwort automatisch generiert wird, dann müssen Sie es dem Benutzer zeigen, gibt es keinen Weg dran vorbei. Eine Möglichkeit, Websites versuchen, die Bedrohung zu verringern ist, das Passwort per E-Mail senden - unter der Annahme, dass ein Benutzer sicherstellen kann sie die E-Mail lesen, wenn niemand zuschaut, auf ihrer eigenen Zeit. Leider E-Mail wird nicht einmal lassen Sie den Vorteil der Verschlüsselung haben die Übertragung zu schützen.

Meiner Meinung nach ist der beste Weg, um den Benutzer das Passwort eingeben lassen (in einem Passwort Verschleierungs Feld, wie normal es getan) und speichern Sie dann nur den Hash des Passworts, so dass Sie nicht das tatsächliche Kennwort speichern müssen, verhindert von Ihnen es für den Benutzer zeigt. Wenn Sie es dem Benutzer zeigen muss (möglicherweise, weil Sie es generieren), dann stellen Sie sicher sind über HTTPS und nur zeigen es -. All die Fanfare nur die Implementierung erschwert alle Sicherheitsvorteile ohne Angabe

Andere Tipps

Das Bild wird nicht viel sichern.

Wenn Sie HTTPS verwenden, dann wird Passwort sicher oder so. Wenn Sie HTTP verwenden, wird das Kennwort aus dem Formular in Klartext gesendet werden (ich nehme an, Sie Anzeigen es für eine Art von Bestätigung), und wie es Sekunden später wird keine Rolle angezeigt wird.

Wichtig ist, dass Seite, um sicherzustellen, dass das Kennwort anzeigt, ist nicht cache'able.

Cache-control: no-cache, no-store, must-revalidate

haben Sie versucht, die folgende?

  • Sie können nicht durch ein Passwort zeigen, weil Sie es nicht speichern.

Ich bin nicht sicher, ob es wirklich so eine schlechte Idee. Sie haben das neue Passwort für den Benutzer in jeder Art und Weise zu senden. Senden als unverschlüsselte E-Mail haben die gleichen Probleme -. Gefangen beeing oder zwischengespeichert beeing, wenn Web-Mail mit

Ich würde vorschlagen, ein Bild zu verwenden, können einige captcha wie sein. Aber das schützt nur ein bisschen mehr gegen automatisierte Angriffe, nicht gegen die menschlichen Angriffe.

Der einzige Weg, die Sache sicher zu bekommen, ist Enryption zu verwenden, was darauf hindeutet, HTTPS. Dann Ihre Website verwenden, kann angezeigt werden noch sicherer als die sich auf E-Mail oder Lösungen wie das.

Leting der Benutzer ein neues Passwort das gleiche Problem eingeben muss - jetzt haben Sie es zurück an den Server senden

.

ich einfach vorschlagen Verwendung von HTTPS-Verkehr zu verschlüsseln und nur Hashes temporärer Passwörter zu speichern, so dass das tatsächliche Passwort in der Datenbank nicht gespeichert wird. Natürlich können Sie nicht physisch „Hacker“ (wie Leute Blick hinter die Schulter schauen) verhindern, dass ein temporäres Passwort zu stehlen, aber, wenn möglich, können Sie die Benutzer benötigen, ihr Kennwort in dem Augenblick sie mit einem temporären Passwort anmelden zu ändern, so dass die Risiken, die mit einem temporären Passwort gemildert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top