Delphi > Obecné

Spojení na SMTP office365 via TLS1.2

(1/1)

TomSoft:
Zdravím :)
řeším connect na smtp.office365.com explicitně přes TLS1.2
Samotný kód (viz. níže) funguje OK, ale když si spustím WinShark, abych se podíval jak to skutečně komunikuje, tak vidím, že je sice vše přes TLS1.2, ale začátek komunikace "Client Hello" je ve verzi TLS 1.0.- viz. obrázek.
Když se třeba podívám jak komunikuje Total Commander, když se připojuje na FTPS, který vyžaduje TLS 1.2, tak i ten pozdrav je ve verzi 1.2
Použil jsem Indy v. 10.6.0.516....
Nemáte s tím někdo zkušenosti?
Díky


--- Kód: Delphi ---var  idSMTP1: TIdSMTP;  idSASLLogin: TIdSASLLogin;  idUserPassProvider: TIdUserPassProvider;  email: TIdMessage;begin  idSMTP1 := TIdSMTP.Create(nil);  try    idSMTP1.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(idSMTP1);    idSMTP1.UseTLS := utUseExplicitTLS;    TIdSSLIOHandlerSocketOpenSSL(idSMTP1.IOHandler).SSLOptions.Method := sslvTLSv1_2;    TIdSSLIOHandlerSocketOpenSSL(idSMTP1.IOHandler).SSLOptions.SSLVersions := [sslvTLSv1_2];      idSMTP1.Host := 'smtp.office365.com';    idSMTP1.Port := 587;     idSASLLogin := TIdSASLLogin.Create(idSMTP1);    idUserPassProvider := TIdUserPassProvider.Create(idSASLLogin);     idSASLLogin.UserPassProvider := idUserPassProvider;    idUserPassProvider.Username := 'email@jmeno.onmicrosoft.com';    idUserPassProvider.Password := 'heslo';     idSMTP1.AuthType := satSASL;    idSMTP1.SASLMechanisms.Add.SASL := idSASLLogin;     try      idSMTP1.Connect;      try        idSMTP1.Authenticate;      finally        idSMTP1.Disconnect;      end;      ShowMessage('OK - Připojeno');    except      on E: Exception do      begin        ShowMessage(Format('Chyba!'#13'[%s] %s', [E.ClassName, E.Message]));        raise;      end;    end;  finally    idSMTP1.Free;  end;

pf1957:
Ja tedy s PIndy nice nedelal, ale pamatuju si, ze se tady negotiation probiralo https://forum.delphi.cz/index.php/topic,16512.msg103314.html#msg103314

< z >:
Myslím, že nejde o chybu, jen špatný výklad. Kód je správně a Indy vyžaduje TLS1.2
Zbytek už záleží na serveru Microsoftu. To stejné je vidět, když navštívíš google.com v prohlížeči.
Jinak, není potřeba nastavovat Method i SSLVersions (jedno ovlivňuje druhé).

Našel jsem i nějaké fundovanější vyjádření
https://security.stackexchange.com/questions/29314/what-is-the-significance-of-the-version-field-in-a-tls-1-1-clienthello-message

TomSoft:
Super, díky, to mi stačí.

Navigace

[0] Seznam témat

Přejít na plnou verzi