Pages by Andreas Hofmeier
An-H
eMail Impressum/Note Datenschutzerklärung
http[s]://www.abmh.de/bsmd5auth.html

Like to be free? ... then: Fight for Freedom

[ Demo SockMD5Auth v0.01 (c) Copyright 2002 Andreas Hofmeier ]

    Demoprogramm zu SockMD5Auth()

WARNUNG: Die SockMD5Auth Authentication Methode wurde mit        ***
    *** Multiple-Sessions-Angriff geknackt!                      ***

    Copyright (c) Andreas Hofmeier

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
    published by the Free Software Foundation; either version 2 of
    the License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.



   Wie kann man sicher überprüfen, ob die Gegenseite die ist für die
   sie sich ausgibt? Mit dieser Methode:

   1.) Beide Seiten erzeugen einen Zufallsstring
   2.) gegenseitiges zusenden dieses Strings
   3.) an diesen String den Authstring anhängen
   4.) davon die MD5Summe bilden
   5.) empfangen des Zufallsstring von der Gegenseite
   6.) an diesen String den Authstring anhängen
   7.) davon die MD5Summe bilden
   8.) Prüfsummen austauschen
   9.) Prüfen, ob die von der Gegenseite erzeugte Prüfsumme mit der
       eigenen Übereinstimmt, wenn Ja alles OK

   Das gute daran, der Authstring wird nicht übertragen, also kann
   diesen auch nicht geklaut werden. Da man aus der MD5Sums den
   Originalstring nicht mehr bilden kann, kann diese ohne bedenken
   übermittelt werden...

   Genau das tut diese Funktion:

   if (SockMD5Auth(socket des gegenüber, authstring) == 1) {
     Alles OK
   }


Diese Programm ist eine Demo-Anwendung für diese Funktion.

Server Mode:

bsmd5auth <lokal Port>

Der <lokal Port> wird gebunden. Dann wird auf eine Verbindung
gewartet.


Klient Mode

bsmd5auth <Server Name or IP> <Remote Port>

Es wird eine Verbindung zu dem Port <Remote Port> auf dem Server
<Server Name or IP> hergestellt.


Ist ein Socket offen, so fordert das Programm die Eingabe des
Authstrings. Mit der Funktion SockMD5Auth() wird nun überprüft, ob auf
beiden Seiten der Selbe Authstring eingegeben wurde. Wenn ja, wird
"Auth: OK" ausgegeben.

Dannach werden alle Eingaben mit SockSendString() an die Gegenseite
gesendet und von dieser alles mit SockRecvString() Empfangende
ausgegeben. so ist ein primitiver Chat möglich...



Download now (bsmd5auth.zip)

Siehe auch:

ACHTUNG: Dieses Programm, bzw. dieser Test unterliegt der GPL!


Pages by Andreas Hofmeier
An-H
eMail Impressum/Note Datenschutzerklärung
http[s]://www.abmh.de/bsmd5auth.html
Creative Commons License
(c) Andreas B. M. Hofmeier
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Germany License