2009-12-31 9 views
5

Przygotowałem szybki WinForm/wbudowany kontroler przeglądarki IE, który codziennie loguje się na stronie internetowej naszej firmy i skanuje/eksportuje żądane informacje o depozycie (bank jest niewielkim bankiem regionalnym). Ponieważ mamy kilkadziesiąt "pseudoakonta", które pobierają z tego samego konta głównego, to zajmuje to 10-15 minut.OCR i breloczek RSA (token bezpieczeństwa)

W każdym razie jedynym problemem jest to, że nasze konto bankowe firmy wymaga tokena zabezpieczającego RSA (http://www.rsa.com/node.aspx?id=1156)--if, którego nie znasz, jest to małe urządzenie, które pokazuje losową 6-cyfrową liczbę co 15 (?) Sekund, więc muszę pytaj o tę wartość przed rozpoczęciem. To jest na szczycie modelu bezpieczeństwa opartego na loginie, więc nawet jeśli utworzysz konto tylko do odczytu, które nie może nic zrobić, musisz wpisać numer RSA. Mamy 5 te żetony dla różnych osób w firmie

Z naszej perspektywy jest to bezpieczeństwo nusiance Żartowałem na temat używania kamery internetowej do OCR cyfr od breloczka, więc nie musieli go wpisywać - głównie aby skrobanie/eksportowanie odbywało się zanim ktoś nadejdzie rano ked, jeśli naprawdę mógłbym to zrobić.

Tak więc teraz pytam, jak trudne (ile godzin) jest Twoim zdaniem potrzeba, aby te cyfry wykreślić niezawodnie z obrazu JPEG wygenerowanego przez aparat? Już wiem, że mogę łatwo uzyskać JPEG. Myślę, że masz 3 próby zalogowania się, więc naprawdę musi osiągnąć 99% dokładności. Mogę nad tym popracować w czasie wolnym, ale nie chcą, żebym włożył w to więcej niż kilka godzin, więc chcę wykorzystać jak najwięcej istniejącego kodu. Jest to wyświetlacz 7-segmentowy (jak budzik), więc nie jest to dokładnie tekst, który byłby użyty w pakiecie OCR.

Dodatkowo - po stronie wyświetlacza znajduje się minutnik; Zwykle, gdy spada do 1 bara, trzeba poczekać, aż pojawi się następny numer, i zaczyna się od 5 barów (jak siła sygnału w telefonie komórkowym). Więc to też musi być OCRD, ale to nie jest tekst.

W każdym razie im więcej o tym myślę, kiedy to piszę, tym mniej jestem przekonany, że naprawdę mogę to naprawić, więc może powinienem popracować nad tym w wolnym czasie?

+1

Oczywiście * można * zrobić, ale po co? Po prostu wpisz te cholerne cyfry i zapisz swoją najlepszą pracę na coś pożytecznego. –

+5

To zawsze świetny pomysł, aby poinformować cały Internet, że komputer w Twoim biurze automatycznie loguje się na konto bankowe Twojej firmy o określonej godzinie każdego dnia, kiedy nikogo nie ma w pobliżu. –

Odpowiedz

6

To jest naprawdę łatwiejsze niż na początku. Używałem tej techniki w przeszłości, ponieważ cyfry zawsze wyglądają tak samo i zawsze pojawiają się w tych samych lokalizacjach.

Po prostu utwórz dziesięć małych masek, po jednej dla każdej cyfry i przygotuj skrypt, który podzieli twój jeden obraz jpg na kawałki, po jednym dla każdej cyfry. Wyrównaj aparat raz, a następnie zostaw to tak. Teraz masz dziesięć masek dla 0-9 i rzeczywiste cyfry na urządzeniu. Pomnóż wartości pikseli w każdej masce przez każdą cyfrę i wybierz najwyższą wartość w każdym przypadku. Dzięki temu dowiesz się, które maski najlepiej pasują do każdej cyfry, i możesz tego użyć do określenia cyfr.

Oświadczenie: Nie sądzę, że jest to świetny pomysł ze względów bezpieczeństwa, jak zauważyli inni komentatorzy.

+1

Podoba mi się twoja odpowiedź, ale wierzę, że ten projekt pozostanie na stosie złych pomysłów. – user130582

+0

Nie rozumiem tego. Co masz na myśli mówiąc "pomnóż wartości pikseli"? Jeśli po prostu pomnożę wartości, myślę, że maska ​​8 razy pomnożona przez dowolną inną aktualną cyfrę będzie zawsze miała najwyższą wartość. – prostynick

2

Wierzę, że istnieje wersja oprogramowania tokena RSA SecurID. See here

Nie jestem pewien, czy zadziała w twojej sytuacji (być może będziesz musiał porozmawiać z bankiem), ale jeśli tak, to prawdopodobnie łatwiejsze i bardziej niezawodne niż OCR.

+0

Problem polega na tym, że musisz poprosić swojego administratora o zarejestrowanie go. Życzymy powodzenia, jeśli masz do czynienia z taką historią jak "Rozważałem OCR na tokenie sprzętowym, aby to zrobić, ale czy mógłbyś ..." – 0xC0000022L

1

Tylko dla uśmiechu możesz spróbować przesłać skan swojego tokena RSA do Tesseract OCR i zobaczyć, jak dobrze działa po wyjęciu z pudełka. Domyślam się, że będziesz musiał dokonać znacznego ulepszenia wartości kontrastu/jasności skanu, aby uzyskać wyraźny tekst do skanowania.

0

Możesz spróbować użyć interfejsu OCR API pod numerem http://www.webservius.com/corp/docs/wisetrend.pdf - w przypadku tomów, o których mówisz, najprawdopodobniej będzie to bezpłatne. Aby szybko sprawdzić, czy cyfry zostaną rozpoznane, możesz wysłać testowy obraz na adres [email protected], a wyniki OCR otrzymasz e-mailem.

+4

Jest to dość wątpliwe, aby firma pokonała 2-czynnikowy system bezpieczeństwa banku i dostęp do własnych danych banku na jednym ze swoich komputerów. Dzielenie się tymi samymi informacjami przez Internet z usługą sieciową na co dzień wydaje się kłopotliwe. – nealmcb

7

Istnieją co najmniej dwa dobrze udokumentowane open source siedmiosegmentowy programy OCR przeznaczone właśnie dla zadania automatycznie czytanie pilotów RSA SecurID:

bardziej ogólnego przeznaczenia oprogramowanie, które działa na telefonach komórkowych z systemem Symbian mogą być otwarte przez teraz:

Wydaje się, że najnowsze prace dotyczące pomocy osobom niedowidzącym wydają się być Real-Time Detection and Reading of LED/LCD Displays for Visually Impaired Persons - Proc IEEE Workshop Appl Comput Vis. 2011

+0

Powinny być zaakceptowaną odpowiedzią. – 0xC0000022L