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