Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux

  • Số trang: 80 |
  • Loại file: PDF |
  • Lượt xem: 55 |
  • Lượt tải: 0
pipingdesigner

Đã đăng 235 tài liệu

Mô tả:

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à Tran@b.org. 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 (tran@b.org) 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 nguyenhoaison@runsystem.net % /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 -
- Xem thêm -