IBAN-BIC.com (Theano GmbH) » Webservice » Dokumentation » Existenz einer IBAN
Wir stellen einen Mechanismus für die Beantwortung dieser Frage bereit.
Damit können Sie:
Das stellt gegenüber der Standardsituation einen erheblichen Fortschritt dar. Ohne diesen Mechanismus gibt es bei einer SEPA-Überweisung (oder analog bei einer Lastschrift) folgende drei mögliche Szenarien:
Unser Mechanismus eliminiert die unerfreulichen Szenarien 2 und 3 für diejenigen Konten, für die wir einen Hash in unserer Datenbank haben.
Unser Webservice erlaubt es, andere Benutzer wissen zu lassen, ob eine gegebene IBAN zu einem gegebenen Kontoinhaber gehört, ohne dass die IBANs selbst in unserer Datenbank gespeichert (oder uns auch nur mitgeteilt) werden. Was auf den ersten Blick vielleicht kaum möglich klingt, wird durch kryptographische Hashfunktionen möglich gemacht. Wir speichern keine IBANs und auch keine Namen von Kontoinhabern, sondern nur Hashes von IBANs, die mit von den Namen der Kontoinhaber abgeleiteten Daten gesalzen werden. Anhand dieser Hashes können wir Fragen beantworten wie "gehört IBAN X zu Kontoinhaber Y", ohne X oder Y zu kennen oder berechnen zu können.
Auf diese Weise können unsere Benutzer (für die IBANs, für die wir Hashes haben) herausfinden, dass eine bestimmte IBAN wirklich zu einem bestimmten Kontoinhaber gehört. Diese Information wird zusammen mit den anderen Rückgabewerten der Funktion validate_iban geliefert.
Sie können auf zwei Arten Ihren Kontostand erhöhen, indem Sie mit uns die Information teilen, dass eine IBAN zu einem bestimmten Kontoinhaber gehört. Unabhängig davon, welchen dieser beiden Wege Sie wählen, speichern wir nur gesalzene Hashes (wobei das Salz im allgemeinen für jede IBAN anders ist); wir speichern keine IBANs oder Kontoinhaber-Namen dauerhaft.
Sie werden für das Bereitstellen von Hashes bzw. IBAN/Kontoinhaber-Kombinationen belohnt:
Die einfachste Art, auf diese Art Punkte zu verdienen, ist die Verwendung der Funktion submit_iban, die eine IBAN und den dazugehörigen Kontoinhaber als Parameter erwartet. Diese Funktion erledigt das Berechnen des Salzes und das Hashen und speichert schließlich die Hashes. Der Nachteil dieser einfach zu benutzenden Funktion ist, dass Sie darauf vertrauen müssen, dass wir wirklich weder IBANs noch Kontoinhaber dauerhaft speichern. Neben der Einfachheit hat diese Funktion auch den Vorteil, dass Sie kein Risiko haben, jemals die oben beschriebenen Minuspunkte für falsche Hashes zu kassieren, weil wir das Hashen so selbst erledigen.
Die folgende zweite Methode ist sicherer, weil Sie zu keinem Zeitpunkt IBANs übermitteln, aber weniger komfortabel: Zuerst die Funktion get_salts aufrufen, die aus dem Namen des Kontoinhabers einen oder mehrere Salz-Werte generiert. Dann der Reihe nach jeden der erhaltenen Salz-Werte an die IBAN anhängen (immer nur einen auf einmal) und aus IBAN und Salz einen SHA-256-Hash berechnen, und schließlich mit der Funktion submit_hashes alle diese Hashes in unsere Datenbank eintragen.
Es ist wichtig, sicherzustellen, dass selbst wenn ein Hacker unsere Datenbank mit der darin enthaltenen Liste von Hashes erbeutet, weder IBANs noch Namen von Kontoinhabern aus der Datenbank rekonstruiert werden können.
Das ist tatsächlich der Fall, aus folgenden Gründen: