5 Stimmen

OCR eines RSA-Schlüsselanhängers (Sicherheits-Token)

Ich habe ein schnelles WinForm/eingebettetes IE-Browser-Steuerelement erstellt, das sich jeden Morgen auf der Website der Bank unseres Unternehmens anmeldet und die gewünschten Einzahlungsinformationen abruft/exportiert (die Bank ist eine kleine regionale Bank). Da wir einige Dutzend "Pseudokonten" haben, die vom selben Hauptkonto abgerufen werden, dauert der Abruf tatsächlich 10-15 Minuten.

Das einzige Problem besteht darin, dass für unser Geschäftskonto ein RSA-Sicherheitstoken ( http://www.rsa.com/node.aspx?id=1156) - wenn--if) nicht vertraut sind, handelt es sich um ein kleines Gerät, das alle 15(?) Sekunden eine zufällige 6-stellige Zahl anzeigt, so dass ich vor dem Start nach diesem Wert fragen muss. Dies kommt zum Sicherheitsmodell der Website hinzu, das auf der Anmeldung basiert. Selbst wenn Sie also ein Nur-Lese-Konto erstellen, das nichts tun kann, müssen Sie trotzdem die RSA-Nummer eingeben. Wir haben 5 dieser Token für verschiedene Personen in unserem Unternehmen.

Aus unserer Sicht handelt es sich dabei um Nützlichkeitssicherheit. Ich scherzte über den Einsatz einer Webkamera zur OCR der Ziffern des Schlüsselanhängers, damit sie sie nicht eintippen müssen - vor allem, damit das Scrapen/Exportieren erledigt wäre, bevor jemand morgens ankommt. Nun, sie fragten, ob ich das wirklich tun könnte.

Nun frage ich Sie, wie viel Mühe (wie viele Stunden) es Ihrer Meinung nach kosten würde, diese Ziffern zuverlässig aus einem von der Kamera erzeugten JPEG-Bild zu erkennen. Ich weiß bereits, dass ich das JPEG-Bild leicht bekommen kann. Ich glaube, man hat 3 Versuche, um sich anzumelden, also muss man wirklich eine Genauigkeitsrate von 99 % erreichen. Ich könnte in meiner Freizeit daran arbeiten, aber sie wollen nicht, dass ich mehr als ein paar Stunden in das Projekt stecke, also möchte ich so viel vorhandenen Code wie möglich nutzen. Dies ist eine 7-Segment-Anzeige (wie ein Wecker), so dass es nicht genau Text, die ein OCR-Paket zu sehen verwendet werden würde.

Außerdem gibt es einen Countdown-Timer an der Seite des Displays; wenn die Anzeige auf 1 Balken gesunken ist, warten Sie normalerweise, bis die nächste Zahl erscheint, und die Anzeige beginnt bei 5 Balken (wie die Signalstärke auf Ihrem Handy) von vorn. Dies müsste also auch OCRd sein, aber es ist kein Text.

Je mehr ich darüber nachdenke, während ich dies schreibe, desto weniger bin ich davon überzeugt, dass ich das wirklich hinbekomme.

8voto

nealmcb Punkte 10705

Es gibt mindestens zwei gut dokumentierte Open-Source-OCR-Programme mit sieben Segmenten, die genau für die Aufgabe des automatischen Lesens von RSA-SecurID-Anhängern entwickelt wurden:

und allgemeinere Software, die auf Symbian-Mobiltelefonen läuft, könnte inzwischen offen sein:

Die neueste Arbeit zur Unterstützung sehbehinderter Menschen scheint zu sein Echtzeit-Erkennung und -Lesung von LED/LCD-Anzeigen für sehbehinderte Personen - Proc IEEE Workshop Appl Comput Vis. 2011

6voto

Peter Punkte 120325

Das ist einfacher, als es auf den ersten Blick scheint. Ich habe diese Technik in der Vergangenheit angewandt, weil die Ziffern immer gleich aussehen und immer an denselben Stellen erscheinen.

Erstellen Sie einfach zehn kleine Masken, eine für jede der Ziffern, und bereiten Sie ein Skript vor, das Ihr jpg-Bild in Teile zerlegt, einen für jede Ziffer. Richten Sie die Kamera einmal aus und lassen Sie sie dann so stehen. Jetzt haben Sie zehn Masken für die Ziffern 0-9 und die eigentlichen Ziffern auf dem Gerät. Multiplizieren Sie die Pixelwerte in jeder Maske mit jeder Ziffer, und wählen Sie den jeweils höchsten Wert. Damit wissen Sie, in welche Maske die einzelnen Ziffern am besten passen, und können damit die Ziffern bestimmen.

Haftungsausschluss: Ich halte dies aus Sicherheitsgründen nicht für eine gute Idee, wie andere Kommentatoren bereits festgestellt haben.

2voto

Splat Punkte 743

Ich glaube, es gibt eine Softwareversion des RSA SecurID-Tokens. Siehe hier

Ich bin mir nicht sicher, ob es in Ihrer Situation funktioniert (Sie müssen vielleicht mit der Bank sprechen), aber wenn es funktioniert, ist es wahrscheinlich einfacher und zuverlässiger als OCR.

1voto

dschwarz Punkte 91

Nur zum Spaß könnten Sie versuchen, einen Scan Ihres RSA-Tokens in Tesseract OCR und sehen Sie, wie gut es sofort funktioniert. Ich vermute, dass Sie die Scan-Kontrast-/Helligkeitswerte erheblich anpassen müssen, um ein klares Textbild zum Scannen zu erhalten.

0voto

Eugene Osovetsky Punkte 6302

Sie können versuchen, die OCR-API zu verwenden unter http://www.webservius.com/corp/docs/wisetrend.pdf - für die von Ihnen genannten Mengen wird es für Sie wahrscheinlich kostenlos sein. Um schnell zu testen, ob die Ziffern erkannt werden, können Sie ein Testbild an ocr@wisetrend.com senden, und Sie erhalten die OCR-Ergebnisse per E-Mail zurück.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X