What you see is what you sign

What you see is what you sign Christian Frede Theoretische Informatik Diplomarbeit Betreuer: Dr. Bernd Borchert 29.06.2012 Wilhelm-Schickard-Inst...
1 downloads 1 Views 1MB Size
What you see is what you sign

Christian Frede

Theoretische Informatik Diplomarbeit

Betreuer: Dr. Bernd Borchert

29.06.2012

Wilhelm-Schickard-Institut für Informatik Universität Tübingen Sand 13, 72076, Germany

Email: [email protected]

Kurzzusammenfassung

Das Ziel dieser Arbeit ist es, eine Ziffernerkennung auf Basis einer farbcodierten Vorlage umzusetzen. Dabei gibt es wenige Erfahrungen auf die zurückgegriffen werden kann. Die Ziffernerkennung

dient

letztendlich

dem

„Trojaner

sicheren

Online-Banking“.

Die

Ziffernerkennung, aus dieser Arbeit, ist nur ein Teil der gesamten Applikation. Die gesamte Applikation muss später den kompletten Prozess der Verifikation der Überweisungsdaten durchführen können. Ein Teil der Arbeit beschäftigt sich mit allgemeinen Bildverarbeitungsverfahren. Diese dient dem Vergleich zu der in dieser Arbeit entwickelten Methode. Im Vordergrund steht die Sicherheit des gesamten Verfahrens, dass in dieser Arbeit erläutert wird. Der Praktische Teil ist umgesetzt in einer Applikation, die auf das Betriebssystem „Android“ beruht. Entwickelt ist die

Applikation auf

der Betriebssystemversion 2.2.

Diese

Version

ist auch

die

Mindestanforderung. Es werden Methoden verwendet, die in früheren Versionen nicht existieren.

i

Inhaltsverzeichnis 1 Einleitung .........................................................................................................................................1 2 Texterkennung .................................................................................................................................2 2.1 Geschichte ........................................................................................................................2 2.2 Allgemeine Beschreibung der Bildverarbeitung ................................................................3 2.2.1 Vorverarbeitung........................................................................................................3 2.2.1.1 Histogramme ..................................................................................................3 2.2.1.2 Schwellwertoperationen.................................................................................5 2.2.2 Merkmalsextraktion / Merkmalsreduktion ................................................................5 2.2.2.1 Hough Transformation ....................................................................................5 2.2.3 Texterkennung ..........................................................................................................8 2.3 Optische Zeichenerkennung..............................................................................................8 2.3.1 Verfahren zur Zeichenerkennung ..............................................................................8 2.3.2 Hidden Markov Model ..............................................................................................9 2.3.3 OCR Schriftarten ..................................................................................................... 10 3 Formularerkennung ....................................................................................................................... 11 4 Umsetzung der Ziffernerkennung ................................................................................................... 14 4.1 Das Formular .................................................................................................................. 14 4.2 Ansatz I – Winkelberechnung .......................................................................................... 15 4.3 Ansatz II – Projektive Abbildung ...................................................................................... 18 4.4 Schriftart und Eigenschaften für die Erkennung .............................................................. 19 4.5 UML Darstellung ............................................................................................................. 27 4.6 Umsetzungen im Quellcode ............................................................................................ 28 4.7 Ergebnisse ...................................................................................................................... 29 5 Anwendung im Bankwesen ............................................................................................................ 31 5.1 Anwendungen ................................................................................................................ 31 5.2 Sicherheit ....................................................................................................................... 34 5.4 Fazit ................................................................................................................................ 38 6. Anregungen und Verbesserungen ................................................................................................. 39 7. Zusammenfassung ........................................................................................................................ 39 Literaturverzeichnis ............................................................................................................................ I Selbständigkeitserklärung ...................................................................................................................II

ii

Abbildungsverzeichnis Abbildung 2.1: Bildverarbeitung Übersicht ..........................................................................................3 Abbildung 2.2: Original Graustufenbild ...............................................................................................4 Abbildung 2.3: Histogramm zu Abbildung 2.2 ......................................................................................4 Abbildung 2.4: Schwellwert Originalbild ..............................................................................................5 Abbildung 2.5: Schwellwert Anwendung mit th = 127 .........................................................................5 Abbildung 2.6:HNF Darstellung ...........................................................................................................6 Abbildung 2.7: Kantenbild ...................................................................................................................7 Abbildung 2. 8: Hough-Raum ..............................................................................................................7 Abbildung 3.1: UML Diagramm - Algorithmus ................................................................................... 11 Abbildung 3.2: Formular ohne Inhalt ................................................................................................. 12 Abbildung 4.1: Formular mit allen Elementen ................................................................................... 14 Abbildung 4.2: Gleichschenkliges Dreieck.......................................................................................... 16 Abbildung 4.3: Projektive Abbildung ................................................................................................. 18 Abbildung 4.4: Schriftart Euphemia ................................................................................................... 20 Abbildung 4.5: Ziffer mit Boxeckpunkte ............................................................................................ 20 Abbildung 4.6: Illustration der Ziffernerkennung ............................................................................... 21 Abbildung 4.7: Ziffernsuche, erste Abfragedurchgang I ..................................................................... 21 Abbildung 4.8: Ziffernsuche, zweiter Abfragedurchgang I .................................................................. 22 Abbildung 4.9: Ziffernsuche, dritter Abfragedurchgang I ................................................................... 22 Abbildung 4.10: Ziffernsuche, erster Abfrageversuch II ..................................................................... 22 Abbildung 4.11: Ziffernsuche, zweiter Abfrageversuch II ................................................................... 23 Abbildung 4.12: Ziffernsuche, erster Abfrageversuch III .................................................................... 23 Abbildung 4.13: Ziffernsuche, erster Abfrageversuch IV .................................................................... 23 Abbildung 4.14: Ziffernsuche, zweiter Abfrageversuch III .................................................................. 24 Abbildung 4.15: Ziffernsuche, erster Abfrageversuch V ..................................................................... 24 Abbildung 4.16: Ziffernsuche, erster Abfrageversuch VI .................................................................... 24 Abbildung 4.17: Ziffernsuche, Gewichtungen .................................................................................... 25 Abbildung 4.18: Ziffernsuche, Gewichtungen II ................................................................................. 26 Abbildung 4.19: UML Diagramm – Algorithmus Ziffernsuche ............................................................. 27 Abbildung 4.20: Array mit Koordinaten zur Abfrage der Zifferneigenschaften ................................... 28 Abbildung 4.21: Array mit Koordinaten für die Ziffernumgebenden Boxen ........................................ 28 Abbildung 4.22: Relevante Variablen für die Berechnungen .............................................................. 29 Abbildung 4.23: Originalaufnahme mit Handymodell HTC Desire ...................................................... 30 Abbildung 4.24: Zeitmessungen ........................................................................................................ 30 Abbildung 5.1: chipTan Generator mit Codierung.............................................................................. 32 Abbildung 5.2: Man in the middle - Angriff........................................................................................ 36

iii

1

Einleitung

Diese Diplomarbeit beschäftigt sich mit der Theorie und Praxis zur Erkennung von Texten. Während der Theoretische Teil auf das Erkennen von Ziffern und Buchstaben im Allgemeinen eingeht, wird im Praktischen Teil die Erkennung von Ziffern Umgesetzt. In Kapitel 2 wird auf die allgemeine Texterkennung eingegangen. Es werden Methoden zur Bildverarbeitung vorgestellt und es wird beschrieben, wie es dadurch möglich ist Texte zu Erkennen. In Kapitel 3 sind die Grundlagen erläutert, welche durch eine zu vor angefertigte Studienarbeit realisiert sind. Der Praktische Teil, die Ziffernerkennung, ist in einer Android Handy Applikation umgesetzt und in Kapitel 4 Erläutert. Die Arbeit entstand im Rahmen des Ekaay Projektes zur sicheren Authentifizierung in beliebige Webseiten bzw. Services mit einem normalen Smartphone. Das Ekaay Verfahren soll erweitert werden um Trojaner sicheres Online-Banking durchzuführen. Um das Online Banking absichern zu können, muss auch der Benutzer weit möglichst aus diesem Prozess entfernt werden. Der Benutzer überprüft am Ende einer Transaktion die eingegebenen Daten. Menschen sind fehlbar und machen oft Fehler. Beispielsweise betrachtet der Benutzer die Eingabedaten nur halbherzig, falls ein trojanischer Virus die Eingabedaten verändert hat, ist mit einer falschen Transaktion zu rechnen. In einem anderen Szenario werden mehrfach Überweisungen durchgeführt. Dabei ist eine große Anzahl an Daten zu kontrollieren. Bei einer Konzentrationsnachlässigkeit kann dies für einen trojanischen Virus leicht zu einer erfolgreichen Manipulation führen. Um diesen Angriffspunkt für einen trojanischen Virus zu beseitigen wurde diese Diplomarbeit angefertigt. Die Aufgabe besteht darin, für einen Onlineüberweisungsprozess die wichtigsten Daten automatisiert erkennen zu lassen. Die wichtigsten Daten bestehen dabei allein aus Ziffern. Es sind die Daten der Bank, die Bankleitzahl und Kontonummer, zu erkennen. Außerdem ist die Summe des Überweisungsbetrages zu Erkennen. Die Daten sind auf einem Formular dargestellt, welches optimiert ist für die optische Erkennung.

1

2

Texterkennung

Dieses Kapitel beschäftigt sich mit der Theorie der Texterkennung. Es werden Algorithmen vorgestellt die für die Bildanalyse als auch zur Erkennung benötigt werden.

2.1

Geschichte

Der Grundstein zur Texterkennung wurde 1929 in Deutschland gelegt. Mit einer sehr einfachen Konstruktion. So einfach die Konstruktion war, es waren die Grundlagen für heutige Texterkennungssysteme. Denn das damalige Prinzip wird heute, allerdings verbessert, immer noch verwendet. Bei diesem Verfahren wird die zu identifizierende Ziffer beleuchtet. Dahinter befindet sich eine Linse, die das Licht auf eine Trommel projiziert. In der Trommel befindet sich ein Negativ aller Ziffern. Durch das Drehen der Trommel werden alle Ziffern mit der zu identifizierenden Ziffer getestet. In der Trommel befindet sich außerdem eine Fotodiode, welche das Negativ auffängt. Die Ziffer wird erfolgreich gefunden, wenn der Fotostrom in der Diode auf ein Minimum verringert ist. Anfang 1960 wurde durch Fortschritte in der Computertechnologie die Texterkennung weiterentwickelt, sodass die ersten Systeme zur Ziffernerkennung in öffentlichen Diensten wie z.B. in Banken Einzug hielten. Diese Erkennungssysteme waren große Geräte, die allerdings einen Durchsatz von ca. 400 Zeichen in der Sekunde erreichten. Damit diese Erkennung funktionierte, gab es eine neu erstellte Schriftart. Die OCR-A Schriftart, umfasste Ziffern, Buchstaben und 30 Sonderzeichen. Die Zeichen der Schriftart OCR-A sind Konzipiert für einfache Schrifterkennung und sehen daher unnatürlich aus. Dadurch war es möglich jedes Zeichen von jedem anderen Zeichen dieser Schriftart leicht zu unterscheiden. Die Weiterentwicklung der Schriftart endete in der Schriftart OCR-B. Diese Schriftart hat auch die Eigenschaft, dass jedes Zeichen von jedem anderen Zeichen dieser Schriftart leicht zu unterscheiden ist. Sie wurde allerdings in der Optik verbessert und sieht wesentlich natürlicher aus. Vor allem OCR-B bzw. ähnliche Schriftarten werden heut zu Tage immer noch eingesetzt. Unter anderem im Onlinesystem der Banken. In den folgenden Jahren sind Geräte wie Scanner und Computer wesentlich kleiner und Leistungsfähiger geworden. Dadurch sind auch Effizienz und Leistung der Texterkennung gesteigert. Es wurden neue Algorithmen Entwickelt, welche die Leistungssteigerung der Geräte ausnutzen.

2

2.2 Allgemeine Beschreibung der Bildverarbeitung

Das Kapitel 2 beschäftigt sich mit der Bildverarbeitung allgemein. So soll deutlich werden, warum sich diese Arbeit nicht an das allgemeine Vorgehen hält. Um eine Texterkennung durchzuführen werden 4 Schritte benötigt. Für jeden der 4 Schritte gibt es mehrere Möglichkeiten, es werden allerdings nur die bekanntesten Algorithmen dargestellt.

Abbildung 2.1: Bildverarbeitung Übersicht

2.2.1 Vorverarbeitung Der Vorverarbeitungsschritt dient vor allem zur Verbesserung der Bildqualität die unter anderem

durch

Umwelteinflüsse

beeinträchtigt

werden.

Bevor

die

eigentliche

Vorverarbeitung beginnt, wird das vorliegende Bild in ein Grauwertbild konvertiert. Die Arbeit mit einem Grauwertbild ist einfacher, dadurch sind unterschiede leichter zu Erkennen. Somit heben sich einzelne Objekte deutlicher von ihrer Umgebung ab. Im nächsten Schritt der Vorverarbeitung werden Histogramme erstellt.

2.2.1.1 Histogramme Ein Histogramm ist ein Hilfsmittel in der Bildverarbeitung um schnell qualitative Eigenschaften festzustellen, welche wichtig für die Weiterverarbeitung sind. So ist es möglich Bilder von der Weiterverarbeitung auszuschließen, durch die Anzeige entsprechender Werte. Somit werden rechenintensive Berechnungen bei der Bildverarbeitung eingespart. Ein Histogramm stellt die Häufigkeitsverteilung der Farbwerte eines Bildes in einem 2D Diagramm dar. Da in der Vorverarbeitung das vorliegende Bild in ein Grauwertbild umgewandelt wird, wird zur Beschreibung des Histogramms ebenfalls ein solches Bild herangezogen. Es existieren für ein Grauwertbild 256 Farbwerte. In einem Histogramm wird für jeden Farbwert, die Anzahl der Pixel dargestellt die diesen Farbwert angenommen haben. Dies

ermöglicht

die

Übersicht

von

mehreren

Eigenschaften

des

Bildes.

Die

Belichtungseigenschaft des Bildes wird in einem Histogramm daran erkannt, dass in der Histogrammdarstellung die Farbintensitätswerte auf einem kleinen Abschnitt sehr hoch sind, während die Werte in der restlichen Anzeige sehr niedrig sind. Genauso gut, ist der Kontrast herauszulesen. Umso höher der Kontrast, desto mehr Farbwerte werden im Histogramm nicht null sein. Er ergibt sich durch die Differenz zwischen dem ersten Farbwert, ungleich null und dem letzten Farbwert der ungleich null ist. Als letzte wichtige Eigenschaft, ist die Dynamik zu 3

nennen. Die Dynamik, die Anzahl verschiedener Farbwerte ungleich null, gibt die Qualität der Farbübergänge an. Ist die Dynamik gering, so sind auf dem Bild viele einzelne Pixel zu erkennen, da fließende Übergänge fehlen. Bei einer Weiterverarbeitung des Bildes und einer geringen Dynamik, ist die in diesem Teilkapitel nachfolgende Schwellwertoperation nicht mehr erforderlich. Im nachfolgenden ist als Beispiel ein Histogramm mit dem Ursprungsbild dargestellt.

Abbildung 2.2: Original Graustufenbild

Abbildung 2.3: Histogramm zu Abbildung 2.2 In Abbildung 2.2 ist im linken oberen Bildteil eine Überbelichtung durch Sonneneinstrahlung erkennbar. Im Histogramm dargestellt, durch das Maximum im linken Bereich. Die Dynamik ist erkennbar durch die Belegung jedes einzelnen Pixels und wird komplett genutzt.

4

2.2.1.2 Schwellwertoperationen Um

überflüssige

Informationen

oder

Störungen

wie

Rauscheffekte

(Frequenz-

Überlagerungen) zu reduzieren, wird das Bild quantisiert. Dabei wird der Schwellwert „th“ (treshold) wie folgt definiert. (2.1) Der Schwellwert wird auf jeden einzelnen Pixel des Bildes angewendet. Nach der Operation enthält das Bild ausschließlich weiße und schwarze Pixel ohne Abstufungen.

Abbildung 2.4: Schwellwert Originalbild

Abbildung 2.5: Schwellwert Anwendung mit th = 127

2.2.2 Merkmalsextraktion / Merkmalsreduktion Die Merkmalsextraktion und die Merkmalsreduktion sind stufen der Erkennung, die oft nicht voneinander zu trennen sind. Die Algorithmen der Merkmalsextraktion lässt ein Großteil uninteressanter Merkmale verschwinden. Genauso wirkt die Merkmalsreduktion in die Vorverarbeitung mit hinein. Um Textmerkmale aus dem vorliegenden Bild zu gewinnen, gibt es verschiedene Ansätze. In dieser Arbeit wird die Hough Transformation vorgestellt.

2.2.2.1 Hough Transformation Die Hough-Transformation ist ein Algorithmus zum Erkennen vordefinierter Formen. Es gibt verschiedene Möglichkeiten die Hough-Transformation anzuwenden. Je nach Spezifikation, ist die Transformation in der Lage Geraden, Kreise, Ellipsen, oder nicht parametrisierte Formen zu erkennen. Für die Texterkennung wäre die Möglichkeit für nicht parametrisierte Formen wohl am besten geeignet. Allerdings ist diese Variante sehr Rechenaufwendig und Speicherintensive. In den meisten Anwendungen, in denen die Hough Transformation 5

verwendet wird, sind Geraden und Kreise die gesuchten Formen. Dadurch sind die häufigsten, von Menschenhand geschaffenen Formen, gut zu beschreiben und können erkannt werden. Die Funktionsweise der Hough-Transformation wird anhand der Geradengleichung erläutert. Eine Gerade lässt sich durch die folgende Geradengleichung beschreiben. f(x)=m*x + n

(2.2)

Diese ist allerdings Problematisch, da die mögliche Steigung mit

keine nutzbaren

Werte aufweist. Daher wird zur Beschreibung einer Gerade, die Hesse’sche Normalform genutzt. r=

(2.3)

Die Hessesche Normalform (HNF) drückt eine Gerade durch Angabe eines Winkels, einen Normaleneinheitsvektor und den Abstand dieses Vektors vom Nullpunkt aus. In Abbildung 2.6 ist r der Abstand des Normaleneinheitsvektors, der seinen Ursprung im Nullpunkt hat und Senkrecht zur Geraden steht.

Abbildung 2.6:HNF Darstellung In der Abbildung ist veranschaulicht wie eine Kante charakterisiert ist. Der Vektor n, mit Ursprung im Nullpunkt und dem Abstand r. Damit Kanten gefunden werden können, muss als Vorarbeit die Kantenextraktion erfolgen. Dazu wird unter anderem der Algorithmus von Sobel verwendet. Dieser Algorithmus gibt ein Gradientenbild

zurück.

Im

Gradientenbild

sind

hohe

Frequenzen,

starke

Grauwertänderungen in der direkten Pixelumgebung, verstärkt und schwache Frequenzen null gesetzt. Starke Frequenzen stellen dabei den Übergang einer Kante dar. Dabei kann eine Kante zu einer Gerade gehören, zu einem Kreis oder einer anderen Form. Ist das Gradientenbild erstellt, können die Geraden mit der Hough-Transformation gesucht werden. Für die Hough-Transformation ist eine Gerade codiert, durch den Abstand „r“ und dem Winkel „ “. Die Codierung der Geraden wird als Hough-Raum bezeichnet. Aus dem 6

Gradientenbild wird für jeden einzelnen Gradienten, die HNF berechnet und das Ergebnis wird in den sogenannten Akkumulator gespeichert. Das bedeutet, dass für jeden Punkt aus dem Gradientenbild, eine Kante als codiertes Paar (r, ) in dem Akkumulator gespeichert wird. Der Akkumulator ist dabei ein 2 dimensionales Array. Dabei sind (r, ) die beiden Achsen. Wenn eine Gerade gefunden wird, existiert für jeden Punkt auf der gefundenen Gerade, eine Gerade im Hough-Raum. Dabei entsteht ein Schnittpunkt. Denn alle Punkte einer Geraden haben einen gemeinsamen Schnittpunkt. Dies ist bedingt durch die Geradengleichung bzw. HNF. Im Hough-Raum werden gefundene Kanten als Schnittpunkt vieler Kanten dargestellt.

Abbildung 2.7: Kantenbild

Abbildung 2. 8: Hough-Raum In Abbildung 2.8 ist der Hough-Raum aus der Abbildung 2.7 dargestellt. Es sind 4 Kanten gefunden worden. Die Interpretation des Hough-Raums ist oft nicht sehr einfach. In diesem Beispiel sind 4 Schnittpunkte deutlich zu erkenne, welche die 4 Kanten im Originalbild darstellen. Die anderen Kanten, welche in zwei Richtungen aus den Schnittpunkten herausragen, sind die anderen Punkte auf den Geraden im Originalbild. Die gefundenen Geraden sind allerdings nicht mit Anfang und Ende erkannt. Bei einer Rücktransformation in das Originalbild, würden die Geraden über den Grenzen hinaus bis zum Beginn bzw. Ende des Bildes verlaufen. Daher ist eine Nachbearbeitung erforderlich. Beispielsweise können beide

Enden,

der

jeweiligen

Kanten,

durch

starke

Farbänderungen

oder 7

Helligkeitsänderungen erkannt werden. Dazu ist es erforderlich, jede Kante linear abzusuchen. Die Hough-Transformation kann angepasst werden um auch Kreisformen zu finden. Dazu wird die HNF durch die Angabe des Kreismittelpunkts und den Kreisradius ersetzt.

2.2.3 Texterkennung Durch den Extraktionsvorgang wäre es theoretisch möglich, zu bestimmen welche Zeichen oder Wörter gefunden werden. Die Problematik ist jedoch, dass viele Zeichen ähnlich sind. Es wird also nicht vorausgesetzt, dass nur OCR Schriften gesucht werden. Daher erfolgt eine Überprüfung der extrahierten Merkmale. Es gibt oft Situationen in der die extrahierten Merkmale nicht eindeutig sind. Bei der Erkennung der Zeichen werden diese mit Wörterbüchern verglichen. Außerdem werden Statistische Verfahren angewendet, um die Wahrscheinlichkeit auf Übereinstimmung zu prüfen.

2.3 Optische Zeichenerkennung Durch die Vorarbeit existieren nutzbare Daten zur Erkennung von Textzeichen. Die vorgestellten Algorithmen zur Gewinnung der Texte sind allgemein für Ganze Wörter als auch für einzelne Zeichen zu verwenden. Der weitere Verlauf in der Arbeit, bezieht sich ausschließlich auf Zeichenerkennung.

2.3.1 Verfahren zur Zeichenerkennung Es gibt verschiedene Verfahren um Zeichen zu erkennen. Die einfachste Methode ist geeignet, wenn ausschließlich Ziffern erkannt werden sollen. Es wird dazu um jede Ziffer eine Box gelegt. Die Box hat in der Höhe und in der Breite die gleichen Ausmaße wie die Ziffer. Wird die Ziffer „1“ mit der Ziffer „6“ verglichen, so ist der Höhenunterschied minimal. Die breite ist ein definitives Merkmal dafür, dass die Ziffer „1“ gefunden wurde. Um auch andere Zeichen zu erkennen als Ziffern, müssen mehrere Merkmale geprüft werden. So kann von einem Zeichen das schwarz-weiß Verhältnis, in einem bestimmten Bereich der Box als Merkmal verwendet werden. Die Länge und der Winkel der Seitenlinien eines Zeichens kann ebenfalls ein Zeichen identifizieren. Eine andere Herangehensweise zur Identifizierung ist, die Beschreibung des Zeichens. Im Gegensatz zu eindeutigen Eigenschaften, genügt die Angabe der Lage einzelner Merkmalen ohne Einzelheiten wie Länge oder Winkel einer Linie. Für die Ziffer „0“ kann eine Eigenschaft sein, im Zentrum des Zeichens ist der Hintergrund sichtbar. Eine andere Möglichkeit wäre, Eigenschaften des ganzen Zeichens zu vergleichen wie Helligkeitsverteilung oder Linienverteilung. Die erwähnten Verfahren scheinen einfach 8

umsetzbar zu sein. Allerdings beginnen die Probleme schon bei der Erstellung des zu untersuchenden Bildes. Durch Umwelteinflüsse wie starke Sonneneinstrahlung, unsaubere Aufnahmegeräte, aber auch qualitativ schlechte Geräte können gravierende Störungen verursachen. Es kann dazu führen, dass trotz Vorverarbeitung, Linien nicht korrekt erkannt werden, da die Konturen zu schwach sind. Filter wie die Schwellwertoperation löschen wichtige Kanten heraus, aufgrund der schwachen Kontur. Die vorgestellten Methoden zur Zeichenerkennung zielen alle auf das Finden oder nicht finden von Merkmalen. Ein anderer Ansatz ist der Einsatz von künstlichen neuronalen Netzen (KNN). KNN können als Graphen interpretiert werden, mit Zuständen für die Entscheidungen und Verknüpfungen zwischen den Zuständen. Durch Gewichtungen der internen Zustände, werden die Entscheidungen getroffen. Die Eingabe eines KNN ist ein Merkmalsvektor, in dem unter anderem Helligkeitsmerkmale oder Seitenverhältnisse enthalten sein können. Durch die internen Verknüpfungen ist das KNN in der Lage den Eingangsvektor mit einem Ausgangsvektor zu belegen, welcher die richtige Identifikation des jeweiligen Zeichens enthält. Durch ein KNN ist die Merkmalsauswertung nicht einfacher geworden. Allerdings sind KNN in der Lage zu lernen und dadurch eine Interpretation

schlechter Eingaben durchzuführen. Einer

erfolgreichen Interpretation, geht eine Lernphase voraus. In dieser Phase werden umfangreiche Testeingaben in das KNN eingegeben. Die Testeingaben haben dabei verschiedene Qualitätsstufen, sodass die Interpretation möglichst gut ist. In der Testphase werden die Gewichtungen der einzelnen Zustände solange angepasst, bis die Ergebnisse zu den Eingaben richtig Verwertet werden. Die Testphase ist auch einer der Nachteile der KNN, denn diese nimmt eine lange Zeit in Anspruch bis brauchbare Ergebnisse folgen. Eine lange Testphase ist sehr wichtig. Ein KNN kann dahingehend trainiert werden, Eingaben aus dem aktuellen Wissensstand zu

Abstrahieren. Dadurch ist das KNN in der Lage,

Merkmalsvektoren korrekt zu verarbeiten, welche nicht trainiert wurden. Dieser Vorteil macht das Erkennen fremder Schriftarten möglich, ohne große Änderungen am Erkennungssystem durchzuführen. Voraussetzung sind Ähnlichkeiten der neuen Schriftarten zu den bekannten. Auch für ein KNN ist ein Merkmalsvektor mit brauchbaren Daten Voraussetzung. Denn auch die Interpretationsfähigkeiten von KNN sind begrenzt.

2.3.2 Hidden Markov Model Ein häufig verwendetes stochastisches Verfahren zur Mustererkennungen ist das Hidden Markov Model (HMM). Das HMM ist eine Erweiterung der Markov Kette. Mit der Markov Kette lassen sich relativ gute Prognosen zum Verlauf eines Prozesses vorhersagen. Eine Markov Kette kann als eine Menge von linearen Zuständen verstanden werden, wobei die Wahrscheinlichkeit für den weiteren Prozessverlauf nur vom letzten Zustand abhängt. Das bedeutet auch, dass alle vorherigen Zustände unabhängig voneinander sind. Das HMM baut 9

auf die Markov Ketten auf. Es werden Zustände und Ereignisse voneinander getrennt. Die Zustände sind nicht einsehbar (hidden). Es existiert ein zweiter Stochastischer Prozess, dessen Zustände jeweils eine vordefinierte Wahrscheinlichkeit besitzen. Die Zustände des zweiten Prozesses sind einsehbar. Durch die Beobachtungen und den Einzel Wahrscheinlichkeiten der Zustände beider Prozesse, wird auf den weiteren Verlauf des ersten Prozesses geschlossen. Bezogen auf die Texterkennung hilft ein HMM um Entscheidungen zu treffen. In Abhängigkeit des aktuellen Wortes oder Buchstaben und in Kombination mit einem Wörterbuch, wird die Wahrscheinlichkeit ob das gefundene Wort oder Zeichen erfolgreich erkannt wird berechnet. Die Wahrscheinlichkeit ist hoch wenn ein Zeichen, abhängig vom Wörterbuch, in Kombination mit dem vorherigen Zeichen zusammenpasst. Ist bei einem Wort wie „Stadt“ folgendes erkannt „Stad1“, so ist die Wahrscheinlichkeit für das Zeichen „t“ höher als die für das Zeichen „1“. Durch ein Wörterbuch sind Übereinstimmungen für „Stadt“ gefunden, nicht aber für „Stad1“.

2.3.3 OCR Schriftarten Texterkennungssysteme sind häufig eingesetzte Systeme um Verwaltungsvorgänge schnell und automatisiert durchzuführen. Sie werden bei Behörden oder Banken eingesetzt. Um die Texterkennung dabei so zuverlässig wie möglich durchführen zu können, ist die Erkennung von Handschriftlichen Texten nachteilig. Da diese für die Erkennung wesentlich komplizierter und Fehleranfälliger sind. Allerdings stellen auch viele Maschinell erstellte Fonts, Texterkennungssysteme vor Probleme. Um solche Probleme zu umgehen wurden 1973 die erste OCR Schriftart entwickelt. OCR-A ist eine Schriftart, die für jedes einzelne Zeichen einen klaren und eckigen Aufbau vorsieht. Jedes Zeichen hat eine unverwechselbare Eigenschaft dass die Erkennung vereinfacht. Diese Schriftart wurde entwickelt, für die Texterkennung durch damalige Systeme. Diese Erkennungssysteme hatten sehr begrenzte Leistungen. Mit der Weiterentwicklung

der Computertechnologie wurde die Schriftart

abgelöst, von der OCR-B Schrift. Die einzelnen Zeichen sind optimal voneinander zu trennen, durch einzigartige Merkmale. Dabei ist die Schrift nicht mehr Kantig, um funktional zu sein, wie der Vorgänger. Beispiel OCR-A: ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890

Beispiel OCR-

B: ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 Die beiden Beispiele zeigen die Unterschiede der beiden Schriften. Es ist erkennbar, wie die OCR-B Schrift einer normalen Druckschrift ähnelt. Es existieren andere Schriftarten welche nicht vom Typ OCR-B sind, aber die gleichen Merkmale Erfüllen. 10

3 Formularerkennung

Abbildung 3.1: UML Diagramm - Algorithmus In der Einleitung wurde die Aufgabenstellung erläutert. Es wird gefordert auf einen Banküberweisungsträger, die relevanten Daten (bestehend aus Ziffern) für die Überweisung automatisch zu Erkennen. Um die Ziffern erkennen zu können, ist es wichtig zuvor Informationen über die Lage des Formulars zu besitzen. Dadurch wird erst die Ziffernerkennung ermöglicht. Die Erfassung des Formulars, mit der Bestimmung der 11

Formulargrenzen bzw. der genauen Positionen der 4 Ecken des Formulars, wurde in einer früheren Arbeit umgesetzt. Der Algorithmus zu Erkennung des Formulars wird im Folgenden zusammengefasst, da in dieser Arbeit die exakte Bestimmung der Formularecken verbessert und dadurch verdeutlicht wird, nach welchem Prinzip die komplette Erkennung verläuft. Im UML Diagramm aus Abbildung 3.1, wird die Ziffernsuche als Teilschritt erwähnt. Die Ziffernerkennung beschränkt sich auf das Erkennen einer Ziffer, die als große 7 Segment Anzeige dargestellt wird. Die Erkennung dient als Nachweis, der früheren Arbeit, auf Funktionalität der Formularsuche. Es wird nicht weiter darauf eingegangen. Der im Diagramm dargestellte Algorithmus wird im Folgenden näher erläutert. Das zur Erkennung optimierte Formular ist Farbcodiert. Die Unterscheidungen der Merkmale bei der Suche werden anhand der Farbwerte einzelner Formularelemente vorgenommen. Dies ist das Grundprinzip für die Formularsuche als auch für die Ziffernerkennung.

Abbildung 3.2: Formular ohne Inhalt In Abbildung 3.2 ist das Codiert Formular dargestellt. Es sind die Datenelemente, die Bankdaten und andere Texte weggelassen worden, da diese nicht notwendig sind für die Erläuterung des Algorithmus. Nachdem das Formular mit einem Aufnahmegerät digitalisiert wurde, liegt es im jpg-Format vor. Dadurch ergibt sich allerdings das Problem, welches durch die jpg-Kompression entsteht. Bei der Komprimierung in ein jpg-Format wird das Bild befreit von nicht benötigten Informationen, die für das Menschliche Auge nicht sichtbar sind. Außerdem werden durch einen Filter benachbarte Pixel teilweise miteinander verschmolzen. Die Ränder besitzen somit keine eindeutige Abgrenzung zum inneren (gelbe Fläche) des Formulars. Störend ist die Problematik bei einer pixelgenauen Suche, sofern sich die zu suchende Eigenschaft in einem Bereich ansiedelt in dem ein Farbübergang vorhanden ist. Der Algorithmus beginnt mit der Suche nach dem Formular, indem mehr als 70 Pixel auf dem Bild zufällig nach der Farbe Gelb überprüft werden. Bei einem Erfolg wird zunächst davon ausgegangen, dass dies das Formular ist. Der gefundene Punkt wird als Ausgangspunkt für die folgenden Operationen benutzt. Strahlenförmig von dem gefundenen Punkt, wird zum Bildrand hin untersucht ob sich eine Randfarbe finden lässt. Es handelt sich hierbei um eine lineare Suche. Die Suche beginnt im gelben Ausgangspunkt und verläuft zum linken oberen 12

Bildrand. Im Uhrzeigersinn und um 60 Pixel im Endpunkt versetzt, beginnt der nächste Strahl die Suche nach einer Randfarbe. Ist die Suche nach einer Umrundung wieder im Ausgangspunkt angelangt, wurde das komplette Umfeld des Ausgangspunktes abgesucht. Sind die Randfarben nicht gefunden, wird die Suche nach einem neuen Ausgangspunkt fortgesetzt. Handelte es sich allerdings um das Formular, wurden die Randfarben gefunden. Bei der erfolgreichen Suche, wird immer der erste und letzte gefundene Pixel eines roten Randes gespeichert. Diese Punkte sind, durch den geringen Abstand der linearen Suche, stets im unmittelbaren Bereich eines Übergangs zu einem anderen Rand. Durch die Suche im Uhrzeigersinn und der Farbübergänge zu den anderen Rändern, ist eine Orientierung des Formulars gewährleistet. Dadurch kann leicht erschlossen werden, welche Ausrichtung das Formular hat. Es kann hochkant, oder um 180 Grad gedreht aufgenommen werden. Ausgangspunkt für den nächsten Schritt, sind die gefundenen Punkte auf den roten Rändern um die exakten Eckpunkte zu finden. Im Formular existieren zwei rote Ränder. Auf beiden, sind jeweils 2 Punkt gefunden. Diese beiden Punkte bilden eine imaginäre Gerade die bis zum Bildrand, in beide Richtungen der Geraden, verlängert werden. Von beiden Punkten aus, wird die imaginäre Gerade linear abgesucht. Die Suche erfolgt von jedem der Punkte immer in die Richtung, in welche der Rand am nahesten liegt. Gesucht werden die schwarzen Felder, in den Ecken des Formulars. Eine erfolgreiche Erkennung der schwarzen Felder wird registriert, wenn ein Übergang von der Randfarbe auf eine schwarze Fläche geprüft wird. Der Mittelpunkt der schwarzen Fläche stellt einen Eckpunkt des Formulars dar. Der Mittelpunkt berechnet sich aus zwei Geraden, die Horizontal und Vertikal über dem Quadrat gelegt wird. Der X-Wert der horizontalen Geraden, zusammen mit dem Y-Wert der Vertikalen Geraden, ergibt den Mittelpunkt des schwarzen Quadrates. Die Ränder des Quadrates, werden ebenfalls anhand der Farbübergänge festgelegt. Die Problematik durch die jpg-Komprimierung, hat nur geringen Einfluss. Das Liegt an dem starken Kontrast zwischen der Quadratfarbe und der Umgebung.

13

4 Umsetzung der Ziffernerkennung Die Erkennung des Formulars ist die Grundlage für die Ziffernerkennung. Durch die Positionen der Formulareckpunkte im Bild, berechnet sich die Lage der Ziffern. Die Grundlage, damit die Berechnungen erfolgreich sind, ist ein Original mit bekannten Ausmaßen. Ausgehend von diesen Daten, werden die relativen Positionen der Elemente des Formulars auf dem zu Untersuchenden Bild errechnet. Die bekannten Daten sind nicht Ausreichend für eine erfolgreiche Erkennung. Es existieren mehrere Einflüsse, welche die Erkennung erschweren. Das zu bearbeitende Bild wird mit einer Handykamera erstellt. Unbekannte Faktoren ergeben sich durch die nicht vorherzusagende Ausrichtung der Handykamera

zum Darstellungsmedium des Formulars.

Das Formular

kann aus

unterschiedlichen Winkeln, innerhalb der drei Raumdimensionen aufgenommen werden. Wenn das Formular, bezogen auf die Tiefe, schräg aufgenommen wurde, stellt dies eine Verzerrung des Formulars dar. Die Seite des Formulars welche näher an der Kamera liegt wird größer dargestellt, während die entferntere Seite kleiner Dargestellt ist. Neben der Ausrichtung der Kamera, nimmt auch die Entfernung der Kamera zum Darstellungsmedium Einfluss auf die Qualität. Eine zu große Entfernung, hat negativen Einfluss auf die Qualität der Zifferndarstellung. Je größer die Entfernung, je kleiner die Ziffern. Bei zu geringer Größe können einzelne Elemente der Ziffern, unzureichend voneinander unterschieden werden.

4.1 Das Formular Das Formular, von dem die Berechnungen im wesentlichen Abhängen, ist einem Standard Banküberweisungsformular nachempfunden. Der größte Unterschied ist die Farbcodierung, die ein wesentlicher Punkt für die Erkennung darstellt.

Abbildung 4.1: Formular mit allen Elementen 14

In Kapitel 3 wurde bereits auf das Formular eingegangen und damit auch die Erkennung Erläutert. Zur Erkennung dienen die Farben der Ränder, ebenso wie die gelbe Hintergrundfarbe. Aus diesem Grund dürfen diese Farben nicht zur Darstellung anderer Elemente genutzt werden. Dies würde die Erkennung stören. Die Schriftfarbe ist eine Ausnahme. Diese, ebenfalls zu Erkennung der Formularecken eingesetzte Farbe behindert die Suche nicht. Die Eckpunkte werden erst in einem letzten Schritt, lokal in dem jeweiligen Bereich gesucht. Während die Nutzung der Randfarben und der Hintergrundfarbe Formularweit verläuft. Die Wahl der verschiedenen Farben, wurde auf der Grundlage des größten Kontrastes getroffen. Es wurde versucht für jedes Element eine Farbe zu benutzen, welche sich von allen anderen deutlich absetzt. Umso schwerer die Farbwerte zu unterscheiden sind, desto fehleranfälliger ist die Erkennung. Die Positionen der Ziffern haben, für die Erkennung, mehrere Eigenschaften zu erfüllen. Jede Ziffer, ist von einer Box Umgeben. Diese Box ist für das Design unwichtig und daher nicht sichtbar. Zur Erkennung einer Ziffer wird die Box als Grenze verwendet. Es wird der gleiche Algorithmus benutzt wie in Abschnitt 4.3 beschrieben. Die Grenzen sind allerdings nicht die Formulareckpunkte, sondern die vier Eckpunkte der Box, welche jede Ziffer umgeben. Für die Bestimmung der Position ist die Box nicht notwendig, dazu würden auch die Formulareckpunkte genügen. Der Vorteil dieser Box besteht darin, leichter das Layout des Formulars ändern zu können. Für die Positionierung der Ziffer, ist somit nur ein Koordinatenpaar erforderlich. Die Erkennung der Ziffer, ist von der veränderten Position nicht betroffen und wird ohne weitere Änderungen funktionieren.

4.2 Ansatz I – Winkelberechnung Die genauen Koordinaten der Elemente, wie Ziffernbox oder die Ziffern selber, können auf verschiedene Weise berechnet werden. In diesem Ansatz ergeben sich die Koordinaten durch trigonometrische Berechnungen. Grundlage sind die Eckpunkte des Formulars. Insgesamt sind 4 Eckpunkte verfügbar. Durch die Suche des Formulars und den Eckpunkten, ergibt sich eine Orientierung im Formular. Unabhängig von der Ausrichtung, werden auf jedem Bild dieselben Kanten des Formulars für die Berechnung genutzt. Genauer beschrieben bedeutet das, eine Ecke zwischen einem roten und einem blauen Rand ist immer Ausgangspunkt für die folgenden Berechnungen. Dies gilt auch, falls das Formular um 180 Grad gedreht ist. Um die Koordinaten der Elemente zu berechnen, wird ein gleichschenkliges Dreieck zwischen zwei Eckpunkten aufgespannt. Die dafür benutzten zwei Eckpunkte bilden eine Kante, die parallel zu der ersten Ziffernreihe verläuft.

15

Abbildung 4.2: Gleichschenkliges Dreieck Um das Dreieck anschaulich abzubilden, wurde in Abbildung 4.1 die Textelemente entfernt. In diesem Bild, ist die parallel zu der ersten Ziffernreihe (in der Abbildung ausgeblendet) verlaufende Kante blau gefärbt. Ist das Formular gespiegelt, bezogen auf die Y-Achse, so wird das Dreieck ebenfalls gespiegelt aufgespannt. Es ergeben sich wiederum alle Eigenschaften eines gleichschenkligen Dreiecks. Ziel ist es den Winkel „Alpha“ in der Abbildung 4.1 zu bestimmen. Für die Bestimmung des Winkels, wird die Länge der Kanten des Dreiecks benötigt. Die Längen der Geraden werden mit einer Gleichung, die aus dem Satz des Pythagoras folgt, bestimmt. Diese ergibt den Abstand „a“ zweier Punkte P1(x1, y1) und P2 (x2, y2) in einer Ebene. Durch die verschiedenen Lagen einer Kante in einer Ebene, reicht es nicht eine Differenz zwischen den Punkten auszurechnen. Die Gleichung zur Bestimmung der Kantenlängen, wird auch euklidischer Abstand bezeichnet. (4.1) Durch die Informationen der Kantenlänge, ist es möglich den gesuchten Winkel zu berechnen. Für die Bestimmung der Position eines Punktes im richtigen Winkel, werden der Sinus als auch der Cosinus des Winkels benötigt. Die Berechnungen sind einfache trigonometrische Operationen. Der Sinus lässt sich durch die Beziehung, Gegenkathete des Winkels geteilt durch Hypotenuse, erhalten. Der Cosinus durch die Beziehung, Ankathete des Winkels geteilt durch Hypotenuse. Die Einordnung der Seiten, Hypotenuse, Ankathete, Gegenkathete, sind abhängig von der Ausrichtung des Formulars. Daran ist auch das gleichschenklige Dreieck orientiert, dass in dem Formular aufgespannt wird. Mit dem Winkel und einer Rotationsmatrix, ist es möglich jeden Punkt um einen Formulareckpunkt zu drehen, sodass die richtige Position erreicht wird. Die Drehung wird stets um den Eckpunkt mit dem Winkel „Alpha“ gedreht. Dieser Winkel, ist je nach Ausrichtung in der Ecke mit dem Randübergang rot-blau oder in der Ecke mit dem Randübergang blau-rot. Die Drehmatrix hat dabei folgenden Aufbau. (4.2)

16

Die angegebene Rotationsmatrix, vollzieht eine Drehung gegen den Uhrzeigersinn. Je nach Ausrichtung des Formulars, wird der zu positionierende Punkt im Uhrzeigersinn gedreht oder gegen den Uhrzeigersinn. Um den Punkt im Uhrzeigersinn zu drehen, wird die Rotationsmatrix wie folgt abgeändert.

(4.3)

Die Rotationsmatrix dreht Punkte um den Koordinatenursprung, daher muss vor der Berechnung, der Abstand zwischen Koordinatenursprung und Zielpunkt abgezogen werde. Nach der Berechnung wird der Abstand wieder hinzuaddiert. Die bei der Winkelberechnung einzusetzenden Punkte, ergeben sich aus den relativen Koordinaten. Die Koordinaten eines Punktes der Ziffer oder der Box eines Zeichens, ergeben sich aus dem Originalformular. Diese sind abgemessen und fest vorgegeben. Die zu drehenden

Punkte sind

keine absoluten Werte,

sondern

relative Abstände.

Zur

Verdeutlichung, ein relativer Wert gibt die Position nicht in Pixelkoordinaten an. Beispielsweise liegt ein Punkt, bezogen auf die Gesamtstrecke, bei den Koordinaten die sich auf der

- fachen Strecke befinden. Jeder vorgegebene Punkt, wird durch dieses Verfahren

berechnet. Eine Aufnahme des Formulars ist allerdings nicht ideal. Ideal bedeutet dass die Aufnahme immer optimal beleuchtet ist, keine Spiegelungen existieren und die Abbildung dem Original exakt entspricht. Im Allgemeinen sind die Winkel, aus dem das Formular aufgenommen wird immer unterschiedlich, wodurch es zu Verschiebungen, Drehungen und Skalierungen im Vergleich zu dem Original kommt. Durch die Winkelberechnung, sind die Drehungen im 2 dimensionalen Raum mit eingerechnet. Eine Drehung in die Tiefe des Raums, also in die dritte Dimension, ist dabei nicht berücksichtigt. Auf einem 2 dimensionalem Bild, wird tiefe dargestellt, indem die Objekte kleiner werden. Das Formular wird dadurch in verschiedenen Größen dargestellt. Die Formularseite, welche sich näher an der Kamera befindet, wird größer dargestellt. Die andere Seite, wird kleiner dargestellt. Durch die Originalvorlage, sind die Seitenlängen bekannt. Außerdem sind von den vier Seiten diejenigen gleich groß, welche sich gegenüberliegen. Um diese Unregelmäßigkeiten zu beseitigen, wurden die Größendifferenzen der sich gegenüberliegenden Seiten ermittelt. Der prozentuale Unterschied wurde zu den Pixelkoordinaten hinzugerechnet. Dabei stellte sich heraus, es gibt keine Zusammenhänge zwischen den Größendifferenzen und den verschobenen Pixelkoordinaten. Ein besserer Lösungsansatz wird im folgenden Teilkapitel besprochen und ist in der Applikation umgesetzt.

17

4.3 Ansatz II – Projektive Abbildung Dieser Lösungsansatz verzichtet auf Winkelberechnungen und beachtet gleichzeitig die Ausrichtungen des Formulars, in allen drei Dimensionen. Ziel der Projektiven Abbildung ist, beliebige zwei dimensionale Rechtecke oder Vierecke in ein Rechteck überzuführen, dass einem vorgegebenen Rechteck entspricht.

Abbildung 4.3: Projektive Abbildung Die in Abbildung 4.3 dargestellte Figur, veranschaulicht das Ziel. Das linke Rechteck, stellt das von einer Kamera aufgenommen Formular dar. Das Rechteck auf der rechten Seite, bildet das Formular nach den Transformationen ab. Es hat die gleichen Ausmaße wie die Vorlage des Formulars. Das Ergebnis folgt aus der Beziehung von vier Punkten des aufgenommenen Bildes, sowie den vier Punkten der Vorlage. Es ist dabei unerheblich welche Ausrichtung das Formular auf dem aufgenommenen Foto hat. Das Formular kann in jede Richtung verschoben oder skaliert sein. Die Abstände der Koordinaten werden nach der Abbildung verändert. Geometrische Elemente wie Linien bleiben erhalten. Bei der projektiven Abbildung werden durch acht Freiheitsgrade, die richtigen Koordinaten errechnet. Die Freiheitsgrade entsprechen dabei der Translation, Rotation, Scherung und Skalierung. Für einen beliebigen Punkt und mit Hilfe der affinen Abbildung, ist es möglich jede der vier Freiheitsgrade in Kombination anzuwenden. Es gilt folgende Beziehung.

=

=

*

(4.4)

Die Matrix a, beinhaltet 8 Freiheitsgrade. Der Wert „1“, in der Matrix gibt an, dass alle anderen Matrixwerte kein vielfaches sind. Denn es handelt sich um homogene Koordinaten. Auch erkennbar durch die Vektoren, die für einen Punkt in einem zwei dimensionalen Raum insgesamt

drei

Koordinaten

angeben.

Durch

homogene

Koordinaten

ist

die

Matrixschreibweise überhaupt möglich. Ohne die Erweiterung durch den dritten Eintrag im 18

Vektor fehlt eine Multiplikation um auch die Translation mit obiger Matrix zu berechnen, die nur eine Addition eines Faktors zu einer Punktkoordinate ist. Für die zu berechnenden Koordinaten, sind die Freiheitsgrade erforderlich. Aus der obigen Gleichung lässt sich ein Gleichungssystem erstellen, mit folgender Form x‘ = a11 * x + a12 * y + a13 - a31 * x * x‘ - a32 * y * x‘

(4.5)

y‘ = a21 * x + a22 * y + a23 - a31 * x * y‘ - a32 * y * y‘.

(4.6)

Diese beiden Gleichungen, sind gültig für jeden Freiheitsgrad. Daraus resultieren insgesamt 8 Gleichungen. In der vorteilhafteren Matrixschreibweise entsteht folgende Gleichung.

– =

– – – – –

*

(4.7)

Als Kurzform für die weitere Verwendung, hat die Gleichung folgende Struktur. x‘ = M * a

(4.8)

Um die neuen Koordinaten zu berechnen, fehlen noch die Parameter aus dem Vektor a. Da die Einträge im Vektor x‘ und in der Matrix M bekannt sind, werden durch ein Gleichungssystem alle Einträge im Vektor a berechnet. Da es sich bei x‘ = M * a um eine lineare Abbildung handelt, ist es möglich durch eine invertierte Matrix M-1 und durch die umgestellte Gleichung a = M-1 * x‘ eine Lösung für den Vektor a zu erhalten. Mit dem Lösungsvektor a lassen sich unter Anwendung der Formel 4.4, die Koordinaten von der Formularvorlage, in die entsprechenden Koordinaten auf dem erstellten Bild umwandeln.

4.4

Schriftart und Eigenschaften für die Erkennung

Durch den in Abschnitt 4.3 beschriebenen Vorgang, stehen die Punktkoordinaten zur Verfügung um die Ziffern zu erkennen. Damit die Erkennung effektiv durchzuführen ist, muss eine Schriftart vorliegen die eine klare Merkmalsunterscheidung zwischen den Zeichen zulässt. In Kapitel 2 findet die Schriftart OCR-B Erwähnung. OCR-B ist keine Standardschriftart in den meisten Betriebssystemen. Es ist aber wichtig, dass die Schriftart in verschiedenen Browsern gleich dargestellt wird. Fehlt Sie, so werden die Zeichen in einer beliebigen Schrift dargestellt. Dadurch wird die Erkennung beeinträchtigt. Die Schriftart 19

„Euphemia“ erfüllt die zuvor benannten Bedingungen. Euphemia hat einen zu OCR-B ähnlichen Stil. Nachfolgend sind die Ziffern der Schriftart zur Verdeutlichung abgebildet.

Abbildung 4.4: Schriftart Euphemia Erkennbar sind die deutlichen Abgrenzungen der einzelnen Zeichenelemente, wie die obere horizontale Linie der Ziffer 5. Diese Linie hat einen großen Abstand zum Rumpf der Ziffer und ist somit als Merkmal dieser Ziffer gut zu identifizieren. Während der Durchführung der Erkennung, wird für jedes Ziffernzeichen eine gegebene Menge von Merkmalen geprüft. Die gegebene Menge besteht aus Pixelkoordinaten relativ zur Box, welche die Ziffer umgibt.

Abbildung 4.5: Ziffer mit Boxeckpunkte In Abbildung 4.5 ist eine Ziffer dargestellt, in der Schriftart „Euphemia“. Die roten Punkte, stellen die Ecken der Box dar, welche sich um jede Ziffer befindet. Durch diese Ecken werden, verbunden mit den Berechnungen aus Abschnitt 4.3, die Positionen der zu prüfenden Merkmale errechnet. Die Merkmale beziehen sich auf das vorhanden sein der Farbe schwarz, an den definierten Koordinaten. Die Definition der Positionen, für die Abfrage vorgegebener Punkte muss im Vorfeld wohl überlegt sein. Abhängig ist die Wahl auch von der gewählten Methode zur Erkennung. Für die Abfrage, der vordefinierten Punkte, gibt es mehrere Möglichkeiten. Zwei davon werden im Folgenden beschrieben. Beide haben Vorteile und Nachteile. Die erste Möglichkeit besteht darin, die Ziffern durch Ausschluss zu ermitteln. Es werden mehrere Merkmale, zur Prüfung auf das vorhanden sein der Farbe schwarz an einer definierten Stelle abgefragt. Bei Erfolg des ersten Abfragedurchgangs, wird ein Teil der möglichen Ziffern ausgeschlossen. Ein Abfragedurchgang ist definiert als, die Suche der Merkmale vom Start bis zum ersten Erfolg oder die Suche der Merkmale von einem erfolgreichen Fund bis zum nächsten. Der Ausschluss bei einer Suche erfolgt auf der Grundlage, dass die zu prüfenden Bereiche der Ausgeschlossenen Ziffern zu keinem Erfolg führen oder durch eine schon erfolgte Überprüfung nicht mehr in der Ergebnismenge liegen. Die folgenden Abfragen, beziehen sich auf die noch verbleibenden Ziffern. Nach der 20

folgenden Prüfung werden die nächsten Ziffern ausgeschlossen. Am Ende der Suche bleibt die Ziffer übrig, auf die alle abgefragten Merkmale zutreffen. Im Folgenden ist die Suche durch Ausschluss Illustriert.

Abbildung 4.6: Illustration der Ziffernerkennung In Abbildung 4.6 ist der Teil des Formulars dargestellt, durch das die Erkennung beschrieben wird. Zur Verdeutlichung ist die Ziffernreihenfolge 0 bis 9 im Feld „Konto Nr.“ eingetragen. Der erste Abfragedurchgang untersucht zwei Merkmale. Sind diese positive getestet, werden die restlichen Ziffern ausgeschlossen.

Abbildung 4.7: Ziffernsuche, erste Abfragedurchgang I Die in Abbildung 4.7 enthaltenen weißen Linien markieren die Stellen, an denen die Überprüfungen auf die Farbe schwarz durchgeführt werden. Die Prüfung findet nur einmal an den zwei weißen Positionen in der Darstellung statt. Alle Punkte der eingezeichneten weißen Linien unterliegen der Prüfung. Falls eine Ungenauigkeit der Eckpunkte vorliegt, ist die Erkennung

dadurch

weniger

Fehleranfällig.

Zum

besseren

Verständnis

sind

die

Markierungen an allen Ziffern eingetragen. Es zeigt, dass durch die zwei Prüfungen, 3 Ziffern mit den gleichen Merkmalen gefunden werden. Die Ziffern, welche in der Abbildung 4.7 fehlen, wurden Ausgeschlossen. Der folgende Abfragedurchgang dient zur Unterscheidung der Ziffern in der Abbildung 4.7.

21

Abbildung 4.8: Ziffernsuche, zweiter Abfragedurchgang I In Abbildung 4.8 sind die Markierungen für die Prüfung an zwei Punkten gesetzt, an denen sich die zwei Markierten Ziffern von der dritten unterscheiden. Fällt die Prüfung erfolgreich aus, so steht fest dass die Ziffer „Null“ gefunden ist. Bei einer Negativen Prüfung, erfolgt ein weiterer Abfragedurchgang.

Abbildung 4.9: Ziffernsuche, dritter Abfragedurchgang I Die letzte Prüfung, dargestellt in Abbildung 4.9, unterscheidet zwischen der Ziffer „sechs“ und „acht“. Ist die Prüfung erfolgreich ist letzteres das Ergebnis. Ist die Prüfung aus Abbildung 4.7 nicht erfolgreich, so verläuft der zweite Abfragedurchlauf mit der Prüfung anderer Ziffern und die „null“, „sechs“ und “acht“ werden Ausgeschlossen.

Abbildung 4.10: Ziffernsuche, erster Abfrageversuch II Wie in Abbildung 4.7, sind die Markierungen für einen positiven Ausgang der Überprüfung auf die Farbe schwarz abgebildet. Die Überprüfung wird einmal ausgeführt. In Abbildung 4.10 sind die Ziffern abgebildet, welche durch die Überprüfung der vorgegebenen Merkmale ausgewählt und für die Weiterverarbeitung nicht auszuschließen sind. Der dritte Durchlauf unterscheidet weiter zwischen den beiden Ziffern „drei“ und „neun“.

22

Abbildung 4.11: Ziffernsuche, zweiter Abfrageversuch II Die letzte Unterscheidung wird mit der Eigenschaft in Abbildung 4.11 getroffen. Ein positiver Ausgang, ergibt als Ergebnis die Ziffer „neun“. Ein negativer Ausgang liefert als Ergebnis die Ziffer „drei“. Werden die Überprüfungen aus Abbildung 4.8 und 4.10 negative ausfallen, so wird als zweiter Abfrageversuch wieder eine andere Eigenschaft überprüft. Alle bisher negativen Ergebnisse führten zu dem Ausschluss der Ziffern 0, 6, 8, 3, 9.

Abbildung 4.12: Ziffernsuche, erster Abfrageversuch III Mit diesen beiden Eigenschaften wird ausschließlich die Ziffer „zwei“ erkannt oder nicht. Da bei diesem Zeichen die Eigenschaften gewählt werden können, sodass die Ziffer direkt erkannt wird. Es ist kein weiterer Abfrageversuch notwendig, um die Ziffer von einer anderen zu unterscheiden.

Abbildung 4.13: Ziffernsuche, erster Abfrageversuch IV Ist auch die Ziffer „zwei“ nicht erkannt, so ist die folgende Eigenschaft zu prüfen. An diesem Punkt sind alle Ziffern bis auf 4, 5, 1 und 7 ausgeschlossen. Dadurch sind auch weniger Überschneidende Merkmale mit anderen Ziffern zu erwarten. Es ist ausreichend die restlichen Ziffern auf ein einziges Merkmal zu untersuchen. Um die Ziffern in Abbildung 4.13 zu unterscheiden ist das Merkmal in Abbildung 4.14 zu untersuchen.

23

Abbildung 4.14: Ziffernsuche, zweiter Abfrageversuch III Ist auch diese Abfrage nicht erfolgreich, so werden die letzten beiden Ziffern untersucht.

Abbildung 4.15: Ziffernsuche, erster Abfrageversuch V Die beiden Ziffern werden nacheinander in der dargestellten Reihenfolge überprüft, wenn die Überprüfung der ersten Ziffer ein negatives Ergebnis erzielt. Andernfalls wird die Ziffer „sieben“ erkannt. Ein Banküberweisungsformular beinhaltet mindestens ein relevantes Sonderzeichen für die Erkennung. Im Feld „Betrag“ wird zur Einteilung des Zahlungsbetrags ein Komma verwendet.

Abbildung 4.16: Ziffernsuche, erster Abfrageversuch VI Das Kommazeichen wird maximal einmal verwendet. Aus diesem Grund befindet sich die Suche nach diesem Zeichen am Ende der Abfragekette. Vor allem im Feld „Betrag“ kann es vorkommen, dass bei kleinen Beträgen nicht alle Felder ausgefüllt sind. Dieser Fall tritt ein, falls die Identifikation des Kommazeichens mit einem negativen Ergebnis abgeschlossen ist. Dieser Fall ist gleichbedeutend mit, es wurde kein schwarzes Pixel gefunden. Die in diesem Vorgang benutzten Merkmalskoordinaten, sind keine strikten Vorgaben. Andere Merkmale zur Identifizierung der Ziffern sind möglich. Allein der Erkennungsvorgang wird mit diesen Merkmalen gezeigt. Wie schon erwähnt, ist die Bestimmung der Merkmale abhängig von der Methodik zur Erkennung der Ziffern. Im zuvor beschriebenen Ansatz ist es wichtig, während der ersten Abfrage Merkmale zu finden die möglichst viele Ziffern 24

ausschließen. Ab der zweiten Abfrage, sind relativ wenige Merkmale nötig, um die gefundenen Ziffern aus der ersten Abfrage zu unterscheiden. Da aufgrund der geringen Anzahl verbliebenden Zeichen eine Unterscheidung leicht fällt. Dieser Ansatz zur Erkennung der Ziffern ist Effizient. Es ist eine geringe Anzahl an Überprüfungen der Merkmale notwendig. Der Ansatz kann eingesetzt werden, falls sich die Schriftart

selten

ändert.

Dabei

kann

unter

anderem

bei

Massenüberweisungen,

Bearbeitungszeit gespart werden. Allerdings ist es aufwändiger, falls die verwendete Schriftart geändert wird, Änderungen im Programm durchzuführen. Bei einer Schriftänderung sind nicht nur die Merkmale unterschiedlich, durch die neuen Abfragekoordinaten, sondern auch die Abfragelogik im Quellcode. Aufgrund der Effizienz, ist dieser Ansatz in der Applikation umgesetzt. Eine andere Variante um die Ziffern zu erkennen, wird im Folgenden vorgestellt. Diese Variante prüft alle Merkmale an jeder einzelnen Ziffer und schließt während des Vorgangs keine anderen Ziffern aus. Jedes Merkmal besitzt einen eindeutigen numerischen Wert, die Gewichtung. Die einzelnen Gewichtungen werden zusammen multipliziert und ergeben für jede Ziffer ein eindeutiges Ergebnis. Ein numerischer Wert wird hinzu multipliziert, falls für eine Eigenschaft die Überprüfung auf die Farbe schwarz erfolgreich ausfällt. Der endgültige Wert entscheidet, welche Ziffer erkannt wurde. Es existiert für jede Ziffer eine eindeutige Menge von Gewichtungen.

Abbildung 4.17: Ziffernsuche, Gewichtungen Abbildung 4.17 zeigt eine Gewichtung der Ziffer „acht“. In der Darstellung sind die Eigenschaften eingezeichnet, mit denen die Ziffer identifiziert wird. Die eingetragenen Einzelgewichtungen werden zusammen multipliziert und ergeben die Gesamtgewichtung 1560.

25

Abbildung 4.18: Ziffernsuche, Gewichtungen II In der Abbildung 4.18 sind die Eigenschaften für die Ziffer „acht“, mit einer erfolglosen Suche eingetragen. Die Markierung mit dem Numerischen Wert 4 ergibt eine negative Prüfung. Die Multiplikation ergibt als Ergebnis 27, es existiert keine Ziffer mit dieser Gewichtung. Da es keinen Erfolg bei der Identifizierung gibt, werden die nächsten Gewichtungen einer Ziffer geprüft. Die Wahl der Gewichte ist dabei sehr wichtig. Sie müssen so gewählt werden, dass Verwechslungen ausgeschlossen sind. Jede Ziffer muss einen eindeutigen Wert, durch die Multiplikation der gesamt Einzelgewichte erhalten. Für diesen Ansatz der Erkennung, müssen die Merkmale unter einem anderen Aspekt gewählt werden als bei der Methode zuvor. Bei jeder Ziffer werden im schlechtesten Fall alle Merkmale geprüft. Daher müssen Merkmale definiert werden, die eine Ziffer eindeutig identifizieren. Denn bei mehreren Ziffern kommen

Merkmalsüberschneidungen

mit

anderen

Ziffern

vor.

Da

Ziffern

nicht

Ausgeschlossen werden, verkleinert sich die Menge der eindeutigen Merkmale. Daher ist eine Kombination aus vielen Merkmalen zu empfehlen. Die Erkennung der Ziffern in diesem Ansatz, ist weniger Effizient als der zuvor beschriebene. Im ungünstigsten Fall wird für die Erkennung einer Ziffer, die Eigenschaften aller Ziffern geprüft. Je mehr Ziffern zu erkennen sind, desto mehr Eigenschaften müssen geprüft werden. Vorteile bringt dieser Ansatz, wenn die zu erkennenden Zeichen in verschiedenen Schriftarten dargestellt werden. Das Ändern der Schriftart erfordert die Aktualisierung der Merkmalskoordinaten. Der Algorithmus zur Erkennung der Ziffern muss sich nicht ändern. Es sind keine Änderungen nötig, da die Prüfung nacheinander stattfindet. Es gibt keine Logik die entscheidet, dass ein Merkmal auf eine bestimmte Ziffer hindeutet und dadurch die Abfrage entsprechend ändert.

26

4.5 UML Darstellung

Abbildung 4.19: UML Diagramm – Algorithmus Ziffernsuche

27

4.6 Umsetzungen im Quellcode Dieser Abschnitt des Kapitels zeigt im Quellcode wichtige Bereiche. Die gezeigten Bereiche sind wichtig, wenn am Formular Veränderungen durchgeführt werden. Es wird aufgezeigt, die Positionierungen der nicht sichtbaren Boxen um die Ziffern. Außerdem die Positionierung der Punkte zur Ziffernabfrage. Diese Eigenschaften sind in der Klasse findNumbers.java zu finden.

Abbildung 4.20: Array mit Koordinaten zur Abfrage der Zifferneigenschaften Das Feld „digit“, enthält die Koordinaten der Zifferneigenschaften. Sie sind in Pixel angegeben. Ausgehend von dem Rand der Box, welche die Ziffer umgibt. Die linke obere Ecke der Box, hat die Koordinate (0,0). Wird die Schriftart geändert, so werden im Feld „digt“ die Koordinaten entsprechend der neuen Eigenschaften abgeändert. Im Folgenden Feld sind die Koordinaten enthalten um die Boxen zu positionieren.

Abbildung 4.21: Array mit Koordinaten für die Ziffernumgebenden Boxen Die Boxen werden wie die Zifferneigenschaften positioniert. Die Koordinaten orientieren sich an den Grenzen des Formulars. Die Koordinate (0,0) ist die linke obere Ecke des Formulars. Die Koordinaten sind alle von der Form {x, y}. In der Abbildung stehen die Kommentare für die Zuordnung der Koordinaten zu den Feldern im Formular. Es ist eine Unterstützung um die Übersicht zu bewahren. Um das Layout des Formulars zu verändern, müssen die Koordinaten im Feld „frames“ abgeändert werden. Jedes Koordinatenpaar steht für eine ganze Box. Sie definiert die linke obere Ecke. Die Anzahl der Boxen gibt somit an, wie viele Ziffern auf dem Formular zu finden sind.

28

Andere Variablen für die Bestimmung der Koordinaten, auf dem mit einer Handykamera aufgenommenen Formulars sind in Abbildung 4.22 Abgebildet.

Abbildung 4.22: Relevante Variablen für die Berechnungen Die Variable „cp“ vom Typ „ComputePosition2“, ist für die Berechnungen zuständig. Die Methoden der Klasse müssen mit den Koordinaten belegt sein, die Positionen und Größe des Formulars angeben das als Vorlage dient. Aber auch dessen, welches mit der Kamera aufgenommen ist. Die Variable „locatedNumber“ enthält nach Ablauf des Algorithmus, die gefundene Ziffer als Ergebnis. Die beiden Variablen frameWidth und frameHigh geben die Größe der Boxen an. Als letztes fehlt die Angabe der Ausmaße des Formulars, welches als Vorlage dient. In den beiden Variablen originalFormularLength und originalFormularHigh sind diese gespeichert.

4.7 Ergebnisse Zu Illustrierung wird nachfolgend eine Aufnahme dargestellt. Die Aufnahme des Formulars ist mit den gefundenen Punkten der Boxen um jede gesuchte Ziffer versehen. Die Punkte, für das Erkennen der Ziffern, werden nicht mit angezeigt. Die Anzeige der Punkte beeinträchtigt die Durchführung des Suchalgorithmus, da falsche Farbwerte vorhanden sind. Es kann ein verfälschtes Ergebnis liefern. In Kapitel 4.4 wird die Suche mit den Markierungen ausführlich erläutert. Auf der Abbildung 4.23 sind, für das Feld „Konto Nr.“, die Boxen um die Ziffern verdeutlicht. In den anderen Feldern, ist stattdessen ein einziges Feld für die Eingabe des Benutzers eingefügt. Im Feld „Betrag (EUR)“ sind 5 Ziffern, ein Kommazeichen und 6 Freifelder abgebildet. Die Freifelder, werden in der Ausgabe ebenfalls als leere Felder dargestellt. Das kleine Quadrat unter dem Feld „Betrag (EUR)“ ist eine Markierung durch die Formularsuche. Die Stelle kennzeichnet den Punkt der gefundenen gelben Farbe. Dabei wurde die direkte Umgebung auf die gleiche Farbe untersucht um auszuschließen, dass kein Bildfehler vorliegt. Auf den schwarzen Randquadraten des Formulars sind die Markierungen eingezeichnet, welche die gefundenen Formulareckpunkte darstellen. Da ein einzelner Punkt schwer zu erkennen ist, wurden die Nachbarschaftspunkte ebenfalls hervorgehoben.

29

Abbildung 4.23: Originalaufnahme mit Handymodell HTC Desire Im Beispiel sind nur drei Felder für die Erkennung mit Markierungen versehen, da die Abbildung ausschließlich zur Verdeutlichung dient.

Vorgang Suche einer Ziffer Suche aller Abgebildeter Ziffern Formularsuche Ziffernsuche mit Formularsuche Kamerafokussierung

Zeit in ms 13 676 377 1053 500 - 1000

Abbildung 4.24: Zeitmessungen Die Zeitangaben aus Abbildung 4.24 sind schwankende Werte, aufgrund der Abhängigkeiten durch die Größe des Formulars. Die Größe ist wiederum abhängig von der Entfernung der Kamera des Mobiltelefons zum Bildschirm, auf dem das Formular abgebildet ist. Die Werte sind entstanden, durch eine Nahaufnahme des Formulars. Die Zeitangaben sind für den schlechtmöglichsten Fall erstellt.

30

5

Anwendung im Bankwesen

In diesem Kapitel wird auf die Anwendungsmöglichkeiten und zum Sicherheitsaspekt, der bisher vorgestellten Arbeit eingegangen. Die Beschreibungen der Anwendungen und der Sicherheitsaspekte sind in zwei separaten Abschnitten diskutiert um die dargestellten Szenarien deutlicher darzustellen.

5.1 Anwendungen Das Erkennen eines Überweisungsformulars und die damit verbundene Erkennung der Ziffern auf dem Formular, sind vor allem entwickelt um Banküberweisungen im Internet abzusichern. Eine Banküberweisung verläuft wie folgt. Ein Benutzer meldet sich im Internet auf der Internetseite der jeweiligen Bank an. Auf einer Unterseite für Überweisungen, lassen sich die Daten der Überweisung eintragen. Um die Überweisung abzuschließen ist es erforderlich, einen Bestätigungscode anzugeben. Für einen Bestätigungscode existieren verschiedene Möglichkeiten zur Erstellung. Die bekanntesten werden im Weiteren vorgestellt. Das Tan-Verfahren ist das älteste und unsicherste. Banken sind zurzeit darum bemüht, dieses Verfahren zu ersetzen. Jeder Bankkunde, welcher dieses Verfahren nutzt, besitzt eine TAN Liste. Der Kunde erhält eine Tan Liste mit der Post. Die Liste enthält ungefähr 100 Nummern, wobei jede Nummer genau einmal benutzt werden darf. Im obigen Beispiel, ist eine Tan-Nummer der Bestätigungscode. Die Internetseite fordert den Kunden auf eine Nummer zur Bestätigung einzugeben. Dabei wird immer die fortlaufende Nummer auf der Tan-Liste verwendet. Eine Weiterentwicklung dieses Systems, bekannt unter dem Namen iTan, fordert den Kunden durch die Internetseite auf eine ganz bestimmte Tan-Nummer zu benutzen. Die Tan-Nummern sind bei iTan-Listen mit Indexnummern versehen. Die verwendeten Nummern, sind nicht mehr nacheinander abzulesen. Ein anderes Verfahren, mTan bezeichnet, benötigt nicht mehr das vorhanden sein einer Tan-Liste. Das mTan Verfahren nutzt die Tatsache aus, dass Mobiltelefone weit verbreitet sind. Ein Kunde hinterlegt seine Mobiltelefonnummer bei der jeweiligen Bank. Für den Abschluss der Überweisung, besteht auf der Internetseite die Möglichkeit eine Tan-Nummer anzufordern. Nach Bestätigung dieser Option, erhält der Kunde eine SMS (short message service) auf das Telefon. Die Mobiltelefonnummer ist zuvor bei der Bank zu hinterlegt. Die SMS beinhaltet die wichtigsten

Informationen

Überweisungsbetrag,

das

über

die

Zielkonto

aktuelle und

der

Überweisung.

Dabei

Bestätigungscode

sind

der

enthalten.

Der

Bestätigungscode ist ebenfalls komplexer und besteht aus Ziffern und Buchstaben. Die Gültigkeit ist limitiert auf wenige Minuten. Das letzte zu erwähnende Verfahren, ist das 31

chipTan Verfahren. Der Benutzer benötigt von der Bank ein Tan Generator. Dieses Gerät besitzt ein Bankkartenlesegerät, eine kleines Display und eine numerische Tastatur.

Abbildung 5.1: chipTan Generator mit Codierung In Abbildung 5.1 links, ist ein Tan-Generator abgebildet wie er bei den meisten Banken zum Einsatz kommt. Nach der Eingabe der Überweisungsdaten, muss die Kundenbankkarte in das Gerät eingeführt werden. Auf der Internetseite erscheint eine Grafik, wie Sie in der Abbildung 5.1 rechts dargestellt ist. Der Generator muss mit der Front vor der Grafik gehalten werden. Für die richtige Ausrichtung, befinden sich auf dem Gerät und auf der Grafik jeweils zwei Dreiecke. Jeweils ein Dreieck auf dem Generator und eines auf der Abbildung müssen aneinander gehalten werden. Die weißen Balken blinken und die Fotosensoren an der Vorderseite des Gerätes registrieren die Helligkeitsveränderungen. Durch das blinken der Balken werden die Daten an das Gerät übertragen. Die Daten bestehen aus der Zielkontonummer und dem Betrag, wie bei der mTan Methode und werden auf dem Display zur Überprüfung angezeigt. Für den Fall das die Erkennung nicht funktioniert, erfolgt die Eingabe der erforderlichen Daten mit der Tastatur auf dem Generator. Nach der Eingabe erstellt das Gerät, unter Einbezug der eingegebenen Daten eine TANNummer. Nachdem der Bestätigungscode durch die Anwendung einer der beschriebenen Methoden erstellt und erfolgreich eingegeben ist, ist der Überweisungsvorgang abgeschlossen. Die in dieser Arbeit erstellte Methode eine Banküberweisung durchzuführen verläuft wie folgt. Der Benutzer meldet sich ebenfalls auf der Internetseite der jeweiligen Bank an. Nach der Eingabe der Überweisungsdaten wird die Handyapplikation gestartet. Da die eingegebenen Daten in dem Formular dargestellt sind, welches in Kapitel 4.1 beschrieben ist, wird die Handyapplikation zum Erkennen der Daten gestartet. Ist die Erfassung abgeschlossen, findet eine Gegenprüfung zwischen dem Telefon und der Bank statt. Auf dem Handy sind die Anmeldinformationen hinterlegt. Ergibt die Überprüfung einen positiven Erfolg, wird die Überweisung ausgeführt. Geprüft werden die Daten vom Telefon mit denen aus dem Formular auf der Internetseite.

32

Für den Anwender ist die Methode mit den Voraussetzungen verbunden, ein Mobiltelefon zu besitzen und die Applikation installiert zu haben. Bei der Tan bzw. iTan Methode benötigt der Benutzer die Tan-Liste. Für die Mobile Anwendung problematisch, da es ein Sicherheitsrisiko darstellt, diese Listen auf Reisen oder kleineren Ausflügen zu nutzen. Das mTan Verfahren, ist komfortabel. Der überwiegende Teil der Benutzer nutzt ein Mobiltelefon. Einen Bestätigungscode zu erhalten, ist sehr einfach und schnell. Voraussetzung ist ein funktionstüchtiger Dienst bei der jeweiligen Bank und ein funktionstüchtiges Handy mit Netzempfang. Die chipTan Methode setzt einen Tan-Nummern Generator voraus. Sie verursacht zusätzliche Kosten für einen Bankkunden. Der Vorgang ist zum Teil aufwendiger aufgrund des kleinen Displays, denn die zu prüfenden Bankdaten können nur einzeln dargestellt werden. Wie bei der Tan / iTan – Methode, ist für die mobile Anwendung immer zusätzliches Material notwendig. In diesem Fall ein Tan-Generator. Wenn der Kunde mehrere Konten bei unterschiedlichen Geldinstituten besitzt, so benötigt der Kunde von jeder Bank einen chipTan Generator. Dies verursacht Kosten und erfordert, je nach Anzahl der verschiedenen Konten bei unterschiedlichen Banken, mehrere Generatorgeräte. Das durch diese Arbeit entwickelte Verfahren nutzt wie die mTan Methode das Mobiltelefon. Es gibt keine zusätzlichen Geräte oder Listen, welche verloren gehen können. Bei Verlust des Mobiltelefons, ist eine Sperrung erforderlich und ein Ersatzgerät ist für den weiteren Einsatz erforderlich. Der Einsatz ist für den Benutzer einfach. Der Benutzer muss keinen Erstellten Bestätigungscode separat eingeben. Dadurch vereinfacht und beschleunigt sich das Überweisungsverfahren. Bei einigen Banken, verursachen die von der Bank versendeten SMS kosten. Diese liegen bei wenigen Cent für eine SMS. Eine erweiterte Anwendung zur Überweisung, sind Massenüberweisungen. Vor allem Unternehmer nutzen Massenüberweisungen um schnell mehrere Banktransaktionen durchzuführen. Um Sammelüberweisungen durchzuführen, gibt es zwei Möglichkeiten. Die erste Möglichkeit stellt die eingegebenen Daten in dem Formular aus Kapitel 4.1 nacheinander dar. Für jede Überweisung wird ein Formular generiert, welches durch die Handyapplikation registriert wird. Nach erfolgreicher Erkennung und Überprüfung, wird das Formular mit den Daten der nächsten Überweisung dargestellt. Wieder wird das Formular mit den Überweisungsdaten identifiziert. Der Vorgang dauert solange, bis die letzte Überweisung erfolgreich geprüft wurde. Für den Benutzer ist dieses Verfahren umständlich. Die zweite Möglichkeit

besteht

darin,

das

Überweisungsformular

abzuändern.

Bei

einer

Sammelüberweisung, stammen die Summen von dem gleichen Konto und haben verschiedene Zielkonten. Auf dem neuzugestaltenden Formular reicht es aus das Quellkonto einmal abzubilden. Die restlichen Daten beschreiben die Zielkonten mit Bankleitzahl und Überweisungsbetrag. 33

Neben Überweisungen und Massenüberweisungen ist es vorstellbar, das wysiwys-Verfahren auch in anderen Bereichen einzusetzen. Möglich ist ein Einsatz als Ersatz von Türschlüsseln. Ein Benutzer bekommt die Applikation, mit einem integrierten Schlüssel der den Benutzer identifiziert. An der Tür ist ein Schild fest angebracht, mit dem Layout des Formulars aus Kapitel 4.1. Der Inhalt des Schildes kann eine Raumnummer sein. Falls es sich um einen Gebäudekomplex handelt, in dem sich der Benutzer aufhält, ist die Raumnummer komplexer aufgebaut. Somit wird auch das jeweilige Gebäude zu identifizieren sein. Wird das Schild durch die Applikation erkannt, erfolgt eine Überprüfung mit einem Sicherheitsserver. Ist die Überprüfung erfolgreich, so kann die Verriegelung geöffnet werden und der Benutzer öffnet die Tür. Um zu prüfen, ob auch der richtige Benutzer das Mobiltelefon benutzt, ist eine Abfrage mit Persönlicher Identifikationsnummer empfehlenswert.

5.2 Sicherheit Die Motivation für diese Arbeit, ist die Sicherheit im Umgang mit personalisierten Daten im Internet bei verschiedenen Prozessen. Die in Abschnitt 5.1 vorgestellten Methoden, Bestätigungsnummern zu erhalten sind auch unter sicherheitstechnischen Aspekten zu beurteilen. Das Tan Verfahren, ist negativ zu beurteilen. Die Zustellung der Nummer erfolgt mit der Post. Die Postsendung kann entwendet oder falsch zugestellt werden, denn die Zusendung erfolgt nicht mit einem einschreiben sondern mit der normalen Post. Unternehmer sind oft verreist. Auf der Reise werden auch Banktransaktionen durchgeführt. Dabei besteht das Risiko des Verlustes der Tan-Liste. Die auf der Tan-Liste enthaltenen Nummern, werden nacheinander benutzt. So kann ein Angreifer, vorausgesetzt die Zugangsdaten des Benutzerprofils bei der Bank sind ebenfalls bekannt, einfach Geld entwenden. Die Erweiterung, das iTan Verfahren, fordert den Benutzer auf eine bestimmte Nummer aus der Liste zu verwenden. Das erweiterte Verfahren erhöht die Sicherheit nur minimal. Die ersten Phishing Angriffe konnten so abgewehrt werden. Mittlerweile sind diese Angriffe auch weiterentwickelt und fragen die verwendete Indexnummer der iTan-Liste ab, als auch die Nummer selbst. Zur Erläuterung, bei einem Phishing Angriff wird dem Benutzer ein Link zugesendet, oft in einer Email. Die Email enthält einen Link und Text der darauf hinweist, dass es nötig sei auf der Internetseite die Anmeldedaten einzugeben bzw. TanNummern. Die Internetseite die durch den Link in der Email aufgerufen wird, ist eine Kopie der originalen Internetseite der jeweiligen Bank. Die Eingegebenen Daten werden gespeichert und für kriminelle Zwecke verwendet. Die Verwendung des mTan Verfahrens hat eine enorme Sicherheitssteigerung gebracht. Durch die Kombination mit zwei Geräten, dem Computer mit der Eingabe der Überweisungsdaten und dem Mobiltelefon. Durch das 34

Mobiltelefon wird der Benutzer identifiziert. Außerdem ist es unwahrscheinlich, dass die Tan in der Gültigkeitszeitspanne von ein paar Minuten zu verlieren ist. Die Tan selber bestehen nicht nur aus Ziffern. Es ist eine Kombination auf Ziffern und Buchstaben. Dadurch ist es schwieriger das Verfahren zu entschlüsseln, durch die Tan-Codes erstellt werden. Mit dem Einsatz von zwei verschiedenen Geräten, sind Angreifer gezwungen beide Geräte zu kontrollieren und in Echtzeit eine Manipulation der Überweisung zu Erwirken. Der Aufwand ist hoch, allerdings nicht unmöglich. Seit dem Jahr 2010 existiert mit dem Trojanischen Virus „Zeus“ die Möglichkeit, mTan-Nummern von einem Mobiltelefon zu erlangen. Ein weiterer Angriffspunkt besteht durch das Benutzerkonto. Im Benutzerkonto ist es möglich die Mobilfunknummer abzuändern. Die Änderung ist ohne großen Aufwand und ohne weitere Überprüfung möglich. Ist es einem Angreifer möglich die Telefonnummer zu ändern, hat er Zugriff auf das Benutzerkonto. Schädliche Überweisungen sind ohne weitere Mühe möglich. Eine sichere Methode ist die chipTan. Hat ein Angreifer die Benutzerzugangsdaten, so wird die Geldkarte und der Tan-Generator benötigt. Der Generator kann nicht von schädlicher Software befallen werden, im Gegensatz zum mTan Verfahren, bei dem das Telefon eine Schwachstelle darstellen kann. Ein Schwachpunkt existiert bei Sammelüberweisungen. Durch den kleinen Bildschirm des Generators, wird darauf verzichtet die Zielkontodaten anzuzeigen. Der Benutzer muss die Überweisung mit der erstellten Tan-Nummer bestätigen, ohne die Daten zu prüfen und ohne zu wissen, welche Sammelüberweisung der Benutzer bestätigt. Allen Methoden gemeinsam, ist das Problem der Tan Eingabe am Computer. Ein Trojanischer Virus auf dem Computer ist in der Lage, die Daten einer Internetseite lokal auf dem Benutzercomputer zu manipulieren. Als Beispiel sei der sogenannte „Tiny Banker“ genannt. Er kann durch Webinjects die Internetseite einer Bank durch hinzufügen von Eingabefeldern manipulieren. Dadurch können Felder eingeblendet werden, in denen die Tan-Nummer eingegeben werden soll. Eingegebene Bankdaten werden vor der Anforderung der Tan abgeändert, sodass die Tan mit den Überweisungen übereinstimmen. Die Bedeutung des Begriffs „Webinjects“ ist kurz beschrieben. Es handelt sich dabei um erweiterbare Konfigurationsdateien, die im laufenden Betrieb geändert werden. Das

wysiwys



Verfahren

wurde

entwickelt

um

die

zuvor

angesprochenen

Sicherheitsprobleme zu bekämpfen. Im Gegensatz zum Tan-Verfahren gibt es keine vorhersehbaren Tan-Nummern, welche verloren gehen oder geklaut werden. Die Verbindung zwischen Mobiltelefon und Bank findet verschlüsselt statt. Der Vorteil gegenüber dem mTan und chipTan Verfahren besteht darin, dass es keine Tan-Nummern gibt. Diese müssten sonst zusätzlich am Computer eingegeben werden. Dieser Schritt entfällt, dadurch ist ein Trojanischer Virus darauf Angewiesen die Informationen auf dem Computer und dem Telefon lesen zu können. In dem vorgestellten Fall, der über den „Zeus“ Virus handelt, ist ein 35

möglicher Fall bekannt. Die Erkennung der Formulardaten verläuft durch den, in dieser Arbeit vorgestellten Algorithmus. Die Überweisungsdaten sind nicht von einem Benutzer eingegeben. Das senkt die Wahrscheinlichkeit, dass ein Virus die Überweisungsdaten erkennen kann. Die Daten müssen auch sicher auf dem Telefon verwahrt sein, solange Sie auf dem Gerät vorrätig sind. Durch einen sogenannte „Sandbox“ auf dem Telefon ist eine Absicherung möglich. Eine Sandbox bedeutet dabei, einen getrennter Bereich der Ressourcen. Auf diesen Bereich haben keine weiteren Programme zugriff. Ist ein Trojanischer Virus auf dem Computer aktiv mit dem der Überweisungsvorgang durchgeführt wird, gelangt der Virus eventuell an die Daten des Formulars. Möglich ist auch ein Angriff, wie im geschilderten Fall des „Tiny-Banker“, was eine Manipulation des Formulars zu Folge hat. Bei manipulierten Daten auf dem Computer, schlägt die Überprüfung der Daten durch die Telefonapplikation fehl. Bei einem Versuch, mit einem gestohlenen Benutzerzugang Überweisungen vorzunehmen, fehlt die Bestätigung durch das Mobiltelefon. Der Vorgang ist nicht komplett durchgeführt, durch das fehlende Mobiltelefon und der damit verbundenen Überprüfung. Für die obigen, älteren bzw. aktuellen Verfahren besteht die Gefahr eines sogenannten „Man in the middle“ Angriff. Bei dieser Methode befindet sich der Angreifer logisch zwischen dem Benutzer und der Bank. Der Netzwerkverkehr ist durch den Angreifer beliebig kontrollierbar.

Abbildung 5.2: Man in the middle - Angriff Das Beispiel in Abbildung 5.2 stellt die Angriffsmethode dar. In diesem Fall erfolgt der Angriff über ein kontrolliertes WLAN. Der Angreifer täuscht dabei einen WLAN Zugang vor. Der Netzverkehr vom Benutzer wird, nach der Anmeldung an den falschen WLAN Router vom Angreifer entgegen genommen und ausgewertet. Anschließend leitet der falsche WLAN Router die Daten zu dem richtigen WLAN Router. Der Rückweg verläuft ebenfalls über den Angreifer. So ist es auch möglich die Verschlüsselten Daten zwischen Benutzer und der Bank mitzulesen. Dies erfolgt nachdem Aushandeln der Zertifikatsschlüssel. Der Angreifer täuscht beiden Opfern vor, der jeweilige andere zu sein. Nach der erfolgreichen Aushandlung der Zertifikate, ist der Verkehr verschlüsselt, allerdings zwischen Benutzer und Angreifer und zwischen Angreifer und der Bank. Die Daten sind nicht mehr geschützt. Statt dem WLAN kann auch ein normales Ethernet eingesetzte sein. Ist der Angreifer im gleichen 36

Netzwerk oder hat Kontrolle über einen Router, verläuft der Angriff wie beschrieben. Diese Methode kann erfolgreich angewendet werden, bei iTan, mTan und chipTan Verfahren. Es besteht während der Überweisungstransaktion eine Verbindung mit der Bank, wobei der Netzwerkverkehr durch einen Angreifer mitgelesen wird. Die vom Angreifer manipulierten Daten erreichen die Bank. Eine auf den Überweisungsdaten basierende Tan-Nummer erreicht daraufhin den Benutzer und den Angreifer. Für den Angreifer ist die Tan-Nummer gültig, da die Nummer basierend auf die veränderten Kontodaten generiert ist. Ein „Man in the middle“ Angriff ist bei der wysiwys – Methode nicht erfolgreich. Der Angreifer ist in der Lage die Daten aus dem Formular zu erhalten. Werden diese Verändert an die Bank weiter geschickt, schlägt eine Überprüfung mit den Daten des Mobiltelefon fehl. Ein weiteres großes Problem, entsteht durch das Phishing. Die Methode ist in diesem Abschnitt bereits erläutert. Sind durch das Phishing Zugangsdaten des Benutzerkontos an einen Angreifer gelangt, ist eine Überweisung nicht möglich. Wieder gelingt keine Erfolgreich Überweisung eines Angreifers. Auch wenn es möglich ist, die Telefonnummer zu ändern, durch den Zugang auf das Benutzerkonto. Wenn bei einer Änderung der Telefonnummer eine Kontrolle erfolgt. Diese kann Beispielsweise durch eine Bestätigung per Email erfolgen, die Ähnlich verläuft wie bei einer Passwortänderung. In der Email zur Bestätigung ist ein Link hinterlegt. Durch Benutzung des Links, wird die Telefonnummer geändert. Der Phishing Angreifer hat keinen Zugriff auf die Bestätigungsmail. Eine einfachere Möglichkeit einen Phishingversuch zu erkennen, ist möglich ein Satz der Art „Dies ist keine Testüberweisung“ auf dem in Kapitel 4.1 vorgestellten Formular abzubilden. Ein Benutzer kann das von den Anweisungen aus der phishing Email abbringen. Solche Emails sind oft verfasst, um auf Tests der Bank hinzuweisen. Durch diesen Satz ergibt sich ein Widerspruch. Wirkungsvoll ist der Satz nicht bei jedem Benutzer. Da es auch eine große Anzahl an unaufmerksamen Nutzern gibt, welche diesen Satz ignorieren. Die wysiwys-Methode erhöht die Sicherheit für Banküberweisungen, allerdings sind trotzdem theoretische Angriffe möglich. Eine Schwachstelle könnte theoretisch folgende sein. Der Virus verändert die Formulardaten vor dem Einlesen der Handyapplikation. Die zu prüfenden Daten stimmen überein und die Überweisung wird ausgeführt. Änderungen der Formulardaten sind allerdings auffällig. Außerdem ist die Zeitspanne, indem die Daten verändert werden können, sehr kurz.

37

5.4 Fazit Der

wysiwys-Vorgang

ist

für

den

Benutzer

einfacher,

daher

auch

angenehmer

durchzuführen. Der Nutzer benötigt für eine Überweisung zwei Geräte. Einen Computer und ein Handy. Allerdings ist das Mobiltelefon allgegenwärtig und keine zusätzliche Belastung, wie es mit einem chipTan Gerät der Fall ist. Neben der erleichterten Bedienung, ist die Sicherheit im Vergleich zu den bisherigen Systemen nicht schlechter. Die Entscheidung den Algorithmus anhand der Farbmerkmale die Erkennung durchführen zu lassen ist darauf zurückzuführen, dass der Algorithmus möglichst schnell arbeiten muss. Um die Schnelligkeit des Algorithmus vergleichen zu können, ist in Kapitel 2 eine allgemein bekannte Verarbeitung durch Bildanalysen / Bildbearbeitung dargestellt. Der vorgestellte Weg in Kapitel 2 benötigt viele Ressourcen für die Berechnungen. Da die Verarbeitung in jedem Schritt auf das gesamte Bild angewendete wird. Die einzelnen Algorithmen wie Hough Transformation oder Schwellwertoperation besitzen jeweils eine lineare Laufzeit. Diese ist abhängig von der Größe des Bildes. Mobiltelefone haben mit jeder neuen Generation mehr Leistung. Für eine Bildverarbeitung, wie Sie in Kapitel 2 beschrieben ist, sind diese immer noch zu gering. Durch die Farbmerkmale ist es möglich, einen Großteil der Bildinformationen für die Erkennung auszuschließen. Eine Möglichkeit die Ressourcen der Mobiltelefone nicht nutzen zu müssen, trotzdem mit den in Kapitel 2 vorgestellten Methoden zu arbeiten ist folgende. Das Mobiltelefon überträgt die Bilder über eine Internetverbindung zu einem Server. Der Server oder eine entsprechende Infrastruktur, verarbeitet die Informationen und führt eine Erkennung durch. Die Ergebnisse werden an das Telefon zurückgeschickt bzw. direkt an die Bank weitergeleitet. Die Idee dieser Arbeit beruht allerdings darauf, dass die Erkennung lokal auf dem Telefon durchzuführen ist. Denn als späteres Ziel, so die Überlegungen, wird der gesamte Mechanismus auf einen Schlüsselanhänger großes Gerät untergebracht. Die Anforderungen an ein solches Gerät sind Kostengünstig, leicht und klein zu sein. Das Gerät verfügt über eine Kamera zur Aufnahme und den entsprechenden Computerbauteilen für die durchzuführenden Berechnungen.

38

6. Anregungen und Verbesserungen In

Kapitel

5

ist

die

Möglichkeit

für

Sammelüberweisungen

besprochen.

Um

Sammelüberweisungen ausführen zu können, ist es erforderlich den Quellcode anzupassen. Die Menüführung ist dahingehend zu ändern, dass zwischen Normalüberweisungen und Sammelüberweisungen

gewählt

wird.

Ist

das

Formular

verändert,

um

mehrere

Überweisungen gleichzeitig anzuzeigen, müssen neue Eigenschaftspunkte für die Suche definiert werden. Die Eigenschaftspunkte

sind zusätzlich zu denen für einfache

Überweisungen hinzuzufügen. Damit beide Möglichkeiten weiterhin verwendbar sind. Desweiteren muss eine Möglichkeit vorgesehen sein, die Daten manuell am Mobiltelefon über die vorhandene Zifferntastatur einzugeben. Es kann passieren, dass die Telefonkamera defekt ist, oder der Bildschirm auf dem das Formular abgebildet ist hat einen Schaden. LCD bzw. LED Displays können durch kleine Beschädigungen bestimmte Farben nicht mehr Darstellen. Dadurch stimmen die Farbmischungen der Bildschirmpixel nicht und eine Erkennung kann nicht erfolgen.

7. Zusammenfassung Das Ziel der Arbeit besteht darin, eine Ziffernerkennung durchzuführen auf der Grundlage eines Formulars. Die Koordinaten des Formulars sind schon vorgegeben und resultieren aus einer früheren Arbeit. Diese ermöglichte bereits die Aufnahme eines Formulars mit einer Telefonkamera und die Erkennung des Überweisungsformulars in Form der Eckkoordinaten. Durch einen Überblick auf allgemein bekannte Bildverarbeitungsverfahren soll eine Vergleichsmöglichkeit geschaffen sein, durch die bewusst gemacht wird welchen Vorteil der wysiwys-Algorithmus hat. Bei der Erarbeitung des Algorithmus wurden mehrere Wege getestet. Es wurde auch getestet, wie ein Verarbeitungsschritt aus Kapitel 2 auf einem Mobiltelefon verläuft. Dabei ist der Ressourcenmangel sehr deutlich geworden. Allein bei der Verarbeitung des Bildes in ein Schwarz / Weiß Bild, hat das Telefon bis zu 4 Sekunden benötigt. Das Telefon, HTC Desire, ist während der Testzeit ungefähr ein Jahr alt. Später sind Verfahren getestet, wobei die Ziffern durch Berechnung der Positionen bestimmt werden. Dabei ist das effektivste Verfahren in dieser Arbeit umgesetzt. Es gab vor der Umsetzung keine Erfahrung auf die Machbarkeit dieses Verfahrens. Das erstellte Programm ist daher ein Prototyp. Der Prototyp ist funktionsfähig und kann zu Demonstrationen eingesetzt werden. Der Hintergrund dieser Arbeit, Sicheres Online-Banking durchzuführen, wird deutlich durch die Vergleiche des wysiwys-Verfahrens zu den aktuellen Verfahren. Sie zeigen, warum und wie sich die Sicherheit verbessert hat. 39

Literaturverzeichnis Burger, W., & Burge, M. J. (2006). Digitale Bildverarbeitung. Berlin: Springer-Verlag. Cheriet, M., Kharma, N., Liu, C.-L., & Suen, C. Y. (2007). Character Recognition Systems. United States of America: John Wiley & Sons, Inc. heise Security. (06. 2012). Abgerufen am 06. 2012 von heise Security: http://www.heise.de/security/meldung/Kleiner-Banking-Trojaner-kann-grossen-Schaden-anrichten1588588.html Hellweg, O. (19. 02. 2010). Dissertationen Online. Abgerufen am 06. 2012 von Dissertationen Online: http://www.diss.fu-berlin.de/diss/servlets/MCRFileNodeServlet/FUDISS_derivate_000000001117/ 2_Kapitel_2.pdf;jsessionid=26D241DF12C5B5A009C9E5EEB0AC6EB7?hosts= Hothorn, P. D. (2006). statistik.uni-muenchen.de. Abgerufen am 06. 2012 von statistik.unimuenchen.de: http://www.statistik.uni- muenchen.de/institut/ag/biostat/teaching/stobio2006/ script/script-kap7.pdf Iser, R., Karimibabak, B., & Winkelbach, S. (kein Datum). Hough Transformation in Slope-Intercept Form. Abgerufen am 06. 2012 von Hough Transformation in Slope-Intercept Form: http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/Hough.html Stade, K. (06. 2012). Kreissparkasse Stade. Abgerufen am 06. 2012 von Kreissparkasse Stade: https://www.ksk-stade.de/privatkunden/banking/chiptan/bestellung_tan_generator/index.php

I

Selbständigkeitserklärung Ich versichere hiermit, dass ich die Diplomarbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel genutzt habe. Dies trifft auch auf Quellen aus dem Internet zu. Weiterhin versichere ich, dass die vorgelegte Arbeit zuvor weder von mir noch – soweit mir bekannt ist – von einer anderen Person an dieser oder einer anderen Hochschule eingereicht wurde.

Tübingen 29.06.2012, Christian Frede

II

Suggest Documents