Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Mục đích nội dung của ĐATN
Nghiên cứu hệ thống thư điện tử, thư rác và hệ thống lọc thư rác. Áp dụng phương pháp
Bayesian để xây dựng, cài đặt chương trình lọc thư rác tiếng Việt.
2. Các nhiệm vụ cụ thể của ĐATN
Nghiên cứu tổng quát về hệ thống thư điện tử
Trình bày tổng quan về thư rỏc, cỏc hệ thống lọc thư rác
Nghiên cứu phương pháp lọc thư rác dựa trên lý thuyết Bayesian
Trình bày các kiến thức cơ bản về phân loại văn bản
Trình bày về công nghệ lọc thư rác của SpamAssassin
Áp dụng các kỹ thuật phân loại văn bản tiếng Việt vào SpamAssassin
3. Lời cam đoan của sinh viên:
Tôi - Nguyễn Hoài Sơn - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự
hướng dẫn của ThS. Đỗ Văn Uy
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ
công trình nào khác.
Hà Nội, ngày 20 tháng 5 năm 2008
Tác giả ĐATN
Nguyễn Hoài Sơn
4. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo
vệ:
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
ThS. Đỗ Văn Uy
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-1-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Nội dung của đồ án gồm 3 chương với bố cục như sau:
Chƣơng 1. Nghiên cứu tổng quan về hệ thống thƣ điện tử
Nội dung của chương này trình bày các kiến thức về hệ thống thư điện tử. Bao gồm
kiến trúc, giao thức và hoạt động của hệ thống thư điện tử, các thành phần của một bức thư
điện tử.
Chƣơng 2. Hệ thống lọc thƣ rác
Chương này trình bày tổng quan về thư rỏc, cỏc hệ thống lọc thư rác. Trình bày một số
vấn đề lý thuyết về phân loại văn bản, đặc biệt nghiên cứu phương pháp lọc thư rác dựa
trên lý thuyết Bayesian.
Chƣơng 3. Cải tiến, cài đặt và đánh giá hệ thống học Bayesian
Nội dung của chương này trình bày về công nghệ lọc thư rác của SpamAssassin. Áp
dụng các kỹ thuật phân loại văn bản tiếng Việt vào SpamAssassin, bao gồm thiết kế và tích
hợp các giải thuật tách từ và loại bỏ từ dừng. Sau đó là phần trình bày về quá trình huấn
luyện, một số kết quả đạt được sau quá trình huấn luyện.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-2-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
ABSTRACT OF THESIS
Project's contents embodies 3 chapter with the lay out as follows:
Chapter 1. General research about e-mail system
Contents of this chapter is about e-mail system. Include the archietecture, the protocol
and the e-mail system' action, the component for an e-mail.
Chapter 2. Spam mail filtering system
This the Chapter what a the general representation to be about garbage epistle, the
garbage epistle filtering systems. A number of problem representation theoretically about
the assortment flowsn the sheet, especially what a the garbage epistle refining method
research to base upon theoretically Bayesian.
Chapter 3. The improvement, install and evaluate to learn Bayesian system
This the chapter' contents what a the representation to be about the garbage epistle
strainer technology reasonword for SpamAssassin. Vietnamese sheet apply taxonomic
techniquess dispersedly enter SpamAssassin, Include the design and productp the removal
and algorithm magnetic separation from the interrptions. Later be the representation share
about training process, one cirsium numberst what a process reached fruit to train.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-3-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
LỜI CẢM ƠN
Trước hết, em xin được chân thành cảm ơn thầy giáo ThS. Đỗ Văn Uy Giảng
viên Bộ Môn Công Nghệ Phần Mềm, Khoa Công Nghệ Thông Tin đã hết lòng giúp
đỡ, chỉ dạy tận tình cho em trong quá trình em thực tập tốt nghiệp cũng như quá
trình em làm đồ án tốt nghiệp. Thầy đã tận tình hướng dẫn, cung cấp tài liệu và kiến
thức cần thiết giúp em hoàn thành đồ án tốt nghiệp này.
Em xin tỏ lòng biết ơn các thầy, cô giáo trong bộ môn Công Nghệ Phần Mềm,
trong khoa Công Nghệ Thông Tin cũng như các thầy, cô giáo trong trường Đại học
Bách Khoa Hà Nội đã truyền đạt cho em những kiến thức nền tảng quan trọng trong
suốt thời gian em học tập tại trường.
Cuối cùng, em xin nói lời cảm ơn đến gia đình và bạn bè, những người đã cổ
vũ và động viên em rất nhiều trong suốt thời gian học tập và làm đồ án tốt nghiệp.
Trong quá trình thực hiện đồ án, do còn thiếu kinh nghiệm thực tế và sự hạn
chế về kiến thức nên chắc chắn không tránh khỏi những thiếu sót, vì vậy em rất
mong nhận được sự đóng góp ý kiến và giúp đỡ của các thầy, cỏc cụ và các bạn.
Một lần nữa em xin chân thành cảm ơn!
Hà Nội, ngày 20 tháng 05 năm 2008
Nguyễn Hoài Sơn
Lớp CNPM – K48
Khoa CNTT – ĐH Bách Khoa HN
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-4-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
MỤC LỤC
DANH MỤC BẢNG.................................................................................................................7
DANH MỤC HèNH .................................................................................................................7
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ........................................................8
LỜI NÓI ĐẦU ........................................................................................................................10
CHƢƠNG 1. NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG THƢ ĐIỆN TỬ .............11
1. Hệ thống thƣ điện tử. .....................................................................................................11
1.1. Tổng quan hệ thống thư điện tử. ...............................................................................11
1.2. Các thành phần cơ bản trong hệ thống thư điện tử. ..................................................13
1.2.2. Mail Tranfer Agent ............................................................................................13
1.2.3. Mail Delivery Agent ..........................................................................................13
1.2.4. Mail Client (Mail User Agent)...........................................................................13
1.2.5. Mail Acess Agent...............................................................................................13
1.2.6. Mailstore ............................................................................................................13
1.2.7. Webmail .............................................................................................................14
1.3. Các giao thức. ...........................................................................................................14
1.4. Máy chủ thư điện tử. .................................................................................................17
1.5. Hoạt động của hệ thống thư điện tử qua mạng Internet. ...........................................18
2. Các thành phần cơ bản của một bức thƣ. ....................................................................20
2.1. Các thành phần cơ bản. .............................................................................................20
2.2. Phần Header. .............................................................................................................21
2.3. Phần Body .................................................................................................................22
2.4. Phần Envelope ..........................................................................................................23
3. Chuẩn MIME .................................................................................................................23
3.1. Chuẩn MIME. ...........................................................................................................23
3.2. Các header của MIME ..............................................................................................24
3.3. Encoded-Word ..........................................................................................................25
3.4. Cấu trúc định dạng hỗn hợp trong thư ......................................................................26
3.5. Các thư tiếng Việt và các loại mã thông dụng trong thư tiếng Việt .........................26
CHƢƠNG 2. HỆ THỐNG LỌC THƢ RÁC .......................................................................29
1. Tổng quan về các hệ thống lọc thƣ rác ........................................................................29
1.1. Các vấn đề về thư rác ................................................................................................29
1.2. Các nguyên lý hoạt động của hệ thống chống thư rác ..............................................29
1.3. Vị trí của thành phần lọc thư rác trong hệ thống thư điện tử ....................................31
1.3.1. Kiểm tra thư tại MTA ........................................................................................31
1.3.2. Kiểm tra tại MDA ..............................................................................................31
1.3.3. Kiểm tra bằng POP Proxy..................................................................................32
1.3.4. Kết hợp các mô hình ..........................................................................................32
2. Phân loại văn bản...........................................................................................................32
2.1. Lý thuyết chung về phân loại văn bản ......................................................................32
2.1.1. Bài toán phân loại văn bản .................................................................................32
2.1.2. Quá trình phân loại phân loại văn bản ...............................................................33
2.2. Phương pháp phân loại dựa trên lý thuyết xác suất Bayesian ..................................33
2.2.1. Phân loại bằng phương pháp Bayesian ..............................................................34
2.2.2. Mô hình học thống kê Naive Bayes ...................................................................35
2.3. Bài toán phân loại văn bản tiếng Việt .......................................................................36
2.3.1. Một số đặc điểm của tiếng Việt .........................................................................36
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-5-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
2.3.2. Phân tách từ trong văn bản tiếng Việt ................................................................38
3. Phƣơng pháp lọc thƣ rác dựa trên lý thuyết Bayesian. ..............................................40
3.1. Cơ sở lý thuyết ..........................................................................................................40
3.1.1. Phương pháp phân loại dựa trên lý thuyết xác suất Bayesian ...........................40
3.1.2. Phân loại Bayesian với các phương pháp tổng hợp xác suất từ từ khóa: ..........41
3.2. Nguyên lý ..................................................................................................................44
3.2.1. Quá trình học .....................................................................................................45
3.2.2. Quá trình quét một thư .......................................................................................46
3.2.3. Cấu hình cho Bayesian ......................................................................................48
3.3. Lưu trữ dữ liệu của phương pháp Bayesian ..............................................................50
CHƢƠNG 3. CẢI TIẾN, CÀI ĐẶT VÀ ĐÁNH GIÁ HỆ THỐNG HỌC BAYESIAN ...53
1. Hệ thống lọc thƣ rác của SpamAssassin. .....................................................................53
1.1. Cơ bản về SpamAssassin. .........................................................................................53
1.1.1. Giới thiệu. ..........................................................................................................53
1.1.2. Các thành phần chính .........................................................................................53
1.1.3. Cấu hình cơ bản .................................................................................................55
1.1.4. Tích hợp SpamAssassin với Procmail ...............................................................56
1.2. Luật sử dụng trong SpamAssassin ............................................................................57
1.2.1. Biểu thức chính quy ...........................................................................................57
1.2.2. Cấu trúc luật của SpamAssassin ........................................................................57
1.2.3. Quy tắc tạo các luật. ...........................................................................................58
1.2.4. Các tập luật xây dựng sẵn của SpamAssassin ...................................................60
1.3. Whitelist/Blacklist. ...................................................................................................63
1.4. Autowhitelist- Danh sách tự động. ...........................................................................63
2. Áp dụng các kỹ thuật phân loại văn bản tiếng Việt vào SpamAssassin ...................64
2.1. Các hạn chế của lọc Bayesian với thư tiếng Việt và các giải pháp...........................64
2.2. Xây dựng mô đun tách từ..........................................................................................65
2.2.1. Phân tích ............................................................................................................65
2.2.2. Xây dựng từ điển. ..............................................................................................66
2.2.3. Xây dựng mô đun tách từ...................................................................................67
2.2.4. Xõy dựng mô đun loại bỏ từ dừng .....................................................................68
2.3. Xây dựng mô đun tạo luật.........................................................................................69
3. Quá trình huấn luyện và đánh giá................................................................................71
3.1. Các yêu cầu về môi trường .......................................................................................71
3.2. Cài đặt và cấu hình....................................................................................................71
3.3. Chiến lược và công cụ huấn luyện ............................................................................72
3.4. Vận hành ...................................................................................................................73
3.5. Đánh giá ....................................................................................................................73
3.5.1. Tiêu chí đánh giá: ..............................................................................................73
3.5.2. Nguồn dữ liệu dùng cho thí nghiệm và đánh giá ...............................................75
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ............................................................................76
TÀI LIỆU THAM KHẢO .....................................................................................................77
MÔ TẢ NỘI DUNG ĐĨA CD KÈM THEO ........................................................................79
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-6-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
DANH MỤC BẢNG
Bảng 1. Tờn cỏc trường trong header .................................................................................. 22
Bảng 2. Các bộ phận của thư và các chỉ thị. ........................................................................ 59
Bảng 3. Các cờ trong luật của SpamAssassin. ..................................................................... 60
Bảng 4. Một số từ dừng điển hình trong văn bản tiếng Việt. .............................................. 65
DANH MỤC HèNH
Hình 1.
Hình 2.
Hình 3.
Hình 4.
Hình 5.
Hình 6.
Hình 7.
Hình 8.
Hình 9.
Hình 10.
Hình 11.
Hình 12.
Hình 13.
Hình 14.
Hình 15.
Hình 16.
Mô hình Internet mail ...................................................................................... 11
Hoạt động của hệ thống thư điện tử ................................................................. 12
Các giao thức trong hệ thống thư điện tử......................................................... 15
Các bước thực hiện giao thức SMTP ............................................................... 15
Giao thức IMAP ............................................................................................... 16
Giao thức Pop .................................................................................................. 17
Các thành phần của máy chủ thư điện tử ......................................................... 18
Hoạt động gửi thư qua mạng sử dụng hệ thống tên miền ................................ 19
Hai thành phần chính của thư Header và Body ............................................... 20
Con đường thông thường của một bức thư điện tử .......................................... 31
Ví dụ đồ thị phân tách câu ............................................................................... 39
Một tình huống nhập nhằng trong phân tách câu............................................. 40
Quá trình học một bức thư của mô đun lọc Bayesian trong SpamAssassin .... 45
Quá trình quét một thư bằng phương pháp lọc Bayesian ................................ 47
Tích hợp SpamAssassin vào Procmail ............................................................. 56
Quá trình chuyển thư về không gian véc tơ dạng Boolean ............................. 66
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-7-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Tiếng Việt/Ý nghĩa
STT
Viết tắt
1
BITNET
2
UUCP
3
MDA
4
MUA
Mail User Agent
5
MAA
Mail Acess Agent
6
K-NN
Phương pháp K- láng giềng gần nhất
7
POP
8
IMAP
9
SMTP
10
Regex
K- Nearest
Neighbor
Post Office
Protocol
Internet Mail Acess
Protocol
Simple Mail
Transfer Protocol
Regular Expression
11
ISP
Nhà cung cấp dịch vụ Internet
12
DNS
13
MX
Internet Service
Provider
Domain Name
system
Mail eXchange
record
14
15
16
17
18
19
Tiếng Anh
Because It's Time
Network
UNIX - to - UNIX
Connection
Protocol
Mail Delivery
Agent
Một consortium giáo dục phi lợi nhuận,
thành lập để truyền thông giữa các trường.
Kết nối giữa các máy Unix
Phần mềm trạm vận chuyển thư điện tử
Phần mềm nhận gửi thư điện tử phía người
dùng
Phần mềm truy cập thư
Giao thứ nhận gửi thư POP
Giao thức truy cập thư IMAP
Giao thức chuyển thư đơn giản
Biểu thức chính quy
Hệ thống tên miền
Một bản ghi DNS xác định máy nào có thể
xử lý các thư điện tử cho một một tên miền
xác định, chẳng hạn mx.yahoo.com.
SPF
Sender Policy
Một framework để công khai các thông tin
Framework
thông qua DNS, mô tả một danh sách các
địa chỉ IP được phép gửi thư điện tử.
RBL
Realtime Black List Các danh sách đen thời gian thực, xác định
các địa chỉ, tên miền nghi vấn là nguồn phát
tán thư rác
DNSRBL Domain Name
Các danh sách đen thời gian thực, xác định
system Realtime
các địa chỉ, tên miền nghi vấn là nguồn phát
Black List
tán thư rác dựa trên DNSs
SVM
Support Vector
Phương pháp máy véc tơ hộ trợ, dùng trong
Machine
phân loại văn bản
ESMTP
Extended Simple
Là giao thức gửi thư SMTP mở rộng
Mail Tranfer
Protocol
MIME
Multipurpose
Mở rộng đa chức năng cho thư điện tử. Đó
Internet Mail
là các mở rộng về định dạng thư điện tử
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-8-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Extensions
dùng cho đa ngôn ngữ và đa phương tiện
Giao thức điều khiển truyền dữ liệu
20
TCP
21
UDP
22
ASCII
23
RFC
24
FP
Transmission
Control Protocol
User Datagram
Protocol
American Standard
Code for
Information
Interchange
Request for
Comments
False Positive
25
FN
False Negative
26
TP
True Positive
27
TN
True Negative
Giao thức gói dữ liệu người dùng
Chuẩn mã trao đổi thông tin của Hoa Kỳ
Các tài liệu chuẩn của mạng Internet.
Số lượng thư sạch bị hệ thống nhầm là thư
rác
Số lượng thư rác bị hệ thống nhầm là thư
sạch
Số lượng thư sạch được hệ thống xem là thư
sạch
Số lượng thư rác bị hệ thống đánh dấu là
thư rác
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
-9-
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
LỜI NÓI ĐẦU
Sự phát triển của các dịch vụ thông tin trên Internet và nhu cầu trao đổi thông
tin làm cho các hệ thống thư điện tử phát triển mạnh và ngày càng phổ biến. Song
song với sự phát triển đó, nạn thư rác ngày càng gõy nhiều thiệt hại khó thống kê
nổi cho cộng đồng người sử dụng. Nó làm hao phí các tài nguyên của mạng máy
tính, làm mất thời gian của người dùng và có thể mang nhiều thông tin văn hóa độc
hại. Vì vậy, đi đôi với việc phát triển các hệ thống thư điện tử cần phát triển các hệ
thống chống thư rác và các chính sách mang tính pháp chế xử lý nạn thư rác.
Cuộc chiến chống thư rác ngày càng diễn ra một cách nóng bỏng, những kẻ
gửi thư rác ngày càng cú cỏc kỹ thuật phức tạp và các công cụ mạnh để vượt qua
các hệ thống lọc thư rác. Những công cụ ngăn thư rác thủ công bằng cách cho phép
người dùng xõy dựng luật lọc thư ngày càng không đáp ứng nổi tốc độ phát triển về
số lượng lẫn kỹ thuật gửi thư rác. Do đó, các hệ thống tự động thực hiện lọc thư rácáp dụng các thành tựu của các nghiên cứu trong lĩnh vực học máy (Machine
Learning) ngày càng phát triển và đóng một vai trò quan trọng trong hệ thống thư
điện tử.
Các hệ thống dựa trên các phương pháp phân loại văn bản đã được triển khai
và phát triển để lọc thư rác với nhiều thứ tiếng và nhiều lĩnh vực khác nhau như
SpamAssassin, Dspam … Nhưng đối với các ngôn ngữ đặc thù như tiếng Việt, tiếng
Trung, tiếng Nhật … các phương pháp được triển khai trong các hệ thống trên gặp
phải các hạn chế như sau:
Hầu hết các thuật toán tách từ trong các hệ thống trên là tách từ bằng
khoảng trắng cho nên sẽ không hoạt động hiệu quả với thư rác tiếng Việt,
một ngôn ngữ mà một số lớn các từ có nghĩa được ghép bởi nhiều tiếng.
Các từ dừng (stopword) thường xuất hiện với tần suất cao trong phần lớn
các văn bản. Nếu như việc tách từ khóa không loại từ dừng sẽ gây ra sai
lệch trong quá trình áp dụng thuật toán phân loại văn bản, đặc biệt là với
phương pháp thống kê Bayesian
Không hỗ trợ các loại mã tiếng Việt khác nhau như Windows1252, UTF-8,
TCVN,...
Không hỗ trợ việc tạo ra các luật lọc để có thể chia sẻ cho các hệ thống
khác nhau.
Từ các điểm hạn chế trên, chúng ta thấy cần phải xây dựng các phương pháp
lọc thư rỏc riờng cho các ngôn ngữ đặc thù như tiếng Việt.
Để xây dựng một hệ thống lọc thư rác cho tiếng Việt, em đã chọn giải pháp cải
tiến phương pháp lọc Bayesian của SpamAssassin để có thể hoạt động tốt với các
thư tiếng Việt.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 10 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
CHƢƠNG 1. NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG THƢ
ĐIỆN TỬ
Các hệ thống lọc thư rác sử dụng nhiều kỹ thuật và hoạt động trên nhiều môi
trường khác nhau của hệ thống thư điện tử. Vì vậy chúng ta cần phải trang bị một
nền kiến thức tốt về hệ thống thư điện tử. Trong chương này, chúng ta sẽ đi vào các
kiến thức cơ bản của hệ thống thư điện tử từ gúc nhỡn của người dùng cho đến
những khía cạnh sâu hơn như các thành phần, các giao thức, các chuẩn định dạng
thư điện tử.
1. Hệ thống thƣ điện tử.
Ra đời song song với mạng máy tính, hệ thống thư điện tử đã đáp ứng nhu cầu
trao đổi thông tin giữa mọi người. Nó là hệ thống chuyển phát thông tin rất nhanh
thông qua mạng máy tính. Một bức thư có thể được gửi đi ở dạng mó hoỏ hay dạng
thông thường và được chuyển qua các mạng máy tính đặc biệt là mạng Internet. Nó
có thể chuyển mẫu thông tin từ một máy nguồn tới một hay rất nhiều máy nhận
trong cựng lỳc. Hơn nữa, thư điện tử chẳng những có thể truyền gửi được thông
điệp ký tự đơn giản, nó cũn có thể truyền được các dạng thông tin đa phương tiện
khác như hình ảnh, âm thanh, phim, và đặc biệt các phần mềm thư điện tử kiểu mới
còn có thể hiển thị các thư sống động với nhiều ngôn ngữ khác nhau.
1.1. Tổng quan hệ thống thƣ điện tử.
Hệ thống thư điện tử là hệ thống cho phép người dùng nhận gửi thư thông qua
mạng máy tính. Nó là tập hợp các hệ thống con trên nhiều nền khác nhau, cùng tuân
theo những giao thức chuẩn để thực hiện truyền tải thông điệp từ người gửi đến
người nhận. Vì vậy để nghiên cứu hệ thống thư điện tử, chúng ta sẽ xem xét theo
con đường đi của một bức thư điện tử. Quá trình gửi một thư điện tử thường được đi
theo lược đồ sau:
Hình 1. Mô hình Internet mail
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 11 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Đầu tiên, thư điện tử được tạo ra tại MUA (Mail User Agent) của người gửi, đi
qua các mail server hay MTA (Mail Transfer Agent) và đến với MUA của người
nhận.
Chúng ta có thể thấy rõ trong ví dụ minh họa sau:
Hình 2.
Hoạt động của hệ thống thƣ điện tử
Hoạt động của hệ thống email hiện nay có thể dược minh họa qua phân tích
thí dụ trên như sau:
1. Nguyễn dùng MUA của mình để soạn một lá thư có địa chỉ người nhận là
Trần với địa chỉ là
[email protected]. Nguyễn nhấn nút Send và phần mềm thư
điện tử của Nguyễn áp dụng SMPT để gửi lá thư đến MTA, hay máy chủ thư
điện tử, của Nguyễn. Trong thí dụ thì máy chủ này là smtp.a.org được cung
cấp từ dịch vụ Internet của Nguyễn.
2. MTA này sẽ đọc địa chỉ chỗ nhận (
[email protected]) và dựa vào phần tên miền nó
sẽ tìm hỏi địa chỉ của tên miền này, nơi có máy chủ sẽ nhận email gửi đến,
qua Hệ thống tên miền (DNS).
3. Máy chủ hệ thống tên miền (DNS Server) của b.org là ns.b.org sẽ trả lời về
một bản ghi trao đổi thư từ, đây là bảng ghi chỉ ra cách thức làm thế nào định
tuyến cho email này. Trong thí dụ thì mx.b.org là máy chủ từ dịch vụ cung
ứng Internet của Trần.
4. smtp.a.org gửi mẫu thông tin tới mx.b.org dùng giao thức SMTP, điều này sẽ
phân phối lá thư đến hộp thư của Trần.
5. Khi đọc Trần ra lệnh nhận thư trờn mỏy (MUA) của Trần, điều này tạo ra
việc lấy về mẫu thông tin bằng cách áp dụng giao thức POP3, hoặc IMAP
hoặc dùng dịch vụ webmail
Trong trường hợp Nguyễn không có MUA mà chỉ dùng Webmail chẳng hạn
thì bước 1 sẽ không xảy ra tức là MTA của Nguyễn sẽ làm việc trực tiếp. Tương tự
cho trường hợp Trần không có MUA riêng.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 12 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Trước đây, nếu một MTA không thể gửi tới đớch thỡ nó có thể ít nhất ngừng
lại ở chỗ gần với chỗ nhận. Quá trình ngừng này sẽ tạo cơ hội để mỏy đớch có thể
nhận về các mẫu thông tin trong thời gian trễ hơn. Nhiều MTA sẽ chấp nhận tất cả
mẫu thông tin từ người gửi bất kì và tìm mọi cách để phõn nó về đến mỏy đớch.
Những MTA như vậy gọi là những OMR (open mail relays). Điều này khá cần thiết
vì sự chất lượng liên lạc của hệ thống Internet lúc đó còn yếu.
Ngày nay, do việc lợi dụng trên cơ chế hoạt động của hệ thống thư điện tử
nhiều người đã gửi ra các loại thư vô bổ. Như là hậu quả, rất ít MTA ngày nay còn
chấp nhận các OMR bởi vì các thư như vậy rất có thể là các thư rác.
1.2.Các thành phần cơ bản trong hệ thống thƣ điện tử.
1.2.2. Mail Tranfer Agent
Là bộ phận vận gửi nhận thư điện tử nằm trên Server, là một bộ phận quan
trọng nhất của Mail Server đảm nhiệm công việc nhận các thông điệp từ các MTA,
MUA và vận chuyển sang MTA khác hoặc chuyển cho MDA nếu là thư của người
dùng trong Mail Server đó.
1.2.3. Mail Delivery Agent
Là bộ phận chuyển thư về từng mailbox của từng người dùng trong Server, nó
có chức năng giống như người đưa thư về từng nhà. Mặt khác MDA có thể chuyển
vào các thư mục cụ thể hơn mailbox của người dùng với yêu cầu nào đó hay còn
được gọi là chương trình lọc thư mức MDA.
1.2.4. Mail Client (Mail User Agent)
Loại phần mềm thư điện tử được cài đặt trên từng máy tính của người dùng gọi
là email client, hay phần mềm thư điện tử cho mỏy khỏch. Một số phần mềm Mail
client nổi tiếng là Micorsoft Outlook, Microsoft Outlook Express, Netscape
communicator, Thunder Bird hay Eudora. Phần mềm thư điện tử này còn có tên là
Mail User Agent (MUA).
1.2.5. Mail Acess Agent
Mail Access Agents, người dùng có thể truy cập trực tiếp hoặc thông qua
MAA. Cho nên trong nhiều hệ thống, chúng ta không sử dụng MAA và nó không
được sử dụng rộng rãi.
1.2.6. Mailstore
Có thể là hệ thống lưu trữ bằng tệp, hoặc 1 cơ sở dữ liệu. Trong mailstore cú
cỏc mailbox cho từng người dùng. Trong mailbox của người dùng có thể được chia
ra làm các thư mục nhỏ hơn. Đây thực ra chỉ là các ngăn chứa thư từ đã được phân
loại theo tình trạng của các email cho tiện dùng. Người chủ thư có thể tự mình xếp
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 13 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
loại các thư này, hoặc chúng được xếp một cách tự động (do cài đặt hay do mặc
định).
Inbox có nghĩa là Hộp thư nhận hay Hộp thư vào: Đây là ngăn đựng các thư
mới nhận về.
Outbox có nghĩa là Hộp thư gửi hay Hộp thư ra: Đây là ngăn đựng các thư
đang chờ được gửi đi. Thông thường, nếu hệ thống email hoạt động tốt thỡ
cỏc thư nằm trong hộp này chỉ trong thời gian rất ngắn (vài giây đến vài phút
là tối đa). Do đó, ngăn chứa này thường là một ngăn trống.
Draft có nghĩa là Ngăn nháp: Để chứa các email chưa hoàn tất hay đã hoàn
tất nhưng chủ thư chưa muốn gửi đi.
Trash, Trash can hay Deleted Item có nghĩa là Ngăn xóa: Còn có thể gọi là
Thựng rác hay Ngăn thư đó xóa. Đây là chỗ dự phòng tạm thời chứa các
email đã xóa bỏ trong một thời gian. Chức năng này tiện lợi để phục hồi hay
đọc lại các thư điện tử cần thiết đã lỡ tay bị xóa.
Sent, sent Messages hay Sent Item có nghĩa là Ngăn đã gửi: Nơi này dùng để
chứa các thư đã gửi.
Junk hay Bulk có nghĩa là Ngăn thư linh tinh: Đây là nơi chứa các thư đã
được lọc và bị loại ra một cách tự động, còn được gọi là Thùng thư rác hay
Ngăn chứa tạp thư. Thường thì nơi này sẽ chứa các thư quảng cáo, các thư
nhũng lạm, các thư được gởi đến một số lượng lớn địa chỉ có cùng một nội
dung, hay các loại thư độc hại ...
1.2.7. Webmail
Đây là một dịch vụ dựa trên web dùng để thay cho MUA. Bên cạnh Mail
Server, chúng ta có thể xây dựng dịch vụ web cho phép thực hiện các chức năng
tương đương với một MUA. Vì vậy, nó cho phép người dùng có thể thực hiện nhận
gửi thư ở mọi nơi một cách dễ dàng hơn.
Đối với các nhà cung cấp dịch vụ lớn, họ có thể xõy dựng webmail cho riêng
mình. Chẳng hạn như Yahoo, Hotmail, Gmail,.... Còn trong các tổ chức nhỏ, để tiện
lợi cho các nhõn viên nhận gửi thư dễ dàng, người ta thường tích hợp máy chủ thư
với các phần mềm webmail như HiveMail, Quirrel Mail,…
1.3. Các giao thức.
Hiện tại, chúng ta sử dụng 3 họ giao thức phổ biến đó là POP/IMAP/SMTP
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 14 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Hình 3.
Các giao thức trong hệ thống thƣ điện tử
SMTP -RFC 821 (Simple Mail Transfer Protocol) -- hay là giao thức
chuyển thƣ đơn giản. Đây là một giao thức lo về việc vận chuyển thông
điệp thư giữa các máy chủ trên đường trung chuyển đến địa chỉ nhận cũng
như là lo việc chuyển thư điện tử từ mỏy khỏch đến máy chủ. Hầu hết các hệ
thống thư điện tử gửi thư qua Internet đều dùng giao thức này. Các mẫu
thông tin có thể được lấy ra bởi một chương trình đọc thư. Những chương
trình đọc thư này phải dùng giao thức POP hay giao thức IMAP. Dựa trên
kết nối TCP,dựng ASCII
Hình 4.
Các bƣớc thực hiện giao thức SMTP
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 15 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Các Request:
HELO
Tạo lập kết nối SMTP, xác định client
MAIL
FROM:
Thông báo muốn thiếp lập các bước để gửi thư điện tử.
Xác định người nhận
RCPT
TO:
Thông báo cho Server biết xuất xứ của thư điện tử.
DATA
Thông báo chuyển nội dung thư (gồm cả Header và Body).
VRFY
Xác nhận rằng địa chỉ của thư điện tử là hợp lệ. Sử dụng
cho User trong hệ thống
IMAP (từ chữ Internet Message Access Protocol) -- hay là giao thức truy
nhập thông điệp từ Internet. Giao thức này cho phép truy nhập và quản lý
các mẫu thông tin về từ các máy chủ. Với giao thức này người dùng email có
thể đọc, tạo ra, thay đổi, hay xoỏ cỏc ngăn chứa, các mẫu tin đồng thời có thể
tìm kiếm các nội dung trong hộp thư mà không cần phải tải các thư về.
Phiên bản mới nhất của IMAP là IMAP4 tương tự nhưng có nhiều chức năng
hơn giao thức POP3. IMAP nguyên thuỷ được phát triển bởi đại học Standford
năm 1986.
Hình 5.
Giao thức IMAP
POP- RFC 1939 (từ chữ Post Office Protocol). Giao thức này được dùng để
truy tìm các email từ một MTA. Hầu hết các MUA đều dùng đến giao thức
POP mặc dù một số MTA cũng có thể dùng giao thức mới hơn là IMAP.
Hiện có hai phiên bản của POP. Phiên bản đầu tiên là POP2 đã trở thành tiêu
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 16 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
chuẩn vào thập niên 80, nó đòi hỏi phải có giao thức SMTP để gửi đi các
mẫu thông tin. Phiên bản mới hơn POP3 có thể được dùng mà không cần tới
SMTP.
Hình 6.
Giao thức Pop
Các gói tin:
USER
Chỉ định tên người dùng
PASS
Chỉ định mật khẩu
STAT
Lấy trạng thái của mailbox (số lượng thư trong
mailbox)
LIST
Lấy danh sách tên và kích cỡ thư, mỗi thư một
dòng,cuối dòng là dấu chấm.
RETR
nhận một thư.
DELE
Đánh dấu thư để xóa.
QUIT
Xóa thư được đánh dấu và đóng kết nối TCP
1.4. Máy chủ thƣ điện tử.
Mail Server là hệ thống chương trình chuyển, lưu giữ, nhận, lọc,…e-mail từ
máy này sang mỏy khỏc-mỏy chủ thư điện tử. Các hệ thống đang được dùng rộng
rãi như Sendmail, Postfix, qmail, MS Exchange, và Lotus Domino
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 17 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Nói chung, máy chủ thư điện tử bao gồm những phần sau:
Hình 7.
Các thành phần của máy chủ thƣ điện tử
Bao gồm:
MTA: Mail transfer Agent, dùng để chuyển, nhận thư từ các mail server
khác.
MDA : Mail Delivery Agent bộ phận phân phát thư cho các người dùng
thuộc mail server này. Các thư này được chuyển vào vùng mail store của
từng người dùng.
MAA : Mail Access Agents, có thể người dùng có thể truy cập trực tiếp hoặc
thông qua MAA. Cho nên, trong nhiều hệ thống, chúng ta không sử dụng
MAA và nó không được dùng rỗng rãi.
Mail Store: có thể là hệ thống lưu trữ băng tệp, hoặc 1 cơ sở dữ liệu, …
MUA : Là chương trình đọc thư ở máy người dùng
1.5. Hoạt động của hệ thống thƣ điện tử qua mạng Internet.
Khi một thông điệp đến, MTA xác định người gửi và người nhận từ thông tin
qua giao thức SMTP và định dạng lại thông điệp để đảm bảo có thể di chuyển qua
phần còn lại của mạng. Trong trường hợp người nhận là nội bộ thì MTA chuyển
cho MDA, ngược lại chuyển cho một MTA khác.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 18 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
Để chuyển thư cho MTA khác, MTA phải yêu cầu DNS sử dụng máy chủ
DNS gốc để tìm domain của người nhận. Minh họa trong hình sau:
Hình 8.
Hoạt động gửi thƣ qua mạng sử dụng hệ thống tên miền
Một bản ghi được gọi là bản ghi MX trong DNS xác định một hệ thống trung
chuyển thư để chuyển đến hệ thống nhận thư. Một hệ thống trung chuyển thư cũng
là một máy chủ đảm nhận cả việc xử lý và chuyển thư đến tên miền của người nhận
trong thư. Công việc xử lý thư ở đây có thể chuyển đến máy chủ chỉ ra bởi tên miền
của người nhận trong thư hoặc chuyển thư qua một mỏy khỏc bằng giao thức UUCP
hoặc BITNET. Việc chuyển thư ở đây là công việc chuyển bức thư đến máy chủ
đích hoặc chuyển đến một máy chủ trung chuyển gần máy chủ đích hơn.
Có thể có nhiều đầu vào cho một máy chủ trung chuyển thư trong hệ thống
DNS. Mỗi đầu vào MX có một số thứ tự ưu tiên và nó có tác dụng xác định thứ tự
chọn máy chủ thư sẽ được thử để gửi trước. Nếu số thứ tự ưu tiên bằng nhau với tất
cả các đầu vào thì sẽ được chọn một cách ngẫu nhiên. Khi mà hệ thống gửi thư
chuyển thư cho một trong các máy chủ chỉ ra trong MX, công việc của nó được
hoàn thành và công việc chuyển thư đến đích là do máy chủ được chọn sẽ đảm
nhiệm. Nếu không có bản ghi MX nào của một tên miền, việc xử lý tiếp theo sẽ phụ
thuộc vào chương trình chuyển thư của hệ thống gửi thư. Một số trong chúng cố
gắng gửi nó cho địa chỉ IP đích của thư.
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 19 -
Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng Việt trên Linux
2. Các thành phần cơ bản của một bức thƣ.
Trong phần này, chúng ta sẽ nghiên cứu ba phần cấu thành của một bức thư
điện tử: Header, Body và Envelope. Nhưng trước tiên, hãy xem xét cách chạy
Sendmail một cách thủ công:
2.1. Các thành phần cơ bản.
Ở đây, chúng ta tìm hiểu cách gửi thư bằng sendmail một cách trực tiếp, không
dùng MUA. Để hiểu rõ hơn, chúng ta sẽ chạy một cách thủ công, cũng như dễ dàng
hơn trong khi viết các ứng dụng có liên quan đến việc gửi thư.
Thí dụ thứ nhất sẽ là gửi thư cho chính mình với nội dung: This is a one-line
message
Bước 1: Tạo tệp text với tên sendstuff chứa dòng sau:
This is a one-line message.
Bước 2: Gửi thư tới hòm thư của bạn với dòng lệnh sau, trong đó you là tên
đăng nhập của bạn, chẳng hạn
[email protected]
% /usr/sbin/sendmail you
To: you
might be something else (see NoRecipientAction)
This is a one-line message.
Chúng ta thấy thư nhận được cú thờm cỏc thông tin trong 7 dòng đầu. Các
thông tin này được thêm bởi Sendmail gọi là Header. Dòng cuối của bức thư mới là
dòng nội dung Mail của chúng ta. Nó được tách ra khỏi Header bởi một dòng trống.
Xem hình:
Hình 9.
Hai thành phần chính của thƣ Header và Body
Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM
- 20 -