2012-05-08 11 views
5

Używam komponentów indy do realizacji wiadomości e-mail w aplikacji delphi. Używam konkretnie komponentu TidSMTP. Muszę skutecznie wspierać wszystkie główne serwery poczty e-mail. Używam Mozilla Thunderbird jako mojego klienta poczty e-mail i porównuję właściwości smtp z właściwościami składnika TidSMTP. Próbowałem znaleźć dokumentację opisującą relację między właściwościami TidSMTP, ale nie udało się tego znaleźć.Co robią właściwości zabezpieczeń i uwierzytelniania komponentów SMTP Indy?

Może ktoś wyjaśnić w jaki sposób porównać i co robią: Bezpieczeństwo połączenia::

  • W Thunderbird (None, STARTTLS, SSL/TLS).
  • W TidSMTP.UseTLS (utNoTLSSupport, utUseImplicitTLS, utUseRequireTLS, utUseExplicitTLS)

  • W Thunderbird: Metoda uwierzytelniania: (Brak uwierzytelniania Normalne hasło zaszyfrowane hasło, Kerberos/GSSAPI, NTLM)

  • W TidSMTP (nazwa użytkownika, hasło, z użyciem metody uwierzytelniania)

Widzę także inne właściwości TidSMTP: UseEhlo, UseVerp, UseNagle. Czy muszę ich używać? Co oni robią?

Odpowiedz

15

Podczas korzystania z STARTTLS port nasłuchiwania serwera jest początkowo niezaszyfrowany po połączeniu. Gdy klient łączy się, może wysłać opcjonalne polecenie STARTTLS do serwera, jeśli serwer go obsługuje, aby dynamicznie wykonać uzgadnianie SSL/TLS w tym czasie. Dzięki temu starsze klienty inne niż SSL/TLS mogą kontynuować łączenie się z tym samym portem, a nowi klienci korzystający z protokołu SSL/TLS mogą korzystać z protokołu SSL/TLS, jeśli jest on dostępny na serwerze. Odpowiada to UseTLS=utUseExplicitTLS w Indy. Należy ustawić wartość UseEHLO na wartość True, aby użyć UseTLS=utUseExplicitTLS, ponieważ komenda EHLO określa, w jaki sposób TIdSMTP odkrywa, czy serwer obsługuje polecenie , czy też nie.

Podczas korzystania z SSL/TLS zamiast STARTTLS, port nasłuchiwania serwera zawsze używa szyfrowania, a klient musi zainicjować uzgadnianie SSL/TLS natychmiast po nawiązaniu połączenia, zanim jakiekolwiek inne dane będą mogły zostać wymienione. Odpowiada to UseTLS=utUseImplicitTLS w Indy. Nie użyto polecenia STARTTLS.

celu uwierzytelniania TIdSMTP dwie opcje - starego (i niezabezpieczone) AUTH LOGIN polecenia, która jest określona przez pierwotny specyfikacji SMTP i rozszerzenia protokołu SMTP o SASL opartych algorytmów mieszania/szyfrowania (Kerberos gssapi NTLM itp zaimplementowanych jako algorytmy SASL).

Aby korzystać SASL ustaw TIdSMTP.AuthType do satSASL a następnie wypełnić kolekcji TIdSMTP.SASLMechanisms wskazać na oddzielnych TIdSASL pochodzące z A komponentów dla algorytmów, które mają wspierać w swojej aplikacji. Indy ma rodzimych składników SASL do DIGEST-MD5, CRAM-MD5, CRAM-SHA1, NTLM (doświadczeń), ANONYMOUS, EXTERNAL, OTP, PLAIN, SKEY i LOGIN (SASL opakowującym AUTH LOGIN). Jeśli potrzebujesz innego algorytmu (na przykład Kerberos lub GSSAPI), będziesz musiał napisać swój własny komponent TIdSASL. W przypadku algorytmów używających nazwy użytkownika/hasła wartości muszą być przypisane do oddzielnego składnika TIdUserPassProvider, który jest następnie przypisywany do komponentów SASL (właściwości TIdSMTP.UserName i TIdSMTP.Password nie są używane w przypadku SASL).Im więcej obsługujesz algorytmów SASL, tym więcej serwerów możesz obsługiwać.

przypadku serwerów, które nadal obsługują AUTH LOGIN, może być stosowany zarówno przez ustawienie TIdSMTP.AuthType do satDefault (i ewentualnie ustawienie TIdSMTP.ValidateAuthLoginCapability False, jeśli serwer obsługuje AUTH LOGIN ale nie zgłasza go w odpowiedzi na komendę EHLO), a następnie wypełnienie TIdSMTP.UserName i TIdSMTP.Password właściwości lub przez włączenie komponentu TIdSASLLogin w kolekcji TIdSMTP.SASLMechanisms.

i nie mają nic wspólnego z bezpieczeństwem. VERP to rozszerzenie SMTP do wykrywania odbijanych wiadomości e-mail z powodu niedoręczalnych błędów. Nagle jest algorytmem sieciowym do optymalizacji pakietów danych sieciowych.

+0

Dzięki za wspaniałą odpowiedź! –

+0

Świetna odpowiedź! Dodaję to do moich zakładek. –

+0

@Remy Lebeau Nie wspomniałeś o 'UseTLS = utRequireTLS', co dokładnie robi ta opcja? –

Powiązane problemy