Xây dựng ứng dụng xem bảng giá chứng khoán trực tuyến trên điện thoại sử dụng hệ điều hành Android
Trang 1MỤC LỤ
MỤC LỤC 1
Chương 1: MỞ ĐẦU 4
1.1 Lý do và Mục đích chọn đề tài 4
1.2 Phạm vi nghiên cứu của đề tài 4
Chương 2: TỔNG QUAN 6
2.1 Một số khái niệm căn bản 6
2.1.1 Email và Internet 6
2.1.2 Email Server 6
2.2 Một số khái niệm trong quản lý MailServer 8
2.2.1 User và Group 8
2.2.2 Mailling 9
2.2.3 Domain 9
2.2.4 Rule và Routing 11
2.2.5 Replay - Forward 11
2.2.6 Filter và Security 13
Chương 3: GIAO THỨC VÀ CÁC CHUẨN 14
3.1 Giao thức gửi Email SMTP (RFC2821) 14
3.1.1 Ý nghĩa các lệnh SMTP 14
3.1.2 Cú pháp của các lệnh 17
3.1.3 Tiến trình của giao thức SMTP 17
3.1.4 Ví dụ về một giao dịch của SMTP 20
3.2 Giao thức nhận Email 21
3.2.1 Giao thức POP3(RFC1081, RFC1082) 21
3.2.1.1 Các lệnh của POP3: 22
3.2.1.2 Tiến trình của giao dịch POP3 25
3.2.1.3 Ví dụ về một session của POP3: 27
3.2.2 Giao thức IMAP4 (RFC2060, RFC2193…) 28
3.2.2.1 Các lệnh của IMAP4 28
3.2.2.2 Tiến trình giao dịch IMAP 4 39
Trang 23.2.2.3 Sự khác biệt giữa hai giao thức POP3 và IMAP4 43
3.2.2.4 Những tính năng xuất sắc nhất của IMAP 44
3.3 Định dạng MIME 45
3.3.1 RFC 2045: Định dạng Internet Message Bodies 47
3.3.2 RFC 2046 – Media Type 56
3.3.3 RFC 2047 Message Header Extensions cho văn bản Non-ASCII 61
3.3.4 RFC 2048 Thủ tục đăng ký 64
3.3 Giao thức truyền tin NNTP 68
3.3.1 Tổng quan và các đặc điểm 68
3.3.2 Phân phối tin đối với NNTP 69
3.3.3 NNTP cho UNIX 70
3.3.4 Ðặc điểm kỹ thuật của NNTP 72
3.4 Giao thức bảo mật SSL & TLS 76
3.4.1 Khái niệm & Lịch sử 76
3.4.2 Cấu trúc giao thức SSL 77
3.4.3 SSL Record Protocol 83
3.4.4 SSL Handshake Protocol 85
3.5 Giao thức truyền tin FTP 92
Chương 4: ANTIVIRUS VÀ SPAM MAIL 94
4.1 Khái niệm 94
4.2 Phương thức lây nhiễm của Virus thông qua Email 94
4.3 Phòng chống Virus lây lan qua Email 96
4.4 Spam Mail 97
4.4.1 Khái niệm Spam mail và tác hại của nó 97
4.4.2 Cách thức gửi Spam Mail của các Spamer 97
4.4.3 Chống Spam 99
Chương 5: CHƯƠNG TRÌNH E-MAIL SERVER 105
5.1 Lập trình mạng trong Visual Studio C# 105
5.1.1 Lớp IP Address 105
5.1.2 Lớp IPEndpoint 105
5.1.3 Lớp IPHostEntry 106
Trang 35.1.5 Lớp UDP 106
5.1.6 Lớp TCP (TCP Client) 107
5.1.7 Lớp TCP Listener 107
5.2 Cơ sở dữ liệu 107
5.2.1 Lý do lựa chọn XML làm cơ sở dữ liệu 107
5.2.2 Mô tả cơ sở dữ liệu: 107
5.2.3 Ràng buộc dữ liệu 112
5.2.4 Mô hình Use-Case 113
5.3 Giao diện và chức năng chương trình 114
5.3.1 Yêu cầu hệ thống 114
5.3.2 Giao diện và Chức năng chương trình 115
Chương 6: KẾT LUẬN 129
6.1 Kết quả đạt được của đề tài 129
6.2 Hạn chế và hướng phát triển của đề tài 129
6.2.1 Hạn chế 129
6.2.2 Hướng phát triển 130
DANH MỤC TÀI LIỆU THAM KHẢO 131
Trang 4Chương 1 MỞ ĐẦU
1.1 Lý do và Mục đích chọn đề tài
Ngày nay, sự phát triển công nghệ thông tin gắn liền với sự phát triển nềnkinh tế toàn cầu Trong nền kinh tế thị trường chứng khoán, nó là công cụ hỗ trợđắc lực cho các nhà đầu tư và doanh nghiệp Các nhà đầu tư cần biết thông tinhiện tại của mã chứng khoán mà họ quan tâm Các doanh nghiệp có mã chứngkhoán được niêm yết trên thị trường chứng khoán phải cập nhật liên tục tình hìnhdoanh nghiệp cho các nhà đầu tư Các nhà đầu tư sẽ theo dõi thông tin chứngkhoán mọi lúc mọi nơi thông qua phương tiện truyền thông
Càng ngày càng có nhiều người theo dõi thông tin chứng khoán trên các thiết
bị di động Smartphone ngày càng rẻ và trở nên phổ biến giúp người dùng đọcthông tin trên điện thoại tiện lợi và nhanh chóng hơn Khi ở chỗ làm họ vào cáctrang web chứng khoán bằng desktop hay laptop, chỉ khi đang di chuyển trênđường hay lúc không làm việc mới dùng điện thoại để truy cập Đa số người dùngchỉ vào đọc nhanh các thông tin chứng khoán rồi thoát ra ngay
Một ứng dụng xem nhanh thông tin chứng khoán ngay trên điện thoại là điềucần thiết
1.2 Phạm vi nghiên cứu của đề tài
Đề tài được tập trung vào ba nội dung chính:
1 Tìm hiểu lập trình Android
2 Tìm hiểu về đôi nét về thị trường chứng khoán
3 Xây dựng ứng dụng xem bảng giá chứng khoán trực tuyến trên điện thoại sử dụng hệ điều hành Android
Trang 5Trong nội dung thứ 1, em tìm hiểu về các khái niệm, nền tảng( hay còn gọi là cácAPIs) để xây dựng các ứng dụng trên hệ điều hành android dành cho điện thoại.Thiết lập môi trường để có thể lập trình ngay trên hệ điều hành windows
Nội dung thứ 2 là tìm hiểu về khái niệm thị trường chứng khoán, sự ra đời cũngnhư ý nghĩa của nó trong nền kinh tế hiện đại
Nội dung thứ 3, xây dựng một ứng dụng xem nhanh thông tin chứng khoán trênđiện thoại chạy hệ điều hành Android
Trang 6Chương 2 TỔNG QUAN
Hiện nay trên thị trường xuất hiện nhiều trang web, phần mềm giúp nhà đầu tưtheo dõi chứng khoán, đặt lệnh, giao dịch trực tuyến nhanh chóng và tiện lợi Cùngvới sự phát triển của công nghệ trong những năm gần đây, mà điển hình là sự ra đờicủa chiếc điện thoại thông minh( smartphone) thì những phần mềm về chứng khoánchạy trên smartphone xuất hiện nhiều hơn Sự bảo mật, mức độ an toàn và tốc độtruy cập ngày càng được cải thiện Vấn đề lưu dữ liệu ngay trên smartphone để phục
vụ cho việc đánh giá, phân tích tình hình thị trường, mức độ giao dịch của mãchứng khoán,… cũng được chú ý đến
Có nhiều hệ điều hành cho smartphone như Android, iOS, Windows Phone.Đối với đề tài thực tập tốt nghiệp này em chọn xây dựng ứng dụng xem bảng giáchứng khoán trên nền tảng Android Một số mảng mà đề tài sẽ tập trung nghiên cứunhư:
1 Cách thức xây dựng một ứng dụng chạy trên Android
2 Tổ chức lưu trữ dữ liệu trên Android bằng cơ sở dữ liệu SQLite
3 Cách gọi web service sử dụng bộ thư viện mã nguồn mở Ksoap2
Trang 73.1.2 Các tính năng Android cung cấp
Cho phép tái sử dụng và thay thế các thành phần có sẳn như cácframework
Tối ưu hóa vùng nhớ trên thiết bị di động
Tích hợp trình duyệt ngay trên thiết bị di động
Tối ưu hóa đồ họa bởi thư viện đồ họa 2D tùy chọn, đồ họa 3D dựa trênđặc điểm kỹ thuật OpenGL ES 1.0
Có cơ sở dữ liệu SQLite để phục vụ việc lưu trữ dữ liệu có cấu trúc
Hỗ trợ một số định dạng thông dụng của âm thanh, video và hình ảnh(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Hỗ trợ các kiểu kết nối mạng thông dụng như Bluetooth, EDGE, 3G, vàWifi
Camera, định vị GPS…
Trang 8 Hỗ trợ đầy đủ cho môi trường lập trình tốt nhất bao gồm một bộ giả lậpEmulator, các công cụ debug, quản lý hiệu suất và bộ nhớ Cách tích hợptất cả vào Eclipse IDE để lập trình
3.2 Các thành phần cơ bản của một ứng dụng
3.2.1 Activities
Trang 9Chương 4: ANTIVIRUS VÀ SPAM MAIL
4.1 Khái niệm
Khi nhắc tới khái niệm Virus trong tin học, người ta thường nhắc tới những chươngtrình hay đoạn mã được thiết kế để tự nhân bản và sao chép chính nó vào các đốitượng lây nhiễm khác (file, ổ đĩa, máy tính ) Sau khi lây nhiễm vào máy tính,Virus có thể thực hiện nhiều “nhiệm vụ” khác nhau, tùy thuộc vào người viết ra nó,nhưng thường đó là sự phá hoại máy tính nạn nhân, hoặc ăn cắp các thông tin và dữliệu riêng tư trên đó Đa phần virus viết ra là nhắm vào các hệ điều hành Windows,
và vì đề tài mailserver của nhóm cũng làm trên nền hệ điều này này, nên nội dungphần này chủ yếu giới thiệu về Virus trên Windows, cũng như cách thức chúng sửdụng Email để lây lan
4.2 Phương thức lây nhiễm của Virus thông qua Email
Mọi loại Virus, dù chia làm nhiềm biến thể khác nhau, cách thức hoạt động khácnhau, nhưng muốn “Phát huy tác dụng” thì đều phải có cơ chế lây nhiễm Thôngthường, có 3 cách mà virus hiện nay sử dụng để lây nhiễm từ máy tính này sangmáy tính khác là:
- Lây nhiễm theo cách cổ điển: Là cách lây nhiễm thông qua các thiết bị lưutrữ như USB, HDD, FDD, Các thiết bị giải trí Kĩ thuật số … Khi người dùng gắncác thiết bị này vào máy tính & truy xuất dữ liệu trên nó, thì cũng là lúc Virus đanglưu trú trên đó lây nhiễm vào máy tính & ngược lại
- Lây nhiễm thông qua Internet: Cùng với sự phát triển của Internet, thì đócũng là một môi trường thuận lợi cho Virus lây lan và hoạt động Lây nhiễm quaInternet có thể thông qua việc trao đổi tài liệu, hình ảnh (thông qua chương trình).Hoặc qua các trang web (Cố ý hoặc vô ý) có chứa virus, qua phần mềm của hãngthứ 3 …
Trang 10- Lây nhiễm qua Email: Đây là phương thức lây nhiễm được quan tâm chủyếu ở đề tài này.
Khi mà thư điện tử (e-mail) được sử dụng rộng rãi trên thế giới thì virus chuyểnhướng sang lây nhiễm thông qua thư điện tử thay cho các cách lây nhiễm truyềnthống
Khi đã lây nhiễm vào máy nạn nhân, virus có thể tự tìm ra danh sách các địa chỉ thưđiện tử sẵn có trong máy và nó tự động gửi đi hàng loạt (mass mail) cho những địachỉ tìm thấy Nếu các chủ nhân của các máy nhận được thư bị nhiễm virus màkhông bị phát hiện, tiếp tục để lây nhiễm vào máy, virus lại tiếp tục tìm đến các địachỉ và gửi tiếp theo Chính vì vậy số lượng phát tán có thể tăng theo cấp số nhânkhiến cho trong một thời gian ngắn hàng hàng triệu máy tính bị lây nhiễm, có thểlàm tê liệt nhiều cơ quan trên toàn thế giới trong một thời gian rất ngắn
Khi mà các phần mềm quản lý thư điện tử kết hợp với các phần mềm diệt virus cóthể khắc phục hành động tự gửi nhân bản hàng loạt để phát tán đến các địa chỉ kháctrong danh bạ của máy nạn nhân thì chủ nhân phát tán virus chuyển qua hình thức
tự gửi thư phát tán virus bằng nguồn địa chỉ sưu tập được trước đó
Phương thực lây nhiễm qua thư điển tử bao gồm:
- Lây nhiễm vào các file đính kèm theo thư điện tử (attached mail) Khi đóngưòi dùng sẽ không bị nhiễm virus cho tới khi file đính kèm bị nhiễm virus đượckích hoạt (do đặc diểm này các virus thường được "trá hình" bởi các tiêu đề hấp dẫnnhư sex, thể thao hay quảng cáo bán phần mềm với giá vô cùng rẻ.)
- Lây nhiễm do mở một liên kết trong thư điện tử Các liên kết trong thư điện
tử có thể dẫn đến một trang web được cài sẵn virus, cách này thường khai thác các
lỗ hổng của trình duyệt và hệ điều hành Một cách khác, liên kết dẫn tới việc thựcthi một đoạn mã, và máy tính bị có thể bị lây nhiễm virus
Trang 11- Lây nhiễm ngay khi mở để xem thư điện tử: Cách này vô cùng nguy hiểm bởichưa cần kích hoạt các file hoặc mở các liên kết, máy tính đã có thể bị lây nhiễmvirus Cách này cũng thường khai thác các lỗi của hệ điều hành.
4.3 Phòng chống Virus lây lan qua Email
Như các phương thức lây lan virus qua Email vừa trình bày ở trên, ta có thể địnhhướng được một vài phương pháp phòng ngừa con đường lây lan này của Virus nhưsau:
Không nên mở các tập tin đính kèm (Attach file) email mà bạn không rõ người gửi
là ai Nhất là những email mang tính chất quảng bá với các nội dung và tiêu đề hấpdẫn, kích thích tò mò Bởi trong tập tin đính kèm đó, hoàn toàn có thể chứa virushoặc các đoạn mã độc hại khác, mà ngay khi bạn mở ra xem, nó sẽ được kích hoạt.Không nên kích hoạt các đường dẫn lạ gửi kèm email khi bạn không chắc chắn vềngười gửi, cũng như nội dung được giới thiệu về đường dẫn đó Bởi nó hoàn toàn
có thể đưa về máy bạn một con virus thông qua lỗi của trình duyệt và hệ điều hành
Sử dụng các nhà cugn cấp Email, hoặc các chương trình MailServer có tích hợpantivirus, để loại bỏ khả năng nhiễm virus trước khi email được tải về máy tính củabạn Hầu hết các chương trình Email server hiện nay đều cho phép tích hợp chươngtrình antivirus, hoặc chính bản thân nó cũng có module làm được điều đó
Cài đặt các chương trình antivirus trên máy tính, để thêm 1 lớp “áo khoác” bảo vệcho máy tính của bạn Với con đường lây nhiễm qua email, thì để đảm bảo hiệuquả, nên sử dụng các chương trình Internet Security để tích hợp nhiều chức năngtoàn diện hơn bảo vệ máy tính trong môi trường Internet
Thiết lập các chế độ phòng chống và lọc Spam mail Bởi phần lớn các email “bẩn”đều là Spam mail
Trang 124.4 Spam Mail
4.4.1 Khái niệm Spam mail và tác hại của nó
Spam mail được hiểu là các thư điện tử rác, với nội dung vô bổ, thường là quảngcáo về một nội dung, sản phẩm, hoặc website nào đó, đôi khi là kèm theo lừa đảo vàtrộm cắp thông tin cá nhân Spam mail thường được gửi cùng lúc cho hàng loạt địachỉ email, và gửi nhiều lần thông qua 1 mail server nào đó
Thông thường, Spam mail chỉ làm người dùng Email khó chịu vì bị tra tấn bởi hàngtrăm email được gửi tới trong một thời gian ngắn, mà nội dung thì chỉ có một vàinội dung Tuy nhiên, vẫn không thể tránh được các Spam mail có nội dung khiêukhích hay lợi dụng, nhằm tuyên truyền quảng bá cho thông tin xấu hoặc lợi dụngtrộm cắp thông tin cá nhân của người dùng
4.4.2 Cách thức gửi Spam Mail của các Spamer
Để gửi Spam, SPAMER thường phải đi qua 2 bước cơ bản: Thu thập địa chỉ email
và Gửi Spam
4.4.2.1 Thu thập địa chỉ Email
Những kẻ chuyên gửi SPAM – hay còn gọi SPAMER – có rất nhiều cách để thuthập địa chỉ email Phổ biến nhất là những cách sau đây:
Cách thứ nhất là thông qua nhóm thảo luận (newsgroups) hoặc phòng chat (chatrooms) trên Internet, đặc biệt là các trang web cổng thông tin điện tử như AOL hayYahoo Với những dịch vụ như thế người dùng thường vẫn sử dụng địa chỉ emailthực để đăng ký tài khoản SPAMER chỉ cần dùng một phần mềm đặc biệt là đã cóthể lấy được địa chỉ email của rất nhiều người
Cách thứ hai là khai thác trực tiếp từ Web Hiện đã có tới hàng triệu trang web trênInternet và SPAMER chỉ cần sử dụng các phần mềm tìm kiếm có khả năng lần tìm
ký tự @ trong các trang web – như bạn biết, đây là ký tự đại diện cho địa chỉ email.Kết quả là SPAMER cũng dễ dàng có được vô vàn các địa chỉ email trong tay.Những phần mềm như vậy thường được gọi là các SPAMBOT
Trang 13Hoặc SPAMMER có thể thành lập một trang web cho đăng ký thành viên sử dụng,
mà yêu cầu cung cấp địa chỉ email xác thực là yêu cầu cốt lõi của việc đăng ký.Trên thực tế đó chỉ là một cách để thu thập địa chỉ email Trước đây, đã từng có rấtnhiều các trang web lớn rao bán địa chỉ email của các thành viên
Ngoài ra, còn một cách thức phổ biến nhất chính là cách thức được gọi là
“dictionary attack” Đây là phương thức liên quan đến việc lập trình cho một chiếcmáy tính có thể tạo ra rất nhiều biến thể từ một địa chỉ email bằng cách thay đổi các
ký tự - ví dụ mike1@yahoo.comĐịa chỉ email này đang được bảo vệ khỏi chươngtrình thư rác, bạn cần bật Javascript để xem nó , mike2@yahoo.comĐịa chỉ emailnày đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó ,mike3@yahoo.comĐịa chỉ email này đang được bảo vệ khỏi chương trình thư rác,bạn cần bật Javascript để xem nó …Có một mô tả “dictionary attack” như sau:
“Dictionary attack sử dụng một phần mềm để tạo một kết nối đến một máy chủ thưđiện tử để gửi lên hàng triệu địa chỉ email bất kỳ Rất nhiều trong số những các địachỉ đó chỉ là những biến thể của một địa chỉ email – ví dụjdoe1abc@hotmail.comĐịa chỉ email này đang được bảo vệ khỏi chương trình thưrác, bạn cần bật Javascript để xem nó và jdoe2def@hotmail.com.Địa chỉ email nàyđang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó Phầnmềm đó sẽ kiểm tra xem địa chỉ email nào “còn sống”, địa chỉ đó sẽ được đưa vàoEmail spam list
Các thức cuối cùng và cũng là cách dễ nhất chính là việc mua một chiếc đĩa CD cóchứa hàng trăm hàng nghìn các địa chỉ email từ các SPAMMER khác, hoặcdownload (có thể phải mua lại) từ các Spammer khác
4.4.2.2 Gửi Spam
Có nhiều cách để các Spammer tiến hành gửi hàng trăm, hàng nghìn spam mailkhác nhau (Hợp pháp hoặc bất hợp pháp) điển hình như một vài cách dưới đây.Các thứ nhất là SPAMMER phải bỏ tiền đầu tư trang bị cho mình rất nhiều hệ thốngmáy tính, modem và kết nối mạng Internet để gửi SPAM Đây là một cách thức
Trang 14hoàn toàn hợp pháp nhưng có chi phí cao, bởi Spammer phải dựng nguyên 1 hệthống mail server & domain riêng Tuy nhiên, kết quả đem lại sẽ có thể là hàngchục nghìn đô la tiền lợi nhuận thu về.
Cách thứ hai rẻ hơn nhiều nhưng lại bất hợp pháp và cũng là cách thức nguy hiểmnhất đối với người dùng Đó là cách gửi SPAM thông qua những máy chủ uỷ nhiệm
mở (open proxy servers) Nói đến phương thức gửi SPAM này thì cũng là nói đếncách thức SPAMMER bí mật đột nhập bắt cóc hệ thống máy tính của người khác đểxây dựng một cái được gọi là botnet Trước hết SPAMMER sẽ sử dụng công nghệ
và các thủ đoạn cần thiết để bí mật cài đặt một phần mềm lên hệ thống của ngườidùng Đó là phần mềm cho phép SPAMMER có thể kiểm soát được hệ thống máytính của nạn nhân từ xa - hay nói một cách khác là SPAMMER đã bắt cóc đượcchiếc máy tính đó Chiếc máy tính đó đã trở thành một thứ được gọi là “Zombie”(thây ma) Khi có nhiều Zombie, SPAMMER sẽ tiến hành xây dựng một hệ thốngmạng các Zombie – hay đây chính là hệ thống mạng botnet Đến đây cách thức thứhai đã giống với cách thức thứ nhất, chỉ khác một điều là SPAMMER không phải cótiền ra mua các hệ thống máy tính mà chúng đi “bắt cóc” máy tính của người khác.Nắm được các phương thức gửi spam mail, cũng góp phần để xây dựng bộ loc mailcho mail server chống lại chúng
• Danh sách các miền gửi spam đã biết, danh sách các miền này được liệt kê
và cập nhật tại địa chỉ http://spamhaus.org/sbl
Trang 15• Danh sách các máy chủ email cho phép hoặc bị lợi dụng thực hiện việcchuyển tiếp spam được gửi đi từ spammer Danh sách này được liệt kê và cập nhậtthường xuyên tại địa chỉ http://www.ordb.org Cơ sở dữ liệu Open Relay Databasenày được duy trì bởi ORDB.org là một tổ chức phi lợi nhuận.
Khi một email được gửi đi, nó sẽ đi qua một số SMTP server trước khi chuyển tớiđịa chỉ người nhận Địa chỉ IP của các SMTP server mà email đó đã chuyển quađược ghi trong phần header của email Các chương trình chống spam sẽ kiểm tra tất
cả các địa chỉ IP đã được tìm thấy trong phần header của email đó sau đó so sánhvới cơ sở dữ liệu DNS Blacklist đã biết Nếu địa chỉ IP tìm thấy trong phần này cótrong cơ sở dữ liệu về các DNS Blacklist, nó sẽ bị coi là spam, còn nếu không,email đó sẽ được coi là một email hợp lệ
Phương pháp này có ưu điểm là các email có thể được kiểm tra trước khi tải xuống,
do đó tiết kiệm được băng thông đường truyền Nhược điểm của phương pháp này
là không phát hiện ra được những email giả mạo địa chỉ người gửi
4.4.3.2 Sử dụng SURBL list
Phương pháp sử dụng SURBL phát hiện spam dựa vào nội dung của email Chươngtrình chống spam sẽ phân tích nội dung của email xem bên trong nó có chứa cácliên kết đã được liệt kê trong Spam URI Realtime Blocklists (SURBL) hay không.SURBL chứa danh sách các miền và địa chỉ của các spammer đã biết Cơ sở dữ liệunày được cung cấp và cập nhật thường xuyên tại địa chỉ www.surbl.org
Có nhiều danh sách SURBL khác nhau như sc.surbl.org, ws.surbl.org, ob.surbl.org,ab.surbl.org , các danh sách này được cập nhật từ nhiều nguồn Thông thường,người quản trị thường kết hợp các SURBL list bằng cách tham chiếu tới địa chỉmulti.surbl.org Nếu một email sau khi kiểm tra nội dung có chứa các liên kết đượcchỉ ra trong SURBL list thì nó sẽ được đánh dấu là spam email, còn không nó sẽđược cho là một email thông thường
Phương pháp này có ưu điểm phát hiện được các email giả mạo địa chỉ người gửi đểđánh lừa các bộ lọc Nhược điểm của nó là email phải được tải xuống trước khi tiến
Trang 16hành kiểm tra, do đó sẽ chiếm băng thông đường truyền và tài nguyên của máy tính
để phân tích các nội dung email
4.4.3.3 Kiểm tra người nhận
Tấn công spam kiểu “từ điển” sử dụng các địa chỉ email và tên miền đã biết để tạo
ra các địa chỉ email hợp lệ khác Bằng kỹ thuật này spammer có thể gửi spam tớicác địa chỉ email được sinh ra một cách ngẫu nhiên Một số địa chỉ email trong số
đó có thực, tuy nhiên một lượng lớn trong đó là địa chỉ không tồn tại và chúng gây
ra hiện tượng “lụt” ở các máy chủ mail
Phương pháp kiểm tra người nhận sẽ ngăn chặn kiểu tấn công này bằng cách chặnlại các email gửi tới các địa chỉ không tồn tại trên Active Directory hoặc trên máychủ mail server trong công ty Tính năng này sẽ sử dụng Active Directory hoặcLDAP server để xác minh các địa chỉ người nhận có tồn tại hay không Nếu số địachỉ người nhận không tồn tại vượt quá một ngưỡng nào đó (do người quản trị thiếtlập) thì email gửi tới đó sẽ bị coi là spam và chặn lại
4.4.3.4 Kiểm tra địa chỉ
Bằng cách kiểm tra địa chỉ người gửi và người nhận, phần lớn spam sẽ được pháthiện và chặn lại Thực hiện kiểm tra địa chỉ người gửi trước khi email được tảixuống sẽ tiết kiệm được băng thông đường truyền cho toàn hệ thống
Kỹ thuật Sender Policy Framework (SPF, www.openspf.org) được sử dụng để kiểmtra địa chỉ người gửi email Kỹ thuật SPF cho phép chủ sở hữu của một tên miềnInternet sử dụng các bản ghi DNS đặc biệt (gọi là bản ghi SPF) chỉ rõ các máy đượcdùng để gửi email từ miền của họ Khi một email được gửi tới, bộ lọc SPF sẽ phântích các thông tin trong trường “From” hoặc “Sender” để kiểm tra địa chỉ người gửi.Sau đó SPF sẽ đối chiếu địa chỉ đó với các thông tin đã được công bố trong bản ghiSPF của miền đó xem máy gửi email có được phép gửi email hay không Nếu emailđến từ một server không có trong bản ghi SPF mà miền đó đã công bố thì email đó
bị coi là giả mạo
Trang 17Bộ lọc Bayesian hoạt động dựa trên định lý Bayes để tính toán xác suất xảy ra một
sự kiện dựa vào những sự kiện xảy ra trước đó Kỹ thuật tương tự như vậy được sửdụng để phân loại spam Nếu một số phần văn bản xuất hiện thường xuyên trongcác spam nhưng thường không xuất hiện trong các email thông thường, thì có thểkết luận rằng email đó là spam
Trước khi có thể lọc email bằng bộ lọc Bayesian, người dùng cần tạo ra cơ sở dữliệu từ khóa và dấu hiệu (như là ký hiệu $, địa chỉ IP và các miền ) sưu tầm từ cácspam và các email không hợp lệ khác
Mỗi từ hoặc mỗi dấu hiệu sẽ được cho một giá trị xác suất xuất hiện, giá trị này dựatrên việc tính toán có bao nhiêu từ thường hay sử dụng trong spam, mà trong cácemail hợp lệ thường không sử dụng Việc tính toán này được thực hiện bằng cáchphân tích những email gửi đi của người dùng và phân tích các kiểu spam đã biết
Để bộ lọc Bayesian hoạt động chính xác và có hiệu quả cao, cần phải tạo ra cơ sở
dữ liệu về các email thông thường và spam phù hợp với đặc thù kinh doanh củatừng công ty Cơ sở dữ liệu này được hình thành khi bộ lọc trải qua giai đoạn “huấnluyện” Người quản trị phải cung cấp khoảng 1000 email thông thường và 1000spam để bộ lọc phân
4.4.3.7 Sử dụng danh sách Black/white list
Việc sử dụng các danh sách black list, white list giúp cho việc lọc spam hiệu quảhơn
Trang 18Black list là cơ sở dữ liệu các địa chỉ email và các miền mà bạn không bao giờmuốn nhận các email từ đó Các email gửi tới từ các địa chỉ này sẽ bị đánh dấu làspam
White list là cơ sở dữ liệu các địa chỉ email và các miền mà bạn mong muốn nhậnemail từ đó Nếu các email được gửi đến từ những địa chỉ nằm trong danh sách nàythì chúng luôn được cho qua
Thông thường các bộ lọc có tính năng tự học, khi một email bị đánh dấu là spam thìđịa chỉ người gửi sẽ được tự động đưa vào danh sách black list Ngược lại, khi mộtemail được gửi đi từ trong công ty thì địa chỉ người nhận sẽ được tự động đưa vàodanh sách white list
4.4.3.8 Kiểm tra Header
Phương pháp này sẽ phân tích các trường trong phần header của email để đánh giáemail đó là email thông thường hay là spam Spam thường có một số đặc điểm như:
• Để trống trường From: hoặc trường To:
• Trường From: chứa địa chỉ email không tuân theo các chuẩn RFC
• Các URL trong phần header và phần thân của message có chứa địa chỉ IPđược mã hóa dưới dạng hệ hex/oct hoặc có sự kết hợp theo dạngusername/password (ví dụ các địa chỉ: http://00722353893457472/hello.com,www.citibank-.com@scammer.comĐịa chỉ email này đang được bảo vệ khỏichương trình thư rác, bạn cần bật Javascript để xem nó )
• Phần tiêu đề của email có thể chứa địa chỉ email người nhận để cá nhân hóaemail đó Lưu ý khi sử dụng tính năng này với các địa chỉ email dùng chung
có dạng như sales@company.com.Địa chỉ email này đang được bảo vệ khỏichương trình thư rác, bạn cần bật Javascript để xem nó Ví dụ khi một kháchhàng phản hồi bằng cách sử dụng tính năng auto-reply với tiêu đề “youremail to sales” có thể bị đánh dấu là spam
• Gửi tới một số lượng rất lớn người nhận khác nhau
Trang 19• Chỉ chứa những file ảnh mà không chứa các từ để đánh lừa các bộ lọc.
• Sử dụng ngôn ngữ khác với ngôn ngữ mà người nhận đang sử dụng
Dựa vào những đặc điểm này của spam, các bộ lọc có thể lọc chặn
4.4.3.9 Sử dụng tính năng Challenge/Response
Tính năng này sẽ yêu cầu người lần đầu gửi email xác nhận lại email đầu tiên mà họ
đã gửi, sau khi xác nhận, địa chỉ email của người gửi được bổ sung vào danh sáchWhite list và từ đó trở về sau các email được gửi từ địa chỉ đó được tự động cho quacác bộ lọc
Do spammer sử dụng các chương trình gửi email tự động và họ không thể xác nhậnlại tất cả các email đã gửi đi, vì thế những email không được xác nhận sẽ bị coi làspam
Phương pháp này có hạn chế là nó yêu cầu những người gửi mới phải xác nhận lạiemail đầu tiên mà họ gửi Để khắc phục nhược điểm này, người quản trị chỉ nên sửdụng phương pháp này đối với những email mà họ nghi ngờ là spam
Hiện nay việc sử dụng Internet trở nên phổ biến, việc các doanh nghiệp xây dựng 1
hệ thống mail server là tất yếu Tuy nhiên việc truy cập mạng ra Internet có nhiềurủi ro do đó việc bảo vệ các dữ liệu cá nhân và bảo vệ hệ thống email là rất quan
Trang 20trọng do đó cần xây dựng 1 hệ thống Server Mail và bảo mật hệ thống là rất quan
trọng
5.1 Lập trình mạng trong Visual Studio C#
C# là một ngôn ngữ lập trình rất hiện đại và chạy trên nền tản công nghệ NET mạnh mẽ
Do đó mà ngày nay C# được rất nhiều các coder trên thế giới ưu chuộng và tìm hiều.Một tập các lớp dùng để lập trình mạng thuộc hai không gian tên: System.Net vàSystem.Net.Sockets Các lớp này hỗ trợ mọi thứ, từ lập trình dựa-trên-socket vớiTCP/IP cho đến download file và trang HTML từ web thông qua HTTP
5.1.1 Lớp IP Address
Trên Internet mỗi một trạm (có thể là máy tính, máy in, thiết bị …) đều có một địnhdanh duy nhất, định danh đó thường được gọi là một địa chỉ (Address) Địa chỉ trênInternet là một tập hợp gồm 4 con số có giá trị từ 0-255 và cách nhau bởi dấu chấm.Trong MS.NET, lớp IPAddress là một lớp dùng để mô tả địa chỉ này Đây là lớp rất
cơ bản được sử dụng khi chúng ta thao tác (truyền) vào các lớp như IPEndpoint,UDP, TCP, Socket …
5.1.2 Lớp IPEndpoint
Trong mạng, để hai trạm có thể trao đổi thông tin được với nhau thì chúng cần phảibiết được địa chỉ (IP) của nhau và số hiệu cổng mà hai bên dùng để trao đổi thôngtin Lớp IPAddress mới chỉ cung cấp cho ta một vế là địa chỉ IP (IPAddress), cònthiếu vế thứ hai là số hiệu cổng (Port number) Như vậy, lớp IPEndpoint chính làlớp chứa đựng cả IPAddress và Port number
Trang 21Lớp này rất hay được dùng với lớp DNS
5.1.4 Lớp DNS
Lớp Dns cung cấp các dịch vụ phân giải tên miền Bạn có thể gọi phương thứcGetHostName để lấy về tên host của máy tính hiện hành Sau đó, bạn có thể dịchtên này sang địa chỉ IP bằng phương thức GetHostEntry
DNS (Domain Name Service) là một lớp giúp chúng ta trong việc phân giải tênmiền (Domain Resolution) đơn giản Ngoài ra lớp Dns còn có rất nhiều phươngthức cho ta thêm thông tin về máy cục bộ như tên, địa chỉ v.v…
Trong NET, lớp UDPClient (nằm trong System.Net.Sockets) đóng gói các chức
năng của giao thức UDP
có tên là TCPClient và TCPListener
Trang 225.2.1 Lý do lựa chọn XML làm cơ sở dữ liệu
- XML có thể tách rời dữ liệu Sử dụng XML, dữ liệu được chứa trong các tập tinXML riêng biệt
- XML có thể mô tả thông tin của những đối tượng phức tạp mà cơ sở dữ liệu quan
hệ không thể giải quyết được
- XML có thể dùng để chuyển đổi dữ liệu giữa các hệ thống không tương thích
- XML dùng để chia sẻ dữ liệu với những tập tin văn bản đơn giản dễ hiểu
- XML cững được dùng để lưu trữ dữ liệu, có thể làm cho dữ liệu của chúng ta hữuích hơn
5.2.2 Mô tả cơ sở dữ liệu:
Description, Mailbox_Size, Enable, AlloRelay)
Users
UserID : String FullName : String UserName : String
Domains
DomainID : String DomainName : String Description : String
Trang 23Password : String DomainName : String Description : String Mailbox_Size: Integer Enable : Boolean AlloRelay: Boolean
Mô tả: Lưu trữ danh sách user và thông tin của từng user trong hệ thống
Groups
GroupID : String GroupName : String Description : String Enable : Boolean
Mô tả: Lưu trữ danh sách group và thông tin của từng group trong hệ thống
Enable)
MalingLists
MailingListID : String MailingListName : String DomainName : String Description : String Enable : Boolean
Mô tả: Lưu trữ danh sách các địa chỉ mailing trong hệ thống
MailingListAddress
AddressID : String MailingListID : String Address : String