Download luận văn thạc sĩ ngành công nghệ thông tin với đề tài: Nghiên cứu và xây dựng giải pháp bảo mật và xác thực thư điện tử dựa trên công nghệ mở, cho các bạn làm luận văn tham khảo
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
Giải pháp bảo mật và xác thực thư điện tử dựa trên công nghệ mở
1. i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN QUỐC UY
NGHIÊN CỨU VÀ XÂY DỰNG GIẢI PHÁP
BẢO MẬT VÀ XÁC THỰC THƯ ĐIỆN TỬ
DỰA TRÊN CÔNG NGHỆ MỞ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2016
2. ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN QUỐC UY
NGHIÊN CỨU VÀ XÂY DỰNG GIẢI PHÁP
BẢO MẬT VÀ XÁC THỰC THƯ ĐIỆN TỬ
DỰA TRÊN CÔNG NGHỆ MỞ
Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật Phần mềm
Mã số: 60480103
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Hồ Văn Hương
Hà Nội - 2016
3. iii
LỜI CẢM ƠN
Tôi xin cảm ơn các Thầy, Cô giáo ở Khoa Công nghệ thông tin, Phòng Đào tạo,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã giảng dạy và truyền thụ cho
tôi những kiến thức quý báu trong suốt thời gian tôi học tập và nghiên cứu tại trường.
Tôi xin gửi lời cảm ơn chân thành nhất tới TS. Hồ Văn Hương, người thầy đã
cho tôi những định hướng, tận tình chỉ bảo giúp đỡ, cho tôi những ý kiến rất quý báu
để tôi hoàn thành luận văn tốt nghiệp này.
Tôi cũng xin tỏ lòng biết ơn về sự động viên giúp đỡ của gia đình và bạn bè,
đồng nghiệp, những người luôn quan tâm sát cánh bên tôi và là nguồn động viên khích
lệ, tạo cho tôi có được những điều kiện tốt nhất trong suốt quá trình học tập của mình.
Tôi xin chân thành cảm ơn!
Hà Nội, tháng 12 năm 2016
Học viên
Nguyễn Quốc Uy
4. iv
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân
tôi, không sao chép lại của người khác. Trong toàn bộ nội dung luận văn, những điều
đã được trình bày hoặc là của riêng cá nhân tôi, hoặc là được tổng hợp từ nhiều nguồn
tài liệu. Tất cả các nguồn tài liệu tham khảo được dùng đều có xuất xứ rõ ràng, được
trích dẫn hợp pháp.
Tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỉ luật theo quy định
cho lời cam đoan của mình.
Hà Nội, tháng 12 năm 2016
Học viên
Nguyễn Quốc Uy
5. v
MỤC LỤC
Danh mục các ký hiệu, các chữ viết tắt...................................................................vii
Danh mục các hình vẽ, đồ thị .................................................................................viii
MỞ ĐẦU ....................................................................................................................1
Chương 1: TỔNG QUAN VỀ AN TOÀN, BẢO MẬT THƯ ĐIỆN TỬ..................3
1.1. Hệ thống thư điện tử mã nguồn mở ...............................................................3
1.1.1. Cấu trúc hệ thống thư điện tử..................................................................3
1.1.2. Các giải pháp thư điện tử mã nguồn mở.................................................5
1.2. Các hình thức đe dọa an toàn thông tin khi sử dụng thư điện tử .................7
1.2.1. Hiểm hoạ bị đọc lén..................................................................................7
1.2.2. Vấn đề thu thập thông tin ........................................................................8
1.2.3. Phân tích đường truyền ...........................................................................9
1.2.4. Giả mạo...................................................................................................11
1.2.5. Bom thư ..................................................................................................12
1.3. Cơ sở lý thuyết mật mã .................................................................................13
1.3.1. Mã hóa dữ liệu........................................................................................13
1.3.2. Chữ ký số ................................................................................................21
Chương 2: NGHIÊN CỨU HỆ THỐNG THƯ ĐIỆN TỬ ZIMBRA, GIẢI PHÁP
KÝ SỐ, MÃ HÓA THƯ ĐIỆN TỬ .........................................................................25
2.1. Kiến trúc hệ thống thư điện tử mã nguồn mở Zimbra................................25
2.2. Giải pháp ký số, mã hóa thư điện tử ............................................................30
2.2.1. Giải pháp ký số, mã hóa, xác thực chữ ký, giải mã nội dung thư điện tử
trên nền tảng Web............................................................................................31
2.2.2. Giải pháp ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop.............................................................................................................34
2.3. Phân tích thiết kế và xây dựng ứng dụng ký số, mã hóa thư điện tử..........35
2.3.1. Ký số, mã hóa, xác thực, giải mã nội dung thư điện tử trên nền tảng
Web...................................................................................................................35
2.3.2. Ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng Desktop.....51
2.3.3. Tính năng mật mã của giải pháp...........................................................62
Chương 3: CÀI ĐẶT, THỬ NGHIỆM GIẢI PHÁP KÝ SỐ, MÃ HÓA THƯ
ĐIỆN TỬ..................................................................................................................63
3.1. Mô tả ứng dụng ký số, mã hóa thư điện tử ..................................................63
3.2. Phương pháp, mô hình triển khai thử nghiệm.............................................69
6. vi
3.2.1. Mô hình triển khai thử nghiệm..............................................................69
3.2.2. Phương pháp thử nghiệm ......................................................................69
3.3. Nội dung, kết quả thử nghiệm ......................................................................69
3.3.1. Nội dung các bài đo thử .........................................................................69
3.3.2. Kết quả đánh giá ....................................................................................71
7. vii
Danh mục các ký hiệu, các chữ viết tắt
AES Tiêu chuẩn mã hóa tiên tiến (Advanced Encryption
Standard).
CBC Chế độ liên kết khối mã (Cipher block Chaining)
CFB Chế độ phản hồi mã (Cipher Feed Back)
CMS Cú pháp mã hóa thông điệp
CRL Danh sách hủy bỏ/thu hồi chứng thư số (Certificate
Revocation List)
DNS Domain Name System
ECB Chế độ sách mã điện tử (Electronic code book)
E-Mail Thư điện tử
HTML Ngôn ngữ đánh dấu siêu văn bản (HyperText Markup
Language)
IMAP Internet Message Access Protocol
IV Véc tơ khởi tạo
LDAP Lightweight Directory Access Protocol
MAC Mã xác thực thông báo
MDA Mail Delivery Agent
MIME Multipurpose Internet Mail Extensions
MTA Mail Transfer Agent
MUA Mail User Agent
OFB Chế độ phản hồi đầu ra (Output Feedback)
PKCS Tiêu chuẩn mật mã khoá công khai (Puplic Key
Cryptography Standard) do Phòng thí nghiệm RSA (Mỹ) ban
hành.
PSS Lược đồ ký xác suất (Probabilistic Signature Scheme ).
RFC Request For Comment
RSA Tên của hệ mã do ba nhà toán học Rivest, Shamir và
Adleman sáng tạo ra.
RSASSA Lược đồ ký RSA kèm phụ lục (RSA Signature Scheme with
Appendix).
SHA Thuật toán băm an toàn (Secure Hash Algorithm).
SMTP Simple Mail Transfer Protocol
TDEA Thuật toán mã dữ liệu bội ba (TDEA-Triple Data Encryption
Algorithm)
ZCS Zimbra Collaboration Suite
8. viii
Danh mục các hình vẽ, đồ thị
Hình 1.1: Sơ đồ tổng quan hệ thống thư điện tử .................................................3
Hình 1.2: Mô hình hoạt động của mã dữ liệu DES ........................................... 15
Hình 1.3: Mạng Feistel..................................................................................... 17
Hình 1.4: Mạng SP với 3 vòng mã hóa/giải mã khối 16 bit............................... 18
Hình 1.5: Sơ đồ một vòng mã hóa.................................................................... 19
Hình 1.6: Mô tả quá trình tạo và kiểm tra chữ ký số [3] ................................... 22
Hình 2.1: Kiến trúc hệ thống Zimbra [8] .......................................................... 26
Hình 2.2: Postfix trong môi trường Zimbra ...................................................... 28
Hình 2.3: Hàng đợi tin nhắn trong Zimbra MTA.............................................. 29
Hình 2.4: Mô hình ký số, mã hóa, xác thực chữ ký, giải mã nội dung thư trên
nền tảng Web ................................................................................................... 32
Hình 2.5: Sơ đồ chức năng ứng dụng ký số, mã hóa applet .............................. 33
Hình 2.6: Mô hình ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop............................................................................................................ 34
Hình 2.7: Lược đồ Ký số - Mã hóa nội dung thư điện tử .................................. 35
Hình 2.8: Lược đồ ký số dữ liệu có dấu thời gian............................................. 37
Hình 2.9: Mô hình ký số, mã hóa thư điện tử ................................................... 38
Hình 2.10: Lược đồ Xác thực - Giải mã nội dung thư điện tử........................... 39
Hình 2.11: Lược đồ xác thực ký số có dấu thời gian......................................... 40
Hình 2.12: Mô hình xác thực, giải mã nội dung thư điện tử.............................. 41
Hình 2.13: Lược đồ mã hóa thư điện tử............................................................ 42
Hình 2.14: Mô hình mã hóa thư điện tử............................................................ 43
Hình 2.15: Lược đồ giải mã thư điện tử............................................................ 43
Hình 2.16: Mô hình giải mã thư điện tử............................................................ 44
Hình 2.17: Giao diện soạn thảo thư có tích hợp chức năng bảo mật ................. 49
Hình 2.18: Giải mã nội dung thư ...................................................................... 50
Hình 2.19: Xác thực nội dung thư .................................................................... 50
Hình 2.20: Mô hình ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop............................................................................................................ 51
Hình 2.21: Chức năng phần mềm bảo mật thư điện tử...................................... 51
Hình 2.22: Giao diện ký số và mã hóa dữ liệu.................................................. 54
Hình 2.23: Giao diện xác thực dữ liệu.............................................................. 56
9. ix
Hình 2.24: Giao diện giải mã và xác thực dữ liệu............................................. 56
Hình 2.25: Giao diện ký số nội dung thư điện tử .............................................. 57
Hình 2.26: Giao diện xác thực nội dung thư điện tử ......................................... 57
Hình 2.27: Giao diện quản lý chứng thư số ...................................................... 59
Hình 2.28: Giao diện cấu hình ký số................................................................. 61
Hình 2.29: Giao diện cấu hình hệ thống ........................................................... 61
Hình 3.1: Chọn chứng thư số trong thiết bị....................................................... 63
Hình 3.2: Giao diện ký số và mã hóa nội dung thư........................................... 63
Hình 3.3: Giao diện chứng thực nội dung thư................................................... 64
Hình 3.4: Giao diện giải mã nội dung thư......................................................... 64
Hình 3.5: Giao diện ký số nội dung clipboard .................................................. 65
Hình 3.6: Giao diện ký số, mã hoá nội dung clipboard ..................................... 66
Hình 3.7: Giao diện xác thực nội dung clipboard ............................................. 66
Hình 3.8: Giao diện xác thực, giải mã nội dung clipboard................................ 67
Hình 3.9: Giao diện quản lý chứng thư số ........................................................ 67
Hình 3.10: Giao diện cấu hình hệ thống ........................................................... 68
Hình 3.11: Giao diện ký cấu hình đường dẫn thư viện PKCS#11..................... 68
Hình 3.12: Sơ đồ mô hình thử nghiệm hệ thống bảo mật thư điện tử................ 69
10. 1
MỞ ĐẦU
Trong thời gian gần đây, thư điện tử đã trở thành một công cụ hữu hiệu
trong việc trao đổi thông tin, góp phần quan trọng vào nâng cao hiệu quả công
việc, năng suất lao động, giảm thời gian thực hiện và chi phí hoạt động. Các
thông tin nhạy cảm và quan trọng cũng được trao đổi, lưu trữ dưới hình thức thư
điện tử. Chính vì thế thư điện tử trở thành một mục tiêu tấn công, phá hoại của
tin tặc với nhiều vấn đề liên quan đến mất an toàn thông tin như: Lộ lọt thông tin
bí mật, nhạy cảm; Phát tán thư giả mạo, có nội dung lừa đảo hoặc quảng cáo
không phù hợp; Phát tán, lây lan mã độc, phần mềm quảng cáo trái phép; Chiếm
quyền sử dụng trái phép; Bị lợi dụng để phục vụ cho mục đích xấu.
Vấn đề trên đã gây ảnh hưởng xấu tới việc sử dụng thư điện tử trong hoạt
động quản lý và trao đổi thông tin. Từ những yêu cầu trên vấn đề đặt ra là cần có
phương pháp bảo mật thông tin nhằm đảm bảo an toàn, bảo mật thư điện tử.
Việc tìm ra giải pháp bảo mật dữ liệu, cũng như việc chứng nhận quyền sở hữu
của cá nhân là một vấn đề luôn luôn mới. Bảo mật phải được nghiên cứu và cải
tiến để theo kịp sự phát triển không ngừng của cuộc sống. Vấn đề đặt ra là phải
bảo mật dữ liệu, đảm bảo tin tức truyền đi không bị mất mát hay đánh tráo,
người nhận biết được thông tin mà họ nhận được có chính xác của người gửi hay
không và nội dung có bị thay đổi gì không.
Những câu hỏi được đặt ra là một thách thức rất lớn đối với những người
nghiên cứu bảo mật. Có rất nhiều cách thức để bảo vệ thông tin trên đường
truyền, nhiều giải pháp được đề xuất như: Sử dụng mật khẩu, mã hóa dữ liệu,
hay giấu sự tồn tại của dữ liệu. Cùng với sự phát triển của các biện pháp bảo mật
ngày càng phức tạp, thì các hình thức tấn công ngày càng tinh vi hơn, do đó vấn
đề là làm sao đưa ra một giải pháp thích hợp và có hiệu quả theo thời gian và sự
phát triển mạnh mẽ của khoa học kỹ thuật.
Các cơ chế an toàn sử dụng mật mã đã trở thành một nhân tố cốt lõi của
hệ thống thông tin nói chung và thư điện tử nói riêng. Các cơ chế mật mã được
phát triển để giải quyết các vấn đề về an toàn cho hệ thống thư điện tử, bao gồm
[3]:
1. Xác thực: đảm bảo ngăn chặn giả mạo nguồn gốc thông tin;
2. Bí mật dữ liệu: dữ liệu được mã hóa để đảm bảo không thể xem/đọc
được bởi bên thứ 3 không được phép;
3. Toàn vẹn dữ liệu: khi thông tin bị sửa đổi trái phép, người sở hữu thông
tin sẽ có khả năng phát hiện sự thay đổi này;
11. 2
4. Chống chối bỏ: chống việc chối bỏ cái mà mình đã thỏa thuận và ký
nhận.
Các vấn đề trên được phát triển do sự xuất hiện của các tấn công như nghe
lén, giả mạo, vi phạm tính bí mật dữ liệu, vi phạm tính toàn vẹn dữ liệu, từ chối
việc ký nhận. Nếu không có mật mã, không thể xây dựng được các cơ chế an
toàn để đảm bảo chống lại các tấn công này.
Với mong muốn nghiên cứu tìm hiểu giải pháp bảo đảm an toàn cho thư
điện tử sử dụng mật mã em đã lựa chọn luận văn “Nghiên cứu và xây dựng
giải pháp bảo mật và xác thực thư điện tử dựa trên công nghệ mở”.
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin, các hệ thống
phần mềm mã nguồn mở ngày càng được sử dụng phổ biến. Ngày 05 tháng 12
năm 2014, Bộ Thông tin và Truyền thông ban hành Thông tư số 20/2014/TT-
BTTTT quy định về các sản phẩm phần mềm nguồn mở được ưu tiên mua sắm,
sử dụng trong cơ quan, tổ chức nhà nước trong đó khuyến nghị sử dụng hệ thống
phần mềm thư điện tử máy chủ gồm: Zimbra (phiên bản 8.5 trở về sau), OBM
(phiên bản 2.5.5 trở về sau), Sendmail (phiên bản 8.13 trở về sau). Trong khuôn
khổ nghiên cứu của luận văn, hệ thống phần mềm thư điện tử em lựa chọn sử
dụng để tích hợp giải pháp bảo mật và xác thực là Hệ thống thư điện tử mã
nguồn mở Zimbra. Do hệ thống thư điện tử mã nguồn mở Zimbra cung cấp cả
hệ thống phần mềm thư điện tử máy chủ và phần mềm thư điện tử máy trạm.
Bố cục của luận văn gồm các phần sau:
Mở đầu
Chương 1: Tổng quan về an toàn, bảo mật thư điện tử
Chương 2: Nghiên cứu hệ thống thư điện tử zimbra, giải pháp ký số, mã
hóa thư điện tử
Chương 3: Cài đặt, thử nghiệm giải pháp ký số, mã hóa thư điện tử
Kết luận và Kiến nghị
Giá trị của luận văn
Luận văn đã trình bày tổng thể các nghiên cứu về hệ thống thư điện tử mã
nguồn mở Zimbra, đề xuất xây dựng được ứng dụng để đảm bảo tính bí mật, xác
thực và toàn vẹn nội dung thư điện tử. Sản phẩm của đề tài có tính ứng dụng
thực tiễn, có thể sử dụng trong lĩnh vực kinh tế - xã hội. Ngoài ra Mô hình giải
pháp này có thể nghiên cứu để đưa vào ứng dụng trong xác thực giao dịch điện
tử của nhiều hoạt động nghiệp vụ khác nhau đang được triển khai tại Việt Nam.
12. 3
Chương 1: TỔNG QUAN VỀ AN TOÀN, BẢO MẬT THƯ ĐIỆN TỬ
1.1. Hệ thống thư điện tử mã nguồn mở
1.1.1. Cấu trúc hệ thống thư điện tử
Thư điện tử (Electronic Mail) hay còn gọi tắt là E-Mail, là dịch vụ được
triển khai trên các mạng máy tính cho phép người dùng có thể trao đổi thư từ với
nhau mà không phải dùng đến giấy tờ như trong hệ thống thư tín bưu chính
thông thường. Thư điện tử là một thông điệp gửi từ máy tính này đến máy tính
khác trên mạng máy tính và mang nội dung cần thiết từ người gửi đến người
nhận. Thư điện tử không những có thể truyền gửi được chữ mà nó còn có thể gửi
với tệp đính kèm như hình ảnh, các công văn tài liệu, âm thanh, phim, các
chương trình phần mềm.
Hệ thống Mail Server là một hệ thống tổng thể bao gồm nhiều thành phần
hoạt động tương tác với nhau. Mỗi thành phần bản thân phục vụ các dịch vụ
khác nhau, nhưng đồng thời các kết quả lại được đưa đến các thành phần khác
để xử lý tiếp theo. Hình 1.1 dưới đây là mô hình của hệ thống Mail Server và sự
tương tác giữa các thành phần bên trong [12]:
Hình 1.1: Sơ đồ tổng quan hệ thống thư điện tử
Hầu hết hệ thống thư điện tử bao gồm ba thành phần cơ bản là MUA,
MTA và MDA.
MTA(Mail Transfer Agent)
13. 4
Khi các bức thư được gửi đến từ MUA, MTA có nhiệm vụ nhận diện
người gửi và người nhận từ thông tin đóng gói trong phần header của thư và
điền các thông tin cần thiết vào header. Sau đó MTA chuyển thư cho MDA để
chuyển đến hộp thư ngay tại MTA, hoặc chuyển cho Remote-MTA.
Việc chuyển giao các bức thư được các MTA quyết định dựa trên địa chỉ
người nhận tìm thấy trên phong bì.
- Nếu nó trùng với hộp thư do MTA (Local-MTA) quản lý thì bức thư
được chuyển cho MDA để chuyển vào hộp thư.
- Nếu địa chỉ gửi bị lỗi, bức thư có thể được chuyển trở lại người gửi.
- Nếu không bị lỗi nhưng không phải là bức thư của MTA, tên miền
được sử dụng để xác định xem Remote-MTA nào sẽ nhận thư, theo các
bản ghi MX trên hệ thống tên miền.
- Khi các bản ghi MX xác định được Remote-MTA quản lý tên miền đó
thì không có nghĩa là người nhận thuộc Remote-MTA. Mà Remote-
MTA có thể đơn giản chỉ trung chuyển (relay) thư cho một MTA khác,
có thể định tuyến bức thư cho địa chỉ khác như vai trò của một dịch vụ
domain ảo(domain gateway) hoặc người nhận không tồn tại và
Remote-MTA sẽ gửi trả lại cho MUA gửi một cảnh báo.
MDA (Mail Delivery Agent)
Là một chương trình được MTA sử dụng để đẩy thư vào hộp thư của
người dùng. Ngoài ra MDA còn có khả năng lọc thư, định hướng thư... Thường
là MTA được tích hợp với một MDA hoặc một vài MDA.
MUA (Mail User Agent)
MUA là chương trình quản lý thư đầu cuối cho phép người dùng có thể
đọc, viết và lấy thư về từ MTA.
- MUA có thể lấy thư từ Mail Server về để xử lý (sử dụng giao thức
POP) hoặc chuyển thư cho một MUA khác thông qua MTA (sử dụng
giao thức SMTP).
- Hoặc MUA có thể xử lý trực tiếp thư ngay trên Mail Server (sử dụng
giao thức IMAP).
Đằng sau những công việc vận chuyển thì chức năng chính của MUA là
cung cấp giao diện cho người dùng tương tác với thư, gồm có:
- Soạn thảo, gửi thư.
- Hiển thị thư, gồm cả các tệp đính kèm.
- Gửi trả hay chuyển tiếp thư.
14. 5
- Gắn các tệp vào các thư gửi đi (Text, HTML, MIME v.v…).
- Thay đổi các tham số(ví dụ như server được sử dụng, kiểu hiển thị thư,
kiểu mã hoá thư v.v…).
- Thao tác trên các thư mục thư địa phương và ở đầu xa.
- Cung cấp số địa chỉ thư (danh bạ địa chỉ).
- Lọc thư.
1.1.2. Các giải pháp thư điện tử mã nguồn mở
Hiện nay trên thế giới đã xuất hiện rất nhiều sản phẩm xây dựng một hệ
thống Mail Server. Có nhiều sản phẩm với giá cả rất rẻ (thậm chí miễn phí), nhỏ
gọn, cài đặt và quản trị đơn giản, như WorkGroupMail, Surge Mail Server,
Kerio Mail Server. Cũng có những sản phẩm lớn, giá thành cao, tính năng phong
phú, đáp ứng được sự ổn định và an toàn như Mail Exchange của Microsoft,
Merak Mail Server.
Trong thế giới mã nguồn mở hiện nay, đã có rất nhiều hệ thống truyền tải
thư điện tử MTA (Mail Transfer Agent) được phát triển. Nổi tiếng và phổ biến
trong số đó gồm có: Zimbra, Sendmail, Qmail, Postfix, Exim, Courier. Mỗi
MTA đều có những ưu điểm và nhược điểm riêng [12]:
Zimbra
Zimbra, hệ thống thư điện tử thế hệ mới, được xây dựng bởi cộng đồng
phầm mềm tự do nguồn mở và công ty VMWare, đáp ứng các nhu cầu về trao
đổi thư tín điện tử và hỗ trợ làm việc cộng tác kỷ nguyên hậu PC. Ứng dụng
nguồn mở này có thể áp dụng cho các doanh nghiệp, nhà cung cấp dịch vụ, các
tổ chức giáo dục, hay trong môi trường chính phủ..., mang tới cho người dùng
rất nhiều lợi ích trong việc quản lý và chia sẻ thư tín, lịch công tác, sổ địa chỉ, tài
liệu. Với hiệu năng hoạt động cao, các thao tác gửi, nhận, tải dữ liệu diễn ra hết
sức nhanh chóng góp phần tiết kiệm thời gian cho người dùng. Đồng thời, người
dùng cũng không cần phải lo lắng về việc quản trị hệ thống bởi mọi thao tác đều
hết sức đơn giản và tiện lợi.
Một điều rất đáng quan tâm của hệ thống thư điện tử Zimbra đó là công
nghệ trên mã nguồn mở cho phép người dùng tiết kiệm được tối đa chi phí mà
vẫn đảm bảo được nguyên tắc tôn trọng bản quyền.
Sendmail
Sendmail (http://www.sendmail.org) là MTA đơn giản và lâu đời nhất
trên các dòng Unix thời xưa. Ngày nay, trên các hệ thống Linux, đặc biệt là các
sảm phẩm của RedHat, Sendmail vẫn được cài đặt là MTA mặc định cho hệ
15. 6
thống. Ngày nay, Sendmail đa được thương mại hóa bên cạnh sản phẩn miễn phí
và vẫn được tiếp tục duy trì, phát triển. Tuy nhiên, vì được thiết kế theo cấu trúc
khối và ảnh hưởng từ cấu trúc cũ, nên Sendmail chưa đạt được tính năng ổn định
và bảo mật của một MTA như mong muốn.
Qmail
Qmail được viết bởi Bernstein, là một MTA dành cho hệ điều hành tựa
Unix, bao gồm Linux, FreeBSD, Sun Solaris. Qmail ra đời như một tất yếu thay
thế cho Sendmail và các yếu điểm của nó. Vì vậy, Qmail ngay từ ban đầu đã
được thiết kế đơn giản, module hóa với tiêu chí bảo mật được đặt lên rất cao.
Đồng thời, Qmail là một MTA hiện đại nên hỗ trợ tốt các kiểu định dạng mới
hiện nay như định dạng hòm thư Maildir…Do Qmail được thiết kế module hóa
và tối ưu hóa các tính năng ngay từ đầu, nên nó có tốc độ thực thi rất nhanh và
ổn định.
Postfix
Weitse Venema, tác giả của các phần mềm miễn phí nổi tiếng như TCP
Wrappers, SATAN và Logdaemon, ông không hài lòng khi sử dụng các MTA
hiện có (bao gồm cả Qmail), vì vậy, ông đa viết ra Postfix
(http://www.postfix.org). Postfix là một MTA mới, có khả năng thực thi cao,
thừa kế cấu trúc thiết kế tốt từ Qmail, trong khi đó vẫn giữ được tính tương thích
tối đa với Sendmail. So sánh với Qmail, Postfix có kích thước lớn hơn, phức tạp
hơn, trong khi đó lại kém bảo mật, kém tin cậy và chạy chậm hơn. Tuy Postfix
cũng được thiết kế theo cấu trúc module, nhưng các module của Postfix chạy
dưới quyền của cùng một người dùng hệ thống, vì vậy sự hỏng hóc của một
module có thể ảnh hưởng đến toàn bộ hệ thống. Xét về tổng thể, Postfix là một
MTA tốt. Nếu vấn đề bảo mật và khả năng thực thi của hệ thống không được đòi
hỏi quá cao, người quản trị có thể chọn và sử dụng Postfix.
Exim
Philip Hazel đa phát triển Exim (http://www.exim.org) tại trường đại học
Cambridge. Nó được thiết kế theo xu hướng nhỏ và đơn giản nhưng vẫn đảm
bảo các tính năng. Tuy nhiên, Exim vẫn được thiết kế theo cấu trúc khối, và hai
yếu tố quan trọng với các MTA hiện đại là bảo mật và khả năng thực thi lại
không được coi trọng. Hiện nay, Exim là MTA được lựa chọn và cài đặt mặc
định trên các phiên bản phân phối Linux dựa theo Debian, ngoài ra nó không
được sử dụng rộng rãi.
16. 7
Như vậy, tùy theo mục đích và nhu cầu sử dụng, người quản trị sẽ lựa
chọn một MTA cho hệ thống của mình, ngoài ra, với mỗi điều kiện và môi
trường khác nhau, mỗi MTA lại có mức độ phù hợp khác nhau. Với các ưu điểm
vượt trội rõ rệt của Zimbra, đây là một lựa chọn phù hợp cho các doanh nghiệp,
nhà cung cấp dịch vụ, các tổ chức giáo dục, hay trong môi trường chính phủ.
1.2. Các hình thức đe dọa an toàn thông tin khi sử dụng thư điện tử
1.2.1. Hiểm hoạ bị đọc lén
Cũng như đối với các ứng dụng khác trên mạng (các phiên đăng nhập từ
xa, tải thông tin sử dụng ftp, hội thoại trực tuyến, ...), thư tín điện tử cũng có thể
bị đọc lén. Nhưng ai là đối tượng muốn đọc lén nội dung thư của người dùng?
Câu trả lời phụ thuộc vào họ là ai, họ đang làm gì, và ai quan tâm đến việc họ
đang làm. Dưới đây là một vài đối tượng có thể đọc lén thư của người dùng [12].
Nguy cơ bị đọc lén từ chính phủ nước ngoài
Các tổ chức tình báo quân sự nước ngoài là các đối tượng nghe trộm với
những thiết bị tinh vi hiện đại nhất. Đọc trộm nội dung thư cá nhân là nghề của
họ. Khi bắt đầu thời kỳ chiến tranh lạnh, mỗi năm họ đã đầu tư nhiều tỷ Đô la
cho việc thu thập, biên dịch và phân tích dữ liệu của đối phương gửi qua mạng.
Hiện tại khi thời kỳ chiến tranh lạnh đã kết thúc, nhưng không có gì có thể
khẳng định họ không thực hiện những gì họ đã từng làm.
Mối quan hệ giữa quân đội Mỹ và các tổ chức tình báo là một một quan
hệ “mờ ám”, có rất nhiều ứng dụng được xây dựng bởi quân đội Mỹ hiện đang
được sử dụng trong lĩnh vực thương mại. Ở một số nước, mục tiêu thu thập tin
tức của họ là nhằm vào các công ty nước ngoài, thông tin thu thập được sẽ được
sử dụng làm công cụ cạnh tranh cho các công ty thuộc nước bản địa. Nhật Bản
và Pháp là hai nước nổi tiếng nhất trong việc “phạm tội” theo kiểu này, tất
nhiên các nước phát triển khác cũng hoàn toàn có thể làm được điều đó. Ví dụ
NSA đã từng bị buộc tội là có hành vi chặn các cuộc điện thoại giữa hai nước
Châu Âu để ăn cắp thông tin và bán cho các đối tượng cạnh tranh khác.
Nguy cơ bị đọc lén từ chính phủ trong nước
Việc sử dụng gián điệp công nghệ đối với công dân nước mình nhiều nhất
được biết đến là các nước như Trung Quốc, Bắc Triều Tiên, Cuba. Đối với Pháp,
chính phủ chỉ cho phép mã hoá thông tin trao đổi giữa các công dân với nhau
khi thuật toán mã và khoá được cấp bởi cơ quan có thẩm quyền. Còn đối với Đài
Loan và Hàn Quốc thì họ yêu cầu các công ty loại bỏ việc sử dụng mã hoá thông
tin trong các cuộc kết nối thoại, dữ liệu và FAX.
17. 8
Trong bản thân nước Mỹ, nhiều tổ chức thuộc Chính phủ cũng quan tâm
đến việc đọc trộm các thông tin cá nhân được trao đổi qua thư điện tử. Chẳng
hạn đối với FBI, các tổ chức dính dáng đến chính trị, v.v...
Nguy cơ bị đọc lén từ đối thủ cạnh tranh thương mại
Việc kinh doanh có thể bị do thám bởi các công ty cạnh tranh. Các thông
tin đối thủ cần quan tâm ở đây có thể là danh sách khách hàng, nội dung dự án,
kế hoạch triển khai, tiềm lực tài chính, v.v… Ví dụ Coca-Cola có thể trả hậu
hĩnh cho ai biết được kế hoạch quảng cáo mới của Pepsi, hãng Ford cũng có thể
làm như vậy trong việc biết được thông tin về mẫu xe mới của một hãng sản
xuất xe hơi khác.
Nguy cơ bị đọc lén từ tội phạm
Các đối tượng phạm tội có thể thu thập những thông tin có giá trị từ thư
điện tử, đặc biệt là loại tội phạm kinh tế. Cảnh sát ở nhiều nước đã phát hiện ra
việc bọ điện tử được gắn bất hợp pháp trên các kênh điện thoại nhằm giám sát
và nghe trộm thông tin về số thẻ tín dụng được truyền qua đường điện thoại.
Không có lý do nào để có thể nói rằng chúng không làm tương tự đối với thư tín
điện tử khi các thông điệp được truyền trên mạng.
Nhiều công ty đã mở giao dịch điện tử mua bán qua mạng Internet, và đã
có nhiều mặt hàng được mua bán qua mạng thông qua thẻ tín dụng. Sẽ là rất dễ
dàng để xây dựng và thiết lập một ứng dụng chạy tự động quét các thông điệp
trên máy tính người sử dụng nhằm tìm kiếm các thông tin về số thẻ tín dụng
trong các phiên giao dịch điện tử nói trên.
Nguy cơ bị đọc lén từ bạn bè, người thân
Cuối cùng, chính bạn bè, người thân của người dùng cũng có thể là “gián
điệp”. Sử dụng thuật ngữ “gián điệp” trong trường hợp này có thể là chưa được
chính xác, nhưng những đối tượng trên cũng cần được quan tâm khi thư tín điện
tử được sử dụng để trao đổi các thông tin riêng tư. Một ví dụ đơn giản, trong
môi trường làm việc ở một văn phòng, đồng nghiệp hoàn toàn có thể quan tâm
đến những thông tin cá nhân được trao đổi qua thư tín điện tử của chúng ta mà
không chỉ dừng lại ở mục đích tò mò.
1.2.2. Vấn đề thu thập thông tin
Vấn đề lớn nhất khi muốn đọc một thông điệp được gửi qua đường thư tín
điện tử của một ai đó là việc tìm nó giữa một biển các thông điệp thư tín điện tử
khác trên mạng. Công việc này được người ta ví như việc “mò kim đáy biển”.
Tuy là một công việc khó khăn nhưng hiện vẫn có các cơ quan hoặc tổ chức
18. 9
được sinh ra để làm công việc đó. Chẳng hạn, một trong các công việc chính của
NSA, NSA giám sát các luồng dữ liệu máy tính vào, ra nước Mỹ và giữa các
nước khác với nhau.
Nhiệm vụ thu thập thông tin từ các thông điệp thư tín điện tử được ví như
nhiệm vụ của một chàng Herculean. Năm 1994, theo thống kê dữ liệu máy tính
vào ra nước Mỹ đã đạt con số nhiều gigabytes, với hàng tỷ thông điệp được trao
đổi trong một tháng. Trong đó gồm thư tín điện tử, thông tin đăng nhập từ xa,
dịch vụ truyền tệp, dữ liệu “chat” thời gian thực, v.v... Để lưu trữ được lượng dữ
liệu trên đã là một công việc lớn chứ chưa nói gì đến việc đọc và phân tích
chúng [12].
Tuy nhiên đối với các thông tin cần quan tâm, các máy tính có thể thực
hiện việc sàng lọc từ dòng dữ liệu trong thời gian thực. NSA hoàn toàn có thể
thực hiện việc đưa luồng dữ liệu vào ra nước Mỹ vào một hệ thống máy tính
mạnh, hệ thống máy tính này sẽ thực hiện việc tìm kiếm dữ liệu mà NSA quan
tâm. Hệ thống máy tính này có thể tìm kiếm dữ liệu theo từ khoá, giả sử các
thông điệp thư tín điện tử có chứa từ khoá “nuclear” (nguyên tử),
“cryptography” (mật mã), hay “assassination” (cuộc ám sát), sẽ được lưu giữ lại
phục vụ cho mục đích phân tích sau.
Ngoài ra còn rất nhiều công nghệ khác được hệ thống máy tính của NSA
sử dụng. Họ có thể tìm kiếm dữ liệu từ một cá nhân hoặc một tổ chức cụ thể. Họ
cũng có thể tìm kiếm dữ liệu theo một cấu trúc cho trước. Tóm lại NSA được
đầu tư rất nhiều tiền cho vấn đề này, họ đã và đang thực hiện công việc trên
trong một thời gian dài.
Điều quan trọng nhất là họ thực hiện công việc trên trong thời gian thực,
và không nhiều lắm dữ liệu được lưu. Họ hy vọng rằng dữ liệu mà họ thu thập
trong ngày nào sẽ được phân tích luôn trong ngày đó. Việc thu thập dữ liệu sẽ
trở thành vô giá trị nếu dữ liệu đó không được phân tích, bởi vậy vấn đề khăn
chính là việc phân tích dữ liệu. NSA có thể kết hợp rất nhiều công nghệ nhằm
phân tích dữ liệu mà họ quan tâm, như mối quan hệ giữa từ khoá nói lên dữ liệu
cần tìm, đối tượng gửi nhận thông tin, v.v...
1.2.3. Phân tích đường truyền
Trong trường hợp nội dung thư được mã hoá, đối tượng đọc trộm (NSA
chẳng hạn) không thể đọc nội dung thư điện tử, họ có thể thu thập được một
lượng thông tin không nhỏ thông qua việc phân tích đường truyền.
19. 10
Việc phân tích đường truyền dựa vào một trong các yếu tố như: người gửi
gửi thư điện tử cho ai, người nhận nhận thư điện tử từ ai, độ dài của các thông
điệp thư điện tử, hoặc khi nào thư điện tử được gửi. Có rất nhiều thông tin ẩn
chứa trong các yếu tố kiểu như vậy nếu họ biết cách khai thác.
Trước hết chúng ta hãy thử tìm hiểu lĩnh vực cung cấp dịch vụ điện thoại.
Hầu hết các quốc gia châu Âu không ghi chiết khoản mục trong các hoá đơn
điện thoại như đối với các công ty của Mỹ [12]. Các hoá đơn điện thoại ở châu
Âu chỉ liệt kê số lượng cuộc đàm thoại đã sử dụng qua một thuê bao cụ thể,
nhưng không ghi lại thời điểm cũng như địa điểm của các cuộc đàm thoại đó.
Đối với các hoá đơn thanh toán điện thoại của Mỹ, trong đó liệt kê chi tiết tất cả
các cuộc đàm thoại đối với một số thuê bao: thời điểm thực hiện, số được gọi
đến, và thời lượng cuộc gọi. Từ những thông tin các cuộc đàm thoại, các cơ
quan có chức năng của Mỹ có thể phân loại các đối tượng cần theo dõi hoặc đưa
vào danh sách các đối tượng cần đề phòng.
Tương tự như vậy đối với các thông điệp thư tín điện tử. Thậm chí khi các
thông điệp thư tín điện tử đã được mã hoá, phần đầu của thông điệp thư tín điện
tử bao giờ cũng thể hiện rõ đối tượng gửi, đối tượng nhận, thời điểm gửi, và độ
dài của thông điệp. Trên thực tế đã có những dịch vụ thư tín điện tử “ẩn danh”,
nhằm che dấu đi những thông tin chúng ta vừa liệt kê ở trên. Tuy nhiên theo các
nhà phân tích về lĩnh vực này trên thế giới đã cho rằng điều đó chẳng có nghĩa lý
gì đối với các đối tượng nghe trộm cỡ NSA.
Một ví dụ cụ thể hơn, giả sử Eve nghi ngờ Alice là người ủng hộ chủ
nghĩa khủng bố. Trong khi đó tất cả thư tín điện tử của Alice được mã hoá, bởi
vậy Eve không thể đọc được nội dung của các thông điệp thư tín điện tử được
gửi nhận bởi Alice. Tuy nhiên, Eve có thể thu thập tất cả các thông tin trên
đường truyền của Alice. Eve biết tất cả các địa chỉ thư điện tử của những người
mà Alice thường liên lạc. Alice thường gửi các thông điệp thư tín điện tử dài cho
một người có tên là Bob, người thường phúc đáp ngay sau đó với một thông
điệp rất ngắn. Có thể Alice đã gửi Bob các mệnh lệnh và anh ta phúc đáp lại việc
đã nhận được các lệnh đó. Một ngày nào đó bỗng dưng có một bước nhảy vọt
trong việc trao đổi thư điện tử giữa Alice và Bob. Có thể họ đang lập một kế
hoạch gì đó. Và sau đó là sự im lặng, không có một thông điệp thư điện tử nào
được trao đổi qua lại giữa họ. Ngày tiếp theo toà nhà chính phủ bị đánh bom.
Điều này đã đủ làm bằng chứng để bắt giữ họ chưa còn tuỳ thuộc vào nhiều
bằng chứng khác, nhưng ít nhất chúng đã đem lại cho các cơ quan quan tâm đến
lĩnh vực này không ít thông tin quý giá.
20. 11
Khủng bố không phải là đối tượng duy nhất bị theo dõi thông qua việc
phân tích đường truyền. Việc phân tích đường truyền trao đổi thông điệp thư tín
điện tử cũng là một công cụ để FBI căn cứ trong việc điều tra tội phạm buôn bán
ma tuý.
Trong lĩnh vực kinh tế xã hội, một công ty sẽ nghĩ sao khi một thành viên
trong công ty đó thường xuyên liên lạc thư điện tử với một đối thủ cạnh tranh.
Tóm lại việc phân tích đường truyền thư điện tử là một công cụ thông
minh trong việc ăn cắp thông tin cá nhân.
1.2.4. Giả mạo
Giả mạo là một vấn đề an toàn khác trên mạng máy tính nói chung. Khái
niệm ngắn nhất về giả mạo là việc người này giả danh là một người khác. Việc
giả mạo có thể xuất phát từ mục đích trêu đùa, làm mất danh dự, bôi nhọ người
khác hoặc là công cụ để lừa gạt.
Hàng ngày có rất nhiều thông điệp thư tín được gửi một cách tự động đến
hộp thư của người sử dụng trên mạng Internet, với chủ đề kiểu như “tôi là người
thích làm phiền người khác và tôi tự hào về điều đó” hoặc với chủ đề như một
khẩu hiệu trong việc phân biệt chủng tộc, phân biệt giới tính. Nội dung của các
thông điệp thư tín điện tử này hoàn toàn không có ý nghĩa gì. Sau đó một thời
gian lại có một thư khác cũng xuất phát từ cùng một tài khoản với lời xin lỗi về
việc đã gửi thư điện tử thứ nhất. Nói chung không nên tin vào bất kỳ điều gì
trong các thông điệp thư tín kiểu như vậy, đấy chỉ là một trò trêu đùa trên mạng.
Một kiểu giả mạo chúng ta có thể lấy ví dụ như kiểu tấn công của kẻ thứ
ba trong mật mã [12]. Ví dụ, Bob và Alice hợp tác với nhau trong một dự án nào
đó, và họ thương xuyên trao đổi thông tin với nhau qua thư điện tử. Eve giả
danh là Bob gửi thư điện tử cho Alice và nói rằng tài khoản thư điện tử trước
đây đã bị huỷ bỏ. Tương tự như vậy đối với Bob và nếu cả Bob và Alice đều tin
vào nội dung thư điện tử nhận được thì mọi liên hệ giữa Alice và Bob được thực
hiện thông qua người thứ ba là Eve. Khi đó Eve sẽ biết mọi thông tin về dự án
mà Bob và Alice đang hợp tác. Eve sẽ là người đánh cắp thông tin trao đổi giữ
Bob và Alice chừng nào Bob và Alice chưa trao đổi trực tiếp hoặc thông qua
điện thoại.
Hiểm hoạ mạo danh có thể được khắc phục thông qua việc sử dụng chữ
ký điện tử. Với chữ ký điện tử Alice (trong ví dụ trên) hoàn toàn có thể kiểm tra
được những thông điệp thư tín điện tử nào là thật sự của Bob. Và cũng không ai
có thể mạo danh Alice để gửi các thông điệp điện tử cho người khác.
21. 12
1.2.5. Bom thư
Nếu người dùng đang sử dụng thư điện tử, họ có thể đã từng nhận được
một số thông điệp thư điện tử được gửi một cách tự nguyện từ một địa chỉ nào
đó tới mà chưa được sự cho phép của họ, những thông điệp thư điện tử đó được
gọi là spam. Spam là một kiểu thư rác trên Internet, spam được sử dụng cho rất
nhiều mục đích: quảng cáo, quấy rối, v.v...
Nếu là một người mới sử dụng Internet có thể người dùng chỉ nhận được
một số ít thông điệp điện tử không mong muốn như trên. Nhưng khi người dùng
đã sử dụng Internet được một vài năm họ có thể đã cảm thấy rất khó chịu khi
nhận được hàng loạt thư điện tử mà mình không hề mong muốn.
Dưới đây là một số kiểu thư điện tử thường xuyên xuất hiện trong hộp thư
của họ:
- Các thông điệp điện tử được gửi từ các công ty thương mại nào đó mà
họ chưa hề có mối quan hệ trước đây.
- Thư điện tử có mục đích quảng cáo cho các sản phẩm hoặc dịch vụ bất
hợp pháp, mờ ám hoặc thậm chí là có mục đích đánh lừa người nhận.
- Các thư điện tử được gửi từ một địa chỉ không rõ ràng.
- Các thư không hề có địa chỉ để người nhận có thể phúc đáp
Nếu họ đã từng nhận được một mẩu bom thư nào đó, có thể họ đã có cảm
giác bối rối, và tự mình đặt ra những câu hỏi như: thông điệp này là gì vậy? Nó
được gửi từ đâu đến và bằng cách nào những người gửi thư có được địa chỉ hộp
thư của mình?
Khi những băn khoăn của mình vừa qua đi thì người dùng đã nhận được
liên tiếp các thư rác tiếp theo, và như vậy chúng đã gây nên sự bực mình cho
bạn. Có thể, người dùng sẽ viết thư than phiền với người gửi thư rác, nhưng sự
bực mình của người dùng sẽ tăng lên khi biết thư điện tử than phiền của mình sẽ
không đến được đối tượng mình cần gửi, vì kẻ gửi thư rác thường nguỵ trang
hoặc dựng giả một hộp thư nào đó khi gửi cho họ.
Một số loại bom thư [12]:
- Thư điện tử thương mại tự nguyện (UCE - Unsolicited Commercial
Email): là các thông điệp thư điện tử mà người sử dụng nhận được ngoài ý
muốn, với nội dung nhằm quảng cáo cho một sản phẩm hay một dịch vụ nào đó.
Loại bom thư này còn được gọi là “Junk mail”.
22. 13
- Thư điện tử gửi hàng loạt (UBE - Unsolicited Bulk Email): được biết
đến như các thông điệp điện tử được gửi với số lượng lớn cho hàng nghìn thậm
chí hàng triệu người nhận. UBE có thể được sử dụng cho mục đích thương mại,
trong trường hợp đó nó cũng là UCE. Nhưng nó cũng có thể được sử dụng cho
nhiều mục tiêu khác, như vận động bầu cử trong lĩnh vực chính trị, hay chỉ đơn
giản là gây rối hệ thống thư điện tử.
- Các thông điệp thư điện tử kiếm tiền nhanh (MMF - Make Money Fast):
thường các thông điệp này là một chuỗi các thư cùng một mẫu. Nội dung của
các thông điệp thư điện tử kiểu này gợi ý người nhận rằng họ có thể trở nên giàu
có nếu thực hiện theo các bước như:
- Hãy gửi tiền cho người có tên đầu tiên trong danh sách (danh sách được
gửi kèm theo thư).
- Loại bỏ tên của người đó, bổ sung tên của mình vào cuối danh sách và
chuyển thông điệp đó cho người khác.
Các thông điệp thư điện tử MMF được xem là trò sổ số bất hợp pháp ở
nước Mỹ.
Các tấn công sự nổi tiếng: là các thông điệp thư điện tử mà người sử dụng
cho là nó được gửi từ một người hoặc một tổ chức cụ thể, nhưng thực tế nó lại
được gửi từ một địa chỉ nào đó khác. Mục đích của các thông điệp điện tử kiểu
này không phải nhằm quảng cao cho sản phẩm hay dịch vụ, mà nhằm mục đích
làm cho người nhận giận người gửi xuất hiện trong thư.
1.3. Cơ sở lý thuyết mật mã
1.3.1. Mã hóa dữ liệu
Khái quát về thuật toán mã dữ liệu
Trong lĩnh vực bảo vệ thông tin, các thuật toán mật mã được sử dụng để
giải quyết ba vấn đề cơ bản: bảo mật dữ liệu, xác thực nguồn gốc và đảm bảo
tính toàn vẹn của dữ liệu [1].
Các thuật toán mã hóa dữ liệu, đó là những thuật toán biến đổi dữ liệu rõ
(tức ở dạng đọc hiểu, được gọi là bản rõ-plaintext hay cleartext) sang một dạng
mà người không có thẩm quyền sẽ không thể đọc hiểu (được gọi là bãn mã-
ciphertext). Quá trình biến đổi này được gọi là mã hoá, quá trình ngược lại, từ
bản mã tìm ra bản rõ được gọi là giải mã.
Để thực hiện mã hoá và giải mã người gửi cũng như người nhận cần sở
hữu một yếu tố bí mật được gọi là khoá (tương ứng ký hiệu là 1k và 2k ). Gọi M
23. 14
và C tương ứng là bản rõ và bản mã, 1kE và 2kD tương ứng là phép mã hoá và giải
mã, khi đó các quá trình mã hoá và giải mã được viết dưới dạng:
1
2
( )
( )
k
k
E M C
D C M
Căn cứ vào quan hệ giữa khoá mã hoá và khoá giải mã, người ta phân biệt
hai loại thuật toán mật mã: Thuật toán mã đối xứng và thuật toán mã phi đối
xứng.
- Trong thuật toán mã đối xứng, khoá giải mã 2k được tính ra từ khoá
mã hoá 1k (trường hợp riêng thì 1 2k k ), khóa phải được giữ bí mật và
chỉ biết bởi người gửi và người nhận. Ví dụ: thuật toán TDEA, thuật
toán AES,…
- Trong thuật toán mã phi đối xứng khóa mã và khóa giải mã khác nhau,
biết khoá mã hoá 1k , không thể tính ra được khoá giải mã 2k theo
nghĩa độ phức tạp tính toán, khóa giải mã (hay khóa riêng) phải được
giữ bí mật duy nhất bởi người sử dụng. Ví dụ: thuật toán RSA, thuật
toán Elgamal, v.v…
Thuật toán mã đối xứng lại được chia thành hai loại: thuật toán mã dòng
và thuật toán mã khối. Thuật toán mã dòng thực hiện mã hoá từng ký tự của bản
rõ, trong khi thuật toán mã khối chia bản rõ rõ thành từng khối có độ dài cố định
(thường là 64 hoặc 128 bit) và thực hiện mã hoá lần lượt từng khối.
Cả hai loại thuật toán mã đối xứng và mã phi đối xứng đều có thể sử dụng
để mã hoá dữ liệu. Tuy nhiên thuật toán mã phi đối xứng có tốc độ mã hoá chậm
hơn nhiều so với mật mã đối xứng, do đó các thuật toán loại này ít khi được sử
dụng để trực tiếp mã hoá dữ liệu, nhất là với dữ liệu có khối lượng lớn. Chúng
chủ yếu được sử dụng để thiết kế các giao thức phân phối khoá (như truyền khoá
từ một thực thể tới một thực thể khác) và xác thực trên mạng liên lạc (như tạo
chữ ký số của người dùng). Do đó, để mã hóa dữ liệu chủ yếu sử dụng mã khối
và mã dòng.
Mã khối
Nói chung, phần lớn các thuật toán mã dữ liệu được thiết kế dưới dạng mã
khối. Do đó phần này chúng ta sẽ xem xét những đặc trưng cơ bản của mã khối .
Quá trình mã hoá dữ liệu sử dụng mã khối được thực hiện như sau [1]:
Bản rõ được chia thành các khối (block) có độ dài cố định (có kích thước là n)
và thuật toán mã hóa (ký hiệu là Ek) biến đổi từng khối bản rõ (ký hiệu là M)
24. 15
thành từng khối bản mã C = Ek(M). Thuật toán giải mã (ký hiệu là Dk) sẽ biến
đổi theo trình tự ngược lại, nghĩa là biến mỗi khối bản mã C thành khối bản rõ
M = Dk(C). Điều kiện cần để thực hiện các thuật toán mã hóa và giải mã là phải
có khóa mật K.
Cấu trúc lặp
Nguyên lý lặp là một trong các nguyên lý cơ bản trong thiết kế mã khối.
Tinh thần cơ bản của nguyên lý này là một khối bản rõ được xử lý nhiều lần
thông qua một số vòng. Tại mỗi vòng, khối dữ liệu được biến đổi nhờ một khóa
mật Ki được xác định từ một khóa mật ban đầu K. Số vòng lặp được xác định
bởi độ an toàn cần có và hiệu quả thực hiện chương trình mã hoá và giải mã
Về nguyên tắc, số vòng lặp càng nhiều thì độ an toàn của mã khối càng
cao nhưng hiệu quả thực hiện lại giảm đi và ngược lại số vòng lặp càng ít thì độ
an toàn lại giảm và hiệu quả thực thi mã khối lại tăng lên.
Thuật toán mật mã trong Mã dữ liệu
Có hai nguyên lý cơ bản được vận dụng trong quá trình thiết kế mã khối
là xáo trộn và khuyếch tán. Cả hai nguyên lý này nhằm làm tăng độ ngẫu nhiên
và độ phức tạp của bản mã để chống lại các phương pháp tấn công mã thám.
Để đạt được mục tiêu trên người ta sử dụng các phép biến đổi phức tạp
dưới dạng tổ hợp các phép biến đổi đơn giản và thực hiện qua một số vòng lặp.
Hình 1.2 trình bày mô hình hoạt động của thuật toán mã dữ liệu DES [3].
Hình 1.2: Mô hình hoạt động của mã dữ liệu DES
25. 16
Theo mô hình trên, thuật toán mã hoá sẽ thực hiện một số vòng lặp, mỗi
vòng lặp sử dụng các phép biến đổi dạng một (hoán vị) và dạng hai (khuyếch
tán). Trong một số hệ mã đối xứng phép biến đổi dữ liệu tại mỗi vòng có cấu
trúc Feistel. Theo cấu trúc này, khối dữ liệu n bit được chia thành hai nửa bằng
nhau ký hiệu là Livà Ri, thuật toán mã hoá có dạng:
Y1 = X2
Y2 =X1 fi (X2,Ki)
Ở mỗi vòng lặp, đầu vào X được chia thành hai phần X1 và X2. Đầu ra Y
(gồm Y1 và Y2) là kết quả của việc mã hoá khối X bằng hàm fi và khoá Ki.
Trong đó, khoá Ki là khoá tại vòng thứ i và được xác định từ khoá ban đầu K;
hàm fi được gọi là hàm mã hoá, hàm này có thể phụ thuộc hoặc không phụ thuộc
vào số thứ tự của vòng lặp.
Cấu trúc của hàm fi gồm hàm mở rộng (function extention) E, tám phép
biến đổi được gọi là các Hộp-S (S-box) S1, S2, S3, S4, S5, S6, S7,S8 và phép
hoán vị theo bít P. Đối số của hàm fi là véc-tơ Ri-1 và véc-tơ khoá Ki.
Hàm mở rộng E mở rộng Ri-1 thành đoạn E(Ri-1) có độ dài lớn hơn theo
một Quy tắc cho trước (chẳng hạn trong trong tiêu chuẩn mã hóa dữ liệu DES,
Ri-1 có độ dài 32 bít được mở rộng thành 48 bít).
Tiếp đó, E(Ri-1) được cộng theo modulo 2 với khoá Ki cho kết quả là E(Ri-
1) Ki. Khối kết quả này tiếp theo sẽ được biến đổi qua các Hộp-S tương ứng là
Si. Đầu ra sau Si được biến đổi qua phép hoán vị theo bít P. Đầu ra cuối cùng
của toàn bộ quá trình trên là fi(Ri-1, Ki).
Các tham số của mã khối
Độ dài khối n: để một hệ mã khối là an toàn, độ dài khối n phải đủ lớn để
ngăn cản các tấn công phân tích thống kê, tức là không cho đối phương thu được
thông tin có ích nào về khối rõ thường xuất hiện nhiều hơn các khối rõ khác.
Ngoài ra, độ dài khối n cũng phải được chọn sao cho số các cặp rõ/mã mà đối
phương có thể thu nhận được trong thực tế phải nhỏ hơn rất nhiều so với 2n
.
Độ dài khóa k và cỡ khóa đúng kt : để hệ mã khối an toàn chống lại tấn
công vét cạn khóa, cỡ khóa đúng cần phải đủ lớn sao cho 1
2 tk
phép mã hóa cần
cho tấn công này là vượt xa khả năng của thám mã. Mặt khác, độ dài khóa k
cũng cần nhỏ ở mức nào đó sao cho việc tạo, phân phối và lưu trữ khóa có thể
thực hiện được hiệu quả và an toàn. Chẳng hạn, DES có độ dài khóa là 64 bít,
còn cỡ khóa đúng là 56 bit. Tấn công vét cạn khóa là không thể nhưng cũng
26. 17
không quá xa vời. Nhiều gợi ý muốn tăng cỡ khóa đúng của DES. Chẳng hạn,
mở rộng cỡ khóa đúng của DES tới 128 bit bằng phép mã bội ba dùng hai khóa
xem là một cách thức chuẩn để sử dụng DES
Phân loại mã khối
Như chúng ta đã biết, mã khối là một hệ mã thực hiện quá trình mã hóa
thông tin trên các khối dữ liệu có độ dài cố định n. Để thực hiện được điều này
thì dữ liệu đầu vào phải được chia ra thành các khối có độ dài n-bit. Trong thực
tế thì các tệp cũng như các dữ liệu điện tử khác có độ dài không phải là bội số
của n cho nên phải sử dụng các phương pháp bổ sung độ dài cho khối mã cuối
cùng.
Phần lớn các hệ mã khối được xây dựng trên cơ sở hai mạng, đó là mạng
Feistel (Feistel Network) và mạng SP (Subtitution - Permutation Network) [3].
Mạng Feistel:
Hình 1.3: Mạng Feistel
Trong sơ đồ này đầu vào X chia ra làm hai phần bằng nhau 0 0( , )L R , một
hàm F bao gồm các khóa con 0 1, ,..., nK K K được đưa các vòng tương ứng
0,1,...i n . Ở mỗi vòng 0,1,...i n tính toán:
27. 18
1
1 ( , )
i i
i i i i
L R
R L F R K
Khi đó bản mã là 1 1( , )n nR L .
Giải mã một bản mã 1 1( , )n nR L được thực hiện theo vòng
, 1,...,0i n n được tính toán:
1
1 1( , )
i i
i i i i
R L
L R F L K
Sau đó được bản rõ 0 0( , )L R
Ưu điểm quan trọng của sơ đồ trên là tính đối xứng đối với 2 quá trình mã
hóa và giải mã. Độ an toàn của hệ mật phụ thuộc hoàn toàn vào độ an toàn của
hàm F.
Mạng SP: Trong mạng SP (Subtitution-Permutation Network), các phép
biển đổi được thực hiện trên toàn bộ khối rõ đầu vào mà không phải chia ra làm
hai phần như trong mạng Feistel nói trên. Thuật toán điển hình thiết kế theo
mạng SP là thuật toán AES (Advanced Encryption Standard).
Hình 1.4: Mạng SP với 3 vòng mã hóa/giải mã khối 16 bit
28. 19
Có một khối bản rõ và khóa đầu vào, sử dụng xen kẽ một số “vòng” hoặc
“lớp” của hộp thay thế S và hoán vị P để tạo ra khối mã. Hộp S và P chuyển đổi
các bit đầu vào thành các bit đầu ra. Nó thực hiện các biến đổi như phép XOR
hoặc cộng từng bit.
S-hộp là hộp thay thế một khối nhỏ của các bit (đầu vào) bởi một khối bit
(đầu ra). Sự thay thế này là thay thế đơn để đảm bảo tính duy nhất. Nó có thuộc
tính khi thay đổi các bit đầu vào sẽ làm thay đổi các bit đầu ra, do đó các bit đầu
ra phụ thuộc vào các bit đầu vào.
P-hộp là một hộp hoán vị thay thế của tất cả các bit. Nó cho kết quả đầu ra
là các bit trong S-hộp từ vòng 1 và đưa vào S-hộp cho các vòng tiếp theo.
Trong cả 2 dạng trên của các hệ mật, biến đổi iF trong từng vòng
' ': , 1...i n m nF V V V i r có thể chia ra làm ba lớp (Hình 1.5):
Lớp cộng với khóa ( )i iK L K , Lớp thế với S-hộp , 1...iS i k và lớp
khuếch tán.
Hình 1.5: Sơ đồ một vòng mã hóa
Các chế độ hoạt động của mã khối
Có bốn (04) chế độ hoạt động cơ bản của mã khối: Chế độ sách mã điện
tử (ECB), chế độ liên kết khối mã (CBC), chế độ phản hồi mã (CFB) và chế độ
phản hồi đầu ra (OFB).
Chế độ ECB tương ứng với cách dùng thông thường của mã khối: với một
dãy các khối bản rõ cho trước 1 2, ,...x x (mỗi khối có 64 bit), mỗi ix sẽ được mã
hóa bằng cùng một khóa K để tạo thành một dãy các khối bản mã 1 2, ,...y y theo
quy tắc , 1i K iy E x i .
29. 20
Trong chế độ CBC, ta bắt đầu với 0 IVy (là một vector khởi tạo 64 bit)
và một dãy các khối bản rõ cho trước 1 2, ,...x x (mỗi khối có 64 bit), mỗi ix sẽ
được mã hóa bằng cùng một khóa K để tạo thành một dãy các khối bản mã
1 2, ,...y y theo quy tắc 1 , 1i K i iy E y x i .
Trong chế độ CFB, ta cũng bắt đầu với 0 IVy (là một vector khởi tạo 64
bit) và tạo phần tử iz của dòng khóa bằng cách mã hóa khối bản mã trước đó.
Tức là 1 , 1i K iz E y i và dòng khóa được tạo ra sẽ được cộng modulo 2 với
bản rõ (tức là nó hoạt động như một hệ mã dòng: , 1i i iy x z i ).
Chế độ OFB thực sự là một hệ mã dòng đồng bộ: dòng khóa được tạo bởi
việc mã lặp vector khởi tạo 64 bit (IV). Ta xác định 0 IVz và sinh dòng khóa
1 2, ,...z z theo quy tắc 1 , 1i K iz E z i . Dãy bản rõ 1 2, ,...x x sau đó sẽ được
mã hóa bằng cách tính , 1i i iy x z i .
Cũng còn một số biến thể của OFB và CFB được gọi là các chế độ phản
hồi k- bit 1 64k . Các chế độ phản hồi 1-bit và 8-bit thường được dùng
trong thực tế cho phép mã hóa đồng thời 1-bit (hoặc byte) số liệu.
Bốn chế độ hoạt động nêu trên có những ưu, nhược điểm khác nhau. Ở
chế độ ECB và OFB, sự thay đổi của một khối bản rõ ix sẽ làm thay đổi khối
bản mã iy tương ứng, nhưng các khối bản mã khác không bị ảnh hưởng. Trong
một số tình huống, đây là một tính chất đáng mong muốn. Ví dụ, chế độ OFB
thường được dùng để mã khi truyền vệ tinh.
Mặt khác ở các chế độ CBC và CFB, nếu một khối bản rõ ix bị thay đổi
thì khối bản mã iy và tất cả các khối bản mã tiếp theo sẽ bị ảnh hưởng. Như vậy
các chế độ CBC và CFB có thể được sử dụng rất hiệu quả cho mục đích xác
thực. Đặc biệt hơn, các chế độ này có thể được dùng để tạo mã xác thực thông
báo (MAC - message authentication code).
Ví dụ, sử dụng chế độ CBC để tạo ra một MAC. Ta bắt đầu bằng vector
khởi tạo IV chứa toàn số 0. Sau đó dùng chế độ CBC để tạo các khối bản mã
1 2, ,..., ny y y theo khóa K. Cuối cùng ta xác định MAC là ny . Người gửi sẽ phát
đi dãy các khối bản rõ 1 2, ,..., nx x x cùng với MAC. Khi người nhận thu được
1 2, ,..., nx x x anh ta sẽ khôi phục lại 1 2, ,..., ny y y bằng khóa K bí mật và xác
minh xem liệu 1 2, ,..., ny y y có giống với MAC mà mình đã thu được hay
không?.
30. 21
Nhận thấy, đối phương không thể tạo ra một MAC hợp lệ do anh ta không
biết khóa K mà người gửi và người nhận đang dùng. Hơn nữa, đối phương thu
chặn được dãy khối bản rõ 1 2, ,..., nx x x và thay đổi ít nhiều nội dung thì chắc
chắn đối phương cũng không thể thay đổi MAC để được người nhận chấp nhận.
1.3.2. Chữ ký số
Trong giao dịch giấy tờ truyền thống chữ ký tay là phương tiện để xác
thực nguồn gốc và nội dung của văn bản. Chữ ký tay còn có khả năng chống
chối bỏ, nghĩa là người gửi sau khi đã ký vào văn bản thì không thể chối bỏ chữ
ký của mình và văn bản sau khi được ký thì không thể thay đổi được nội dung.
Đối với văn bản điện tử chữ ký tay không còn đảm bảo được các tính năng nói
trên, vì vậy chữ ký số điện tử (gọi tắt là chữ ký số) được sử dụng để thay thế vai
trò của chữ ký tay.
Chữ ký số được biểu diễn dưới dạng một chuỗi số nhị phân. Nó được tạo
ra trên cơ sở sử dụngtập hợp các quy tắc và tập hợp các tham số để xác định
danh tính người gửi (người ký) cũng như kiểm tra tính toàn vẹn của dữ liệu.
Phương tiện cơ bản để thực hiện chữ ký số là kỹ thuật mật mã. Mỗi chữ ký số
được thể hiện trên một lược đồ xác định gọi là lược đồ chữ ký số. Lược đồ này
bao gồm ba thành tố: thuật toán chữ ký số, thuật toán hàm băm và thuật toán tạo
số giả ngẫu nhiên. Thuật toán chữ ký số gồm thuật toán ký và thuật toán kiểm
tra. Người gửi sử dụng thuật toán ký và khóa bí mật để tạo ra chữ ký số, người
nhận (người kiểm tra) sử dụng thuật toán kiểm tra và khóa công khai tương ứng
để kiểm tra đồng thời tính chân thực của thông điệp dữ liệu và tính chân thực
của chữ ký số do người gửi tạo ra. Mỗi người sở hữu một cặp khóa bao gồm
khoá công khai (giả thiết là được công bố một cách công khai) và khoá bí mật
(được giữ bí mật tuyệt đối). Bất kỳ ai cũng có thể kiểm tra chữ ký số của một
người nào đó bằng cách sử dụng khóa công khai của người này. Quá trình tạo
chữ ký số chỉ có thể được thực hiện bởi người sở hữu khoá bí mật. Thuật toán
hàm băm là biến đổi toán học dùng để thu gọn văn bản ban đầu (còn gọi là thông
điệp dữ liệu) nhằm tạo ra bản tóm lược của thông điệp. Bản tóm lược này sẽ là
đầu vào của thuật toán tạo chữ ký số. Chữ ký số được đính kèm với thông điệp
dữ liệu đã được ký. Trong quá trình kiểm tra chữ ký số, thuật toán hàm băm
cũng được áp dụng như trong quá trình tạo chữ ký. Thuật toán tạo số giả ngẫu
nhiên dùng để tạo ra các số giả ngẫu nhiên (độc lập, đồng xác suất) làm tham số
trong lược đồ chữ ký số (xem Hình 1.6).
31. 22
Hình 1.6: Mô tả quá trình tạo và kiểm tra chữ ký số [3]
Mô hình toán học của lược đồ chữ ký số
Một lược đồ chữ ký số là bộ 5 ( )R, A, K, S, V , trong đó:
1. R là tập hữu hạn các thông báo có thể.
2. A là tập hữu hạn các chữ ký số có thể.
3. K không gian khóa là tập hữu hạn các khóa có thể.
4. Với mỗi khóa K K , tồn tại một thuật toán ký KSig S và một thuật
toán kiểm tra chữ ký KVer V . Mỗi thuật toán ký :KSig R A và
thuật toán kiểm tra chữ ký :KVer R A {đúng, sai} là những hàm
thỏa mãn điều kiện dưới đây:
( , )KVer x y
đúng, nếu ( )Ky Sig x
sai, nếu ( )Ky Sig x
với mọi thông báo xR và mọi chữ ký y A .
Với mỗi khóa K K , các hàm KSig và KVer là các hàm thời gian đa thức.
KVer sẽ là hàm công khai còn KSig là hàm bí mật. Hàm KSig là khó tính được
nếu không biết khóa bí mật K , điều này đảm bảo cho tính bí mật của chữ ký và
Tạo chữ ký Kiểm tra chữ ký
Thông điệp
Thuật toán băm an
toàn
Bản tóm lược
Tạo chữ
ký số
Khoá
bí mật Chữ
ký số
Thông điệp nhận được
Thuật toán băm an toàn
Bản tóm lược
Kiểm tra
chữ ký số
Chữ
ký số
Khoá
công khai
Chữ ký hợp lệ
hoặc
Chữ ký không hợp lệ
32. 23
chống việc giả mạo chữ ký. Nghĩa là cho trước thông báo x, chỉ có người có
khóa bí mật K mới có thể tính được chữ ký y để ( , )KVer x y đúng .
Khuôn dạng ký số CMS/PKCS#7
CMS viết tắt của Cryptographic Message Syntax (Cú pháp mã hóa thông
điệp). Cú pháp này được sử dụng để ký số, tóm lược, xác thực mã hóa nội dung
của một thông điệp bất kỳ.
CMS mô tả một cú pháp đóng gói để bảo vệ dữ liệu. Nó hỗ trợ mã hóa và
ký số dữ liệu. Cú pháp này cho phép đóng gói nhiều lần; một vỏ bọc gói có thể
được lồng trong gói khác. Tương tự như vậy, một bên có thể ký số lên dữ liệu đã
được đóng gói trước đó. Nó cũng cho phép các thuộc tính bất kỳ, ví dụ thời gian
ký (signing time), được ký cùng với nội dung thông điệp, và cung cấp cho các
thuộc tính như countersignatures được liên kết với một chữ ký.
Các giá trị CMS được tạo ra sử dụng ASN.1, BER-ENCODING. Các giá
trị thông thường được biểu diễn dưới dạng các chuỗi octet. Trong khi nhiều hệ
thống có khả năng truyền nhận các chuỗi octet bất kỳ, trong đó có một số hệ
thống thư điện tử.
CMS được xây dựng dựa trên PKCS#7 phiên bản 1.5. CMS có sự tương
thích với PKCS#7, tuy nhiên cần thiết có một số thay đổi để phù hợp với thuộc
tính chuyển đổi chứng thư số, các kỹ thuật thỏa thuận khóa và khóa mã hóa đối
xứng để quản lý khóa.
CMS sử dụng các yếu tố mật mã để mã hóa và ký số dữ liệu. CMS sử
dụng một kiểu định dạng và giá trí cơ bản như hình bên dưới.
Content Type
Content
CMS định nghĩa sáu kiểu cơ bản để mô tả dạng của mã hóa nâng cao
được áp dụng cho các dữ liệu số, các hình dưới chỉ ra cú pháp cơ bản của chúng.
Sáu kiểu đó là [15]:
- Data: Sử dụng để tham chiếu tới chuỗi octet bất kỳ (ví dụ ASCII) và
thường được đóng gói trong một kiểu khác
- Signed Data: Sử dụng để ký nội dung, có thể có nhiều hơn một người ký
- Enveloped Data: Chứa nội dung được mã hóa với một khóa giải mã cho
mỗi người nhận (khóa này được mã hóa)
33. 24
- Digested Data: Kiểu này chứa nội dung và một tóm lược thông điệp của
nội dung để cung cấp tính toàn vẹn của nội dung
- Encrypted Data: Đây chỉ là dữ liệu được mã hóa. Một phương thức cho
quản lý khóa bắt buộc phải được sử dụng. CMS không định nghĩa bất kỳ
phương thức quản lý khóa cụ thể nào.
- Authenticated Data: Kiểu này bao gồm các nội dung, mã xác thực thông
điệp (MAC), và các khóa xác thực được mã hóa cho một hoặc nhiều
người nhận.
34. 25
Chương 2: NGHIÊN CỨU HỆ THỐNG THƯ ĐIỆN TỬ ZIMBRA, GIẢI
PHÁP KÝ SỐ, MÃ HÓA THƯ ĐIỆN TỬ
2.1. Kiến trúc hệ thống thư điện tử mã nguồn mở Zimbra
Zimbra là ứng dụng thư điện tử nguồn mở cung cấp một giải pháp, một hệ
thống hoàn chỉnh để triển khai dịch vụ email (cả server và client) và môi trường
chia sẻ cộng tác phục vụ cho quản lý và công việc.
Kiến trúc hệ thống thư điện tử nguồn mở Zimbra bao gồm những lõi sau
[16]:
- Các mã nguồn mở tích hợp trong Zimbra: Linux®, Apache Tomcat,
Postfix, MySQL®, OpenLDAP®.
- Giao thức chuẩn được sử dụng là: SMTP, LMTP, SOAP, XML,
IMAP, POP.
- Công nghệ được sử dụng để thiết kế là: Java, JavaScript thin client,
DHTML.
- Trình duyệt dựa trên giao diện giao diện khách hàng, giao diện này cho
phép người dùng dễ dàng truy cập vào tất cả các chức năng của
Zimbra Collaboration Suite (ZCS).
Kiến trúc Zimbra bao gồm mã nguồn mở tích hợp, sử dụng các giao thức
chuẩn. Các phần mềm liệt kê dưới đây được đóng gói, thử nghiệm và cấu hình
làm việc tốt với Zimbra [16]:
- Jetty ứng dụng máy chủ web chạy phần mềm zimbra.
- Postfix một nguồn mở chuyển giao các agent.
- OpenLDAP phần mềm nguồn mở xác thực người dùng (LDAP:
Lightweight Directory Access Protocol).
- Phần mềm cơ sở dữ liệu MySQL.
- Lucence với đầy đủ tính năng và công cụ tìm kiếm.
- Verity dùng để chuyển đổi các tin đính kèm nhất định.
- Anti-virus các thành phần chống thư rác.
- clamAV phần mềm quét chống virus để bảo vệ chống các tập tin độc
hại.
- SpamAssassinxác định thư rác.
- James/Sieve filtering: Sử dụng để tạo các bộ lọc cho thư điện tử.
Hình 2.1 cho thấy kiến trúc hệ thống Zimbra:
35. 26
Hình 2.1: Kiến trúc hệ thống Zimbra [16]
- Zimbra Core: Gói này bao gồm các thư viện, tiện ích, công cụ giám
sát và cấu hình cơ bản các tập tin.
- Zimbra Convertd: Được cài đặt trên máy chủ Zimbra.
- Zimbra LDAP: Xác thực người dùng được cung cấp qua OpenLDAP.
Mỗi tài khoản trên máy chủ Zimbra có một ID hộp thư duy nhất để xác
định tài khoản.
- Zimbra MTA (Mail Transfer Agent): Postfix là nguồn mở để chuyển,
nhận thư thông qua SMTP và định tuyến mỗi tin nhắn đến hộp thư
máy chủ.
- Zimbra Store (Zimbra server):
Bao gồm các gói phần mềm lưu trữ trong Zimbra giúp cho việc cài
đặt hộp thư máy chủ.
36. 27
Mỗi tài khoản được cấu hình trên một hộp thư máy chủ, tài khoản
này được liên kết với hộp thư có chứa tin nhắn và các tệp đính kèm.
Các hộp thư máy chủ bao gồm các thành phần sau:
Lưu trữ dữ liệu.
Lưu trữ thông báo.
Lưu trữ các chỉ số.
Tiện ích chuyển đổi tệp đính kèm HTML.
Tệp đính kèm được chuyển sang định dạng HTML khi người dùng
click vào chức năng xem dạng HTML trên web Zimbra.
- Data store: MySQL được dùng để lưu trữ dữ liệu, các ID hộp thư nội
bộ được liên kết với tài khoản người dùng. Cơ sở dữ liệu này chứa các
thiết lập của người dùng định nghĩa, các thư mục, lập lịch, địa chỉ liên
lạc, tình trạng mỗi email (đọc hay chưa đọc), các thẻ liên quan đến tin
nhắn.
- Message store: Đây là nơi lưu trữ tất cả các thông báo của hộp thư, và
các tệp đính kèm. Tin nhắn được lưu trữ theo định dạng MIME
(MIME: Multipurpose Internet Mail Extensions là một chuẩn Internet
về định dạng cho thư điện tử). Mỗi tin nhắn đó được gửi tới nhiều
người nhận có tài khoản trên một hộp thư máy chủ được lưu trữ trong
hệ thống tập tin.
- Index store: Chỉ số và công nghệ tìm kiêm được cung cấp qua Lucene
(Lucenelà thư viện Java mã mở nổi tiếng giúp xây dựng một công cụ
tìm kiếm). Chỉ số các tập tin được duy trì cho mỗi hộp thư.
- Zimbra Logger: Cài đặt gói Zimbra Logger là tùy chọn và được cài
đặt trên hộp thư máy chủ. Các Zimbra Logger được cài đặt làm công
cụ tập hợp, báo cáo syslog. Nếu hệ thống không cài Logger thì số liệu
thông kê log sẽ không hiển thị trên giao diện điều khiển.
- Zimbra Spell: Đây là gói cài đặt để kiểm tra chính tả trên web
Zimbra.
- Zimbra Proxy: Sử dụng IMAP proxy cho phép thu hồi thư cho một
miền được phân chia giữa nhiều máy chủ Zimbra cho mỗi người dùng.
Zimbra MTA: Zimbra MTA (Mail Transfer Agent) là một dịch vụ nhận
mail thông qua giao thức SMTP sử dụng giao thức LMTP (Local Mail Transfer
Protocol) cho phù hợp với mail server Zimbra.
37. 28
- Các máy chủ Zimbra MTA bao gồm các chương trình sau:
Postfix MTA cho thư định tuyến, chuyển tiếp thư, và đính kèm tệp.
Antivirus: một công cụ chống virus được sử dụng để quét email, tin
nhắn và tệp đính kèm trong thư điện tử.
SpamAssassin: một bộ lọc thư rác.
Triển khai Zimbra MTA
- Tổ chức Zimbra bao gồm một phiên bản dịch sẵn của Postfix.
- Postfix thực hiện việc chuyển tiếp mail Zimbra, nó nhận được tin nhắn
thông qua SMTP và các thông điệp từ máy chủ Zimbra.
- Postfix cũng đóng vai trò trong việc chuyển giao các thông điệp gửi đi.
Hình 2.2: Postfix trong môi trường Zimbra [16]
Tiếp nhận và gửi thư thông qua Zimbra MTA
- Các MTA Zimbra cung cấp cả đầu vào và thông điệp gửi đi. Đối với
thư gửi đi các MTA Zimbra xác địa chỉ định đích đến của người nhận.
Nếu đích đến là một máy chủ mail từ xa thì MTA Zimbra phải thiết lập
một phương thức truyền thông để truyền thông điệp đến máy chủ đó.
Đối với tin nhắn gửi đến các MTA phải có khả năng chấp nhận kết nối
các yêu cầu từ máy chủ ở xa và nhận tin nhắn cho mạng nội bộ sử
dụng.
- Để gửi và nhận email các MTA Zimbra phải được cấu hình trong
DNS. Đối với thư gửi đi sử dụng DNS để định tuyến email. Để nhận
38. 29
được email thì bản ghi MX phải được cấu hình định tuyến đúng để thư
đến được máy cài mail server.
- Hàng đợi tin nhắn trong Zimbra MTA:
Khi nhận được nhiều mail Zimbra MTA có các cơ chế định tuyến
để quản lý hàng đợi tin nhắn
Trong Zimbra MTA duy trùy 4 hàng đợi: Incoming, active,
deferred, hold
Hình 2.3: Hàng đợi tin nhắn trong Zimbra MTA [16]
- Incoming: Khi các thư, tin nhắn mới được gửi đến sẽ được xếp vào
hàng đợi. Mỗi tin nhắn được xác định với một tệp tin duy nhất. Thông
điệp trong hàng đợi sẽ được chuyển đến nơi mà các thư đang xếp hàng.
Nếu không có vấn đề gì xảy ra thì việc di chuyển tin nhắn thông qua
các hàng đợi này sẽ được diễn ra một cách nhanh chóng.
- Active: Các hàng đợi thư được kích hoạt để sẵn sàng gửi đi.MTA đưa
ra một số lượng giới hạn các tin nhắn được xếp vào hàng đợi tại một
thời điểm. Từ đây các tin nhắn sẽ được chuyển đến hệ thống chống
virus và lọc thư rác trước khi được giao hoặc chuyển đến hàng đợi
khác.
- Deferred: Đây là các tin nhắn không được giao đi và được đặt trong
hàng đợi chậm (chờ). Hàng đợi này sẽ được quét thường xuyên để gửi
lại tin nhắn. Nếu tin nhắn không thể gửi lại sau một số lần nhất định thì
tin nhắn đó sẽ được đánh dấu gửi không thành công. Mặc định cho các
39. 30
hàng đợi trả lại là 5 ngày, bạn cũng có thể thay đổi giá trị mặc định này
trong MTA.
- Hold: Đây là hàng đợi lưu giữ các mail mà có thể không được xử lý.
Các mail ở trong hàng đợi này cho đến khi người quản trị xử lý đến.
2.2. Giải pháp ký số, mã hóa thư điện tử
Hệ thống thư điện tử làm việc theo nguyên tắc lưu và chuyển. Người dùng
giao tiếp với hệ thư thông qua giao diện tại Mail Client. Thư được tạo ra tại mail
Client và được chuyển sang Mail Server mà Mail client kết nối tới. Sau đó sẽ
được chuyển qua một hoặc nhiều Mail Server. Trong quá trình chuyển giao đến
đích thư điện tử có thể được lưu giữ tại một số Mail Server. Do vậy khả năng
thư điện tử bị tấn công là rất cao. Hệ thống thư điện tử mật phải đảm bảo được
các yêu cầu sau:
1. Phải đảm bảo được an toàn thông tin về tài khoản khi kết nối đến
server. Điều này giúp cho thông tin về người dùng được gửi đi an toàn
trong quá trình đăng nhập, kiểm soát chặt chẽ và xác thực người dùng
trong hệ thống.
2. Các thông điệp gửi và nhận giữa các user phải được mã hóa để đảm
bảo an toàn dữ liệu trên đường truyền.
3. Phải xác thực được nội dung các thông điệp và xác thực được người
gửi. Yêu cầu này đưa ra nhằm đảm bảo tính toàn vẹn của dữ liệu
chống giả mạo dữ liệu và chống chối bỏ.
4. Các thao tác khi ứng dụng hệ thống bảo mật vào dịch vụ thư điện tử
phải đơn giản với người dùng.
Hệ thống thư điện tử Zimbra cung cấp một hệ thống hoàn chỉnh để triển
khai dịch vụ email (cả server và client) và môi trường chia sẻ công tác phục vụ
cho quản lý và công việc, tuy nhiên với các chức năng nghiệp vụ chuyên biệt
như ký số, mã hóa, giải mã, xác thực nội dung thư thì Zimbra chưa cung
cấp. Vì vậy, em đề xuất xây dựng giải pháp bảo mật thư điện tử sử dụng hạ tầng
khóa công khai (PKI). Giải pháp bao gồm việc phát triển hai ứng dụng bảo mật
thư điện tử trên công nghệ mở:
- Xây dựng và tích hợp ứng dụng bảo mật thư dựa trên Zimlet và tích hợp
với ứng dụng thư Zimbra (xây dựng trên nền tảngWeb).
- Ứng dụng bảo mật thư điện tử trên nền tảng Destop.
40. 31
2.2.1. Giải pháp ký số, mã hóa, xác thực chữ ký, giải mã nội dung thư
điện tử trên nền tảng Web
Hệ thống thư điện tử Zimbra cung cấp Zimbra web client với giao diện
người dùng trên nền web và làm việc trực tuyến (online). Mọi thông tin sẽ lưu
trên máy chủ Zimbra. Để theo dõi nhận dạng người gửi và đảm bảo tính bí mật,
xác thực và toàn vẹn nội dung thư sau khi họ gửi, hệ thống cần cung cấp cho
người dùng khả năng để ký số, mã hóa nội dung thư được gửi đi.
Ký số chỉ được thực hiện trên máy client
Ký số yêu cầu truy cập vào khóa bí mật của người ký. Bởi vì khóa bí mật
của mỗi người chỉ có thể truy cập bởi chính người đó, do đó việc ký số diễn ra
trên máy tính của người ký. Nếu không người ký sẽ phải gửi khóa bí mật của
mình đến máy chủ, điều này đặt ra mối đe dọa an ninh - khóa bí mật có thể bị
đánh cắp trên đường truyền. Ký số các tài liệu trên máy tính của người sử dụng
trong các ứng dụng web không phải là một nhiệm vụ dễ dàng, bởi vì khách hàng
sử dụng trình duyệt web chuẩn - mà không có tích hợpchức năng cho ký số. Một
số cách tiếp cận vấn đề này bao gồm:
- Sử dụng công cụ ký số ngoài
Một cách tiếp cận đó là người sử dụng cài đặt trên máy tính của họ một số
loại phần mềm thiết kế đặc biệt, nhưng điều này lại có một số khó khăn. Một là
phần mềm ký số phải có các phiên bản riêng biệt hỗ trợ cho các hệ điều hành
khác nhau. Ngoài ra, việc hỗ trợ cho các phần mềm như vậy là phức tạp, bởi vì
bất kỳ sự thay đổi trong đó sẽ buộc người dùng phải tải về và cài đặt phiên bản
mới. Tích hợp với nền tảng web của hệ thống là một nhiệm vụ khó khăn, và nếu
phần mềm không được tích hợp tốt, sử dụng của nó có thể gây phiền hà cho
người sử dụng. Ngoài ra còn có một khả năng mà người sử dụng từ chối cài đặt
phần mềm trên máy tính của họ vì lý do an ninh, hoặc có thể họ không sử dụng
máy tính riêng của họ, do đó họ có thể bị ngăn cấm quyền để cài đặt phần mềm.
- Sử dụng ngôn ngữ kịch bản phía máy trạm
Có thể sử dụng ngôn ngữ kịch bản JavaScrip hoặc một số công nghệ kịch
bản phía máy trạm khác, chẳng hạn như ActiveX, Macromedia Flash, .NET
Windows Forms Controls, hoặc Java applet.
JavaScript: Vấn đề với ngôn ngữ JavaScript là nó không hỗ trợ các hàm
vào ra chuẩn cần thiết để làm việc với chữ ký số và chứng thư số. Bên cạnh đó
nó không thể truy cập vào các chứng thư số được cài đặt vào trình duyệt web
của người dùng, nó cũng không truy cập được vào các kho khóa được bảo vệ
41. 32
bên ngoài. JavaScript cũng không thể truy cập vào hệ thống tập tin cục bộ và do
đó không thể đọc được các tập tin cần ký.
Macromedia Flash: Macromedia Flash cũng không hỗ trợ chữ ký số và
chứng thư số, và nó không thể truy cập vào hệ thống tập tin cục bộ và do đó
cũng không thể đọc được các tập tin cần ký.
ActiveX: điều khiển ActiveX cung cấp một giải pháp về chữ ký số, nhưng
ActiveX chỉ hoạt động với trình duyệt Internet Explorer trên hệ điều hành
Windows. Điều này hạn chế người dùng phải sử dụng hệ điều hành Windows và
trình duyệt Internet Explorer.
Windows Forms Controls: cũng chỉ làm việc với Internet Explorer, và
cài đặt thêm một số yêu cầu bổ sung của nền tảng .NET. Điều này gây khó khăn
cho người dùng khi yêu cầu họ sử dụng trình duyệt Internet Explorer, hệ điều
hành Windows, và .NET Framework để có thể ký được tài liệu trên nền tảng
web.
Java Applet: Java Applet có thể tương thích với tất cả các trình duyệt và
trên tất cả các hệ điều hành. Java Applet cũng có khó khăn mà mặc định không
có quyền truy cập vào hệ thống tập tin cục bộ, nhưng hạn chế này có thể được
khắc phục bằng cách sử dụng các java applet đã được ký số.
Mô hình tổng quan giải pháp ký số, xác thực, mã hóa, và giải mã nội
dung thư điện tử trên nền tảng web
Hình 2.4: Mô hình ký số, mã hóa, xác thực chữ ký, giải mã nội dung thư trên
nền tảng Web
Người gửi sau khi soạn thảo nội dung thư điện tử trên Webform có thể ký
số, mã hóa nội dung thư và gửi lên Mail Server. Người nhận sẽ tải dữ liệu đã ký
số, mã hóa lên Webform trên máy tính của mình và tiến hành xác thực chữ ký
số, giải mã nội dung thư. Ứng dụng applet ký tài liệu phải có một số phương
tiện, mà theo đó để gửi chữ ký số tới máy chủ. Điều này có thể được thực hiện
bằng nhiều cách - Các applet sẽ mở ra một socket để gửi chữ ký, hoặc nó sẽ gửi
42. 33
thông tin của một yêu cầu truy cập vào một địa chỉ URL của máy chủ, hoặc giao
tiếp với các trình duyệt và gửi thông tin cho server. Cách tiếp cận cuối cùng là
thuận tiện nhất, vì nó đòi hỏi ít lập trình nhất để gửi và nhận tập tin đã được ký.
Ứng dụng applet em đề xuất sử dụng giao tiếp với các trình duyệt, trong
trường hợp này máy chủ nhận được nội dung cùng với chữ ký của nội dung
trong một yêu cầu trình duyệt web duy nhất, không cần thiết cho bất kỳ hành
động nào khác.
Giao tiếp giữa Applet và trình duyệt web
Chúng ta có một trang HTML thông thường được sử dụng để gửi thư điện
tử không có chức năng ký số, mã hóa. Nếu chúng ta muốn mở rộng hình thức
này để nó hỗ trợ ký số, mã hóa đơn giản là chúng ta tích hợp một java-applet in
trên đó. Trong trường hợp này applet sẽ thực hiện thực hiện ký số, mã hóa và
đưa chữ ký số vào một số trường của trang HTML. Khi thực thi trang HTML,
trình duyệt web sẽ gửi chữ ký cùng với nội dung thư, vì vậy không cần thiết
thiết lập bất kỳ kênh liên lạc nào giữa máy chủ và applet. Hình 2.5 mô tả các
chức năng của ứng dụng ký số, xác thực, mã hóa, giải mã sử dụng applet.
Hình 2.5: Sơ đồ chức năng ứng dụng ký số, mã hóa applet
Xử lý dữ liệu web form
Người gửi sử dụng Mail Client là trình duyệt web để soạn thảo nội dung
thư. Từ các dữ liệu trên trình duyệt Web chương trình sử dụng các hàm trong
applet gọi và sử dụng các thư viện JavaScript để lấy nội dung thư để xử lý tạo
dữ liệu cần ký số, xác thực chữ ký, mã hóa và giải mã.
Ký số, xác thực nội dung thư
Chức năng này lấy dữ liệu trên Webform và đưa vào trong applet để ký số
và xác thực nội dung thư trên Webform.
43. 34
Mã hóa, giải mã nội dung thư
Chức năng này lấy dữ liệu trên Webform và đưa vào trong applet mã hóa,
giải mã nội dung thư trên Webform
2.2.2. Giải pháp ký số, mã hóa, xác thực, giải mã clipboard trên nền
tảng Desktop
Giải pháp đưa ra là thực hiện ký số, mã hóa, xác thực, giải mã nội dung
dữ liệu trên bộ đệm của máy tính.
Hình 2.6: Mô hình ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop
Khi người dùng thực hiện thao tác Copy trên trình soạn thảo, dữ liệu được
lưu trữ trên bộ nhớ tạm Clipboard. Ứng dụng thực hiện ký số, mã hóa, xác thực,
giải mã nội dung bản rõ trên Clipboard này, dữ liệu sau khi đóng gói lại được
lưu trữ lại vào bộ nhớ tạm Clipboard để người dùng có thể dán vào nội dung thư
cần gửi đi.
44. 35
2.3. Phân tích thiết kế và xây dựng ứng dụng ký số, mã hóa thư điện
tử
2.3.1. Ký số, mã hóa, xác thực, giải mã nội dung thư điện tử trên nền
tảng Web
Lược đồ Ký số – Mã hóa nội dung thư điện tử
Hình 2.7: Lược đồ Ký số - Mã hóa nội dung thư điện tử
45. 36
Quá trình ký số, mã hóa nội dung thư điện tử là kết hợp của hai quá trình,
quá trình ký số lên dữ liệu sau đó mã hóa dữ liệu đã được ký [5].
Trong sơ đồ trên, sử dụng phương pháp đóng gói chữ ký vào dữ liệu ký
do vậy, dữ liệu cần ký cũng được ghép vào với khuôn dạng chữ ký đầu ra, dữ
liệu cần ký được băm thông qua một hàm băm (SHA-1 hoặc SHA-2), dữ liệu
băm được ký bởi khóa bí mật của người ký, khóa bí mật được lưu trong thiết bị
USB lưu khóa, ID của chứng thư số người ký cũng được ghép với chữ ký đầu ra.
Để thuận tiện cho người xác thực dữ liệu, chứng thư số của người ký cũng được
ghép với chữ ký đầu ra để người xác thực không phải tìm kiếm chứng thư số của
người ký để xác thực chữ ký. Khuôn dạng chữ ký đầu ra gồm các thông tin
chính sau:
- Dữ liệu ký.
- Tên hàm băm được sử dụng.
- Chữ ký số.
- Chứng thư số người ký.
- ID người ký.
Sau quá trình ký số, dữ liệu rõ được mã hóa bằng thuật toán mã hóa đối
xứng, tên thuật toán mã hóa đối xứng được đưa vào khuôn dạng dữ liệu mã,
mầm khóa đối xứng được mã hóa bằng khóa công khai tách từ các chứng thư số,
các chứng thư số này là các chứng thư số của người nhận dữ liệu mã được lấy từ
kho lưu trữ chứng thứ số chuẩn, các ID của các chứng thư số này và tên thuật
toán mã khóa công khai sử dụng để mã dữ liệu cũng được đưa vào khuôn dạng
dữ liệu mã. Mầm khóa đối xứng được mã và được đưa vào khuôn dạng dữ liệu
mã. Khi muốn mã gửi cho nhiều người thì mỗi chứng thư số của người nhận sẽ
là mầm khóa đối xứng một lần, có bao nhiêu người nhận thì sẽ có bấy nhiêu
đoạn mã của mầm khóa sẽ được ghép vào dữ liệu mã đầu ra. Khuôn dạng dữ
liệu mã đầu ra sẽ bao gồm các thông tin sau:
- Tên thuật toán mã hóa đối xứng.
- Dữ liệu mã.
- Khóa đối xứng được mã.
- Các ID người nhận và tên thuật toán mã hóa công khai.
Quy trình ký dữ liệu cũng dựa trên các thuật toán ký chuẩn đã được thiết
kế trong thư viện của java, tuy nhiên trước khi ký dữ liệu, các chứng thư số ký
được kiểm tra trực tuyến sử dụng CRLs. Ngoài ra, dấu thời gian cũng được sử
dụng trong quy trình này, dấu thời gian gồm có thời gian chuẩn lấy từ máy chủ
46. 37
cấp dấu thời gian và chứng thư số của máy chủ cấp dấu thời gian. Dấu thời gian
sau khi lấy về được kiểm tra trước khi gắn vào chữ ký. Quy trình ký được thể
hiện trên Hình 2.8.
Dữ liệu ký gồm:
- Dữ liệu gốc.
- Tên hàm băm.
- Chữ ký số.
- ID người ký.
- Chứng thư số người ký.
- Dấu thời gian.
Dữ liệu cần ký
Thuật toán băm
Tên hàm băm
Hàm băm
Tóm lược (băm) của
dữ liệu được ký
Ký số
Chữ ký số
Chứng thư số người
ký
ID người ký
Chứng thư số người
ký
Khóa bí
mật
USB lưu
khóa
Kho chứng thư số
Kiểm tra hiệu lực
Dấu thời gian
Các CRLs
Máy chủ
dấu thời
gian
Các dịch
vụ chứng
thực
Hình 2.8: Lược đồ ký số dữ liệu có dấu thời gian
Mô tả mô hình ký số, mã hóa thư điện tử: Từ nội dung thư điện tử, sử
dụng hàm băm SHA-256 để tạo ra bản tóm lược của email. Sau đó sử dụng khóa
bí mật (lưu trữ trong thiết bị lưu khóa) của người dùng ký số nội dung bản tóm
lược (sử dụng thuật toán RSA) và sử dụng các dịch chứng thực chữ ký số (nếu
có) với kết quả là chữ ký số của thư điện tử được gắn kèm nội dung thư. Nếu có
thực hiện mã hóa thư điện tử thì hệ thống sinh ngẫu nhiên khóa để thực hiện mã
khối nội dung thư điện tử đã có ký số, khóa ngẫu nhiên này được mã hóa bằng
khóa công khai của các người nhận được phép để chỉ những người này mới có
thể giải mã được nội dung thư. Sau đó các thành phần gồm nội dung thư điện tử
47. 38
đã được mã hóa và nội dung mật khẩu đã được mã hóa được đóng gói thành nội
dung thư đã được ký số, mã hóa để người dùng gửi đi.
Hình 2.9: Mô hình ký số, mã hóa thư điện tử
48. 39
Lược đồ Xác thực – Giải mã nội dung thư điện tử
Dữ liệu cần ký Tên hàm băm Chữ ký số
Chứng thư số người
ký
ID người ký
Chứng thư số của
người nhân
Khuôn dạng dữ liệu được ký
ID Người nhận &
thuật toán mã
Khóa đối xứng được
mã
Thông tin của những người nhận
Khóa đối xứng được
mã
ID Người nhận &
thuật toán mã
Thuật toán mã đối
xứng
DỮ LIỆU KÝ, MÃ
Giải mã dữ liệu
Giải mã khóa đối
xứng
Khóa đối xứng
Khóa bí
mật
USB lưu
khóa
Xác thực tốt
Không xác thực được
Xác thực
Khóa công khai
người ký
Kho chứng thư số
Chứng thư số người
kýTóm lược gốc
So sánh NO
Yes
Hàm băm
Tóm lược (băm) mới
của dữ liệu được ký
Hình 2.10: Lược đồ Xác thực - Giải mã nội dung thư điện tử
Quá trình xác thực, giải mã dữ liệu là quá trình ngược lại và là kết hợp
quả hai quá trình, quá trình giải mã dữ liệu và quá trình xác thực chữ ký.
Sau khi nhận được dữ liệu mã, bên nhận tiến hành giải mã dữ liệu, tìm
kiếm và sử dụng thuật toán mã hóa đối xứng giống với tên thuật toán được gửi
kèm dữ liệu mã, so sánh ID của chứng thư số người nhận và ID được gửi kèm
dữ liệu mã, nếu chùng thì người nhận được phép giải mã và tiến hành lấy khóa
bí mật tương ứng với chứng thư số người nhận, thường được lưu trong thiết bị