1 / 27

Комп'ютерні мережі

Комп'ютерні мережі. Лекція 1 8 Електронна пошта. План лекції. Архітектура системи електронної пошти Поштові сервери, агенти пересилання пошти Формат повідомлень електронної пошти Протоколи електронної пошти SMTP POP3 IMAP4. Архітектура системи електронної пошти.

howe
Download Presentation

Комп'ютерні мережі

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Комп'ютерні мережі Лекція 18 Електронна пошта

  2. План лекції • Архітектура системи електронної пошти • Поштовісервери, агенти пересилання пошти • Формат повідомлень електронної пошти • Протоколи електронної пошти • SMTP • POP3 • IMAP4 Лекція 18

  3. Архітектура системи електронної пошти • Користувач на певному сервері має свою “поштову скриньку” • “Поштова скринька” у більшості випадків реалізується у вигляді одного великого текстового файлу – “поштового файлу” • Доставка повідомлення користувачеві полягає у дописуванні цього повідомлення в кінець файлу • Для того, щоби прочитати повідомлення, користувач використовує спеціальне програмне забезпечення Лекція 18

  4. Система електронної пошти – доставка повідомлень Лекція 18

  5. Система електронної пошти – читання пошти Лекція 18

  6. Доставка повідомлень електронної пошти • Головною проблемою реалізації системи електронної пошти є доставка повідомлень, яка вимагає здійснення модифікації файлу користувача – одержувача повідомлення, отже її не можна безпосередньо довірити будь-якому користувачу мережі • Відправлення повідомлень і передача їх по мережі може здійснюватись за різними протоколами • Найчастіше використовується SMTP (Simple Mail Transport Protocol – простий протокол транспортування пошти) • Як альтернативу (вже застарілу) можна назвати протокол UUCP • Протокол транспортування пошти реалізується поштовими серверами, або SMTP-серверами • SMTP-серверами, що широко використовуються, є Sendmail, Smail, MMDF та PP Лекція 18

  7. SMTP сервери і агенти пересилання пошти • Найпопулярнішим SMTP-сервером в UNIX є Sendmail • Автор програми – Ерік Олман (Eric Allman) • За деякими даними на сьогодні відкриті та комерційні версії Sendmail функціонують на більш ніж 35% усіх серверів Інтернет, забезпечуючи доставку більш ніж 65%повідомлень електронної пошти у світі • Функціонально Sendmail складається з трьох відокремлених компонентів: • Агент користувача (User Agent) – дозволяє користувачу формувати повідомлення для відправлення і декодувати отримані повідомлення, що знаходяться у поштовій скриньці. • Агент пересилання (Transfer Agent) – відповідає за приймання і пересилання кореспонденції з одного поштового сервера на інший • Агент доставки (Delivery Agent) – керує поштовою скринькою користувача, додаючи до неї повідомлення, що надходять • Найголовнішим компонентом є агент пересилання • В якості агента пересилання замість Sendmail можуть використовуватись інші програми, які мають спільну назву агенти пересилання пошти (Mail Transfer Agents, MTA) • Можна сказати, що агент пересилання пошти – це програма, яка реалізує протокол пересилання електронної пошти (протокол SMTP) • Функції інших компонентів можуть виконуватись сторонніми програмами Лекція 18

  8. Читання пошти з сервера • Користувач може підключитись до сервера, на якому знаходиться його поштова скринька, традиційним способом (за протоколами Telnet, SSH, або, навіть, FTP) і здійснити доступ до свого поштового файлу • Є спеціальні програми, які читають пошту на сервері і розкладають її по локальним каталогам сервера (mail, pine, elm) • Агент користувача Sendmail теж здатний виконувати цю функцію (з міркувань безпеки не слід дозволяти користувачам такий доступ до Sendmail через мережу!) • Доступ до поштової скриньки також можна організувати через WWW (за протоколом HTTP) • Користувач може застосовувати спеціальну програму – поштового клієнта, що здійснює доступ до сервера за спеціальними протоколами читання електронної пошти • Або користувач забирає з сервера усю пошту, і на своєму клієнтському комп’ютері її сортирує, обробляє, зберігає • Це реалізується протоколом POP (Post Office Protocol) • Або користувач сортирує, обробляє, зберігає свою пошту на сервері, а його програма-клієнт лише здійснює керування • Це реалізується протоколом IMAP (Internet Mail Access Protocol) Лекція 18

  9. Формат повідомлень електронної пошти • Система була розроблена для передачі виключно текстових повідомлень • Розробники передбачали передачу лише 7-бітних символів, що в ті часи було досить традиційним заходом економії трафіку • Формат повідомлень в Інтернеті специфікується окремим стандартом RFC 2822 • Повідомлення має заголовок і тіло • Заголовок повідомлення складається з полів • Кожне поле має ключове слово і параметри • Параметри відокремлені від ключового слова символом двокрапки • Деякі поля формуються відправником повідомлення, а деякі – серверами, що відправляють та пересилають пошту • В ході доставки повідомлення нові поля дописуються зверху, тобто перше поле заголовка – насправді останнє, що було в нього дописане Лекція 18

  10. Поле Received • Як правило, перше поле і ще кілька за ним – це поля Received: їх вставляють усі транзитні сервери • Параметри у цьому полі можуть бути різними, вони змінюються від сервера до сервера • Традиційно у полі Receivedвказується: • який сервер надіслав повідомлення на цьому кроці пересилання • яким сервером повідомлення отримано (тобто, хто саме дописує це поле) • можуть вказуватись деякі параметри SMTP • кому повідомлення адресовано • дата і час отримання повідомлення • часова зона, в якій знаходиться сервер Received: from gato62.subscribe.ru ([81.222.129.62])by fish.ukr.net (trusted smtp.in) with esmtp ID 1GNTZl-0002Gi-KIfor graiv@ukr.net; Wed, 13 Sep 2006 15:10:45 +0300 Лекція 18

  11. Поле X-ResentFrom • В процесі доставки повідомлення адресат може змінюватись, бо на “кінцевому” сервері одержувача може бути налаштоване пересилання повідомлень на іншу адресу або список адрес Received: from fish.ukr.net (fish.ukr.net [195.214.192.72]) by noc.ntu-kpi.kiev.ua (Postfix) with ESMTP id ECC2217DDAE for <graiv@ptf.ntu-kpi.kiev.ua>; Tue, 7 Nov 2006 05:15:44 +0200 Received: from mail by fish.ukr.net with local ID 1GhHRA-0007Bn-Mt for graiv@ptf.ntu-kpi.kiev.ua; Tue, 07 Nov 2006 05:15:44 +0200 X-ResentFrom: <graiv@ukr.net> Received: from cat172.subscribe.ru ([81.9.34.172]) by fish.ukr.net (trusted smtp.in) with esmtp ID 1GhHRA-0007BW-8X for graiv@ukr.net; Tue, 07 Nov 2006 05:15:44 +0200 Лекція 18

  12. Інші поля заголовку • Існує ряд полів, які заповнює сервер-відправник, і поля, які заповнює поштовий клієнт відправника. Поштовий клієнт заповнює поля: • Date (дата відправки повідомлення) • From (адреса відправника) • X-Mailer (поштовий клієнт) • Organization (організація, з якої відправлено пошту) • і багато інших • Практично всю цю інформацію легко підробити. Для цього достатньо заповнити ці поля за своїм розсудом, а потім підключитись до транзитного поштового сервера, удаючи себе за поштовий сервер відправника. • Поле Message-IDмістить унікальний ідентифікатор повідомлення • Для того, щоби забезпечити його унікальність без необхідності узгоджувати роботу всіх поштових серверів Інтернет, в цей ідентифікатор включається доменне ім’я вузла-відправника Message-ID: <1904763990.20051102121040@ptf.ntu-kpi.kiev.ua> • Можлива ситуація, коли доменне ім’я у полі ідентифікатора повідомлення і у полі адреси відправника не співпадають. Така ситуація не є неприпустимою, і не обов’язково вказує на зловживання електронною поштою. Лекція 18

  13. Тіло повідомлення електронної пошти • Тіло повідомлення відокремлено від заголовків одним порожнім рядком • У найпростішому випадку тіло повідомлення – це просто ASCII-текст • Для розширення можливостей електронної пошти і відправлення листів у національних алфавітах (наприклад, кирилицею), а також і бінарних файлів (архівів, програм, мультимедійних файлів), застосовують кодування • Раніше основним способом кодування був base64 • У наш час найчастіше застосовується MIME-формат (Multipurpose Internet Mail Extensions) • MIME-формат описаний у RFC 2045–2049 • При застосуванні MIME у заголовку з’являються поля MIME-Version і Content-Type, а також ряд інших Лекція 18

  14. Алгоритм кодування base64 • Вихідну послідовність біт розбивають на блоки по 24 розряди • Кожний блок розбивають на 4 фрагменти по 6 біт • Кожний фрагмент розглядають як 6 молодших розрядів байту • До кожного фрагмента додають 64 • В результаті значення кожного байту знаходиться у межах 64-127 • У кодуванні ASCII у цьому діапазоні знаходяться літери латинського алфавіту і деякі спеціальні символи, але не команди керування • Таким чином, усі отримані байти можна передавати у повідомленнях електронної пошти • В результаті кодування розмір закодованої послідовності байт збільшується на третину (кожні три байти заміняються на чотири) Лекція 18

  15. Протокол SMTP • SMTP – це поштовий протокол хост-хост • У термінах протоколу SMTP некоректно говорити про “клієнта” і “сервер” • Насправді розрізняють відправника (sender) і одержувача(receiver) • SMTP-сервери в одних випадках виступають у ролі клієнта, а в інших – у ролі сервера • Протокол SMTP описаний у RFC 2821 • За стандартом SMTP-сервер працює на 25-му порту TCP • Підключитись до SMTP-сервер можна за допомогою клієнта Telnet • Будь-яке повідомлення від сервера за протоколом SMTP розпочинається з трьох символів-цифр, що визначають код завершення операції • Найчастіше зустрічається код 250, що підтверджує успішність операції Лекція 18

  16. Встановлення SMTP-з'єднання • Після встановлення TCP з’єднання, сервер видає привітання • Сервер називає себе і вказує поточну дату, час і часову зону 220 ISP UkrNet SMTP.in (storage.ukr.net) ESMTP Thu 21, Jun 2007, 00:38:22 +03.00 • Для продовження сеансу необхідно встановити SMTP-з’єднання • Для цього необхідно дати команду HELOі назвати себе HELO decency.abacus.volia.net 250 storage.ukr.net Hello decency.abacus.volia.net [77.122.117.197] • Описаний вище обмін привітаннями є процедурою рукостискання, яка встановлює SMTP-з’єднання • SMTP-з’єднання не обов’язково встановлюється з використанням TCP-з’єднання • В якості транспорту можуть використовуватись й інші протоколи, як із встановленням з’єднання (наприклад, X.25), так і без нього (наприклад, UDP) Лекція 18

  17. SMTP-транзакції • Після встановлення SMTP-з’єднання можна розпочинати передавати поштове повідомлення • Передача кожного повідомлення здійснюється SMTP-транзакцією • Спочатку необхідно вказати зворотну адресу (тобто, від кого йде це повідомлення) за допомогою команди MAIL FROM • Ця команда відкриває транзакцію. • Далі йде команда RCPT TO, у якій вказується адреса одержувача • Один лист може бути адресований кільком одержувачам, для цього слід повторити команду RCPT TOнеобхідну кількість разів. • Після цього видається команда DATA, яка переводить сервер у режим приймання тексту повідомлення Лекція 18

  18. Приклад відкриття SMTP-транзакції HELO decency.abacus.volia.net 250 storage.ukr.net Hello decency.abacus.volia.net [77.122.117.197] MAIL FROM: <graiv@ukr.net> 250 <graiv@ukr.net> is syntactically correct RCPT TO: <petya@mail.ru> 250 <petya@mail.ru> verified DATA 354 Enter message, ending with “.” on a line by itself • У цьому прикладі адреса відправника співпадає з доменом сервера Лекція 18

  19. Завершення SMTP-транзакції • Завершення повідомлення у протоколі SMTP позначається крапкою, що стоїть між двох символів завершення рядка • Ця послідовність символів є командою завершення транзакції • Якщо така послідовність зустрічається всередині листа, її необхідно замінити, бо інакше лист на цьому місці обірветься • Поточна транзакція може бути перервана командою RSET • При цьому відбувається очищення буферів, але SMTP-з’єднання залишається відкритим • Завершення SMTP-з’єднання здійснюється командою QUIT Лекція 18

  20. Ідентифікація в SMTP • Відправник двічі ідентифікує себе: командою HELOі командою MAIL FROM • У більшості випадків сам сервер за IP-адресою, з якої встановлене з’єднання, користуючись системою DNS визначає доменне ім’я відправника • Сервер може перевіряти і порівнювати всі ці адреси, але може деякі з них просто ігнорувати. Поведінка різних серверів залежить від їх налаштовувань • У спілкуванні з багатьма серверами у привітанні після HELOможна написати будь-що: сервер може взагалі ігнорувати введену адресу вузла (доменну чи IP) • Деякі сервери приймають повідомлення лише з домену цього сервера • Деякі сервери дозволяють відправляти повідомлення користувачам із “свого” домену – на будь-яку адресу, а усім іншим користувачам – лише на адреси “своїх” користувачів • Як правило, адреса, що передається командою MAIL FROMможе бути ніяк не пов’язаною з адресою, з якої встановлено з’єднання. Сервер лише перевіряє синтаксичну коректність адреси. Лекція 18

  21. Протокол POP3 (1) • POP – це найпопулярніший протокол читання електронної пошти з сервера • Протокол POP підтримує деякі прості команди, які дозволяють клієнту • виконувати базові операції з керування поштовою скринькою • завантажувати з поштового сервера листи, що були отримані від іншого поштового сервера • Обробкою повідомлень протокол POP не займається – вона доручається клієнтському програмному забезпеченню • Протокол POP не відповідає за відправлення пошти – цим займаються інші протоколи (здебільшого, SMTP) • Протокол підтримує автентифікацію користувача • POP версії 2 підтримує парольну автентифікацію, але пароль передається серверу у відкритому (незашифрованому) вигляді • POP версії 3 надає додатковий метод автентифікації, що називається APOP, який приховує пароль • Деякі реалізації POP можуть використовувати для автентифікації Kerberos • На поточний момент чинним є стандарт цього протоколу RFC-1939 Лекція 18

  22. Протокол POP3 (2) • Сервер POP3 за стандартом працює на 110-му порту • Порт може бути й іншим, і поштові клієнти дозволяють задати необхідний номер порту для кожного сервера • Для взаємодії з POP-сервером можна скористатись протоколом Telnet, і якщо будуть видані вірні команди, сервер їх коректно відпрацює • Після встановлення TCP-з’єднання, сервер надсилає привітання, яке може мати, наприклад, такий вигляд: +OK mPOP POP3 server ready <41652.1181994288@ukr.net> • Деякі сервери видають дуже лаконічні привітання, наприклад, такі: +OK • Будь-яка відповідь сервера починається або з +OK (команда користувача виконана успішно), або з –ERR (виникла помилка) • З моменту видачі привітання сервер переходить у стан авторизації (Authorization state) • Для передачі умовного імені користувача призначена команда USER, а для пароля – команда PASS Лекція 18

  23. Протокол POP3 (3) • Якщо сервер отримав вірний пароль, то він переходить у стан транзакції (Transaction state) • При цьому він повідомляє кількість листів і їх сумарний об’єм в октетах. Наприклад: +OK graiv@ukr.net maildrop has 3 messages (12358 octets) • Після переходу у стан транзакції сервер очікує від користувача (або програми-клієнта) команд, що керують поштовою скринькою та доставкою пошти з сервера на комп’ютер користувача • Фіксація транзакції відбувається після завершення сеансу командою QUIT • За цією командою сервер розриває з’єднання і переходить у стан фіксації трансакції (Transaction update) • Якщо з’єднання розривається за якихось зовнішніх причин до команди QUIT, то здійснюється відкіт трансакції Лекція 18

  24. Основні команди протоколу POP3 (1) Лекція 18

  25. Основні команди протоколу POP3 (2) Лекція 18

  26. Протокол IMAP4 • IMAP – це більш новий і менш популярний протокол читання електронної пошти • Сервер IMAP за стандартом працює на 143-му порту • Протокол описаний у RFC-3501, 3502 • IMAP4rev1 підтримує операції: • Створення • Видалення • Перейменування поштових скриньок • Перевірку надходження нових листів • Оперативне видалення листів • Встановлення й скидання прапорців операцій • Розбирання заголовків у форматі RFC-2822 та MIME-IMB • Пошук серед листів • Вибіркове читання листів • Протокол IMAP призначений для того, щоби забезпечити з клієнтських робочих станцій читання і обробку пошти при її зберіганні на сервері Лекція 18

  27. Відмінності IMAP4 від POP3 • IMAP знаходить застосування переважно у корпоративному середовищі, на відміну від POP • Головні відмінності протоколу IMAP від POP • Більша кількість і більша складність форматів команд • Інший режим обміну • POP підтримує синхронний режим обміну команда-відповідь • IMAP - асинхронний режим обміну • Порядок обробки запитів IMAP сервер визначає сам з метою оптимізації своєї швидкодії • Для того, щоби розпізнавати, яка відповідь відноситься до якої команди, введені теги: короткі алфавітно-цифрові рядки, що передують кожній команді і кожній відповіді • Автентифікація здійснюється • або командою LOGIN(пароль передається у відкритому вигляді) • або командою AUTHENTICATE (пароль передається зашифрованим) Лекція 18

More Related