AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi MD5-Hash // Digest Authenticate
Thema durchsuchen
Ansicht
Themen-Optionen

MD5-Hash // Digest Authenticate

Ein Thema von bepe · begonnen am 11. Nov 2007 · letzter Beitrag vom 13. Nov 2007
 
bepe

Registriert seit: 17. Okt 2006
119 Beiträge
 
#1

MD5-Hash // Digest Authenticate

  Alt 11. Nov 2007, 13:36
Hallo,

ich habe mal ein wenig mit Asterisk rumgepielt und würde mich jetzt gerne per SIP anmelden. Aber irgendwie schaffe ich es nicht den richtigen Hash zu ermitteln.

Folgender (unschöner) Source sollte genau das machen was ich aus den entsprechenden RFC's und OpenSource-SoftPhone's raus gelesen habe:

Delphi-Quellcode:
var
  tmp: THash_MD5;
  test: string;
  Pass: string;
  Realm: string;
  DP: String;
  UserName: string;
  Method: string;
  Uri: string;
  Nonce: string;
  HA1: pbytearray;
  HA2: pbytearray;
begin
  test := LabeledEdit10.Text;
  UserName := '21702';
  DP := ':';
  Realm := 'asterisk';
  Pass := '20712';
with THash_MD5.Create do
try
  Init;
  Calc(UserName[1], Length(UserName));
  Calc(dp[1], 1);
  Calc(Realm[1], Length(Realm));
  Calc(dp[1], 1);
  Calc(Pass[1], Length(Pass));
  Done;

  HA1 := Digest;

  Init;
  Method := 'REGISTER';
  Calc(Method[1], Length(Method));
  Calc(dp[1], 1);
  Uri := '"sip:192.168.1.14"';
  Calc(Uri[1], Length(Uri));
  Done;
  HA2 := Digest;

  Init;
  Calc(ha1, SizeOf(ha1));
  Calc(dp[1], 1);

  Nonce := '5e6feac9';
  Calc(Nonce[1], Length(Nonce));
  Calc(dp[1], 1);

  Calc(ha2, SizeOf(ha2));
  Calc(dp[1], 1);


  LabeledEdit11.Text := DigestStr(TFOrmat_HEXL);
finally
  Free;
end;
Hash1 = User:Realmassword
Hash2 = Methode:"URI"
Antwort-Hash = Hash1:Nonce:Hash2

Als Antwort-Hash bekomme ich "0123456789abcdeffedcba9876543210" sollte aber "a6ea9f6ccf4c05149c8282c8d41b18fe" sein. Die Werte (Nonce und Hash) habe ich von einem SoftPhone, welches sich erfolgreich angemeldet hat.

Delphi-Quellcode:
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 192.168.1.107:5060;branch=z9hG4bK-d8754z-465f934b6b5ec75c-1---d8754z-;received=192.168.1.107;rport=5060
From: <sip:21702@192.168.1.14>;tag=d43ed52a
To: <sip:21702@192.168.1.14>;tag=as21df2254
Call-ID: MmVkYmRlNDUyZGQyY2JhZjUyNWRkOTJkOTdmNzQ3MWI.@localhost
CSeq: 1 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="5e6feac9"
Content-Length: 0


REGISTER sip:192.168.1.14 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.107:5060;branch=z9hG4bK-d8754z-070fdd727b336e5c-1---d8754z-;rport
Max-Forwards: 70
Contact: <sip:21702@192.168.1.107:5060>
To: <sip:21702@192.168.1.14>
From: <sip:21702@192.168.1.14>;tag=d43ed52a
Call-ID: MmVkYmRlNDUyZGQyY2JhZjUyNWRkOTJkOTdmNzQ3MWI.@localhost
CSeq: 2 REGISTER
Expires: 3600
Allow: INFO, MESSAGE, REFER, NOTIFY, SUBSCRIBE, INVITE, ACK, BYE, CANCEL, OPTIONS
User-Agent: AstaUa
Authorization: Digest username="21702",realm="asterisk",nonce="5e6feac9",uri="sip:192.168.1.14",response="a6ea9f6ccf4c05149c8282c8d41b18fe",algorithm=MD5
Content-Length: 0
Kann mir jemand weiter helfen? Ich habe auch mal die md5.pas von Dimka Maslov ausprobiert. Mit der erhalte ich andere, aber ebenfalls falsche, Werte. Mir ist nicht einmal bewusst wo der fehler liegt, in der Logik oder in meiner Verwendung der MD5-Routinen.

mfg,
bp
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz