Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SSL Key Log mit Indy erstellen

  Alt 16. Okt 2018, 14:27
Problem gelöst:
Delphi-Quellcode:
procedure TForm1.IdSSLIOHandlerSocketOpenSSL1StatusInfoEx(ASender: TObject;
  const AsslSocket: PSSL; const AWhere, Aret: Integer; const AType,
  AMsg: string);
var
  I, J, K, L: Integer;
  B: Byte;
  C: AnsiChar;
  LClientRandom, LMasterSecret, LLogLine: string;
begin
  if Assigned(AsslSocket) and
     Assigned(AsslSocket^.session) and
     Assigned(AsslSocket^.s3) then
  begin
    J := 0;
    L := Length(AsslSocket^.session^.master_key) - 1;
    for I := 0 to L do begin
      B := AsslSocket^.session^.master_key[I];
      J := J + B;
      LMasterSecret := LMasterSecret + Format('%x', [B]);
      if (I = L) and (J > 0) then begin
        L := Length(AsslSocket^.s3^.client_random) - 1;
        for K := 0 to L do begin
          C := AsslSocket^.s3^.client_random[K];
          B := Ord(C);
          LClientRandom := LClientRandom + Format('%x', [B]);
          if K = L then begin
            LLogLine := 'CLIENT_RANDOM ' + LClientRandom + ' ' + LMasterSecret;
          end;
        end;
      end;
    end;
  end;
end;
Diese Procedure wird von Indy mehrfach aufgerufen. Die Variable LLogLine wird aber letztlich nur dann gefüllt, wenn beide Informationen (Master Secret und Client Random) zur Verfügung stehen. Müsste so funktionieren für TLS 1.1 .. 1.3 und SSLv3.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat