Elektronickß poÜta v TCP/IP Φas¥ piata


KomunikaΦnΘ protokoly elektronickej poÜty I

V zaΦiatkoch elektronickej poÜty sa na prenos sprßv pou₧φval, a dodnes sa pou₧φva, protokol UUCP (Unix-to-Unix Copy Protokol). Nesk⌠r na bßze TCP/IP vznikol nov² poÜtov² protokol - SMTP (Simple Mail Transfer Protokol). P⌠vodnß verzia tohto protokolu je definovanß v dokumentoch RFC 821 [11] a RFC 822 [12]. SMTP definuje sp⌠sob, ak²m si jednotlivΘ MTA (Mail Transfer Agent) vymie≥aj· sprßvy. Nedefinuje sp⌠sob a miesto uchovßvania jednotliv²ch sprßv.


Protokol SMTP

SMTP (Simple Mail Transfer Protokol) je nezßvisl² Üpecißlny prenosov² subsystΘm, ktor² po₧aduje len spo╛ahliv² a usporiadan² dßtov² kanßl. D⌠le₧itou funkciou SMTP je zabezpeΦovanie spo╛ahlivΘho a efektφvneho prenosu poÜtov²ch sprßv. Protokol SMTP predpokladß, ₧e sprßva bude prenßÜanß na takom transportnom spojenφ, ktorΘ sa samΘ postarß o zabezpeΦenie spo╛ahlivosti prenosu. Toto spojenie sa obyΦajne zabezpeΦuje protokolom TCP (v sie¥ach na bßze TCP/IP prakticky v₧dy), ale nie je vyl·ΦenΘ ani pou₧itie inΘho prenosovΘho protokolu zabezpeΦuj·ceho spo╛ahliv² prenos.

Prenosov² kanßl SMTP je TCP spojenie medzi odosielaj·cim procesom U a prijφmaj·cim procesom L. Toto jednoduchΘ obojsmernΘ spojenie je pou₧φvanΘ ako prenosov² kanßl. SMTP protokol mß pridelen² port 25 (31 octal), t.j. L=25.

Protokol SMTP predpokladß iba prenos znakov, ktorΘ s· k≤dovanΘ do siedmich bitov ASCII. Ak sa takΘto sedembitovΘ ASCII znaky prenßÜaj· kanßlom, ktor² je upraven² na prenos osembitov²ch znakov, Φo je prφpad protokolu TCP, potom SMTP definuje, ₧e sedembitovΘ ASCII znaky maj· by¥ vkladanΘ do 8-bitov tak, aby boli zarovnanΘ doprava a z╛ava doplnenΘ nulov²m bitom.

Dial≤g medzi "SMTP-sender" a "SMTP-receiver" (obr. 1) mß formu posielania prφkazov a zasielania odpovedφ na prφkazy. Prφkazy s· tvorenΘ k╛·Φov²mi slovami, za ktor²mi obvykle nasleduj· ∩alÜie spres≥uj·ce parametre. SMTP prφkazy s· znakovΘ re¥azce zakonΦenΘ <CRLF>. Odpovede na prφkazy s· zßsadne ΦφselnΘ, tvorenΘ trojmiestnymi desiatkov²mi Φφslami v ASCII (napr. odpove∩ 220 signalizuje pripravenos¥ druhej strany k prenosu poÜty).




Obr. 1: Model pre pou₧φvanie protokolu SMTP


Akonßhle je vytvoren² prenosov² kanßl, "SMTP-sender" posiela prφkaz MAIL, ktor² indikuje zasielanie sprßvy. Ak "SMTP-receiver" akceptuje sprßvu, zareaguje odpove∩ou OK. "SMTP-sender" potom poÜle prφkaz RCPT, aby identifikoval prφjemcu sprßvy. Ak "SMTP-receiver" akceptuje sprßvu pre prφjemcu, odpovie OK; ak nie, prφjemcu odmietne. "SMTP-sender" a "SMTP-receiver" sa m⌠₧u dohodn·¥ aj na viacer²ch prφjemcoch sprßvy. Len Φo je prφjemca dohodnut², "SMTP-sender" zaΦne posiela¥ sprßvu pomocou prφkazov DATA. Nakoniec je eÜte poslanß Üpecißlna sekvencia <CRLF>.<CRLF>, ktorß ukonΦφ posielanie sprßvy. Ak "SMTP-receiver" ·speÜne spracoval dßta sprßvy, odpovie OK. Tento dial≤g sa ukonΦφ zruÜenφm komunikaΦnΘho kanßla prφkazom QUIT.


Prφkazy protokolu SMTP

╚asto sa stßva, ₧e elektronickou poÜtou posielame aj binßrne s·bory (napr. s·bory s koncovkou *.zip, *.jpeg, *.gif a pod.). Tieto s·bory nie je obvykle mo₧nΘ posla¥ priamo. Z toho d⌠vodu musφ by¥ pou₧it² algoritmus, ktor² zak≤duje binßrne dßta do krßtkych riadkov 7-bitovΘho ASCII k≤du. RFC 1521 obsahuje tieto algoritmy k≤dovania:

V ∩alÜom texte budeme pou₧φva¥ oznaΦenie "R:" pre "receiver-SMTP" a "S:" pre "sender-SMTP". Nasleduje nieko╛ko prφkladov komunikßcie medzi "receiver-SMTP" a "sender-SMTP"


Prφklad typickej SMTP transakcie
R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA

S: MAIL FROM:<Smith@USC-ISIF.ARPA>
R: 250 OK

S: RCPT TO:<Jones@BBN-UNIX.ARPA>
R: 250 OK

S: RCPT TO:<Green@BBN-UNIX.ARPA>
R: 550 No such user here

S: RCPT TO:<Brown@BBN-UNIX.ARPA>
R: 250 OK

S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK

S: QUIT
R: 221 BBN-UNIX.ARPA Service closing transmission channel

Prφklad preruÜenia SMTP transakcie
R: 220 MIT-Multics.ARPA Simple Mail Transfer Service Ready
S: HELO ISI-VAXA.ARPA
R: 250 MIT-Multics.ARPA

S: MAIL FROM:<Smith@ISI-VAXA.ARPA>
R: 250 OK

S: RCPT TO:<Jones@MIT-Multics.ARPA>
R: 250 OK

S: RCPT TO:<Green@MIT-Multics.ARPA>
R: 550 No such user here

S: RSET
R: 250 OK

S: QUIT
R: 221 MIT-Multics.ARPA Service closing transmission channel

Prφklad verifikßcie a posielania
R: 220 SU-SCORE.ARPA Simple Mail Transfer Service Ready
S: HELO MIT-MC.ARPA
R: 250 SU-SCORE.ARPA

S: VRFY Crispin
R: 250 Mark Crispin <Admin.MRC@SU-SCORE.ARPA>

S: SEND FROM:<EAK@MIT-MC.ARPA>
R: 250 OK

S: RCPT TO:<Admin.MRC@SU-SCORE.ARPA>
R: 250 OK

S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK

S: QUIT
R: 221 SU-SCORE.ARPA Service closing transmission channel

Scenßr odosielania (Forwarding Scenarios)
R: 220 USC-ISIF.ARPA Simple Mail Transfer Service Ready
S: HELO LBL-UNIX.ARPA
R: 250 USC-ISIF.ARPA

S: MAIL FROM:<mo@LBL-UNIX.ARPA>
R: 250 OK

S: RCPT TO:<fred@USC-ISIF.ARPA>
R: 251 User not local; will forward to <Jones@USC-ISI.ARPA>

S: DATA
R: 354 Start mail input; end with <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK

S: QUIT
R: 221 USC-ISIF.ARPA Service closing transmission channel
Vysvetlivky

RFC (Request for Comments) - Sada Φlßnkov, v ktor²ch sa dokumentuj· a zverej≥uj· Ütandardy Internetu, nßvrhy Ütandardov a obecne ods·hlasenΘ myÜlienky.

MD5 (Message Digest) - Algoritmus vyvinut² Ronaldem Rivestem pre podporu elektronickΘho podpisu; v²sledkom algoritmu je 128-bitov² re¥azec sl·₧iaci ako jednoznaΦnΘ potvrdenie pravosti obsahu; zmenou akΘhoko╛vek bajtu p⌠vodnΘho obsahu sa menφ aj v²sledn² re¥azec (message digest); v∩aka tomu, ₧e je v²sledn² re¥azec kratÜφ, je proces jeho v²poΦtu r²chlejÜφ ne₧ v prφpade algoritmu SHA-1.

(c) 2004 Ing. Peter GaÜparoviΦ - www.pgasparovic.com

Literat·ra

[1]  Feiber, W.: Encyklopedie poΦφtaΦov²ch sφtφ. Praha, Computer Press, 1996.
[2]  B°ehovsk², P.: Praktick² ·vod TCP/IP. ╚eskΘ Bud∞jovice, KOPP, 1994 .
[3]  Mrßzek, L.: Prvnφ kroky INTERNETEM aneb Je to na WWW!. ╚eskΘ Bud∞jovice, KOPP, 1995.
[4]  èmrha, P. û Rudolf, V.: Internetworking pomocφ TCP/IP. ╚eskΘ Bud∞jovice, KOPP, 1995.
[5]  Hejna, L.: Lokßlnφ poΦφtaΦovΘ sφte. Praha, GRADA, 1994.
[6]  Falk, B.: Pr∙vodce sv∞tem Internetu. Praha, Computer Press, 1995.
[7]  Lhotka, L.: SERVER v INTERNETU. ╚eskΘ Bud∞jovice, KOPP, 1997.
[8]  Peterka, J.: Co je Φφm ... v poΦφtaΦov²ch sφtφch. COMPUTERWORLD, 1994, Φ. 4, 7, 9, 17, 21, 35, 44.
[9]  Sterling, B.: Short History of the Internet. The Magazine of Fantasy and Science Fiction, 1993.
[10]  Dostßlek, L. - Kabelovß, A.: MIME û Multipurpose Internet Mail Extension. http://info.pvt.net/mime.htm, 1997.
[11]  Postel, J. B.: Simple Mail Transfer Protokol. RFC # 821, August 1982.
[12]  Crocker, D. H.: Standard For The Format Of Arpa Internet Text Messages. RFC # 822, August 1982.
[13]  Borenstein, N. - Freed, N.: MIME (Multipurpose Internet Mail Extension) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies. RFC # 1521, September 1993.
[14]  Borenstein, N. - Freed, N.: Multipurpose Internet Mail Extension (MIME) Part One: Format of Internet Message Bodies. RFC # 2045, November 1996.
[15]  Rose, M.: Post Office Protocol û Version 3. RFC # 1225, May 1991.
[16]  Rose, M. - Myers, J.: Post Office Protocol û Version 3. RFC # 1725, November 1994.
[17]  Dresslerovß, B. - Veselsk², J. - Gombik, G.: LINUX DokumentaΦnφ projekt. Praha, Computer Press, 1998.
[18]  èovΦφk, J.: Login. PC Revue, 1995, Φ. 4 a₧ 8.
[19]  Pal·ch, P.: Poznßte LINUX?. PC Revue, 1998, Φ. 2.
[20]  Rivest, R.: The MD5 MessageûDigest Algorithm. RFC # 1321, Aprφl 1992.
[21]  Dostßlek, L. a kol.: Velk² pr∙vodce protokoly TCP-IP BezpeΦnost. Praha, Computer Press, 2001.