Tải bản đầy đủ (.pdf) (80 trang)

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 80 trang )

1

MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT……………………………………………… .... .iii
DANH MỤC HÌNH VẼ ………………………………………………………… .... ...v
LỜI MỞ ĐẦU…………………………………………………………………….... …6
CHƯƠNG 1: TỔNG QUAN VỀ THƯ ĐIỆN TỬ ……………………………… ... ..7
1.1 Khái niệm thư điện tử ………………………………………………………… ... .7
1.1.1 Thư điện tử là gì?, ……………………... …………………………… .... 7
1.1.2 Kiến trúc và hoạt động của hệ thống thư điện tử……………………… .... 7
1.2 Giới thiệu một số giao thức sử dụng để gửi và nhận thư điện tử …………. ... 12
1.2.1 Giao thức gửi thư SMTP (Simple Mail Transfer Protocol)…………... ... 12
1.2.2 Giao thức POP (Post Office Protocol)………………………………... ... 17
1.2.3 Giao thức IMAP (Internet Message Access Protocol)………………...... 20
CHƯƠNG 2: THƯ RÁC VÀ CÁC PHƯƠNG PHÁP LỌC THƯ RÁC ……... .... 24
2.1 Thư rác ……………………………………………………………………… .... ..24
2.1.1 Khái niệm về thư điện tử rác ………………………………………….... 24
2.1.2 Các đặc điểm nhận dạng thư điện tử rác …………………………….. .... 24
2.1.3 Phân loại thư điện tử rác ……………………………………………... ... 26
2.2 Các phương pháp lọc thư rác ……………………………………………….. ... 29
2.2.1 Kỹ thuật chứng thực thư điện tử .......................................................30
2.2.2 Domain Keys (DK)………………………………………………… ... …33
2.2.3 Phương pháp lọc theo từ khóa……………………………………….. .... 35
2.2.4 Sử dụng DNS Blacklist……………………………………………..… ... 36
2.2.5 Kiểm tra người nhận………………………………………………….. ... 38
2.2.6 Chặn IP……………………………………………………………… ... ..38
2.3 Kỹ thuật lọc theo nội dung…………………………………………………… ... 38
2.3.1. Sử dụng bộ lọc Bayesian………………………………………….… ... .38
2.3.2 Sử dụng lọc theo thuật toán Naïve Bayes ………………………………..... .44
2.3.3 Lọc sử dụng phương pháp Heuristic………………………………..... ... 49
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng




2

CHƯƠNG 3: XÂY DỰNG BỘ LỌC THƯ TỰ ĐỘNG DỰA TRÊN KỸ
THUẬT NAÏVE BAYES ………………………………… ... 56
3.1 Phân tích câu…………………………………………………………… ... 57
3.2 Xây dựng bộ lọc thư điện tử tự động…………………………………. ... 58
3.2.1 Tiến trình thu thập nội dung…………………………………….. ... .60
3.2.2 Tiền xử lý………………………………………..………………... ..61
3.2.3 Phân tích nội dung thư………………………………………… ... …62
3.2.3.1 Thư tiếng Anh…………………………………………. ................ 62
3.2.3.2 Thư tiếng Việt………………………….……………… ................ 62
3.2.4 Phân tích từ đơn…………………………………………………. ... 63
3.2.5 Phân tích từ ghép …………………………………………………... 64
3.3 Quy trình lọc thư rác tiếng Việt………………………………………. ... 66
3.4 Cài đặt thực nghiệm …………………………………………………... .. 68
3.5 Kết quả thực nghiệm ………………………………………………….. ... 71
3.5.1 Danh sách từ đơn ………………………………………………… .. 71
3.5.2 Danh sách từ ghép ……………………………………………….. ... 73
3.5.3 Danh sách từ đơn và từ ghép…………………………………….. ... 75
KẾT LUẬN …………………………………………………………………... 78
TÀI LIỆU THAM KHẢO ……………………………………………………………… .... .79

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


3

DANH MỤC CÁC TỪ VIẾT TẮT

TT

1

2

TỪ VIẾT TẮT
SMTP

POP

TỪ ĐẦY ĐỦ TIẾNG ANH

NGHĨA TIẾNG VIỆT

Simple Mail Transfer

Giao thức truyền thư

Protocol

điện tử

Post Office Protocol

Giao thức nhận thư
điện tử

3


4

IMAP

SPF

Internet Message Access

Giao thức truy cập

Protocol

thư điện tử

Sender Policy Framework

Giao thức chứng thực
thư điện tử

5

DK

DomainKeys

Giao thức chứng thực
xác thực tên miền của
người gửi

6


MTA

Message Transfer Agent)

Tác nhân truyền tải
thư điện tử

7

MUA

Mail User Agent

Tác nhân người dùng
điện tử

8

DNSBL

DNSBL (DNS-based Blocklist)

Danh sách đen

9

IP

Internet Protocol


Giao thức liên mạng

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


4

User Agent

Tác nhân người dùng

10

UA

11

Spammer

Người gửi thư rác

12

Client

Máy trạm

13


Port

Cổng

14

Server

Máy chủ

15

Header

Tiêu đề

16

routers

Bộ định tuyến

17

Address

Kiểm tra địa chỉ thư

Debugging
18


Mail

Chuyển thư

Forwarding
19

Mail

Cổng thư

Gatewaying
20

save

lưu trữ

21

delete

Xóa

22

reply

Trả lời


Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


5

DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình trao đổi thư điện tử……………………………………………………...9
Hình 1.2 : Mô hình trạm phục vụ thư (mail Server)………………………..........................11
Hình 1.3: Mô hình sử dụng SMTP (Nguồn: RFC 5321, Simple Mail Transfer
Protocol)…………………………………………………………………………………...12
Hình 1.4: Mô hình hoạt động của giao thức POP3 ……………………………………….18
Hình 2.1: Việt Nam lọt top 10 quốc gia gửi đi nhiều thư điện tử rác nhất thế giới ……….27
Hình 2.2: Top 10 quốc gia có tỷ lệ thư rác/đầu người cao nhất - Ảnh: ST………………...28
Hình 2.3: hoạt động của SPF động………………………………………………………...31
Hình 2.4: Hiệu quả phương pháp SPF động……………………………………………….32
Hình 2.5: Khung ID người gửi được thi hành trên MTA …………………........................34
Hình 2.6: DNS Blacklist…………………………………………………………………...37
Hình 2.7: Chặn IP………………………………………………………….........................38
Hình 2.8: Hoạt động của bộ lọc thư rác Bayesian…………………………........................40
Hình 2.9: Mô tả bước xây dựng bộ phân lớp……………………………………………...47
Bảng 2.10: Các phần mềm chống thư rác có bản quyền…………………………………....52

Bảng 2.11: Các phần mềm chống thư rác mã nguồn mở……………………………………....52
Hình 3.1: Mô hình tổng quát……………………………………………………………….60
Hình 3.2: Tiến trình học từ………………………………………………………………...61
Hình 3.3: Quy trình tách từ với thư tiếng Việt…………………………………………….63
Bảng 3.4: Thống kê độ dài của từ trong từ điển………………………………………….65
Bảng 3.5: Ví dụ minh họa phân tích từ đơn………………………………………………..68
Hình 3.6 : Giao diện xử lý văn bản VLSP ………………………………………………..69

Hình 3.7: Nạp dữ liệu từ đơn với Naïve Bayes ……………………………………………71
Hình 3.8: Phân lớp từ đơn với Naïve Bayes………………………………………….........71
Hình 3.9: Nạp dữ liệu từ ghép với Naïve Bayes…………………………………………...73
Hình 3.10: Phân lớp từ ghép với Naïve Bayes……………………………………………..73
Hình 3.11: Nạp dữ liệu từ đơn và từ ghép với Naïve Bayes……………………………….75
Hình 3.12: Phân lớp từ đơn và từ ghép với Naïve Bayes………………………………….75
Bảng 3.13: Kết quả phân loại thư tiếng Việt………………………………………………77

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


6

LỜI MỞ ĐẦU
Truyền thông qua internet nói chung và giao dịch trực tuyến bằng thư điện
tử nói riêng đã trở thành một nhu cầu không thể thiếu đối với con người trong
thời đại Công nghệ thông tin hiện nay. Mỗi người khi sử dụng internet đều có thể
tạo ra cho mình một hoặc nhiều tài khoản email để có thể liên hệ với gia đình,
bạn bè và công việc.
Chính vì điều này mà kẻ phát tán thư rác (spammer) đã tìm đủ mọi cách để
thu thập địa chỉ email của người dùng, để từ đó có thể sử dụng thông tin này vào
các mục đích như gửi thư quảng cáo, bán danh sách địa chỉ email của người
dùng cho các doanh nghiệp khác để thu lợi những khoản tiền lớn.
Spams ngày một nhiều hơn và chúng không ngừng tăng theo cấp “số
nhân“. Spams, ngoài những thông điệp quảng cáo, tiếp thị thông thường của các
spammers, một số hackers còn lợi dụng việc phát tán thư rác để tấn công vào các
email Server, lợi dụng thư rác để “lừa đảo” trực tuyến hay cài đặt virus, Trojan
vào máy tính của người dùng. Sự xuất hiện và gia tăng thư rác không những gây
khó chịu và làm mất thời gian của người nhận mà còn ảnh hưởng tới đường
truyền Internet và làm chậm tốc độ xử lý của máy chủ thư điện tử, gây thiệt hại

lớn về kinh tế.
Trong phạm vi của đề tài, dưới sự hướng dẫn của PGS.TS Nguyễn Văn
Tam, học viên đã chọn đề tài “Một số giải pháp lọc nội dung cho hệ thống thư
điện tử SMTP và ứng dụng” nhằm đề xuất giải pháp xây dựng bộ lọc nội dung tự
động bằng phương pháp tách từ đơn, từ ghép và áp dụng thuật toán Naïve bayes
để phân loại thư hợp lệ và thư rác.

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


7

CHƯƠNG 1
TỔNG QUAN VỀ THƯ ĐIỆN TỬ

1.1 Khái niệm thư điện tử
1.1.1 Thư điện tử là gì?
Thư điện tử là một thông điệp gửi từ máy tính này đến một máy tính khác
trên mạng máy tính mang nội dung cần thiết từ người gửi đến người nhận. Do
thư điện tử gửi qua lại trên mạng và sử dụng tín hiệu điện vì vậy tốc độ truyền
rất nhanh. Ngoài ra người sử dụng có thể gửi hoặc nhận thư riêng hoặc các bức
điện giao dịch với các file đính kèm như hình ảnh, các công văn tài liệu thậm chí
cả bản nhạc hay các chương trình phần mềm…
Thư điện tử còn được gọi tắt là E-mail (Electronic Mail). E-Mail có nhiều
cấu trúc khác nhau tùy thuộc vào hệ thống máy vi tính của người sử dụng. Mặc
dù khác nhau về cấu trúc nhưng tất cả đều có chung mục đích là gửi hoặc nhận
thư điện tử từ một nơi này đến một nơi khác nhanh chóng. Ngày nay nhờ sự phát
triển mạnh mẽ của Internet, người ta có thể gửi điện thư tới các quốc gia trên
toàn thế giới. Với lợi ích như vậy nên thư điện tử hầu như trở thành một nhu cầu
cần phải có của người sử dụng máy vi tính.

1.1.2 Kiến trúc và hoạt động của hệ thống thư điện tử
Muốn gửi thư điện tử người gửi cần phải có một account trên một máy chủ
thư. Một máy chủ có thể có một hoặc nhiều account. Mỗi account đều được
mang một tên khác nhau (userid). Mỗi account đều có một hộp thư riêng
(mailbox) cho account đó. Thông thường thì tên của hộp thư sẽ giống như tên
của account. Ngoài ra máy vi tính đó phải được nối trực tiếp hoặc gián tiếp với
hệ thống Internet nếu muốn gửi nhận thư điện tử toàn cầu. Người sử dụng máy vi
tính tại nhà vẫn có thể gửi nhận thư điện tử bằng cách kết nối máy vi tính của họ
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


8

với một máy vi tính khác bằng máy modem. Có một số nơi cấp phát account thư
điện tử miễn phí cho các máy vi tính tại nhà có thể dùng modem để kết nối với
máy vi tính đó để chuyển nhận thư điện tử như hotmail.com hoặc yahoo.com
.v.v.
 Đường đi của thư
Mỗi một bức thư truyền thống phải đi tới các bưu cục khác nhau trên đường
đến với người dùng. Tương tự thư điện tử cũng chuyển từ máy máy chủ thư điện
tử này (mail server) tới máy chủ tư điện tử khác trên internet. Khi thư được
chuyển đến đích thì nó được chứa tại hộp thư điện tử tại máy chủ thư điện tử cho
đến khi nó được nhận bởi người nhận. Toàn bộ quá trình xử lý chỉ xảy ra trong
vài phút, do đó nó cho phép nhanh chóng liên lạc với mọi người trên toàn thế
giới một cánh nhanh chóng tại bất cứ thời điểm nào dù ngày hay đêm.
 Gửi, nhận và chuyển thư
Để nhận được thư điện tử bạn cần phải có một tài khoản (account) thư
điện tử. Nghĩa là bạn phải có một địa chỉ để nhận thư. Một trong những thuận lợi
hơn với thư thông thường là bạn có thể nhận thư điện tử từ bất cứ đâu. Bạn chỉ
cần kết nối vào Server thư điện tử để lấy thư về máy tính của mình.

Để gửi được thư bạn cần phải có một kết nối vào internet và truy nhập vào
máy chủ thư điện tử để chuyển thư đi. Thủ tục tiêu chuẩn được sử dụng để gửi
thư là SMTP (Simple Mail Transfer Protocol). Nó được kết hợp với thủ tục POP
(Post Office Protocol) và IMAP để lấy thư.

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


9

Hình 1.1: Mô hình trao đổi thư điện tử

Trên thực tế có rất nhiều hệ thống vi tính khác nhau và mỗi hệ thống lại có
cấu trúc chuyển nhận thư điện tử khác nhau. Vì có sự khác biệt như vậy nên việc
chuyển nhận thư điện tử giữa hai hệ thống khác nhau rất là khó khăn và bất tiện.
Do vậy, người ta đã đặt ra một nghi thức chung cho thư điện tử. Có nghĩa là các
hệ thống máy vi tính đều đồng ý với nhau về một nghi thức chung gọi là Simple
Mail Transfer Protocol viết tắt là SMTP (Nghi Thức Đơn Giản Chuyển Vận Thư
Từ). Nhờ vào SMTP này mà sự chuyển vận thư từ điện tử trên Internet đã trở
thành dễ dàng nhanh chóng cho tất cả các người sử dụng máy vi tính cho dù họ
có sử dụng hệ thống máy vi tính khác nhau.
Khi gửi thư điện tử thì máy tính của người sử dụng cần phải định hướng
đến máy chủ SMTP. Máy chủ sẽ tìm kiếm địa chỉ thư điện tử (tương tự như địa
chỉ điền trên phong bì) sau đó chuyển tới máy chủ của người nhận và nó được
chứa ở đó cho đến khi được lấy về. Người gửi có thể gửi thư điện tử đến bất cứ
ai trên thế giới mà có một địa chỉ thư điện tử.

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng



10

 Chuyển thư (Send Mail)
Sau khi người sử dụng máy vi tính dùng chương trình thư để viết thư và đã
ghi rõ địa chỉ của người nhận thì máy tính sẽ chuyển bức thư điện đến hộp thư
người nhận. SMTP sử dụng nghi thức TCP (TCP protocol) để chuyển vận thư.
Vì nghi thức TCP rất là hữu hiệu và có phần kiểm soát thất lạc mất mát cho nên
việc gửi thư điện tử có hiệu suất rất cao. Khi nhận được mệnh lệnh gửi đi của
người sử dụng, máy vi tính sẽ dùng nghi thức TCP liên lạc với máy vi tính của
người nhận để chuyển thư. Đôi khi vì máy vi tính của người nhận đã bị tắt điện
hoặc đường dây kết nối từ máy gửi tới máy nhận đã tạm thời bị hư hỏng tạm thời
tại một nơi nào đó (tranmission wire failure), hoặc là có thể là máy chuyển tiếp
(routers) trên tuyến đường liên lạc giữa hai máy tạm thời bị hư (out of order) thì
máy gửi không cách nào liên lạc với máy nhận được. Gặp trường hợp như vậy
thì máy gửi sẽ tạm thời giữ lá thư trong khu vực dự trữ tạm thời. Máy gửi sau đó
sẽ tìm cách liên lạc với máy nhận để chuyển thư. Những việc này xảy ra trong
máy vi tính và người sử dụng sẽ không hay biết gì. Nếu trong khoảng thời gian
mà máy vi tính của nơi gửi vẫn không liên lạc được với máy nhận thì máy gửi sẽ
gửi một thông báo cho người gửi nói rằng việc vận chuyển của lá thư điện tử đã
không thành công.
• Nhận Thư (Receive Mail)
Nếu máy gửi có thể liên lạc được với máy nhận thì việc chuyển thư sẽ
được tiến hành. Trước khi nhận lá thư thì máy nhận sẽ kiểm soát tên người nhận
có hộp thư trên máy nhận hay không. Nếu tên người nhận thư có hộp thư trên
máy nhận thì lá thư sẽ được nhận lấy và thư sẽ được bỏ vào hộp thư của người
nhận. Trường hợp nếu máy nhận kiểm soát thấy rằng tên người nhận không có
hộp thư thì máy nhận sẽ khước từ việc nhận lá thư. Trong trường hợp khước từ

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng



11

này thì máy gửi sẽ thông báo cho người gửi biết là người nhận không có hộp thư
(user unknown).
Sau khi máy nhận đã nhận lá thư và đã bỏ vào hộp thư cho người nhận thì
máy nhận sẽ thông báo cho người nhận biết là có thư mới . Người nhận sẽ dùng
chương trình thư để xem lá thư. Sau khi xem thư xong thì người nhận có thể lưu
trữ (save), hoặc xóa (delete), hoặc trả lời (reply) v.v... Trường hợp nếu người
nhận muốn trả lời lại lá thư cho người gửi thì người nhận không cần phải ghi lại
địa chỉ vì địa chỉ của người gửi đã có sẵn trong lá thư và chương trình thư sẽ bỏ
địa chỉ đó vào trong bức thư trả lời.
 Trạm Phục Vụ Thư (Mail Server)
Trên thực tế, trong những cơ quan và hãng xưởng lớn, máy vi tính của người
gửi thư không gửi trực tiếp tới máy vi tính của người nhận mà thường qua các
máy chủ thư điện tử (mail servers).

Hình 1.2 : Mô hình trạm phục vụ thư (mail Server)

Như hình vẽ phía trên cho thấy, nếu như một người ở máy A gửi tới một
người ở máy B một lá thư thì trước nhất máy A sẽ gửi đến máy chủ thư điện tử
X. Khi trạm phục vụ thư X nhận được thư từ máy A thì X sẽ chuyển tiếp cho
máy chủ thư điện tử Y. Khi trạm phục vụ thư Y nhận được thư từ X thì Y sẽ

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


12

chuyển thư tới máy B là nơi người nhận. Trường hợp máy B bị trục trặc thì máy

chủ thư Y sẽ giữ thư.
Thông thường thì máy chủ thư điện tử thường chuyển nhiều thư cùng một
lúc cho một máy nhận. Như ví dụ ở trên trạm phục vụ thư Y có thể chuyển nhiều
thư cùng một lúc cho máy B từ nhiều nơi gửi đến.
Một vài công dụng khác của máy chủ thư là khi người sử dụng có chuyện
phải nghỉ một thời gian thì người sử dụng có thể yêu cầu máy chủ thư giữ giùm
tất cả những thư từ trong thời gian người sử dụng vắng mặt hoặc có thể yêu cầu
máy chủ thư chuyển tất cả thư từ tới một cái hộp thư khác.
1.2 Giới thiệu một số giao thức sử dụng để gửi và nhận thư điện tử
1.2.1 Giao thức gửi thư SMTP (Simple Mail Transfer Protocol)
SMTP là một trong những giao thức cơ bản của Internet, được sử dụng để
gửi thư điện tử. SMTP gửi thông điệp dựa trên giao thức tin cậy TCP, sử dụng
cổng mặc định là 25. Cũng như đa phần các giao thức ở lớp ứng dụng, SMTP
gồm 2 thành phần: thành phần máy chủ SMTP (server) và thành phần máy khách
SMTP (client). Cả hai thành phần này đều được tích hợp trên các máy chủ thư
điện tử (mail server). Khi máy chủ gửi thư, nó đóng vai trò là client, khi máy chủ
nhận thư nó đóng vai trò là server. Việc thiết kế SMTP dựa trên mô hình giao
tiếp như sau:
User

SMTP
commands/
replies

SenderSMTP

ReceiverSMTP
Mail

File

System

file
System

Hình 1.3: Mô hình sử dụng SMTP (Nguồn: RFC 5321, Simple Mail Transfer Protocol)
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


13

Sender-SMTP thiết lập một kênh truyền tải hai 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 ReceiverSMTP.
• Receiver-SMTP trả lời các lệnh gửi từ Sender-SMTP
Để gửi một thông điệp đến máy chủ SMTP (SMTP server), máy khách
SMTP (SMTP client) thiết lập một kênh truyền hai chiều với máy chủ SMTP.
Phiên làm việc SMTP được khởi tạo khi một máy khách SMTP mở một kết nối
đến máy chủ SMTP và máy chủ SMTP trả lời bằng một thông điệp mở kết nối;
sau đó máy khách SMTP gửi một thông điệp chào thông qua câu lệnh HELO
hoặc EHLO đến máy chủ SMTP kèm theo định danh của máy khách SMTP,
đồng thời thể hiện máy khách SMTP sẵn sàng tiếp nhận và xử lý các câu lệnh.
Sau khi kênh truyền đã được thiết lập và kết thúc việc khởi tạo kết nối, máy
khách SMTP sẽ khởi tạo một giao dịch thông điệp. Giao dịch này sẽ bao gồm
một tập các câu lệnh để xác định điểm xuất phát và đích đến của thông điệp cần
gửi.
Có ba bước trong các giao dịch thư SMTP:
- Phiên giao dịch bắt đầu với một lệnh MAIL cho biết định danh bên gửi.
- Bước thứ hai là một chuỗi các lệnh RCPT để xác định thông tin của bên
nhận.

- Cuối cùng, một lệnh DATA khởi tạo việc truyền dữ liệu thư và được
ngắt kết nối bởi một dấu hiệu dữ liệu “kết thúc thư”, đồng thời cũng khẳng định
giao dịch.
Các lệnh trên có cú pháp như sau:
MAIL <SP> FROM:<reverse-path> <CRLF>
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


14

RCPT <SP> TO:<forward-path> <CRLF>
DATA <CRLF>
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 <CRLF>.<CRLF>
S: Blah blah blah...
S: ...etc. etc. etc.
S: <CRLF>.<CRLF>
R: 250 OK
Máy chủ SMTP sẽ trả lời từng câu lệnh từ máy khách SMTP để khẳng định câu
lệnh đã được xử lý. Ngay khi thông điệp đã được gửi đi, máy khách SMTP có

thể yêu cầu đóng kết nối hiện tại thông qua câu lệnh QUIT hoặc có thể khởi tạo
một giao dịch khác.
Trong một số trường hợp, khi thông tin về địa chỉ đến không chính xác
nhưng bên nhận lại biết rõ địa chỉ này, máy chủ SMTP có thể chuyển tiếp thư
này đến địa chỉ đến mong muốn hoặc đưa ra gợi ý để trợ giúp cho bên gửi chỉnh
sửa lại địa chỉ đến, hoặc gửi lại một thông báo lỗi.
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


15

Một số tính năng quan trọng của SMTP
Bên cạnh cơ chế chuyển thư cơ bản, SMTP còn có một số tính năng khác
cho phép SMTP hỗ trợ các yêu cầu kỹ thuật quan trọng, bổ trợ cho hệ thống thư
điện tử như sau:
- Chuyển tiếp (Mail Relaying): Là khả năng máy chủ SMTP nhận thư từ
máy khách SMTP và chuyển thư này đến máy chủ SMTP khác để chuyển thư
hoặc gửi thư nhưng không sửa đổi dữ liệu mà chỉ lưu vết thông tin.
- Chuyển thư (Mail Forwarding): Là khả năng máy chủ SMTP chuyển thư
đến một địa chỉ thư xác định trước để lưu trữ thư.
- Kiểm tra địa chỉ thư (Address Debugging): SMTP cung cấp câu lệnh để
xác nhận một người dùng hay lấy nội dung của một danh sách thư thông qua các
lệnh VRFY với tham số như tài khoản đăng nhập, họ và tên đầy đủ …
- Cổng thư (Mail Gatewaying): Là khả năng máy chủ SMTP nhận thư từ
một hệ thống khách trong một môi trường vận chuyển và chuyển thư đến một hệ
thống chủ trong một môi trường vận chuyển khác. Sự khác nhau về giao thức
hay ngữ nghĩa thư giữa các môi trường vận chuyển có thể yêu cầu cổng thư
SMTP thực hiện biến đổi thông điệp không được phép đến hệ thống chuyển thư
SMTP.
SMTP được cài đặt trong các phần mềm máy chủ thư điện tử cung cấp

dịch vụ thư điện tử (ví dụ: Microsoft Exchange Server, MDaemon Mail Server,
Ipswitch IMail Server, IBM Lotus Domino, Sendmail…) và các phần mềm có
chức năng gửi, nhận thư điện tử cài đặt trên máy khách (ví dụ: IBM Notes,
Mozilla Thunderbird, Zimbra, Microsoft Outlook...). Trong Thông tư
01/2011/TT-BTTTT ngày 04/01/2011 của Bộ trưởng Bộ Thông tin và Truyền
thông Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


16

trong cơ quan nhà nước quy định Bắt buộc áp dụng tiêu chuẩn SMTP và được
xếp vào nhóm Tiêu chuẩn về kết nối.
Một số câu lệnh phổ biến trong SMTP
DATA
HELO (hoặc EHLO)
MAIL
VRFY (VERIFY)
RCTP (RECIPIENT)

Câu lệnh gửi nội dung của thông điệp từ nơi gửi đến
nơi nhận
Câu lệnh thể hiện sự chào hỏi giữa máy khách và máy
chủ SMTP
Câu lệnh xác định địa chỉ nơi gửi
Câu lệnh yêu cầu nơi nhận xác nhận các tham số để
xác định người sử dụng hay hộp thư
Câu lệnh xác định địa chỉ nơi nhận


Các lệnh SMTP cơ bản:
– HELO HELO <SP> domain> <CRLF> Định danh Sender-SMTP đối
với Receiver-SMTP, tham số <domain> thường là tên máy.
– MAIL MAIL <SP> FROM:<reverse- path> 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 <SP> TO:<forward- path> <CRLF>
Đị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 <CRLF> Các dòng sau lệnh này sẽ là dữ liệu thư.
– RSET RSET <CRLF> Chỉ ra phiên giao dịch thư hiện tại sẽ bị loại bỏ.
– SEND SEND <SP> FROM:<reverse- path> 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ố reversepath để định danh người gửi.
- SOML SOML <SP> FROM:<reverse- path> <CRLF> 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.
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


17

- SAML SAML <SP> FROM:<reverse- path> <CRLF>
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 <SP> <string> <CRLF>Yêu cầu người nhận mail xác
nhận một người sử dụng.
- EXPN EXPN <SP> <string> <CRLF>Yêu cầu xác nhận tham số để
định danh một danh sách thư.
- HELP HELP [<SP> <string>] <CRLF>Người nhận gửi thông tin trợ
giúp tới người gửi.

- NOOP NOOP <CRLF>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.
- QUIT QUIT <CRLF>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 <CRLF>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ò ReceiverSMTP.
1.2.2 Giao thức POP (Post Office Protocol)

POP cho phép các mail client (UA – User Agent) ở máy cục bộ kết nối
vào pop server (MTA – Message Transfer Agent) và lấy mail về máy tính cục bộ
nơi mà người sử dụng có thể đọc và trả lời các message. POP được định nghĩa
đầu tiên vào năm 1984, được nâng cấp trong POP2 vào năm 1988. Chuẩn hiện
hành là POP3.
- POP3 UA kết nối với TCP/IP đến server (cổng chuẩn 110). Người dùng
điền username và password . Sau khi xác thực đầu client sẽ sử dụng các lệnh của
POP3 để có thể thực hiện các chức năng sau:
- Nhận và xóa thư điện tử trên máy chủ thư điện tử
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


18

- Nhận nhưng không xóa thư điện tử trên máy chủ thư điện tử
- Lựa chọn có nhận thư điện tử mới về không
- Chỉ xem một phần nội dung thư để biết có nên nhận thư hay không.
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

Hình 1.4: Mô hình hoạt động của giao thức POP3

Một phiên POP3 có ba 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ư...

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


19

– 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.
Các lệnh của POP3
USER


Chỉ rõ username

PASS

Chỉ rõ password

STAT

Yêu cầu trạng thái của mailbox (số lượng message, kích thước của
các message)

LIST

Liệt kê các message

RETR

Lấy một message cụ thể

DELE

Xóa một message cụ thể

NOOP

Không làm gì cả

RSET


Hủy hành động của các lệnh DELE (rollback)

QUIT

Chấp nhận các thay đổi và cắt kết nối.
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).
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
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
Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


20

• Đố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
1.2.3 Giao thức IMAP (Internet Message Access Protocol)
Người sử dụng thường có nhu cầu tổ chức, phân loại, tìm kiếm thư điện tử
và người sử dụng chỉ có thể làm việc đó sau khi đã tải thư điện tử về máy. Vì
POP3 không hỗ trợ các tính năng như vậy nên người sử dụng không thể thực
hiện nó trên máy chủ thư điện tử.
IMAP khắc phục những hạn chế của POP. IMAP được phát triển vào năm
1986 bởi trường Đại học Stanford. IMAP2 phát triển vào năm 1987. IMAP4, là
bản mới nhất đang được sử dụng và nó được các tổ chức tiêu chuẩn Internet
chấp nhận vào năm 1994. IMAP4 được quy định bởi tiêu chuẩn RFC 2060 và nó
sử dụng cổng 143 của TCP. Tuy nhiên nó phức tạp và có nhiều tính năng hơn
POP3.
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ể

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


21

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.
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.
Các lệnh của IMAP4
CAPABILITY

Yêu cầu danh sách các chức năng hỗ trợ

AUTHENTICATE

Xác định sử dụng xác thực từ một server khác

LOGIN

Cung cấp username và password

SELECT

Chọn hộp thư

EXAMINE

Điền hộp thư chỉ được phép đọc

CREATE

Tạo hộp thư

DELETE


Xoá hộp thư

RENAME

Đổi tên hộp thư

SUBSCRIBE

Thêm vào một list đang hoạt động

UNSUBSCRIBE

Dời khỏi list đang hoạt động

LIST

Danh sách hộp thư

LSUB

Hiện danh sách người sử dụng hộp thư

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


22

STATUS


Trạng thái của hộ thư (số lượng thư,...)

APPEND

Thêm message vào hộp thư

CHECK

Yêu cầu kiểm tra hộp thư

CLOSE

Thực hiện xoá và thoát khỏi hộp thư

EXPUNGE

Thực hiện xoá

SEARCH

Tìm kiếm trong hộp thư để tìm messages xác
định

FETCH

Tìm kiếm trong nội dung của message

STORE

Thay đổi nội dụng của messages COPY

Copy message sang hộp thư khác

NOOP

Không làm gì

LOGOUT

Đóng kết nối

 So sánh POP3 và IMAP4
Có rất nhiều điểm khác nhau giữa POP3 và IMAP4. Phụ thuộc vào người
dùng, MTA, Có thể sử dụng POP3, IMAP4 hoặc cả hai.
Lợi ích của POP3 là :
- Rất đơn giản.
- Được hỗ trợ rất rộng
Bởi rất đơn giản nên, POP3 có rất nhiều giới hạn. Ví dụ nó chỉ hỗ trợ sử
dụng một hộp thư và thư sẽ được xoá khỏi máy chủ thư điện tử khi lấy về.
Lợi ích của IMAP4 có những lợi ích khác:
- Hỗ trợ xác thực rất mạnh
- Hỗ trợ sử dụng nhiều hộp thư

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


23

- Đặc biệt hỗ trợ cho các chế việc làm việc online, offline, hoặc không kết
nối
IMAP4 ở chế độ online thì hỗ trợ cho việc lấy tập hợp các thư từ máy chủ,

tìm kiếm và lấy message cần tìm về ... IMAP4 cũng cho phép người dùng
chuyển thư từ thư mục này của máy chủ sang thư mục khác hoặc xoá thư.
IMAP4 hỗ trợ rất tốt cho người dùng hay phải di chuyển và phải sử dụng các
máy tính khác nhau.
Chương một trình bày tổng quan về thư điện tử, khái niệm, lợi ích của thư
điện tử, kiến trúc thư điện tử, các giao thức chuyển, nhận thư. Các nội dung
không chỉ trình bày những khái niệm, đặc điểm cơ bản vai trò của thư điện tử mà
còn mô tả về các đặc điểm kỹ thuật, mô hình trao đổi thư điện tử, các giao thức
được sử dụng phổ biến khi gửi và nhận thư điện tử. Những nội dung này sẽ là cơ
sở nghiên cứu sâu hơn các công nghệ ngăn chặn thư rác được mô tả tại chương
hai.

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


24

CHƯƠNG 2
THƯ RÁC VÀ CÁC PHƯƠNG PHÁP LỌC THƯ RÁC
2.1 Thư rác

2.1.1 Khái niệm về thư điện tử rác
Hiện nay, chưa có bất cứ một định nghĩa chính thức nào về thư spam. Một
định nghĩa thông dụng nhất về spam có thể hiểu thư spam như sau : “Thư
rác (spam) là những bức thư điện tử không yêu cầu, không mong muốn và
được gửi hàng loạt tới nhiều người nhận khác nhau”. “Thư không yêu cầu” là
người nhận thư không yêu cầu người gửi gửi bức thư đó. “Thư được gửi hàng
loạt” là bức thư có nội dung gửi giống nhau, người nhận đã nhận được nằm
trong một loạt các thư được gửi đi cho nhiều người khác. Tuy nhiên, không
phải tất cả các thư không mong muốn đều là thư spam và ngược lại không phải

tất cả các thư spam đều là thư quảng cáo.
Theo một số quan điểm hiểu theo nghĩa hẹp, thư spam là những thư quảng
cáo không được yêu cầu (Unsolicited Commercial Email – UCE). Một số quan
điểm hiểu theo nghĩa rộng thư spam là bao gồm tất cả thư quảng cáo, quấy rối,
những thư có nội dung không lành mạnh (Unsolicited Bulk Email – UBE).
Tóm lại, thư spam có thể xem là thư không được yêu cầu và được gửi đi
hàng loạt. Nội dung bức thư là yếu tố quyết định dùng để phân biệt thư spam và
thư thông thường, và đó cũng chính là cơ sở chính cho giải pháp phân loại thư
spam bằng cách phân tích nội dung thư.
2.1.2 Các đặc điểm nhận dạng thư điện tử rác
- Dựa vào nội dung thư điện tử

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


25

- Để ý trường To trong tiêu đề (header) của thư điện tử, nếu không thấy
tên của mình hoặc địa chỉ thư điện tử, thì đây chính là thư điện tử giả mạo.
- Để ý lời chào hỏi, không thấy câu chào hỏi nào thì đây cũng là một nghi
vấn để xem nó là một thư điện tử giả mạo. Bởi vì những kẻ giả mạo thư điện tử
thường không biết chính xác tên của người nhận. Tuy nhiên, không phải thư điện
tử nào không có lời chào hỏi đều là giả mạo, đây là một cách mang tính sơ bộ
đánh giá.
- Xem các URL xuất hiện trong thư điện tử và so sánh với thanh trạng thái
của trình duyệt, khi di chuột trên URL không cần kích vào chúng, sau đó quan
sát thanh trạng thái bên dưới và so sánh 2 liên kết. Để ý giao thức an toàn hiển
thị trong URL là https:// thay vì http:// . Nếu phát hiện thấy URL chỉ hiện thị
http:// thì có thể là một thư điện tử giả mạo.
- Để ý đến ngữ pháp của ngôn ngữ: Kẻ giả mạo thường đến từ các nước

không nói tiếng Anh, nên họ thường mắc một số lỗi chấm câu và ngữ pháp nhỏ
trong lúc copy.
- Không tin vào địa chỉ liên kết xuất hiện trong thanh trạng thái của trình
duyệt. So sánh địa chỉ URL trong thư điện tử và trong thanh trạng thái hoàn toàn
giống nhau, thì vẫn có thể liên kết trỏ đến một địa chỉ nào đó. Để kiểm tra chúng
ta nên chọn URL và copy nó sau đó paste nó vào trình duyệt khác để xem xét.
Không sử dụng lệnh copy Link Location từ menu chuột phải.
- Kiểm tra tên miền của liên kết bằng cách so sánh tên miền trong thư điện
tử và tên miền trong thanh trạng thái.
Giả mạo thông tin định danh trong thư điện tử là thay đổi các thông tin
trong phần tiêu đề thư điện tử.

Một số giải pháp lọc nội dung cho hệ thống thư điện tử SMTP và ứng dụng


×