SMTP-AUTH – rozszerzenie protokołu Simple Mail Transfer Protocol o mechanizmy uwierzytelniania. Można wyróżnić dwie podstawowe metody autoryzacji sesji: metodą AUTH PLAIN metodą AUTH LOGIN Każda z nich do komunikacji pomiędzy serwerem a klientem stosuje kodowanie Base64, które samo w sobie nie zapewnia bezpieczeństwa danych.

Aby skorzystać z autoryzacji, klient powinien zamiast standardowego powitania HELO użyć EHLO, które umożliwi wykorzystanie rozszerzonego zestawu poleceń SMTP. W odpowiedzi serwer SMTP powinien zwrócić w powitaniu ciąg znaków "AUTH", a po nim dostępne metody uwierzytelniania.

Opisany jest w .

Przykład sesji SMTP z uwierzytelnianiem AUTH PLAIN Aby uwierzytelnić sesję SMTP należy wygenerować odpowiedni ciąg znaków ("\0użytkownik\0haslo", gdzie \0 oznacza bajt zerowy, jeżeli użytkownik ma mieć pełną nazwę domenową np. [email protected] to przed '@' dajemy znak ucieczki '\' - ("\0uzytkownik\@example.com\0haslo")) za pomocą np. Perla poprzez polecenie: perl -MMIME::Base64 -e 'print encode_base64("\0uzytkownik\0haslo");' wynikiem będzie: AHV6eXRrb3duaWsAaGFzbG8= Gdzie zwykła sesja już będzie wyglądać w taki sposób: 220 serwer ESMTP EHLO serwer.email.com 250-serwer Hello user at localhost [127.0.0.1] 250-AUTH PLAIN LOGIN 250 HELP AUTH PLAIN 334 ok. go on. <nowiki>AHV6eXRrb3duaWsAaGFzbG8=</nowiki> 235 OK Authenticated MAIL FROM:<[email protected]> 250 OK RCPT TO:<[email protected]> 250 Accepted DATA 354 Enter message, ending with "." on a line by itself From: [email protected] To: [email protected]

tresc wiadomosci . 250 OK QUIT 221 serwer.email.com closing connection

Przykład sesji SMTP z uwierzytelnianiem AUTH LOGIN Aby uwierzytelnić sesję SMTP przy użyciu metody LOGIN, należy oddzielnie skonwertować nazwę użytkownika i hasło do formatu Base64. Za pomocą Perla można to wykonać w następujący sposób: perl -MMIME::Base64 -e 'print encode_base64("uzytkownik");' perl -MMIME::Base64 -e 'print encode_base64("haslo");' wynikiem będą odpowiednio: dXp5dGtvd25paw== aGFzbG8=

Oto przykładowa sesja SMTP z autoryzacją LOGIN:

> 220 serwer ESMTP < EHLO serwer.email.com > 250-serwer Hello user at localhost [127.0.0.1] > 250-AUTH PLAIN LOGIN > 250 HELP < AUTH LOGIN > 334 VXNlcm5hbWU6 < dXp5dGtvd25paw== > 334 UGFzc3dvcmQ6 < aGFzbG8= > 235 OK Authenticated < MAIL FROM:<[email protected]> > 250 OK < RCPT TO:<[email protected]> > 250 Accepted < DATA > 354 Enter message, ending with "." on a line by itself < From: [email protected] < To: [email protected] < < tresc wiadomosci < . > 250 OK < QUIT 221 serwer.email.com closing connection W formie odkodowanej (base64)

334 Username: uzytkownik 334 Password: haslo

Linki zewnętrzne

Kategoria:Simple Mail Transfer Protocol