BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------HOÀNG THỊ LA
HOÀNG THỊ LA
CÔNG NGHỆ THÔNG TIN
THÁM MÃ TRÊN CÁC HỆ THỐNG EMAIL
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
KHOÁ 2012B
Hà Nội – Năm 2015
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------HOÀNG THỊ LA
THÁM MÃ TRÊN CÁC HỆ THỐNG EMAIL
Chuyên ngành :
CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS. Nguyễn Hữu Đức
Hà Nội – Năm 2015
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài nghiên cứu của tôi hoàn toàn do tôi tự làm dưới sự
hướng dẫn của thầy giáo TS Nguyễn Hữu Đức. Những kết quả tìm hiểu và nghiên
cứu trình bày trong luận văn là hoàn toàn trung thực và chưa từng được công bố
trong bất cứ công trình nào.
Nếu xảy ra bất cứ điều gì không đúng như những lời cam đoan trên, tôi xin
chịu hoàn toàn trách nhiệm trước Viện và nhà trường.
Hà Nội, tháng 4 năm 2015
Tác giả
Hoàng Thị La
1
MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................1
MỤC LỤC ...................................................................................................................2
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT..................................................................4
DANH MỤC HÌNH ẢNH ..........................................................................................5
MỞ ĐẦU .....................................................................................................................6
Chương 1 – GIỚI THIỆU CHUNG ............................................................................9
1.1 Giới thiệu các hệ thống email ...........................................................................9
1.1.1 Các hệ thống mail server ............................................................................9
1.1.2 Hệ thống Webmail ...................................................................................11
1.2 Các giao thức chuẩn hóa .................................................................................13
1.2.1 POP ..........................................................................................................14
1.2.2 IMAP ........................................................................................................15
1.2.3 SMTP .......................................................................................................16
1.3 Giới thiệu bào toán thám mã trên hệ thống email ...........................................18
1.3.1 Hướng tiếp cận để giải quyết bài toán ....................................................18
Chương 2 – XÂY DỰNG KHÔNG GIAN MẬT KHẨU ........................................22
2.1 Tìm hiểu và nghiên cứu thói quen đặt mật khẩu của người dùng ...................22
2.1.1 Nguồn dữ liệu và phương pháp phân tích ................................................22
2.1.2 Kết luận về thói quen đặt mật khẩu của người dùng................................27
2.2 Xây dựng không gian mật khẩu. ....................................................................27
2.2.1 Khái niệm không gian mật khẩu ..............................................................27
2.2.2 Từ điển .....................................................................................................28
2.2.3 Cấu trúc mật khẩu ....................................................................................29
2.3 Sinh không gian mật khẩu từ cấu trúc mật khẩu và từ điển ...........................30
2.3.1 Đọc dữ liệu đầu vào và phân tích chuyển đổi thành cấu trúc bên trong ..31
2.3.2 Chuẩn hóa cấu trúc mật khẩu ...................................................................32
2.3.3 Sinh mật khẩu theo thứ tự ........................................................................33
2.4 Cài đặt thử nghiệm .........................................................................................35
2
2.4.1 Dữ liệu đầu vào ........................................................................................35
2.4.2 Cấu trúc của chương trình ........................................................................36
2.4.3 Thử nghiệm ..............................................................................................36
Chương 3 – XÂY DỰNG HỆ THỐNG THÁM MẬT KHẨU EMAIL ...................39
3.1 Kiến trúc hệ thống ...........................................................................................39
3.2 Xây dựng agent kiểm tra mật khẩu cho email: ...............................................40
3.3 Thử nghiệm .....................................................................................................43
3.3.1 Môi trường thử nghiệm ............................................................................43
3.3.2 Dữ liệu thử nghiệm ..................................................................................44
3.3.3 Kết quả thử nghiệm ..................................................................................45
3.3.4 Đánh giá ...................................................................................................46
Chương 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................47
4.1 Kết luận ...........................................................................................................47
4.2 Hướng phát triển .............................................................................................47
TÀI LIỆU THAM KHẢO .........................................................................................48
3
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT
POP
Post Office Protocol
POP3
Post Office Protocol phiên bản thứ 3
IMAP
Internet Message Access Protocol
SMTP
Simple Mail Transfer Protocol
XM
Mail eXchang
DNS
Domail Name System
SSL
Secure Socket Layer
TLS
Transport Layer Security
VPS
Virtual Private Server
AMQP
Advanced Message Queuing Protocol
NRPC
Notes remote procedure calls
UUCP
Unix to Unix CoPy
ETRN
Extended Turn
4
DANH MỤC HÌNH ẢNH
Hình 1: Cơ chế chuyển mail của POP3 .....................................................................15
Hình 2: Cơ chế chuyển mail của IMAP ....................................................................17
Hình 3: Cơ chế chuyển mail của SMTP ....................................................................19
Hình 4: Tần suất Họ và tên .......................................................................................23
Hình 5: Tần suất ngày tháng năm sinh ......................................................................24
Hình 6: Tần suất số điện thoại...................................................................................25
Hình 7: Tần suất chuỗi số..........................................................................................26
Hình 8: Tần suất email ..............................................................................................27
Hình 9: Kết quả sinh không gian mật khẩu ...............................................................38
Hình 10: Kết quả sinh mật khẩu theo thứ tự .............................................................39
Hình 11: Sơ đồ kiến trúc hệ thống thám mật khẩu email..........................................40
Hình 12: Các module trong hệ thống thám mật khẩu email .....................................42
Hình 13: Kết quả Master node đang làm việc với Worker 1 ....................................46
Hình 14: Kết quả Worker trả về khi không tìm thấy mật khẩu đúng của email .......47
Hình 15: Kết quả khi Worker tìm thấy mật khẩu đúng của email ............................47
5
MỞ ĐẦU
Internet là một phát kiến vĩ đại của loài người, giúp chúng ta xóa đi khoảng
cách về thời gian và không gian. Con người chúng ta nhờ đó mà liên kết với nhau
được thuận tiện và nhanh chóng hơn. Mạng Internet mang lại rất nhiều tiện ích hữu
dụng cho người sử dụng. Đã có hơn 3 tỷ người kết nối internet trên toàn cầu và Việt
Nam có hơn 42 triệu người dùng internet. Với khả năng kết nối mở như vậy,
Internet đã phát triển ra hầu hết các nước trên thế giới, xuất hiện trong mọi lĩnh vực
thương mại, chính trị, quân sự, nghiên cứu, giáo dục, văn hoá, xã hội... Cũng từ đó,
các dịch vụ trên Internet không ngừng phát triển tạo ra cho nhân loại một thời kỳ
mới: kỷ nguyên thương mại điện tử trên Internet.
Một trong số các dịch vụ phổ biến nhất của Internet là hệ thống thư điện tử.
Ban đầu email được tạo ra nhằm mục đích trao đổi thông tin giữa các cá nhân với
nhau thay thế cho thư tín bưu chính. Giờ đây với sự phát triển của internet, các dịch
vụ tiện ích khác ra đời như trò truyện trực tuyến, trò chơi trực tuyến hay các dịch vụ
thương mại, chuyển ngân và các dịch vụ về y tế, giáo dục … ít nhiều liên quan đến
dịch vụ email.
Email không chỉ là công cụ để trao đổi thông tin mà còn là công cụ để xác
định danh tính một cá nhân trong thế giới internet rộng lớn. Email chứa đựng các
thông tin cá nhân, về cuộc sống và cả công việc của bạn. Các dịch vụ internet ngày
nay luôn lấy địa chỉ email của một cá nhân để định danh họ trong quá trình sử dụng
dịch vụ. Do vậy nắm được email của một cá nhân nào đó, bạn có thể sẽ biết được
nhiều thông tin về người đó hơn bất kỳ cơ sở dữ liệu nào khác.
Với sự phát triển như vũ bão của internet, các hình thức tội phạm cũng đã sử
dụng công nghệ để thực hiện những hành vi phạm tội. Bọn tội phạm sử dụng nhiều
cách thức khác nhau để có thể chiếm đoạt tài khoản email của nạn nhân và từ đó
khai thác các thông tin cá nhân để kiếm lời như thông tin đời tư cá nhân, tài khoản
ngân hàng, tài khoản trong các dịch vụ tài chính v.v… Một trong những kẽ hở bảo
mật lớn nhất chính là xuất phát từ người dùng. Với một môi trường internet phức
tạp, đòi hỏi người dùng sở hữu nhiều tài khoản email, yêu cầu đặt ra là người sử
6
dụng phải nhớ hết các mật khẩu của các tài khoản email đó. Do vậy, để tiện cho
việc ghi nhớ mật khẩu, người dùng thường đặt các mật khẩu đơn giản như dãy số,
dãy chữ cái hay các thông tin liên quan đến tên, tuổi, ngày sinh, các thông tin liên
quan đến gia đình… Đây chính là kẽ hở mà chính người dùng đã mở ra cho bọn tội
phạm. Chúng thu thập thông tin của một các nhân và từ đó sẽ có thể dò tìm ra được
mật khẩu tài khoản email họ. Tại Việt Nam, bên cạnh đó, những tội phạm liên quan
đến tội xâm phạm an ninh quốc gia cũng thường sử dụng môi trường internet để
trao đổi thông tin, kế hoạch hoạt động, huấn luyện, chuyển tài liệu tuyên truyền hay
đăng các bài viết mang tính kích động bôi xấu, sai sự thật về tình hình kinh tế xã
hội, gây tâm lý hoang mang trong một bộ phận dân chúng, ảnh hưởng đến việc thực
hiện các chính sách, chủ trương của Đảng và Nhà nước. Yêu cầu của ngành An ninh
là phải khẩn trương phát hiện và đập tan những âm mưu, kế hoạch hoạt động của
chúng bảo vệ An ninh Quốc gia, trật tự an toàn xã hội.
Từ thực tế trong việc sử dụng tài khoản email và yêu cầu công việc của ngành
An ninh phải ngăn chặn các loại tội phạm xâm phạm an ninh quốc gia đã đặt ra hai
vấn đề cấp thiết đó là: làm thế nào ngăn chặn bọn tội phạm lợi dụng dịch vụ email
để thực hiện hành vi phạm tội thông qua việc kiểm soát tài khoản email mà chúng
sử dụng, từ đó phát hiện ra các mối liên lạc, âm mưu, thủ đoạn và tài liệu chứng cứ
phục vụ công tác an ninh, đồng thời đưa ra những cảnh bảo cho người sử dụng
email nâng cao cảnh giác thông qua cách thức bảo mật bằng mật khẩu tránh bị tội
phạm lợi dụng khai thác. Được sự đồng ý của giáo viên hướng dẫn TS. Nguyễn
Hữu Đức, tôi đã lựa chọn đề tài luận văn: “Thám mã trên các hệ thống email” với
mục tiêu đề ra như sau:
Đánh giá thói quen đặt mật khẩu của người dùng dựa trên thông tin cá nhân, từ
đó xây dựng không gian mật khẩu rút gọn phù hợp với thói quen của người dung.
Cài đặt chương trình sinh và thử mật khẩu trên không gian rút gọn cho những
tài khoản email sử dụng giao thức SMTP.
Đánh giá hiệu quả hoạt động và đưa ra các thống kê cần thiết.
Nội dung của luận văn được chia ra làm 4 chương cụ thể như sau:
7
Chương 1: Giới thiệu chung
Tìm hiểu về các hệ thống email được sử dụng phổ biến hiện nay
Tìm hiểu về các giao thức chuẩn hóa trong hệ thống email (POP3, IMAP,
SMTP)
Giới thiệu bài toán thám mã trên hệ thống email.
Chương 2: Xây dựng không gian sinh mật khẩu người dùng
Tìm hiểu và nghiên cứu thói quen đặt mật khẩu của người dùng email
Xây dựng không gian mật khẩu và sinh không gian mật khẩu từ điển và cấu
trúc mật khẩu
Cài đặt và thử nghiệm
Chương 3: Xây dựng hệ thống thám mật khẩu email
Kiến trúc hệ thống
Xây dựng agent kiểm tra mật khẩu cho email có sử dụng giao thức SMTP
Thử nghiệm
Chương 4: Kết luận và hướng phát triển của luận văn
Kết luận
Hướng phát triển
8
Chương 1 – GIỚI THIỆU CHUNG
Internet và email đang trở thành một công cụ đắc lực cho con người. Giao dịch
trực tuyến và các hoạt động liên quan đến thương mại của cá nhân, tổ chức được
thường xuyên thực hiện qua môi trường internet và dịch vụ email. Hiện nay có
nhiều hệ thống email cung cấp dịch vụ email cho người dùng, trong đó hai hệ thống
email phổ biến là hệ thống mail server và hệ thống Webmail. Webmail phù hợp với
người dùng cá nhân và Mail server phù hợp cho tổ chức, doanh nghiệp.
Dịch vụ email thông thường sử dụng chuẩn giao thức phổ biến là POP, IMAP
và SMTP để gửi và nhận mail qua lại giữa mail server và client. Với sự phát triển
nhanh của công nghệ, nhằm đáp ứng nhu cầu bảo mật, các hệ thống email ngày nay
sử dụng nhiều giao thức phi chuẩn mặc dù vậy chúng vẫn hỗ trợ người dùng các
giao thức chuẩn thông dụng.
1.1 Giới thiệu các hệ thống email
1.1.1 Các hệ thống mail server
Email Server – hay còn gọi là Máy chủ thư điện tử là máy chủ dùng để gửi và
nhận thư điện tử, là một giải pháp email dành cho các doanh nghiệp để quản lý và
truyền thông tin nội bộ, thực hiện các giao dịch thương mại, yêu cầu sự ổn định,
tính liên tục và với tốc độ nhanh, đồng thời đảm bảo tính an toàn của dữ liệu, khả
năng sao lưu dữ liệu cao....
Các tính năng của email server bao gồm nhận và gửi mail nội bộ, quản lý toàn
bộ các tài khoản email trong hệ thống nội bộ, nhận mail từ email server của người
gửi và phân phối mail cho các tài khoản trong hệ thống, cho phép người dùng có thể
sử dụng webmail để nhận mail hoặc sử dụng Outlook hoặc cả hai, phụ thuộc và việc
cài đặt Email Server.
Các đặc tính của Email Server là có tính năng bảo mật an toàn dữ liệu với
server riêng biệt, có hệ thống quản trị để quản lý và tạo các tài khoản email cho
nhân viên; xử lý số lượng lớn email hàng ngày; có khả năng chống virus và thư rác
một cách hiệu quả.
9
Việc triển khai hệ thống mail cho một doanh nghiệp, tổ chức có hiệu quả luôn
là bài toán đau đầu. Hiện nay có hai hệ thống mail server để doanh nghiệp lựa chọn
sử dụng là: (1) Hệ thống mail server thương mại như Microsoft Exchange, IBM
Mail Server Lotus Domino, Mdaemon, Zimbra… (2) Hệ thống mail server riêng
thông qua việc tự xây dựng một hệ thống mail server từ các thành phần nguồn mở
với: SMTP server hoặc MTA server (Postfix, Sendmail), IMAP/POP3 server
(Decovet), Webmail (RoundCube, Mailpile, RainLoop, AfterLogic, Squirrelmail).
1.1.1.1 Hệ thống email server thương mại
Thông thường khi đăng ký sử dụng dịch vụ email từ hệ thống email server
thương mại, doanh nghiệp sẽ phải trả khoản chi phí thuê server, chi phí bản quyền,
quản trị và bảo trì hệ thống, chi phí có thể tăng cao hơn nữa tùy thuộc vào số lượng
tài khoản email của nhân viên. Bù lại, doanh nghiệp sẽ nhận được dịch vụ tốt với
tính bảo mật cao.
Một trong những điển hình cho email server thương mại là Microsoft
Exchange của gã khổng lồ Microsoft. Microsoft đã bắt đầu phát triển MAPI không
lâu sau khi IMAP và POP được dùng phổ biến. MAPI là một cách cho các ứng dụng
và email cleint giao tiếp thông qua Microsoft Exchange server, với chức năng khá
giống IMAP, nó có thể đồng bộ hóa email, danh bạ, lịch và những tính năng khác
đến các email client hay ứng dụng nào đó. Tính năng này được đặt tên là “Exchange
ActiveSync”. Tên gọi MAPI hoặc Exchange ActiveSync tùy thuộc vào thiết bị bạn
sử dụng nhưng chúng đều có ý tưởng tương tự như IMAP. Exchange và MAPI là
công nghệ độc quyền của Microsoft nên chỉ những công ty nào sở hữu Exchange
mail server hoặc sử dụng dịch vụ Live Hotmail mới có thể sử dụng.
Một hệ thống mail server thương mại nổi tiếng khác là Hệ thống Mail Lotus
Domino của IBM. Hệ thống này hỗ trợ các chuẩn giao thức về gửi nhận mail như là
SMTP, POP3, IMAP, MIME. Đồng thời Domino hỗ trợ mail lotus notes thông qua
việc sử dụng các giao thức định tuyến Notes – NRPC – và thư tín định dạng văn
bản. Để bảo mật thông tin trên các email, Domino hỗ trợ phương pháp mã hóa khóa
10
công khai và S/MIME. Xác thực người dùng bằng username/pass và dùng SSL. Hỗ
trợ chuẩn chứng thực X.509 cho các Internet mail clients.
1.1.1.2 Hệ thống mail server riêng
Hệ thống mail server riêng đòi hỏi doanh nghiệp phải thuê server riêng và có
một địa chỉ IP riêng. Hiện nay các dịch vụ mail server riêng biệt thường sử dụng
máy chủ ảo VPS. Đây là phương pháp phân chia một máy chủ vật lý thành nhiều
máy chủ ảo. Trong khi trên 1 server chạy Share Host thì có thể có hàng trăm tài
khoản cùng chạy 1 lúc, nhưng trên server chạy VPS thì con số chỉ bằng 1/10. Do
vây, VPS có hiệu năng cao hơn Share Host rất nhiều lần. Mỗi máy chủ là một hệ
thống hoàn toàn riêng biệt, có hệ điều hành riêng, có toàn quyền quản lý root và có
thể restart lại hệ thống bất cứ lúc nào. Do vậy, VPS hạn chế 100% khả năng bị tấn
công hack local. Tuy nhiên, VPS sẽ đòi hỏi người sử dụng phải biết thêm một số
kiến thức quản lý như cấu hình server, bảo mật...
Đặc điểm khi sử dụng hệ thống mail này là có server Mail riêng biệt với khả
năng xử lý với email số lượng lớn hàng ngày; hệ thống mail bảo mật, chống virus
và thư rác hiệu quả; có bảng điều khiển để tạo và quản lý email nhân viên; thiết lập
được dung lượng tối đa của từng email, kiểm tra và sử dụng Email được trên cả
Mail Client hay Webmail; hỗ trợ Forwarder email để setup Email Offline.
1.1.2 Hệ thống Webmail
Thuật ngữ Email trên nền web và Webmail ám chỉ việc hiện thực một chương
trình xem email dưới dạng một ứng dụng web cho phép người dùng truy cập email
của họ thông qua một trình duyệt web, thay vì sử dụng chương trình xem email trên
nền máy tính để bàn như Microsoft Outlook, Mozilla Thunderbird hay Eudora.
Email được lưu trữ từ máy chủ ở xa, có nghĩa là nó có thể được truy cập từ bất cứ
nơi nào có kết nối Internet và một trình duyệt Web. Phần lớn những nhà cung cấp
Webmail là dịch vụ miễn phí. Việc bảo trì, sao lưu, nâng cấp và sửa lỗi bảo mật
được thực hiện trên mail server bởi người quản trị. Do vậy người sử dụng không
cần phải cài đặt, nâng cấp hoặc cài bản vá cho chương trình email tại máy của mình.
Những nhà cung cấp Webmail phổ biến nhất hiện nay là Yahoo Mail, Outlook và
11
Gmail, ngoài ra còn có Inbox.com, AIM Mail, Mail.com, Fastmail.FM, Lycos Mail,
BlueTie, Everyone.net, and LuxSci. Trong khuôn khổ có hạn tôi xin giới thiệu qua
hai hệ thống email được người Việt Nam dùng phổ biến nhất hiện nay là Gmail và
Yahoo Mail.
1.1.2.1 Gmail
Gmail, hay còn gọi là Google Mail là một dịch vụ email trên nền web miễn
phí do Google cung cấp. Gmail hỗ trợ POP3 và IMAP với hơn 7.0 Gigabite không
gian lưu trữ, một công cụ tìm kiếm, đàm thoại trực tuyến hay chat, khả năng bảo
mật tốt, cảnh báo virus. Gmail nổi tiếng với việc sử dụng công nghệ Ajax trong thiết
kế. Gmail hỗ trợ nhiều trình duyệt và hỗ trợ đa ngôn ngữ, địa chỉ người gửi đến và
người gửi đi tự động nhập lưu vào sổ.
Gmail sử dụng triệt để Ajax tận dụng những tính năng của trình duyệt hiện đại
như JavaScript, tổ hợp phím tắt và tích hợp Web feed, mang lại giao diện phong
phú nhưng vẫn giữ lại được những lợi ích của một ứng dụng web. Gmail mặc định
sử dụng kết nối không mã hóa để lấy dữ liệu từ người dùng, chỉ mã hóa cho kết nối
dùng để đăng nhập. Tuy nhiên, khi thay đổi URL từ />thành Gmail đã sử dụng kết nối an toàn, giảm nguy
cơ xem trộm thông tin của người dùng, như email và danh bạ, những thứ sẽ được
truyền ở dạng ký tự thuần như dữ liệu JavaScript trong mã nguồn của trang. Kết nối
POP3 sử dụng An ninh ở lớp Vận chuyển TLS.
Mặc dù TLS được sử dụng khi gửi email thông qua chương trình xem email
như Mozilla Thunderbird, có vẻ như nó không được dùng khi một email được gửi
từ máy chủ Gmail đến phần mềm giao dịch mail của tên miền đích, vì thế ở một vài
công đoạn nội dung email của nạn vẫn được truyền ở dạng ký tự thuần.
Gmail cung cấp một hệ thống lọc thư rác. Theo Gmail, những thư bị đánh dấu
là spam sẽ được tự động xóa sau 30 ngày, nhưng đã có những báo cáo ở trang
Gmail Help Discussion về những spam mail nằm ở thư mục spam hàng tháng trời.
Tất cả những email vào ra đều được tự động quét virus trong các đính kèm.
Nếu tìm thấy virus trong đính kèm mà người đọc đang mở, Gmail sẽ tự động diệt
12
virus và mở đính kèm mới được quét. Gmail cũng quét tất cả những đính kèm gửi ra
ngoài, và sẽ ngăn chặn những thư được gửi nếu tìm thấy virus. Những file thực thi
được sẽ tự động bị phong tỏa bởi hệ thống diệt Virus.
Gmail cũng là một trong những nhà cung cấp e-mail lớn sử dụng chữ ký
DomainKeys của Yahoo! cho các thư gửi ra ngoài.
1.1.2.2 Yahoo Mail
Yahoo Mail là một dịch vụ Email trên nền web của Yahoo, là nhà cung cấp email lớn trên Internet và là đối thủ cạnh tranh trực tiếp của Gmail. Yahoo Mail gồm
cả dịch vụ miễn phí Mail và dịch vụ tính phí Plus, Yahoo! Business E-mail. Trước
đây dịch vụ Yahoo Mail và Yahoo chat được đa số người Việt sử dụng. Tuy nhiên
sau sự ra đời của Gmail cùng sự thiếu sáng tạo và cải tiến trong dịch vụ của mình,
Yahoo Mail đã dần mất đi những khách hàng không chỉ tại Việt Nam mà còn ở
nhiều nước khác trên thế giới.
Về bảo mật: Yahoo Mail sử dụng giao thức Web để thiết lập bảo mật giữa
máy chủ và khách SSL, sử dụng mã hóa SSL khi truyền một số loại thông tin như
thông tin dịch vụ tài chính hoặc thông tin thanh toán. Một biểu tượng tương tự như
một khóa móc được hiển thị ở cuối hầu hết các cửa sổ trình duyệt trong khi thực
hiện các giao dịch SSL có liên quan tới thẻ tín dụng và một số hình thức thanh toán
khác.
Ngày 08/01/2014, Yahoo Mail mới áp dụng giao thức SSL được xem là khá
muộn, khi mà các hãng công nghệ khác đã dùng giao thức này từ lâu. Chẳng hạn
như Google đã áp dụng cho dịch vụ Gmail và Microsoft áp dụng cho dịch vụ
Hotmail vào năm 2010. Facebook cũng đã cung cấp tính năng tương tự vào tháng
07/2011 và Twitter là tháng 08/2011.
1.2 Các giao thức chuẩn hóa
Một số giao thức chuẩn hóa được sử dụng bởi các email client để gửi và nhận
mail thông qua giao tiếp với email server. Các giao thức này đều là các giao thức
Internet được chuẩn hóa nằm trên tầng ứng dụng của mô hình OSI.
13
Hiện tại các hệ thống email thương mại hoặc các hệ thống webmail như
hotmail hay gmail sử dụng những giao thức khác, phi chuẩn. Tuy nhiên các hệ
thống mail server thường có những tính năng cho phép người dùng sử dụng cả các
giao thức chuẩn: POP, IMAP, SMTP trên các chương trình mail client.
1.2.1 POP
POP3 là một giao thức tầng ứng dụng, dùng để lấy thư điện tử từ server mail,
thông qua kết nối TCP/IP. POP3 và IMAP4 là 2 chuẩn giao thức Internet thông
dụng nhất dùng để lấy nhận email. Hầu như các mailserver hiện nay đều hỗ trợ cả 2
giao thức. Trước POP3, đã có 2 phiên bản là POP1 và POP2. Khi POP3 ra đời, đã
ngay lập tức thay thế hoàn toàn các phiên bản cũ. Vì vậy, ngày nay, nhắc đến POP
thì thường là ám chỉ POP3.
Thiết kế của POP3 hỗ trợ chức năng cho người dùng có kết nối internet không
thường trực cho phép người dùng kết nối với server, tải mail về, sau đó có thể xem,
thao tác với mail offline. Mặc dù trong giao thức hỗ trợ leave mail on server, nhưng
hầu hết người dùng đều thực hiện mặc định, tức là: kết nối, tải mail về, xóa mail
trên server rồi ngắt kết nối.
Giao thức POP thường được thực hiện qua cổng 110. Truyền thông tin mã hóa
được thực hiện bởi lệnh STLS sau khi khởi tạo kết nối, hoặc sử dụng POP3S thông
qua SSL hoặc TLS trên cổng TCP 995.
Ví dụ về một quy trình giao tiếp qua POP3:
Sau đây là dàn cảnh một phiên làm việc ví dụ giữa người dùng sweetlubei khi anh
ta đăng nhập và làm việc trên hộp thư của mình tại server có địa chỉ POP3.163.com
Client
Server
Giải thích
OK POP3 server ready Server sẵn sàng phục vụ client
USER
sweetlubei
OK
Server xác nhận người dùng hợp lệ
PASS
godblessus
LIST
OK login successfully Chứng thực thành công
sweetlubei kiểm tra hộp thư
14
OK1 10242 2550
RETR 1
OK
DELE 1
OK
QUIT
OK Bye-Bye
Hộp thư của ptphi còn hai thư chưa nhận về,
thư thứ nhất có kích thước 1024 bytes, thư
thứ hai có kích thước 2550 bytes
sweetlubei tải thư thứ nhất về
server gởi thư thứ 1 cho sweetlubei
sweetlubei xóa thư thứ nhất trong hộp thư
server xoá thư thứ 1 thành công
sweetlubei hủy nối kết
server hủy nối kết
Hình 1: Cơ chế chuyển mail của POP3
1.2.2 IMAP
IMAP là sự thay thế cho giao thức POP .IMAP cho phép nhiều client truy cập
vào cùng một tài khoản. Thông qua một cờ thông báo trạng thái trên hòm thư, các
client có thể cập nhật trạng thái của hòm thư đã bị thay đổi bởi các client khác.
So với POP, IMAP đặt sự kiểm soát email trên mail server trong khi nhiệm vụ
của POP là tải toàn bộ thông điệp email về client server yêu cầu. Cụ thể, IMAP
cung cấp truy cập email theo ba chế độ khác nhau: offline, online và disconnected.
Truy cập chế độ offline IMAP giống như POP, các thông điệp email được
truyền đến máy client server, xóa khỏi mail server và mối liên kết bị ngắt. Sau đó
người dùng đọc, trả lời, làm các việc khác ở chế độ ngoại tuyến, và nếu muốn gửi
thư mới đi họ phải kết nối lại.
Truy cập chế độ online là chế độ IMAP truy cập mà người dùng đọc và làm
việc với thông điệp email trong khi vẫn giữ đang kết nối với mail server (kết nối
mở). Các thông điệp này vẫn nằm ở mail server cho đến khi nào người dùng quyết
định xóa nó đi. Chúng đều được gắn nhãn hiệu cho biết loại để "đọc" hay "trả lời".
Trong chế độ disconnected, IMAP cho phép người dùng lưu tạm thông điệp ở
client server và làm việc với chúng, sau đó cập nhật trở lại vào mail server ở lần kết
nối kế tiếp. Chế độ này hữu ích cho những ai dùng laptop hay truy cập mạng bằng
liên kết quay số điện thoại, đồng thời không muốn bỏ phí những lợi điểm của kho
chứa thư ở mail server.
15
Ví dụ về một quy trình giao tiếp IMAP:
Client
Server
open connection
OK IMAP4rev1 Service Ready
a001 login
secret
mrc
Client đăng nhập vào
a001 OK LOGIN completed
a002 select inbox
a002 OK SELECT completed
a003 fetch 12 full
Đăng nhập hợp lệ
Client yêu cầu lấy nội dung trong
inbox
Chấp nhận đọc và ghi dữ liệu
trong inbox
Yêu cầu hiển thị toàn bộ nội
dung thư số 12
a003 OK FETCH completed
a004 fetch
body[header]
Giải thích
Client gửi yêu cầu kết nối tới
Server
Server sẵn sàng phục vụ client
12
a004 OK FETCH completed
a005 store 12
+flags \deleted
Chấp nhận hiện thị nội dung như
yêu cầu
Yêu cầu hiển thị phần header của
thư số 12
Đồng ý hiện thị toàn bộ phần
header của lá thư số 12
Thiết lập lại trạng thái của thư và
a005 OK +FLAGS completed
a006 logout
a006 OK LOGOUT completed
Đồng ý yêu cầu của client
Client gửi yêu cầu logout tài
khoản vừa đăng nhập
Server đồng ý logout tài khoản
Hình 2: Cơ chế chuyển mail của IMAP
1.2.3 SMTP
SMTP là một giao thức dùng nền văn bản và tương đối đơn giản. Trước khi
một thông điệp được gửi, người ta có thể định vị một hoặc nhiều địa chỉ nhận cho
thông điệp - những địa chỉ này thường được kiểm tra về sự tồn tại trung thực của
chúng). Việc kiểm thử một trình chủ SMTP là một việc tương đối dễ dàng, dùng
chương trình ứng dụng "telnet".
SMTP dùng cổng 25 của giao thức TCP. Để xác định trình chủ SMTP của một
tên miền nào đấy, người ta dùng một mẫu tin MX của DNS.
16
SMTP định nghĩa tất cả những gì đã làm với email. Nó xác định cấu trúc của
các địa chỉ, yêu cầu tên miền và bất cứ điều gì liên quan đến email. SMTP cũng xác
định các yêu cầu cho POP và truy cập IMAP máy chủ, do đó email được gửi đúng
cách.
SMTP bắt đầu được sử dụng rộng rãi vào những năm đầu thập niên kỷ 1980.
Tại thời điểm đó, SMTP chỉ là một phần mềm bổ sung của bộ trình ứng dụng đồng
giao thức UUCP nhưng tiện lợi hơn trong việc truyền tải thư điện tử giữa các máy
vi tính - những máy này thỉnh thoảng mới lại được kết nối với nhau một lần, để
truyền thông dữ liệu. Thực ra, SMTP sẽ làm việc tốt hơn nếu các máy gửi và máy
nhận được kết nối liên tục.
Sendmail là một trong những phần mềm đặc vụ truyền tải thư tín đầu tiên thực
thi giao thức SMTP. Tính đến năm 2001, người ta đã thấy có ít nhất là 50 chương
trình ứng dụng thực thi giao thức SMTP, bao gồm cả chương trình client và chương
trình server. Một số trình chủ SMTP nổi tiếng có thể liệt kê bao gồm: exim, Postfix,
qmail, và Microsoft Exchange Server.
Do thiết kế của giao thức dùng dạng thức văn bản thường của bộ mã ASCII,
khi bản thiết kế được khởi công, chức năng của SMTP giải quyết tập tin có dạng
thức nhi phân rất kém. Những tiêu chuẩn như MIME đã được xây dựng để mã hóa
những tập tin nhị phân, cho phép chúng được truyền tải dùng giao thức SMTP. Hiện
nay, phần lớn các trình chủ SMTP hỗ trở phần mở rộng 8BITMIME của SMTP, cho
phép các tập tin ở dạng thức nhị phân được truyền thông qua đường dây, dễ như
việc truyền tải văn bản thường vậy.
SMTP là một giao thức "đẩy" thông điệp và không cho phép ai "rút" thông
điệp từ máy chủ ở xa, theo yêu cầu của mình, một cách tùy tiện. Để lấy được thông
điệp, một trình khách thư điện tử phải dùng hoặc IMAP. Chúng ta còn có thể dùng
phần mềm ETRN để khởi động một trình chủ SMTP phân phát thông điệp mà nó
đang lưu trữ.
được tất cả các hệ thống thương mại (lotus, ms exchange) và webmail (gmail,
yahoo) sử dụng để gửi và nhận mail từ ngoài hệ thống.
17
Ví dụ về giao tiếp qua SMTP:
S: 220 smtp.example.com ESMTP Postfix
Client
Server
220 ctu.edu.vn
Hello cit.ctu.edu.vn
Giải thích
Server sẵn sàng phục
vụ client
Chào và xưng danh
của client
250 ctu.edu.vn says hello to
Yêu cầu hợp lệ
cit.ctu.edu.vn
MAIL
<>
FROM
Địa chỉ của người gửi
250 sender ok
RCPT TO <>
Chấp nhận chuyển dữ
liệu
Địa chỉ người nhận
250 Recipient ok
DATA
Subject: It’s Xmast!
ptphi tải thư thứ nhất
về
354 Enter mail, end with “.” server gởi thư thứ 1
On a line by itself
cho ptphi
ptphi xóa thư thứ nhất
trong hộp thư
So I hope merry Xmas and a server xoá thư thứ 1
happy new year
thành công
QUIT
OK Bye-Bye
ptphi hủy nối kết
server hủy nối kết
Hình 3: Cơ chế chuyển mail của SMTP
1.3 Giới thiệu bào toán thám mã trên hệ thống email
Bài toán thám mã email thực chất là bài toán khôi phục, dò tìm, tấn công vào
các hệ thống email để thu được mật khẩu của email nào đó.
Bài toán đặt ra là với một địa chỉ mail xác định, cùng với những thông tin về
người dùng đã thu thập được, ta tìm cách thu được mật khẩu đúng của email.
1.3.1 Hướng tiếp cận để giải quyết bài toán
Để giải quyết được các vấn đề của bài toán thám mật khẩu email dựa trên
những thông tin đã có về người dùng thì đòi hỏi chúng ta phải am hiểu về thói quen
18
đặt mật khẩu của người dùng và đồng thời phải vượt qua được các cơ chế xác thực
của hệ thống mail. Vì vậy trong giới hạn luận văn này đưa ra hai đề xuất để tiếp cận
giải quyết vấn đề bài toán đặt ra:
1.3.1.1 Sinh không gian mật khẩu theo thói quen người dùng
Các kết quả nghiêu cứu về tâm lý học và khả năng duy trì sự nhớ của người
dùng cho thấy, người dùng có một thói quen sử dụng các mật khẩu để đặt cho email
chứa một phần hoặc toàn bộ thông tin nào đó liên quan trực tiếp hay gián tiếp quan
trọng hoặc dễ nhớ đối với thông tin cá nhân của người dùng. Điều này dẫn đến các
mật khẩu có tần suất sử dụng là khác nhau, chẳng hạn như mật khẩu “password12”
có khả năng cao sẽ là mật khẩu đúng của một email nào đó thay vì mật khẩu
“P@$$W0rd!12”. Do vậy một không gian mật khẩu được sinh theo thứ tự giảm dần
khả năng sử dụng mật khẩu được xem là tốt hơn các chương trình sinh không theo
một quy luật nào cả, hoặc xem xác suất là bằng nhau như trong phương pháp sinh
không gian mật khẩu vét cạn.
Thứ tự sinh mật khẩu trong không gian mật khẩu có liên quan trực tiếp đến
thứ tự duyệt mật khẩu – sinh trước sẽ được kiểm tra trước. Khi kiểm tra một mật
khẩu thử, nếu phát hiện nó là mật khẩu đúng, thì ngay lập tức kết thúc chương trình
mà không cần sinh các mật khẩu kế tiếp, nhờ vậy giúp rút ngắn thời gian ở mức có
thể.
Có nhiều biện pháp áp dụng để giảm không gian mật khẩu hoặc thay đổi thứ
tự sinh, rất có ý nghĩa đối với lĩnh vực an toàn thông tin, như thu thập một vài thông
tin nào đó về mật khẩu. Chẳng hạn như độ dài mật khẩu không vượt quá 8, mật
khẩu chứa không quá 10% kí tự chữ hoa, 20% kí tự chữ số và đặc biệt trong tổng số
các kí tự của mật khẩu… Ta gọi đó tất cả các tiêu chuẩn này là luật. Trong đồ án
này, trước hết, triển khai cài đặt giải thuật với luật là sinh mật khẩu theo thứ tự giảm
dần xác suất xuất hiện, để từ đó tự xây dựng ra chương trình sinh mật khẩu song
song tương ứng. Với phương pháp này, không gian mật khẩu phải sinh cho đến khi
tìm ra được mật khẩu đúng nhỏ hơn nhiều so với phương pháp sinh mật khẩu vét
19
cạn, vì thế khả năng tìm ra được một mật khẩu đúng trong thời gian cho phép là rất
cao.
1.3.1.2 Kiểm tra mật khẩu trong không gian đã sinh ra
Xác thực tài khoản là vấn đề quan trọng nhất đối với mailserver do yêu cầu về
bảo mật thông tin. Mục tiêu của luận văn là thám mã các tài khoản email trên các
mailserver riêng, sử dụng các giao thức chuẩn hóa. Do đó, các vấn đề về xác thực
người dùng trên các hệ thống email cho phép truy cập qua các giao thức chuẩn hóa.
Phương pháp phổ biến nhất là mailserver lưu trữ thông tin mật khẩu dưới dạng
mã hóa. Người dùng đặt mật khẩu hoặc thay đổi mật khẩu, server sẽ thêm một chuỗi
vào mật khẩu sao cho chuỗi mật khẩu sẽ có chiều dài cố định (salting), sau đó sử
dụng hàm hash và lưu chuỗi hash vào cơ sở dữ liệu để đối chứng.
Các hệ thống mail sử dụng POP/IMAP/SMTP sẽ tiến hành gửi thông tin tài
khoản và mật khẩu để mailserver xác thực, sau đó gửi xác nhận xuống client để bắt
đầu kết nối.
Ví dụ: đoạn thông tin sau cho thấy một quy trình bắt kết nối và xác thực tài khoản
qua giao thức IMAP4
C: <open connection>
S: * OK IMAP4rev1 Service Ready
C: a001 login mrc secret
S: a001 OK LOGIN completed
Việc xác thực bằng tên tài khoản và mật khẩu có thể dẫn đến trường hợp
người xâm nhập cố gắng thử rất nhiều mật khẩu khác nhau cho một tài khoản nhằm
tìm ra mật khẩu đúng. Các mail server thường áp dụng những phương pháp sau để
tránh cho các tài khoản bị tấn công theo cách này.
Server ngăn chặn không cho truy cập bằng các giao thức chuẩn hóa: POP3,
IMAP4, SMTP. Phương pháp này thường được sử dụng bởi các hệ thống email
công cộng.
Server ngăn chặn việc thử sai mật khẩu: tiến hành khóa truy cập nếu mật khẩu
nhập sai quá nhiều lần. Phương pháp này có thể áp dụng trên tất cả các hệ thống
20
email server. Server sẽ tiến hành khóa truy cập trong một khoảng thời gian nhất
định hoặc yêu cầu xác nhận không phải agent tự động.
Áp dụng bảo mật nhiều lớp: sử dụng các phương pháp bảo mật khác cá nhân
hóa hơn, ví dụ như gửi mật mã đến thuê bao điện thoại, thay vì chỉ hoàn toàn dựa
vào mật khẩu.
Trong phạm vi của luận văn, chỉ xét đến các tài khoản cho phép truy cập bằng
các giao thức chuẩn hóa và không hạn chế số lần thử sai mật khẩu. Vì vậy số lần thử
mật khẩu nên được thực hiện một cách phân tán trong đó mỗi phân tán đóng vai trò
như một agent để kiểm tra mật khẩu.
21
Chương 2 – XÂY DỰNG KHÔNG GIAN MẬT KHẨU
Việc xây dựng không gian mật khẩu đòi hỏi nghiên cứu rất kỹ về thói quen
thường đặt mật khẩu của người dùng email để đưa ra những thống kê đánh giá
chính xác từ đó xác định những cấu trúc mật khẩu có độ chính xác cao.
2.1 Tìm hiểu và nghiên cứu thói quen đặt mật khẩu của người dùng
Việc lựa chọn mật khẩu có ảnh huởng lớn đến tính bảo mật của tài khoản
nguời dùng. Chuỗi mật khẩu dễ đoán, hoặc dễ được sinh ra bằng cách sử dụng các
tập luật đơn giản có thể làm cho tài khoản bị đe dọa trước các phương pháp tấn
công bằng cách thử mật khẩu. Một ví dụ điển hình là những tấn công gần đây vào
các hệ thống xác thực của Sony cho thấy những điểm yếu trong thói quen lựa chọn
mật khẩu của người dùng: (1) quá ngắn, chỉ từ 6-10 ký tự, (2) quá đơn giản (99%
chỉ gồm chữ cái alphabet và số) và (3) quá dễ đoán (sử dụng những chuỗi có trong
từ điển). Qua ví dụ trên, chúng ta có thể nhận thấy người dùng đa phần đặt mật khẩu
theo một số thói quen nhất định chứ không hoàn toàn là một chuỗi ngẫu nhiên.
Vấn đề đặt ra trong bài toán đang xét là tìm hiểu thói quen đặt mật khẩu của
người dùng thông qua việc khảo sát những mẫu mật khẩu hay gặp nhất trong một
tập những mật khẩu có sẵn. Qua đó, ta có thể sử dụng những mẫu này để sinh ra
mật khẩu với xác suất trùng khớp cao.
2.1.1 Nguồn dữ liệu và phương pháp phân tích
2.1.1.1 Nguồn dữ liệu
Trong quá trình công tác tôi đã thu thập được số nguồn dữ liệu mật khẩu đến
vài trăm mật khẩu của người Việt, nhưng nguồn dữ liệu này không đủ lớn để đưa ra
những đánh giá về thói quen đặt mật khẩu của người Việt. Vì vậy nguồn dữ liệu mật
khẩu tôi sử dụng để phân tích thống kê trong luận văn này được dùng là nguồn mật
khẩu tiếng Anh được tham khảo từ một số trang .
Tập dữ liệu người dùng: quá trình phân tích sử dụng những bộ dữ liệu về người
dùng để tiến hành phân tích sự liên quan giữa dữ liệu cá nhân của người dùng và
thói quen đặt mật khẩu, như:
1. tên người dùng
22
2. ngày tháng năm sinh
3. số điện thoại.
2.1.1.2 Phương pháp phân tích
2.1.1.2.1 Họ tên người dùng
Họ tên là một trong những thông tin cá nhân về người dùng được sử dụng
nhiều nhất. Ta tiến hành khảo sát chuỗi họ tên người dùng xuất hiện trong mật khẩu.
Theo phân tích từ dữ liệu trên, ta thấy rằng trên 14% người dùng đặt mật khẩu
trong đó có xuất hiện họ hoặc tên hoặc cả họ và tên đầy đủ của mình. Phân tích
cũng cho thấy rằng người dùng thường đặt thêm một số ký tự khác bên cạnh họ và
tên để tạo thành chuỗi mật khẩu, theo thứ tự, những điều chỉnh đó theo thứ tự tần
suất xuất hiện là: (1) một chuỗi số theo sau, vd: huy123; (2) một chuỗi kí tự đặc
biệt, vd: huy_ ;
Hình 4: Tần suất Họ và tên
2.1.1.2.2. Ngày tháng năm sinh
Ngày tháng năm sinh là một thuộc tính cá nhân thường xuyên được yêu cầu
bởi các hệ thống quản lý tài khoản, cũng là một trong những thông tin cá nhân được
23