Tổng quan về hệ thống thư tín điện tử
• Các giao thức sử dụng cho thư tín điện tử
• An toàn máy chủ thư tín điện tử và nội dung thư
tín điện tử
• An toàn thư tín trên máy trạm
• Quản trị an toàn hệ thống thư tín điện tử
• An toàn thư tín sử dụng mật mã
• Thực hành xây dựng và quản trị hệ thống thư tín
điện tử, xây dựng hệ webmail, mail client
169 trang |
Chia sẻ: mamamia | Lượt xem: 2422 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Bài giảng An toàn thư tín điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
AN TOÀN THƯ TÍN ĐIỆN TỬ
Nội dung
• Tổng quan về hệ thống thư tín điện tử
• Các giao thức sử dụng cho thư tín điện tử
• An toàn máy chủ thư tín điện tử và nội dung thư
tín điện tử
• An toàn thư tín trên máy trạm
• Quản trị an toàn hệ thống thư tín điện tử
• An toàn thư tín sử dụng mật mã
• Thực hành xây dựng và quản trị hệ thống thư tín
điện tử, xây dựng hệ webmail, mail client
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Nội dung:
– Khái niệm email
– Lịch sử phát triển
– Cách thức hoạt động
– Các hiểm hoạ đối với thư tín điện tử
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Khái niệm email:
– Email là thư dựa trên ký tự được gửi qua máy tính từ người
này đến người khác
– Email là phương pháp lý tưởng cho việc gửi tài liệu bằng
cách đính kèm
– Email là cách liên lạc với mọi người, với cơ quan làm việc
hoặc bất cứ ở đâu trên thế giới miễn là ở đó có kết nối vào
mạng internet
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Lịch sử phát triển:
– Năm 1971 Ray Tomlinson thực hiện gửi thành công một
thông báo thư tín điện tử đầu tiên trong mạng ARPANET
– Tomlinson đã sửa đổi hệ thống xử lý thông báo để người sử
dụng có thể gửi các thông báo cho các đối tượng nhận không
chỉ trong một hệ thống mà trên các hệ thống ARPANET
khác
– Sau đó nhiều công trình nghiên cứu khác đã được tiến hành
và thư tín điện tử đã nhanh chóng trở thành một ứng dụng
được sử dụng nhiều nhất trên ARPANET trước đây và
Internet ngày nay
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Cách thức hoạt động:
– Soạn thảo thư: Thực hiện nhập các trường chính như: chủ
đề, nội dung, đối tượng nhận, ...
– Gửi thư: Thư sẽ được chuyển đổi sang một định dạng chuẩn
xác định bởi RFC 822 (Standard for the Format of ARP
Internet Text Messages).
– Thư sau khi chuyển đổi sẽ gồm hai phần: phần tiêu đề
(header) và phần thân (body). Phần tiêu đề gồm một số
thông tin như: thời gian gửi, đối tượng gửi, đối tượng nhận,
chủ đề, thông tin về định dạng. Phần thân chính là nội dung
của thư.
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Cách thức hoạt động:
– Thư được gửi từ máy của người dùng (MUA- Mail User
Agent)
– MUA kết nối đến MTA (Mail Transport Agent- nằm trên
máy chủ thư)
– MUA cung cấp cho MTA: Định danh đối tượng gửi, định
danh đối tượng nhận thư
– Máy chủ thư sẽ thực hiện các thao tác: Định danh đối tượng
nhận, thiết lập kết nối, truyền thư.
– Máy chủ thư sẽ kiểm tra xem đối tượng nhận có nằm trong
miền thuộc máy chủ thư hay không, nếu như thuộc thì máy
chủ thư sẽ sử dụng dịch vụ phân phối cục bộ LDA (Local
Delivery Agent) để phân phối thư. Còn nếu không thuộc nó
sẽ gửi tiếp thư đến máy chủ thư có tên miền tương ứng
• Mô hình hệ thống thư điện tử
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
• Các hiểm họa đối với thư điện tử:
– Bị đọc lén thư (cá nhân, chính phủ trong nước, ngoài nước,
các tổ chức vv..)
– Thu thập và phân tích đường truyền
– Giả mạo (giả mạo người gửi thư)
– Bom thư
TỔNG QUAN VỀ THƯ TÍN ĐIỆN TỬ
CÁC GIAO THỨC SỬ DỤNG CHO THƯ TÍN ĐIỆN TỬ
• Nội dung
– Giao thức SMTP
– Giao thức POP3
– Giao thức IMAP
CÁC GIAO THỨC SỬ DỤNG CHO THƯ TÍN ĐIỆN TỬ
Giao thức SMTP
Giao thức SMTP
• Do Jon Postel thuộc Trường đại học Nam
California đã phát triển vào tháng 8 năm 1982
• Được sử dụng để truyền thư tín điện tử một cách
tin cậy và hiệu quả.
• Chạy trên tầng TCP/IP và sử dụng cổng 25
Giao thức SMTP
A B
Step 1
Step 2
Step 3
Send Req
ACK
A Local Mail Server
Send Mail
ACK
A
Local Mail Server
will store and queue
Local Mail
Server
DNS Query
DNS Server
Reply with
IP address
resolution
Giao thức SMTP
Step 4
Step 5
Step 6
Server A Server B
REQ
ACK
Server A Server B:
receive/store
Send
ACK
Server B B
Ring
ACK
SMTP protocol
• Việc trao đổi mail sử dụng TCP/IP được thực hiện
qua MTA (Message Transfer Agent)
– MTA chịu trách nhiệm hướng mail tới địa chỉ đích theo
đúng yêu cầu
– MTA sử dụng bản ghi MX (Mail Exchange) từ máy chủ
DNS để xác định nơi cần gửi tới
• SMTP có vai trò gắn kết giữa các MTA
Giao thức SMTP
Sending
Host
Queue
Local MTA
Local
MTA
Local
MTA
Relay
MTA
Relay
MTA
Local MTA Local MTA
User
Mailboxes
Local
MTA
Receiving
Host
Across the
internet
Queue
of mail
Queue
of mail
User B
User A
• Mô hình hoạt động của SMTP
Giao thức SMTP
User
HÖ thèng
file
Sender-
SMTP
Receiver-
SMTP
HÖ thèng
file
SMTP
commands/replies
Mail
• Sender-SMTP thiết lập một kênh truyền tải 2 chiều tới một
Receiver-SMTP. Receiver-SMTP hoặc là đích hoặc là điểm
tạm thời.
• Các lệnh SMTP được sinh ra bởi Sender-SMTP và gửi tới
Receiver-SMTP.
• Receiver-SMTP trả lời các lệnh gửi từ Sender-SMTP
• Thủ tục truyền trong SMTP
Thủ tục truyền tải SMTP có 3 bước:
Bước 1: Sử dụng lệnh MAIL để định danh người gửi.
Bước 2: Sử dụng một hoặc nhiều lệnh RCPT để định danh thông
tin người nhận.
Bước 3: Sử dụng lệnh DATA để xác định dữ liệu thư.
Các lệnh trên có cú pháp như sau:
MAIL FROM:
RCPT TO:
DATA
Giao thức SMTP
Ví dụ người gửi hongdq gửi thư tại máy fis-kma.edu tới người dùng
thaith, toannq và khoanc trên máy fit-kma.edu như sau:
S: MAIL FROM:
R: 250 OK
S: RCPT TO:
R: 250 OK
S: RCPT TO:
R: 550 No such user here
S: RCPT TO:
R: 250 OK
S: DATA
R: 354 Start mail input; end with .
S: Blah blah blah...
S: ...etc. etc. etc.
S: .
R: 250 OK
Giao thức SMTP
Giao thức SMTP
• Thủ tục gửi thư:
– Forward-path là thông tin chỉ đến địa chỉ đích tới của thư
– Trong một số trường hợp thì thông tin đích trong <forward-
path> bị sai, Receiver-SMTP sẽ nhận biết đích đúng khi
đúng.
– Khi đó sẽ xảy ra một trong 2 lệnh đáp lại dưới đây được sử
dụng để cho phép người gửi liên lạc với đích được cho là
đúng.
- 251 User not local; will forward to <forward-
path>
Hoặc
- 551 User not local; please try
• Ví dụ:
S: RCPT TO:
R: 251 User not local; will forward to <Postel@USC-
ISIF.ARPA>
hoặc
S: RCPT TO:
R: 551 User not local; please try
Giao thức SMTP
• Kiểm tra và mở rộng danh sách thư
- SMTP cung cấp thêm một số đặc tính như: kiểm tra tên người
sử dụng bằng lệnh VRFY, và mở rộng danh sách mail bằng
lệnh EXPN. Các lệnh này có cú pháp như sau:
VRFY
EXPN
Giao thức SMTP
• Ví dụ về kiểm tra tên người sử dụng như sau:
S: VRFY Smith
R: 250 Fred Smith
hoặc
S: VRFY Smith
R: 251 User not local; will forward to <Smith@USC-
ISIQ.ARPA>
hoặc
S: VRFY Jones
R: 550 String does not match anything.
hoặc
S: VRFY Jones
R: 551 User not local; please try
hoặc
S: VRFY Gourzenkyinplatz
R: 553 User ambiguous.
Giao thức SMTP
Giao thức SMTP
• Ví dụ về mở rộng danh sách mail như sau:
S: EXPN Example-People
R: 250-Jon Postel
R: 250-Fred Fonebone
R: 250-Sam Q. Smith
R: 250-Quincy Smith <@USC-ISIF.ARPA:Q-Smith@ISI-
VAXA.ARPA>
R: 250-
R: 250
hoặc
S: EXPN Executive-Washroom-List
R: 550 Access Denied to You.
Giao thức SMTP
• Phân phối tới mailbox và terminal
– Việc phân phối thông điệp tới các mailbox của người sử
dụng được gọi là "mailing", còn phân phối thông điệp tới các
terminal của người sử dụng được gọi là "sending" (người
dùng gửi thông điệp thông qua terminal)
– Dưới đây là 3 lệnh đã được định nghĩa để hỗ trợ "sending".
SEND FROM:
SOML FROM:
SAML FROM:
Giao thức SMTP
• Đóng và mở phiên giao dịch
– Tại thời điểm kênh truyền tải được mở thì có sự trao đổi thông tin
để chắc chắn rằng các máy đang truyền thông với nhau. Hai lệnh
sau đây được sử dụng để đóng mở phiên giao dịch cho kênh truyền
tải
HELO
QUIT
– Trong lệnh HELO máy sẽ gửi lệnh tự định danh cho nó, tương tự
như một lời chào "Chào các bạn, tôi là ". Ví dụ mở kết
nối như sau:
R: 220 BBN-UNIX.ARPA Simple Mail Transfer Service Ready
S: HELO USC-ISIF.ARPA
R: 250 BBN-UNIX.ARPA
– Lệnh QUIT thực hiện đóng kênh truyền tải thông tin, ví dụ:
S: QUIT
R: 221 BBN-UNIX.ARPA Service closing transmission channel
Giao thức SMTP
• Lưu chuyển mail
– Đó là quá trình chuyển thư từ một SMTP Server này sang
một SMTP Server khác
– Hai tham số dùng cho quá trình chuyển là: forward-path và
reverse-path
– Forward-path chứa địa chỉ của SMTP Server mà thư sẽ được
chuyển tới tiếp theo
– Reverse-path là địa chỉ SMTP Server mà thư vừa đi qua
Giao thức SMTP
• Các lệnh SMTP cơ bản
– HELO HELO domain> Định danh
Sender-SMTP đối với Receiver-SMTP, tham số
thường là tên máy.
– MAIL MAIL FROM: CRLF>
Khởi tạo phiên giao dịch mail tới một hoặc nhiều mailbox và
đồng thời định danh người gửi bằng tham số reverse-path
– RCPT RCPT TO:
Định danh một người nhận dữ liệu mail thông qua tham số
forward, nếu nhiều người nhận thì sử dụng nhiều dòng lệnh.
– DATA DATA Các dòng sau lệnh này sẽ là dữ liệu
thư.
– RSET RSET Chỉ ra phiên giao dịch thư hiện tại sẽ
bị loại bỏ.
– SEND SEND FROM: CRLF> Khởi
tạo phiên giao dịch dữ liệu thư phân phối tới một hoặc nhiều
terminal. Tham số reverse-path để định danh người gửi.
Giao thức SMTP
• SOML SOML FROM:
Khởi tạo phiên giao dịch dữ liệu mail phân phối tới một hoặc
nhiều terminal hoặc nhiều mailbox. Tham số reverse-path để
định danh người gửi.
• SAML SAML FROM:
Khởi tạo phiên giao dịch dữ liệu mail phân phối tới một hoặc
nhiều terminal và nhiều mailbox. Tham số reverse-path để định
danh người gửi.
• VRFY VRFY Yêu cầu người
nhận mail xác nhận một người sử dụng.
• EXPN EXPN Yêu cầu xác nhận
tham số để định danh một danh sách thư.
• HELP HELP [ ] Người nhận gửi
thông tin trợ giúp tới người gửi.
• NOOP NOOP Nhận được lệnh này từ phía người
gửi, tức là không thực hiện gì khác, thì người nhận trả lời OK.
Giao thức SMTP
• QUIT QUIT Lệnh này yêu cầu người
nhận gửi tín hiệu trả lời OK, sau đó đóng phiên
giao dịch.
• TURN TURN Lệnh này yêu cầu
người nhận hoặc là phải gửi tín hiệu OK và sau đó
đóng vai trò là Sender-SMTP, hoặc là phải gửi tín
hiệu từ chối và trả về đúng vai trò Receiver-
SMTP.
Giao thức SMTP
• Các mở rộng của giao thức SMTP
– Các phần mềm thư client và các SMTP server ngày được bổ
sung thêm nhiều tính năng mới
– Đối với các máy chủ SMTP người ta đã mở rộng thêm chức
năng cho giao thức truyền thư đơn giản SMTP
– Các mở rộng được đưa ra trong các tài liệu RFC, các RFC
này bổ sung thêm ba phần chính cho SMTP nguyên thuỷ,
bao gồm:
• Các lệnh SMTP mới (RFC 1425)
• Đăng ký các mở rộng dịch vụ SMTP (RFC 1651)
• Các tham số bổ sung cho các lệnh SMTP MAIL FROM và
RCPT TO (RFC 1869).
Giao thức SMTP
– Để tương thích giữa các máy SMTP thế hệ cũ và mới thì cần
phải có một phương thức nhằm cho phép ứng dụng thư client
xác định xem máy chủ có hỗ trợ các phần mở rộng hay
không
– Công việc này được thực hiện qua lệnh “enhanced hello”
(EHLO)
– Nếu máy chủ hỗ trợ các phần mở rộng SMTP, máy chủ sẽ
phúc đáp kết quả thực hiện lệnh đã thành công và liệt kê
phần mở rộng hiện máy chủ đó hỗ trợ. Nếu máy chủ không
hỗ trợ phần mở rộng SMTP, sẽ có thông báo kết quả thực
hiện lệnh không thành công, khi đó MUA phải thực hiện
lệnh HELO chuẩn
Giao thức SMTP
• Các thành phần mở rộng của SMTP
CÁC GIAO THỨC NHẬN THƯ
Giao thức POP3
(Post office protocol – version 3)
• Giao thức POP3 được sử dụng để truy nhập và lấy
các thông điệp thư điện tử từ mailbox trên máy
chủ thư tín
• POP3 được thiết kế hỗ trợ xử lý mail trong chế độ
Offline
• Các thông báo mail được chuyển tới máy chủ thư
tín và một chương trình thư client trên một máy
trạm sử dụng POP3 kết nối tới máy chủ thư tín đó
và tải tất cả các thông báo mail tới máy trạm đó
Giao thức POP3
• Nguyên tắt hoạt động và các lệnh của giao thức POP3
– Hoạt động của giao thức POP3 được thể hiện ở hình dưới
đây:
POP3 Client POP3 Server
TCP connection
AUTHORIZATION state
TRANSACTION state
UPDATE state
Giao thức POP3
• Một POP3 Server được thiết lập chế độ đợi ở
cổng 110.
• Khi POP3 client muốn sử dụng dịch vụ POP3, nó
thiết lập một kết nối TCP tới máy server ở cổng
110.
• Khi kết nối TCP được thiết lập, POP3 server sẽ
gửi một lời chào tới client.
• Phiên làm việc giữa client và server được thiết
lập. Sau đó client gửi các lệnh tới server và server
đáp lại (response) các lệnh đó tới tận khi đóng kết
nối hoặc kết nối bị huỷ bỏ các giao thức nhận thư
Giao thức POP3
• Một phiên POP3 có 3 trạng thái là: AUTHORIZATION,
TRANSACTION và UPDATE
– Trạng thái AUTHORIZATION: Trong trạng thái này server sẽ
xác thực client. Khi server xác thực client thành công thì phiên
vào trạng thái TRANSACTION.
– Trạng thái TRANSACTION: Trong trạng thái này, client có
thể truy nhập tới mailbox của mình trên server để kiểm tra,
nhận thư...
– Trạng thái UPDATE: Khi client gửi lệnh QUIT tới server từ
trạng thái TRANSACTION, thì phiên vào trạng thái
UPDATE, trong trạng thái này server gửi goodbye tới client và
đóng kết nối TCP, kết thúc phiên làm việc
Giao thức POP3
• Các lệnh trong giao thức POP3
– Các lệnh trong POP3 có thể có một hoặc nhiều đối số. Kết
thúc của lệnh bởi một cặp CRLF. Các từ khoá và đối số
trong lệnh là các ký tự trong ASCII.
– Một lời đáp lại (response) từ POP3 server gồm một mã trạng
thái và theo sau là các thông tin. Có hai mã trạng thái hiện
hành là: thành công (+OK) và lỗi (-ERR).
Giao thức POP3
• Cơ chế xác thực và các lệnh trong trạng thái
AUTHORIZATION.
– Có hai cơ chế xác thực: Cơ chế thứ nhất sử dụng kết hợp hai
lệnh USER và PASS, cơ chế xác thực thứ hai sử dụng lệnh
APOP
– Ngoài ra còn có các cơ chế xác thực khác được mô tả trong
RFC 1734
Giao thức POP3
– Xác thực sử dụng kết hợp hai lệnh USER và PASS:
• Lệnh USER
• Cú pháp: USER name
• Đối số: name là tên người dùng.
• Mô tả: Được sử dụng trong trạng thái AUTHORIZATION để
gửi tên của user tới POP3 server. Server sẽ đáp lại thành công
(+OK) nếu nhập tên user là đúng và ngược lại sẽ trả lại mã lỗi
(-ERR). Chú ý: trong các ví dụ kể từ đây, ký hiệu C: được gửi
từ Client và S: là response của Server.
Ví dụ:
C: USER mrose
S: +OK mrose is a real hoopy frood
...
C: USER frated
S: -ERR sorry, no mailbox for frated here
Giao thức POP3
• Lệnh PASS
– Cú pháp: PASS password
– Đối số: password là mật khẩu của user để truy nhập tới mailbox.
– Mô tả: Lệnh này chỉ được sử dụng trong trạng thái
AUTHORIZATION để gửi mật khẩu của người dùng tới POP3
server. Lệnh này phải được thực hiện sau lệnh USER và một khi
server đáp lại lệnh USER là thành công.
– Ví dụ:
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: +OK mrose's maildrop has 2 messages (320 octets)
...
C: USER mrose
S: +OK mrose is a real hoopy frood
C: PASS secret
S: -ERR maildrop already locked
Giao thức POP3
• Cơ chế xác thực sử dụng lệnh APOP
Cú pháp: APOP name disgest
Đối số:
name: tên của user
disgest: một chuỗi MD5 disgest
– Việc xác thực trong phiên sử dụng kết hợp lệnh USER/PASS
có nhược điểm là mật khẩu được truyền rõ trên mạng. Để
khắc phục nhược điểm này thì cơ chế xác thực sử dụng lệnh
APOP được sử dụng trong giao thức POP3
– Phương pháp xác thực này cho phép cả xác thực và bảo vệ
replay bằng cách không gửi mật khẩu ở dạng rõ trên mạng
Giao thức POP3
– Một server cài đặt lệnh APOP sẽ gửi kèm một timestamp
vào trong lời chào (greeting) tới client
– Dạng của timestamp được mô tả trong RFC 822 và chúng
phải khác nhau mỗi lần POP3 server gửi lời chào tới client
• Ví dụ, trên ứng dụng UNIX, mỗi tiến trình riêng biệt được sử
dụng cho timestamp của một POP3 server, cú pháp của
timestamp có thể là:
• Trong đó 'process-ID' là số hiệu tiến trình (PID), clock là clock
của hệ thống và hostname là tên miền đầy đủ.
– POP3 client sẽ lấy timestamp này (bao gồm cả dấu ngoặc
nhọn) cùng với bí mật dùng chung mà chỉ client và server
được biết (mật khẩu truy nhập mailbox của người dùng) để
tính toán tham số disgest sử dụng giải thuật MD5. Sau đó
gửi lệnh APOP với các tham số đi kèm tới server
Giao thức POP3
• Khi POP3 server nhận lệnh APOP, nó kiểm tra disgest đó.
Nếu disgest đúng, thì POP3 server sẽ đáp lại tới client
thành công (+OK) và phiên PO3 vào trạng thái
TRANSACTION. Trái lại, server sẽ thông báo lỗi tới
client và phiên POP3 vẫn ở trạng thái AUTHORIZATION.
Ví dụ:
S: +OK POP3 server ready 1896.697170952@dbc.mtview.ca.us>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK maildrop has 1 message (369 octets)
Trong ví dụ này bí mật dùng chung là chuỗi 'tanstaaf'. Do đó đầu vào
của giải thuật MD5 này là chuỗi
tanstaaf
Đầu ra có giá trị là c4c9334bac560ecc979e58001b3e22fb
Giao thức POP3
• Các lệnh trong trạng thái TRANSACTION
– Các lệnh trong trạng thái TRANSACTION là: STAT, LIST,
TOP, NOOP, RETR, DELE, UIDL, QUIT và RSET
Giao thức POP3
Giao thức POP3
GIAO THỨC IMAP
Internet Messages Access Protocol
Giao thức IMAP
• IMAP là một giao thức cho phép client truy nhập
email trên một server, không chỉ tải thông điệp thư
điện tử về máy của người sử dụng (POP) mà có
thể thực hiện các công việc như: tạo, sửa, xoá, đổi
tên mailbox, kiểm tra thông điệp mới, thiết lập và
xoá cờ trạng thái,...
• IMAP được thiết kế trong môi trường người dùng
có thể đăng nhập vào server (cổng 143/tcp) từ các
máy trạm khác nhau
Giao thức IMAP
• Sử dụng IMAP với các mục đích sau:
– Tương thích đầy đủ với các chuẩn thông điệp Internet (ví dụ
MIME).
– Cho phép truy nhập và quản lý thông điệp từ nhiều máy tính
khác nhau.
– Hỗ trợ cả 3 chế độ truy nhập: online, offline, và
disconnected.
– Hỗ trợ truy nhập đồng thời tới các mailbox dùng chung.
– Phần mềm bên client không cần thiết phải biết kiểu lưu trữ
file của server.
Giao thức IMAP
• Hoạt động của IMAP
– Kết nối IMAP bao gồm: kết nối mạng cho client/server, khởi
tạo trên server hay gọi là "hello message", và những tương
tác client/server tiếp theo
– Những tương tác này bao gồm: lệnh từ client, dữ liệu trên
server, và trả lời trên server. Tương tác giữa IMAP client và
IMAP server thực hiện dựa vào các giao thức gửi/nhận của
client/server
Giao thức IMAP
• Giao thức gửi của client và nhận của server
– Khi hoạt động, bên client gửi một lệnh, mỗi lệnh có một
định danh (sắp xếp theo alphabel, ví dụ: A00001, A00002)
được gọi là một thẻ. Mỗi thẻ này được sinh từ phía client cho
từng lệnh khác nhau
– Nếu server nhận ra một lỗi dòng lệnh, thì nó gửi thông tin trả
lời là BAD để huỷ bỏ lệnh và chống việc gửi thêm lệnh từ
phía client
– Server có thể gửi một thông tin trả lời cho nhiều lệnh khác
nhau cùng một thời điểm (trong trường hợp gửi nhiều lệnh),
hoặc dữ liệu không gán thẻ
Giao thức IMAP
– Trong trường hợp khác khi yêu cầu tiếp tục gửi lệnh đang
chờ, thì client thực hiện theo thông tin trả lời lệnh từ phía
server và đọc thông tin trả lời khác từ server đến. Trong tất
cả các trường hợp, thì client phải gửi các thông tin hoàn
thành lệnh trước khi khởi tạo lệnh mới.
– Giao thức nhận bên server đọc dòng lệnh từ phía client gửi
sang, phân tích lệnh và các tham số, sau đó truyền tải dữ liệu
trên server và thông tin hoàn thành lệnh sang client.
Giao thức IMAP
• Giao thức gửi của server và nhận của client
– Dữ liệu đã truyền tải sang client cả thông tin trạng thái thông
báo chưa kết thúc lệnh (đặt trước là dấu "*", được gọi là
không gán thẻ).
– Dữ liệu trên server có thể được gửi theo lệnh từ phía client,
hoặc có thể được gửi từ phía server mà không cần theo lệnh
từ phía client
– Thông tin hoàn thành lệnh từ phía server sử dụng một trong
3 chuỗi sau: OK để thông báo lệnh đã thực hiện thành công,
NO để thông báo lệnh thực hiện lỗi, và BAD để thông báo bị
lỗi khi sử dụng giao thức (lệnh không được công nhận, hoặc
cú pháp lệnh sai).
Giao thức