Zur Homepage www.HI-Tier.de Verschlüsselung
Zurück Home Nach oben
Öffentlicher Bereich für Entwickler

 

Allgemein

HIT unterstützt ab sofort (Dez-2004) sichere Datenübertragung mit selbst implementierten Verschlüsselungsverfahren auf Basis von definierten Standard Algorithmen und "open source" Routinen.

Arbeitsprinzip

Mit einem asymmetrischen Verschlüsselungsverfahren wird die Anmeldung in HIT bewerkstelligt; war sie erfolgreich, dann können weitere Meldungen entweder unverschlüsselt (wie bisher) oder mit einem symmetrischen Verschlüsselungsverfahren ausgetauscht werden.

Sie erhalten von uns einen Public Key für die asymmetrische Verschlüsselung während der Anmeldung. Für die Anmeldung müssen Sie wie bisher die Anmeldedaten wie BNR15, MBN, PIN, MELD_WG und zusätzlich die Spalten SVR_HELO, RAND_CLI und SESS_KEY mitliefern. Das SVR_HELO erhalten Sie direkt nach der Verbindung, RAND_CLI sind irgendwelche zufälligen Daten beliebiger Länge und das SESS_KEY sind auch beliebige Daten (bis zu einer Länge von 48 Bytes), die dann als symmetrischer Schlüssel zwischen Server und Ihrem Client verwendet werden (sofern Sie den Datenaustausch auch verschlüsseln). Der komplette Anmeldestring wird nun mit dem Public Key verschlüsselt und mit einem vorangestellten $ an den Hitserver gesendet. Der HitServer antwortet Ihnen dann in jedem Fall unverschlüsselt, ob Ihre Anmeldung erfolgreich war oder nicht.

War sie erfolgreich, können Sie entweder wie bisher unverschlüsselt Daten austauschen (Sie senden unverschlüsselt und Sie erhalten unverschlüsselt Antworten) oder aber mit dem von ihnen selbst generierten SESS_KEY die kompletten Anfragen bzw. Meldungen verschlüsseln und mit einem vorangestellten # an HIT senden. Sie erhalten dann auch mit vorangestelltem # eine (oder mehrere) mit Ihrem symmetrischen Schlüssel verschlüsselte Antwort(en) zurück.

Die Spalte SESS_KEY gibt bei der Anmeldung Aufschluß darüber, ob die Datenübertragung nach einer erfolgreichen Anmeldung verschlüsselt wird oder nicht: Wird die Spalte nicht angegeben, dann wird der Datenaustausch nicht verschlüsselt. Wird sie angegeben, dann müssen sämtliche Anfragen und sämtliche Antworten damit entschlüsselt werden.

Wichtig ist: Jede Meldung bzw. Abfrage und Antwort wird separat verschlüsselt, nicht alle Meldungen bzw. Antworten am Stück.

Freigegebener PUBLIC KEY

Folgender Public Key ist für die Verschlüsselung der Anmeldung in HIT zu verwenden:

480152500100000081009CA3D65EAC3318178F31667C3C5E60EE26DD6B090B2671928F8D461B5987
31AE931A2C8D02B593189DCDF17C591634DE10657AA9957CB6D9952B9040C96536F96A4BFDF0F977
03893EF8D52AA91762B85D010AFCE4C3E6CB0338559DECA54D774A6640CB57B8F169B96ED223000F
C950254646FA8AD7AA4361D1BCAE9694477D00000003010001

(MD5-Hash des Schlüssels: f12f43b039d0ebaac1105ae696682dcf)

Sie müssen auf jeden Fall die Anmelde-Antworten auf Hinweise bezüglich ungültiger Public Keys überprüfen, da wir diesen Public Key in (un)regelmäßigen Abständen austauschen werden!

Praktische Anwendung

Beim Verbinden mit dem HitServer erhalten Sie einen Antwortstring der Form

=0:0/42::HitServer bereit. Version 42, 03.11.2004 13-00h. Sie sind mit dem Echtsystem über den Primär-Server verbunden (Server benutzt neue Betriebstabellen/NEWADS) HI-Tierzeit Nov 26, 2004 10-03-03 AMh Challenge -1867540788734295357

Die Daten merken Sie sich komplett (d.h. der vierte Teil der Hit-Antwort, beginnend mit HitServer bereit. Ver...) als Feld SVR_HELO.

Anschließend generieren Sie sich einen zufälligen Bytestrom für das Feld RAND_CLI (Länge beliebig, aber ausreichend, z.B: 50 Bytes), gleiches gilt für das Feld SESS_KEY (max. 48 Bytes). Byteströme müssen generell hexencoded werden.

Der Anmeldestring wird dann wie bisher zusammengestellt und um die drei genannten Felder erweitert, z.B.

*1:XS:LOGON/BNR15;PIN;MELD_WG;SVR_HELO;RAND_CLI;SESS_KEY:276090000000015;900015;4;HitServer bereit. Ver...;01234567890ABCDEF;01234567890ABCDEF

Dieser komplette String wird mit dem Public Key verschlüsselt und mit einem $ vorangestellt an HIT gesendet. HIT packt die Daten mit dem nur dem HIT bekannten Private Key aus, überprüft Ihre Anmeldung und antwortet Ihnen unverschlüsselt.

Bei erfolgreicher Anmeldung können Sie nun wie bisher unverschlüsselt mit HIT kommunizieren.

Wollen Sie jedoch die weitere Kommunikation verschlüsseln, verwenden Sie dafür Ihren selbst generierten SESS_KEY. Bauen Sie wie bisher den HIT-Befehl zusammen, den Sie an HIT schicken wollen, verschlüsseln den komplett mit dem SESS_KEY und senden ihn mit einem # vorangestellt an HIT. HIT packt die Daten mit dem SESS_KEY aus (Sie haben HIT ja den Schlüssel während der Anmeldung mitgeteilt), führt seine Aktion(en) aus und antwortet Ihnen mit einer mit SESS_KEY verschlüsselten Nachricht (auch die ist mit einem # vorangestellt). Die Antwort(en) müssen Sie dann nur mit Ihrem SESS_KEY wieder auspacken (ohne das # natürlich) und erhalten die HIT-Antworten, die Sie wie bisher zerlegen und auswerten.

Wir haben unseren HitBatch dahingehend erweitert, daß dieser auch mit der hier beschriebenen Methodik verschlüsselt Daten austauschen kann. Für Selbstprogrammierer steht natürlich auch ein aktualisiertes HitUpros zur Verfügung (die Klassen HitSecurity und HitSecurityKeys werden dafür benötigt).

 
© 1999-2011 Bay.StMELF, Verantwortlich für Fachfragen: Dr. E.Keller mailto:Ellen.Keller@HI-Tier.de, Technik: H. Hartmann mailto:Helmut.Hartmann@HI-Tier.de
Seite zuletzt bearbeitet: 22. August 2013 11:07, Anbieterinformation siehe hier im Impressum.