Wie kann ich Delphi verwenden, um eine visuelle Herausforderung / Reaktion für die Wiederherstellung des Zugriffs auf eine Anwendung zu erstellen?

StackOverflow https://stackoverflow.com/questions/4249160

Frage

Ich bin daran interessiert, in Delphi einen Herausforderungs- / Antwortartprozess zu erstellen. Das Szenario ist das ... Wir haben 2 Computer ... 1 gehört dem Benutzer und 1 gehört zu einem Support -Techniker.

Der Benutzer ist aus einem bestimmten Programm gesperrt, und um 1 Mal zu Zugang zu erhalten, möchte ich:

  1. Dem Benutzer wird mit einer Herausforderung Phrase wie "28394LDJA9281DHQ" oder eine Art einigermaßen eindeutiger Wert präsentiert
  2. Der Benutzer wird Support -Mitarbeiter anrufen und diese Herausforderung lesen (nachdem das Support -Personal seine Identität bestätigt hat)
  3. Die Support -Person wird diesen Herausforderungswert in ein Programm in ihrem System eingeben, das eine Antwort generiert, was ebenso eindeutig ist wie die Antwort, wie "9232KLSDF92SD"
  4. Die Benutzertypen in der Antwort und das Programm bestimmt, ob dies eine gültige Antwort ist oder nicht.
  5. Wenn dies der Fall ist, erhält dem Benutzer 1 Mal Zugriff auf die Anwendung.

Wie ist das meine Frage? Ich werde 2 Anwendungen haben, die werden nicht haben vernetzte Zugriff aufeinander. Gibt es eine Funktionalität in Windows, die mir bei dieser Aufgabe helfen kann?

Ich glaube, ich kann einige Funktionen innerhalb verwenden Cryptoapi, aber ich bin mir wirklich nicht sicher, wo ich anfangen soll. Ich würde mich über jede Hilfe freuen, die Sie anbieten könnten.

War es hilfreich?

Lösung

Ich würde eine MD5-basierte Challenge-Response-Authentifizierung implementieren.

Aus Wikipedia http://en.wikipedia.org/wiki/cram-md5

Protokoll

  1. Herausforderung: In der CRAM-MD5-Authentifizierung sendet der Server zunächst eine Challenge-Zeichenfolge an den Client.
  2. Antwort: Der Kunde antwortet mit einem Benutzernamen, gefolgt von einem Raumschiff und dann einer 16-Byte-Verdauung in Hexadezimalnotation. Die Digest ist die Ausgabe von HMAC-MD5 mit dem Kennwort des Benutzers als geheimen Schlüssel und die ursprüngliche Herausforderung des Servers als Nachricht.
  3. Vergleich: Der Server verwendet dieselbe Methode, um die erwartete Antwort zu berechnen. Wenn die angegebene Antwort und die erwartete Reaktionsübereinstimmung erfolgreich war, war die Authentifizierung erfolgreich.

Dies liefert drei wichtige Arten von Sicherheit.

  1. Erstens können andere den Hash nicht duplizieren, ohne das Passwort zu kennen. Dies bietet Authentifizierung.
  2. Zweitens können andere den Hash nicht wiederholen - es hängt von der unvorhersehbaren Herausforderung ab. Dies wird unterschiedlich als Frische oder Wiederholungsprävention bezeichnet.
  3. Drittens lernen Beobachter das Passwort nicht. Dies nennt man Geheimhaltung.

Die beiden wichtigen Merkmale dieses Protokolls, die diese drei Sicherheitsvorteile bieten, sind der Einweg-Hash und die neue zufällige Herausforderung.

Darüber hinaus können Sie die Challenge-Zeichenfolge für die Anwendungsidentifikation hinzufügen, um den Absender der Herausforderung zu überprüfen.

Wichtig: Es hat einige Schwächen, bewerten Sie sorgfältig, wie sie Sie beeinflussen können.

Andere Tipps

In Bezug auf die mündliche Herausforderung/Antwortstrategie: Wir haben diesen Ansatz für mehr als zehn Jahre lang weltweit weltweit eine Nischenanwendung auf fünftausend Workstations angeleitet. Unser Support -Team nannte es die "Raketen -Startcodes", da er mit dem klassischen Raketen -Startauthentifizierungsprozess in alten Filmen zu sehen ist.

Dies ist eine äußerst zeitaufwändige Methode, um Ihr Programm zu schützen. Es konsumierte enorme Mengen an den Mitarbeitern und den Kunden, die die Codes für und von Benutzern lesen. Sie alle hassten es.

Ihre Situation/Ihr Kontext kann unterschiedlich sein. Vielleicht werden Sie es nicht annähernd so häufig verwenden wie wir. Aber hier sind einige Vorschläge:

  1. Berücksichtigen Sie sorgfältig die Länge und den Inhalt des Codes: Die meisten Benutzer (und Support -Mitarbeiter) lehnen es ab, viele Zeichen zu tippen. Viele Benutzer sind schlechte Schreibkräfte. Überlegen Sie, ob eine lange Saite und einschließlich Satzzeichen und Fallempfindlichkeit sie im Vergleich zu der zusätzlichen Sicherheitsmenge übermäßig belasten.

  2. Nach Jahren der Verwendung einer mündlichen Herausforderung/Antwort-Implementierung haben wir sie an Ort und Stelle gelassen (als Fall-Back), aber ein einfaches automatisiertes System hinzugefügt. Wir haben uns entschieden, FTP zu verwenden, anstatt einen ausgefeilteren Webansatz, damit wir keine Software auf unserem internen Server ausgeführt haben (oder mit unserem IT-Mitarbeitern zu tun haben!)

Grundsätzlich verwenden wir FTP -Dateien, um den Austausch durchzuführen, der zuvor am Telefon durchgeführt wurde. Der Server platziert eine Datei auf dem FTP -Server, der den Herausforderungswechsel enthält. Der Name der Datei ist der Name des Kunden. Unsere Support -Mitarbeiter haben ein Programm, das diese Datei automatisch auf unserer FTP -Website erstellt.

Der Kunde wird von unseren Mitarbeitern angewiesen, einen heißen Schlüssel zu treffen, der die FTP -Datei liest, sie authentifiziert und eine Antwortdatei auf dem Server zurückgibt.

Die Software unserer Support -Mitarbeiter hat auf die Erstellung der Antwortdatei des Kunden gefragt. Wenn sie die Datei sieht, wird sie heruntergeladen, ihre Inhalte bestätigt und vom Server gelöscht.

Sie können diesen Austausch natürlich so oft und in beide Richtungen erfolgen, wie Sie in einer bestimmten Sitzung benötigen, um Ihre Ziele zu erreichen.

Die Daten in den Dateien können die gleichen MD5 -Schlüssel haben, die Sie mündlich verwenden würden, so dass sie so sicher sind, wie Sie möchten.

Eine Schwäche in diesem System ist, dass der Benutzer FTP -Zugriff haben muss. Wir haben festgestellt, dass die Mehrheit unserer Benutzer (alle Unternehmen) FTP -Zugriff zur Verfügung haben. (Natürlich kann Ihr Kundenbasis nicht ...) Wenn unsere Bewerbung in diesem Bereich auf unsere FTP -Website nicht zugreifen kann, wird das Problem deutlich angekündigt, damit unser Kunde zu seinen IT -Mitarbeitern gehen kann, um den Zugang zu öffnen. In der Zwischenzeit greifen wir einfach auf die verbalen Codes zurück.

Wir haben die FTP -Werkzeuge der einfachen Vanille -Indy ohne Probleme verwendet.

Zweifellos gibt es einige Schwächen in diesem Ansatz (wahrscheinlich auch einige, an die wir nicht gedacht haben). Aber für unsere Bedürfnisse war es fantastisch. Unsere Support -Mitarbeiter und Kunden lieben es.

Entschuldigung, wenn nichts davon für Sie relevant ist. Hoffe das hilft dir einige.

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