Luận văn cơ bản trình bày được tổng quan về an toàn thư tín điện tử, các
giao thức trong thư điện tử, một số kỹ thuật an toàn bảo mật và một số phần
mềm bảo mật thư. Luận văn đã đưa ra được giải pháp an toàn cho việc gửi và
nhận thư, cài đặt bảo mật thư điện tử trên hệ thống Zimbra Mail Server cụ thể
như sau:
- Cài đặt thành công hệ thống thư điện tử Zimbra thực hiện việc gửi và
nhận thư điện tử.
- Tích hợp chức năng xác thực, bảo mật thư điện tử trên hệ thống Zimbra
Mail Server thực hiện được các chức năng: Gửi thư mã hóa, giải mã, ký và xác
thực nội dung thư cho người dùng. Xây dựng mới ứng dụng ký số, mã hóa, xác
thực, giải mã clipboard trên nền tảng Desktop.
- Đã thử nghiệm các chức năng ký số, mã hóa thư, xác thực người gửi cho
bức thư soạn thông thường, hệ thống bảo mật, xác thực thư điện tử được tích
hợp với thiết bị Etoken.
Luận văn đã thực hiện hoàn thành các nội dung theo đề cương đã được
phê duyệt.
Hướng phát triển:
Luận văn có thể được mở rộng và phát triển theo hướng:
- Nghiên cứu xây dựng mô-đun ký số, mã hóa tập tin đính kèm trên nền
tảng Web để hoàn thiện giải pháp bảo mật cho Hệ thống thư điện tử Zimbra.
- 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.
84 trang |
Chia sẻ: yenxoi77 | Lượt xem: 835 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu 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ở, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
trong
DNS. Đối với thư gửi đi sử dụng DNS để định tuyến email. Để nhận
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
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.
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ệ
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
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.
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.
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ử
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ủ
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ử
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ử
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ị
40
USB lưu khóa, và tiến hành giải mã khóa đối xứng được mã để sinh khóa đối
xứng giải mã dữ liệu mã.
Người nhận xác thực chữ ký trên dữ liệu đã giải mã theo các bước sau:
1. Tách tên thuật toán hàm băm đã sử dụng.
2. Sử dụng thuật toán băm giống như người ký để băm dữ liệu rõ được
một bản tóm lược mới.
3. Tách chữ ký số, chứng thư số người ký.
4. Lấy khóa công khai từ chứng thư số người ký và giải mã chữ ký được
bản tóm lược gốc của dữ liệu ký.
5. So sánh hai tóm lược mới và bán tóm lược gốc:
- Nếu giống nhau chữ ký được xác thực tốt, bảo đảm tính toàn vẹn của
dữ liệu.
- Nếu không giống nhau tính toàn vẹn của dữ liệu đã bị vi phạm, chữ ký
không được xác thực.
Xác thực chữ ký sử dụng các dịch vụ chứng thực
Dữ liệu cần ký
Xác thực
tốt
Tên hàm băm
Hàm băm
Tóm lược (băm) mới
của dữ liệu được ký
Chữ ký số
Chứng thư số người
ký ID người ký
Không
xác thực
được
Khuôn dạng thông điệp được ký
Xác thực
Khóa công khai
người ký
Tóm lược gốc
So sánh
NO
Yes
Dấu thời gian
Kiểm tra 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
Kiểm tra hiệu lực
Yes
Chứng thư số người
ký
Hình 2.11: Lược đồ xác thực ký số có dấu thời gian
Quá trình xác thực chữ ký được thực hiện ngược lại, và cũng sử dụng các
thuật toán xác thực cơ bản đã thiết kết trong thư viện chuẩn của Java, tuy nhiên
41
dấu thời gian và chứng thư số của người ký và của máy chủ cấp dấu thời gian sẽ
được kiểm tra trước khi xác thực chữ ký.
Cần chú ý rằng, kiểm tra chứng thư số ký lúc xác thực sẽ không giống với
kiểm tra các chứng thư số khi ký dữ liệu. Chứng thư số ký được kiểm tra bằng
danh sách hủy bỏ và lấy ra thời gian hủy bỏ từ danh sách hủy bỏ, so sánh thời
gian này với dấu thời gian được cung cấp, nếu dấu thời gian được cung cấp nhỏ
hơn thời gian hủy bỏ thì chữ ký vẫn hợp lệ, ngược lại nếu dấu thời gian lớn hơn
thời gian hủy bỏ thì chữ ký được ký lúc chứng thư số ký đã bị hủy bỏ.
Hình 2.12: Mô hình xác thực, giải mã nội dung thư điện tử
42
Phân tích thiết kế quy trình mã hóa, giải mã nội dung thư điện tử
Lược đồ Mã hóa nội dung thư điện tử
Dữ liệu rõ được mã hóa bằng thuật toán mã hóa khóa đối xứng, tên thuật
toán được đưa vào trong khuôn dạng dữ liệu mã, mầm khóa đối xứng được mã
hóa bằng khóa cong 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, được lấy từ kho lưu trữ chứng thư số, các
ID của các chứng thư số và tên thuật toán mã hóa khóa công khai RSA sử dụng
để mã dữ liệu cũng được đưa vào khuôn dạng dữ liệu mã. Chuẩn mã hóa ở đây
sử dụng thuật toán mã hóa AES.
Hình 2.13: Lược đồ mã hóa thư điện tử
43
Hình 2.14: Mô hình mã hóa thư điện tử
b) Lược đồ Giải mã nội dung thư điện tử
Khi nhận được dữ liệu mã, tiến hành giải mã dữ liệu, tìm kiếm thuật toán
đối xứng 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 trùng thì người nhận giải mã và lấy khóa bí mật
tương ứng với chứng thư số người nhận trong thiết bị lưu khóa, tiến hành giải
mã khóa đối xứng được khóa đối xứng để giải mã dữ liệu.
Hình 2.15: Lược đồ giải mã thư điện tử
44
Hình 2.16: Mô hình giải mã thư điện tử
Phân tích quy trình kiểm tra chứng thư số trực tuyến
Chứng thư số thường được phát hành (được tạo và ký) bởi Trung tâm
chứng thực. Để kiểm tra chứng thư số còn hợp lệ cần có các chứng thư số của
Trung tâm chứng thực CA. CA là một tổ chức được tin tưởng, chứng thư số của
CA được sử dụng để ký lên các chứng thư số để phát hành cho người dùng cuối
(thực thể cuối). Chứng thư số này là chứng thư số tự ký. Để kiểm tra loại chứng
thư số này chỉ cần chứng thư số tự ký không cần dùng thêm bất kỳ chứng thư số
nào khác.
Để kiểm tra hiệu lực của chứng thư số, cần thực hiện một số thao tác sau:
1. Kiểm tra tính toàn vẹn của chứng thư số. Tính toàn vẹn nghĩa là dữ
liệu chứng thư số không bị thay đổi, sửa đổi.
2. Kiểm tra thời gian hợp lệ. Chứng thư số chỉ hợp lệ trong một khoảng
thời gian được chỉ ra trong chứng thư số.
3. Kiểm tra chứng thư số đã bị hủy bỏ hay chưa. Việc hủy bỏ được thực
hiện bằng cách đưa chứng thư số vào một danh sách đặc biệt gọi là
danh sách hủy bỏ.
45
4. Kiểm tra chứng thư số được sử dụng bởi thực thể có quyền sử dụng nó
hay không. Ví dụ nếu ta vào trang website https://bis.gov.vn và trường
Subject.CommonName của chứng thư số chứa nacis.gov.vn thì đây
không phải là chứng thư số hợp lệ.
Kiểm tra chứng thư số được thực hiện chi tiết như sau:
1. Sử dụng chức năng xác thực chứng thư số tự ký. Chức năng của
phương thức này là kiểm tra tính toàn vẹn của chứng thư số tự ký. Nó
không kiểm tra thời gian hợp lệ. Phương thức này chỉ kiểm tra các
chứng thư số tự ký.
2. Sử dụng chức năng xác thực chứng thư số CA. PHương thức này
không kiểm tra thời gian hiệu lực.
3. Sử dụng chức năng xác thực chứng thư số. Phương thức này thực hiện
kiểm tra tính toàn vẹn và thời gian hiệu lực của chứng thư số. Để thực
hiện kiểm tra tính toàn vẹn phương thức này cố gắng tìm một chứng
thư số của tổ chức phát hành, sử dụng để ký chứng thư số đang kiểm
tra.
Cách toàn diện nhất là sử dụng phương thức chức năng xác thực chứng
thư số mở rộng. Nó cố gắng định vị chứng thư của tổ chức phát hành chứa trong
kho lưu trữ. Phương thức kiểm tra trả về trạng thái của chứng thư số (hoặc là
hiệu lực hoặc là không hoặc là chứng thư số tự ký) và nếu chứng thư số là hết
hiệu lực, thông báo tại sao nó hết hiệu lực. Phải chú ý rằng phương thức này giả
định rằng chứng thư số của tổ chức phát hành còn hiệu lực. Việc kiểm tra hiệu
lực của chứng thư số của tổ chức phát hành được thực hiện riêng.
Vì vậy thật toán kiểm tra đầy đủ hiệu lực của chứng thư số là:
1. Gọi hàm xác thực mở rộng.
2. Nếu phương thức Validate() thông báo rằng chứng thư số là hợp lệ, sử
dụng chức năng lấy chứng thư số của tổ chức phát hành.
3. Nếu chứng thư số của tổ chức phát hành được tìm thấy, trở lại bước 1
để kiểm tra nó.
4. Nếu chứng thư số của tổ chức phát hành không được tìm thấy hoặc
chứng thư số đang được kiểm tra là chứng thư số tự ký, thì kiểm tra
xem chứng thư số đó có được tin cậy không.
5. Nếu chứng thư số không là một trong các chứng thư số tin cậy cảnh
báo người dùng.
46
6. Nếu chứng thư số không hợp lệ, cảnh báo người dùng.
7. Kiểm tra chứng thư số xem có trong danh sách hủy bỏ không. Nếu có
cảnh bảo người dùng.
Chú ý rằng đối với các chứng thư số của tổ chức phát hành cần kiểm tra
thời gian hiệu lực bằng cách không chỉ so sánh nó với ngày tháng hiện hành, mà
còn với ngày tháng khi chứng thư số đó được sử dụng để ký.
Bước cuối cùng của kiểm tra hiệu lực chứng thư số đó là kiểm tra xem nó
được sử dụng bởi một người gửi thư điện tử hoặc website mà chứng thư số này
được phát hành. Ví dụ, nếu ta kết nối tời một site HTTP, cần kiểm tra
SubjectName của chứng thư số và so sánh các trường CommonName với địa chỉ
hoặc tên miền ta kết nối tới. Với thư điện tử tình trạng cũng tương tự vậy, cần
phải so sánh các trường của tham số Subject của chứng thư.
Kiểm tra đường dẫn chứng thực của chứng thư số ký
Chuỗi chứng thư số là một danh sách các chứng thư số, ở đó toàn bộ
nhưng chỉ có một chứng thư số là CA cho các chứng thư số khác trong danh
sách. Mỗi chứng thư số ngoại trừ đầu danh sách là một chứng thư số CA, cuối
danh sách có một chứng thư số con. Chuỗi chứng thư số có thể được gửi bởi
máy chủ SSL, hoặc có thể xuất hiện trong thông điệp được ký dạng PKCS#11
hoặc trong một số trường hợp khác.
Kiểm tra chuỗi chứng thư số như thế nào? Đầu tiên cần phải thu thập toàn
bộ các chứng thư số vào một thể hiện của lớp (Class). Mỗi kho có chứa một
thuộc tính Chains cho phép chuy nhập mọi chuỗi (trong hầu hết các trường hợp
sẽ chỉ có một chuỗi trong kho lưu trữ). Sau đó ta có thể bắt đầu kiểm tra từng
chứng thư số một trong chuỗi đã mô tả ở trên.
Kiểm tra danh sách hủy bỏ thông qua CRL của chứng thư số ký
Danh sách hủy bỏ thường được truy trì bởi Trung tâm chứng thực nơi
phát hành chứng thư số. CRL chứa ngày tháng và lý do hủy bỏ. Khi chứng thư
số được phát hành, CA có thể ghi URL của CRL vào chứng thư số sẽ được đặt
trong trường hợp thu hồi, phần mở rộng của chứng thư số. Toàn bộ quá trình xác
thực sẽ bao gồm việc tải và kiểm tra CRL đối với chứng thư số. Tuy nhiên hầu
hết các ứng dụng không kiểm tra CRL. Lý do là không phải chứng thư số nào
cũng chứa tham chiếu tới CRL, và thậm chí khi chúng có, không phải toàn bộ
các chứng thứ số hủy bỏ được ghi vào danh sách hủy bỏ CRL.
Chỉ có chứng thư số được phát hành bởi CA mới có thể có trong một số
danh sách hủy bỏ. Chứng thư số tự ký có thể không có trong danh sách hủy bỏ
47
liên quan. Để tìm nơi có thể lấy danh sách hủy bỏ cho một chứng thư số, cần
phải kiểm tra phần mở rộng của chứng thư số CA. URL của danh sách hủy bỏ
được lưu trong CRL Distribution Points extension của chứng thư số CA được sử
dụng để ký chứng thư số đang được kiểm tra. Chú ý rằng CRL tự nó cũng được
CA ký và cũng cần được kiểm tra hiệu lực.
Ký số dữ liệu và đóng gói khuôn dạng chữ ký số
Ký số PKCS#7
Để ký dữ liệu sử dụng các chứng thư số X.509 và định dạng chữ ký số
dạng PKCS#7, ta cần sử dụng hàm ký số dữ liệu CMSSignedData.
Đầu tiên, cần phải chỉ ra các chứng thư số sẽ được sử dụng để ký (thường
là một chứng thư số). Khi ký dữ liệu, cần phải có các chứng thư số và khóa bí
mật tương ứng. Kho chứa với các chứng thư số được chỉ ra sử dụng thuộc tính
CertStorage của mô-đun lấy chứng thư số trong thiết bị lưu khóa.
Có thể lưu chứng thứ số trong chữ ký hoặc không, nếu lưu chứng thư số
ký vào chữ ký, bên người nhận sẽ không mất thời gian để tìm kiểm chứng thư số
ký để xác thực chữ ký. Để thực hiện việc này sử dụng thuộc tính
IncludeCertificates của lớp CMSSignedData. Nếu các chứng thư số không kèm
theo chữ ký người nhận cần phải tìm kiếm chứng thư số ký để xác thực chữ ký.
Để thiết lập hàm băm nào đó để sử dụng để băm dữ liệu sử dụng thuộc
tính HashAlgorithm. Trong chương trình chủ yếu sử dụng các loại hàm băm
SHA-2 (SHA256, SHA384, SHA512) an toàn so với SHA-1 hoặc MD5.
Nếu muốn gắn dấu thời gian, cần thiết lập thuộc tính TSPClient để sử
dụng thành phần gắn dấu thời gian.
Bước cuối cùng là gọi phương thức Sign() trong lớp CMSSignedData.
Tham số Detached của phương thức này quy định kiểu của chữ ký sẽ được tạo.
Chữ ký sẽ bao gói các dữ liệu. Chữ ký Detached sẽ không bao gói dữ liệu được
ký. Để ký dữ liệu đã được ký trước đó, gọi phương thức Countersign() của lớp
CMSSignedData
Phân tích quy trình lấy dấu thời gian và tích hợp vào chữ ký số
Dịch vụ cấp dấu thời gian là một cơ quan công chứng an toàn trực tuyến,
một bên thứ ba mà người dùng có thể tin cậy vào việc xác thực trong quá trình
truyền thông của mình. Nó bao gồm rất nhiều các công nghệ khác nhau nhằm
xác định một tài liệu đã tồn tài và không bị thay đổi từ một thời điểm cụ thể.
48
Bất kể định dạng hay nội dung dữ liệu nào miễn là nó ở dạng điện tử thì
đều có thể sử dụng dịch vụ cấp dấu thời gian. Dịch vụ cấp dấu thời gian có thể
được ứng dụng cho các dịch vụ giao dịch trực tuyến, email, nhắn tin tan toàn,
bảo hộ sở hữu trí tuệ và các dịch vụ thời gian nhạy cảm khác.
Trong cơ sở hạ tầng khóa công khai một chữ ký số được cung cấp cho
việc ký lên các tài liệu điện tử có thể bị hủy bỏ thời gian ký lên các tài liệu này
không phải là một thời gian tin cậy và chính xác.Một dấu thời gian lấy từ hệ
thoogns cấp dấu thời gian sẽ được gắn trên chữ ký đó, và thời gian được ký lên
các tài liệu văn bản điện tử sẽ được lấy thờ gian từ hệ thống cấp dấu thời gian.
Một chữ ký đi kèm con dấu như thế sẽ hỗ trợ chống chối bỏ trong quá trình ký
mã.
Một hệ thống TSA gồm hai thành phần Client và Server.Client thực hiện
tính toán giá trị tóm lực của tài liệu điện tử sau đó gửi lên Server. TSA chấp
nhận yêu cầu và đính kèm thời gian lên giá trị tóm lược mà client gửi lên Server,
đồng thời ký các giá trị đó và gửi về Client kèm theo chứng thư số của nó. Vì
vậy, Client có thể kiểm tra chữ ký trên dấu thời gian bằng cách sử dụng chứng
thư số được TSA gửi kèm đi.
Sử dụng dấu thời gian trong chữ ký số PKCS#7
Để gắn dấu thời gian vào chữ ký dữ liệu sử dụng các chứng thư số X.509
và định dạng PKCS#7 cần sử dụng phương thức Timestamp của thành phần
CMSSignedData. Trước khi gọi phương thức, chỉ ra client kết nối tới TSA bằng
cách gắn một thể hiện TTCAFileTSPClient hoặc TTCAHTTPSPClient tới thuộc
tính TSPClient.
Yêu cầu cấp dấu thời gian được tọa tự động bởi CMSSignedData khi ký
dữ liệu. Tất cả việc phải tạo là xử lý sự kiện cho OnTimestampNeeded của lớp
TTCAFileTSPClient, nếu muốn sử dụng xử lý dấu thời gian tùy chỉnh, hoặc
thiết lập thuộc tính URL của lớp TTCAHTTPSPClient nếu muốn sử dụng truyền
tải Https. Cũng cần gán truyền tải (một thể hiện của TTCAHTTPSPClient) để
thuộc tính kết nối (như username/password), thực hiện thông qua thuộc tính
TTCAHTTPSPClient.RequestParameters.
Mặc định, nếu gắn dấu thời gian thất bại, quá trình ký cũng sẽ bị hủy. Kết
quả này có thể được chỉnh sửa bằng cách bật lựa chọn
soIgnoreTimestampFailure trong thuộc tính SigningOptions của thành phần
CMSSignedData.
49
Xây dựng giao diện ký số, mã hóa tích hợp trong hệ thống Zimbra
Các thành phần trong giao diện ký số, mã hóa
STT Tên đối tượng
Kiểu đối
tượng
Định
dạng
Giá trị
1 btnMsg menuItem Icon +
Text
Giải mã
2 btnMsgVerify menuItem Icon +
Text
Chứng thực
3 buttonParams toolbar Icon +
Text
Gửi thư mã
hóa
4 buttonSignParams toolbar Icon +
Text
Gửi thư kèm
theo chữ ký
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
Chức năng mã hóa, ký số được tích hợp trên ứng dụng thư điện tử Zimbra gồm
“Gửi thư mã hóa” và “Gửi thư kèm theo chữ ký”.
50
Hình 2.18: Giải mã nội dung thư
Hình 2.19: Xác thực nội dung thư
Chức năng xác thực, giải mã được tích hợp trên ứng dụng thư điện tử Zimbra
gồm “Xác thực” và “Xác thực, giải mã”.
51
2.3.2. Ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop
Phân tích thiết kế mô hình tổng thể
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
Trong mô hình trên người sử dụng yêu cầu xác thực, bảo mật nội dung bộ
nhớ đêm clipboard thông qua phần mềm gồm các chức năng chính: Ký số, xác
thực, mã hóa và giải mã nội dung clipboard. Nội dung thư điện tử được soạn
thảo trên các trình soạn thảo văn bản thông qua bộ nhớ đệm clipboard của hệ
điều hành sẽ được ký số và bảo mật.
Lược đồ ký số, xác thực, mã hóa và giải mã
Trong ứng dụng Ký số, mã hóa, xác thực, giải mã clipboard trên nền tảng
Desktop sử dụng lược đồ ký số, xác thực, mã hóa và giải mã tương tự như ứng
dụng trên nền tảng Web chỉ khác dữ liệu đầu vào và đầu ra được lấy và lưu trên
bộ nhớ đệm clipboard.
Phân tích thiết kế chức năng của ứng dụng
Hình 2.21: Chức năng phần mềm bảo mật thư điện tử
52
Mô tả các chức năng:
- Chức năng mã hóa thư: Thực hiện mã hóa nội dung thư và các tệp tin
đính kèm trong thư.
- Chức năng giải mã thư: Thực hiện giải mã nội dung thư và các tệp tin
đính kèm đã được mã hóa.
- Chức năng ký số nội dung thư: Thực hiện ký số nội dung thư và gắn
nội dung chữ ký đi kèm với nội dung thư.
- Chức năng xác thực nội dung thư: Thực hiện việc kiểm tra chữ ký nội
dung thư đã được ký số để kiểm tra tính toàn vẹn của thư.
- Chức năng cấu hình hệ thống: Thực hiện cấu hình đường dẫn thư viện
truy cập thiết bị lưu khóa, cấu hình lưu trữ các chứng thư số được thực
hiện giải mã nội dung.
Hệ thống phần mềm bảo mật thư sử dụng mã khối AES. Do đó các
Module mật mã của phần mềm cần có các chức năng mật mã sau:
1. Hàm mã hóa nội dung thư: sử dụng khóa phiên làm khóa cho hệ mật
khóa đối xứng để mã hóa nội dung thư trước khi gửi đi hoặc lưu trữ.
2. Hàm giải mã nội dung thư: sử dụng khóa phiên làm khóa cho hệ mật
khóa đối xứng để giải mã nội dung thư trước khi hiển thị nội dung.
Tích hợp chứng thư số và thiết bị lưu khóa với phần mềm bảo mật
thư
Khi sử dụng chứng thư số và thiết bị lưu khóa thì các modul chương trình
bảo mật thư phải được sử dụng trong quá trình kết nối:
1. Hàm mã hóa khóa phiên dùng để mã hóa thư trước khi gửi đi: sử dụng
khóa công khai trong chứng thư số của những người nhận để mã hóa
khóa phiên.
2. Hàm giải mã khóa phiên khai thác dữ liệu: Sử dụng thiết bị lưu khóa
của người dùng để giải mã khóa đã mã thư để khai thác.
3. Hàm ký dữ liệu: Sử dụng khóa bí mật lưu trữ trong thiết bị lưu khóa
của người gửi để ký sốnội dung thư trước khi gửi đi.
4. Hàm xác thực dữ liệu: Sử dụng khóa công khai của người gửi để xác
thực nội dung thưđã nhận được.
53
Xây dựng giao diện phần mềm bảo mật trên nền desktop
Các thành phần trong chức năng ký số, mã hoá Clipboard
STT Tên đối tượng
Kiểu đối
tượng
Định
dạng
Giá trị
1 frmBisSig JDialog
Icon +
Text
2 jLabel1 JLabel Icon
email-
encryption.jpg:
Bảo mật email
3 btnSignEncrypt JButton Text
Ký số/Mã hoá
nội dung
clipboard
4 panChooseMethod JPanel Text
Chọn phương
thức thực hiện:
ký số hay mã
hoá
5 rdbSign JRadioButton Text
Chức năng ký
số
6 rdbEncrypt JRadioButton Text
Chức năng ký
số và mã hoá
7 panChooseEncryptCert JPanel Text
Chọn chứng
thư số ký, mã
8 jLabel16 JLabel Icon
certificate-
1.png
9 jLabel13 JLabel Text
Chọn chứng
thư số người
ký
10 cboLoadSignCert JComboBox Text Chọn người ký
11 btnLoadSignerCert JButton Text
Đọc danh sách
chứng thư
trong thiết bị
12 tblChoosedCertificateList JTable Text Danh sách các
54
chứng thư số
được phép giải
mã
13 btnAddEncCert JButton Text
Thêm danh
sách người
giải mã
14 btnDeleteEncCert JButton Text
Xoá bớt danh
sách người
giải mã
15 btnOk JButton Text
Thực hiện ký
số/mã hoá nội
dung clipboard
Hình 2.22: Giao diện ký số và mã hóa dữ liệu
Các thành phần trong chức năng xác thực, giải mã nội dung Clipboard
STT Tên đối tượng
Kiểu đối
tượng
Định
dạng
Giá trị
1 frmBisSig JDialog
Icon +
Text
2 jLabel1 JLabel Icon email-
55
encryption.jpg:
Bảo mật email
3 btnVerifyDecrypt JButton Text
Xác thực/Giải
mã nội dung
clipboard
4 panChooseMethod JPanel Text
Chọn phương
thức thực hiện:
xác thực hay
xác thực và
giải mã
5 rdbSign JRadioButton Text
Chức năng xác
thực
6 rdbEncrypt JRadioButton Text
Chức năng xác
thực và giải
mã
7 panChooseEncryptCert JPanel Text
Chọn người
giải mã
8 jLabel16 JLabel Icon
certificate-
1.png
9 jLabel13 JLabel Text Thông báo
10 cboLoadSignCert JComboBox Text
Chọn người
giải mã
11 btnLoadSignerCert JButton Text
Đọc danh sách
chứng thư
trong thiết bị
12 tblChoosedCertificateList JTable Text
Tình trạng giải
mã, xác thực
13 btnOk JButton Text
Thực hiện xác
thực hoặc xác
thực và giải
mãnội dung
clipboard
56
Hình 2.23: Giao diện xác thực dữ liệu
Hình 2.24: Giao diện giải mã và xác thực dữ liệu
57
Hình 2.25: Giao diện ký số nội dung thư điện tử
Giao diện xác thực nội dung email
Hình 2.26: Giao diện xác thực nội dung thư điện tử
58
Các thành phần trong chức năng quản lý chứng thư số
STT Tên đối tượng
Kiểu đối
tượng
Định
dạng
Giá trị
1 frmBisSig JDialog
Icon +
Text
2 jLabel1 JLabel Icon
email-
encryption.jpg:
Bảo mật email
3 btnKeyring JButton Text
Quản lý chứng
thư số
4 jGridView JGridView Text
Hiển thị thông
tin chứng thư
số
5 btnAdd JButton Text
Thêm danh
sách chứng
thư quản lý
6 btnDel JButton Text
Xoá danh sách
chứng thư
quản lý
7 btnSave JButton Text
Lưu danh sách
chứng thư
quản lý
8 btnView JButton Text
Xem thông tin
chứng thư
59
Hình 2.27: Giao diện quản lý chứng thư số
d) Giao diện cấu hình hệ thống phần mềm
STT Tên đối tượng
Kiểu đối
tượng
Định
dạng
Giá trị
1 frmBisSig JDialog
Icon +
Text
2 jLabel10 JLabel Icon
email-
encryption.jpg:
Bảo mật email
3 btnSystemConfig JButton Text
Cấu hình phần
mềm
4 jTabPanel JTabPanel Text
5 jChkTem JCheckBox Text
Sử dụng dịch
vụ cấp giấy
thời gian
6 jLabel11 JButton Text
Máy chủ thời
gian
7 jTextAreal11 JTextAreal Text
Địa chỉ máy
chủ thời gian
60
8 jChkCheckOnline JCheckBox Text
Sử chức năng
kiểm tra chứng
thư số trực
tuyến
9 jChkProxy JCheckBox Text
Sử dụng máy
chủ Proxy
10 jUserProxy JTextAreal Text
Tên đăng nhập
Proxy
11 jPassProxy JTextAreal Text
Mật khẩu truy
cập Proxy
12 jAddrProxy JTextAreal Text
Địa chỉ máy
chủ Proxy
13 jPortProxy JTextAreal Text Cổng kết nối
14 jLabel11 JButton Text
Cấu hình
đường dẫn thư
viện PKCS#11
(.dll/.so)
15 jTextAreal12 JTextAreal Text
Đường dẫn thư
viện PKCS#11
16 btnBrowser JButton Text
Tìm đường
dẫn
14 btnSaveConfig JButton Text Lưu cấu hình
61
Hình 2.28: Giao diện cấu hình ký số
Hình 2.29: Giao diện cấu hình hệ thống
62
2.3.3. Tính năng mật mã của giải pháp
Phần mềm nguồn mở sử dụng phát triển gồm: Hệ thống thư điện tử
Zimbra; Thư viện mật mã mã nguồn mở Bouncy Castle Crypto APIs.
Tiêu chuẩn mật mã đáp ứng
- Chuẩn khuôn dạng chứng thư số X509 v3, phần mềm có thể sử dụng
cho các chứng thư số của các nhà cung cấp dịch vụ chứng thực chữ ký
số có định dạng chuẩn X509 v3.
- Chuẩn khuôn dạng CRL và chứng thư số theo RFC 3280 (Certificate
and Certificate Revocation List (CRL) Profile).
- Mã hóa phi đối xứng: Áp dụng PKCS#1 phiên bản 2.1, Áp dụng lược
đồ RSAES-OAEP để mã hoá.
- Chữ ký số: Áp dụng PKCS#1 phiên bản 2.1, sử dụng lược đồ
RSASSA-PSS để ký.
- Chuẩn mã hóa đối xứng: Sử dụng AES (128 bit) sử dụng chế độ CBC.
- Hàm băm mật mã: SHA-1, SHA-256.
- Chuẩn khuôn dạng chữ ký số CMS/PKCS#7.
- Chuẩn gắn dấu thời gian Time-Stamp Protocol RFC 3161.
Hệ thống thư điện tử nguồn mở Zimbra được cài đặt trên hệ điều hành
nguồn mở CentOS 6.3, các ứng dụng bảo mật, xác thực trên nền tảng web và
ứng dụng bảo mật, xác thực trên máy trạm được xây dựng trên nền tảng ngôn
ngữ lập trình Java, do đó có thể chạy được trên cả hệ điều hành Windows và
Linux.
63
Chương 3: CÀI ĐẶT, THỬ NGHIỆM GIẢI PHÁP KÝ SỐ, MÃ HÓA THƯ
ĐIỆN TỬ
3.1. Mô tả ứng dụng ký số, mã hóa thư điện tử
3.1.1. Mô tả ứng dụng bảo mật thư điện tử tích hợp trên hệ thống thư
điện tử Zimbra
Đăng nhập vào hệ thống thư điện tử Zimbra
Đăng nhập vào địa chỉ chương trình hiển thị màn
hình đăng nhập, nhập tài khoản và mật khẩu để đăng nhập vào hệ thống.
Ký số và xác thực nội dung thư
Vào “Tạo thư mới”, nhập địa chỉ người nhận, nhập nội dung thư cần gửi
rồi bấm nút “Gửi thư kèm chữ ký”. Hệ thống sẽ yêu cầu nhập mật khẩu của thiết
bị lưu khoá như sau:
Hình 3.1: Chọn chứng thư số trong thiết bị
Nhập mật khẩu thiết bị lưu khoá, bấm “Đồng ý” chương trình sẽ tiến hành
ký nội dung thư điện tử:
Hình 3.2: Giao diện ký số và mã hóa nội dung thư
Để xác thực nội dung thư, vào mục “Thư đến”, chuột phải vào thư cần xác
thực, bấm “Chứng thực”
64
Hình 3.3: Giao diện chứng thực nội dung thư
Mã hoá và giải mã nội dung thư
- Vào “Tạo thư mới”, nhập địa chỉ người nhận, nhập nội dung thư cần gửi
rồi bấm nút “Gửi thư mã hoá”.
- Để giải mã nội dung thư, vào mục “Thư đến”, chuột phải vào thư cần
giải mã, bấm “Giải mã”
Hình 3.4: Giao diện giải mã nội dung thư
65
3.1.2.Mô tả ứng dụng bảo mật thư điện tử trên nền Desktop
Chức năng Ký số nội dung thư điện tử
Sao chép nội dung thư điện tử, sau đó vào chức năng “Ký số/Mã hoá”,
chọn “ký số ClipBoard”. Tải chứng thư số ký và bấm “Thực hiện”. Nội dung đã
ký số ở trong ClipBoard, paste nội dung này vào thư để gửi đi.
Hình 3.5: Giao diện ký số nội dung clipboard
Chức năng Ký số và mã hoá nội dung thư điện tử
Sao chép nội dung thư điện tử, sau đó vào chức năng “Ký số/Mã hoá”,
chọn “Ký số, Mã hoá ClipBoard”. Tải chứng thư số ký, chọn chứng thư số được
giải mã và bấm “Thực hiện”. Nội dung đã ký số ở trong ClipBoard, paste nội
dung này vào thư để gửi đi.
66
Hình 3.6: Giao diện ký số, mã hoá nội dung clipboard
Chức năng Xác thực nội dung thư điện tử
Sao chép nội dung thư điện tử đã ký, sau đó vào chức năng “Xác
thực/Giải mã”, chọn “Xác thực chữ ký” và bấm “Thực hiện”. Sau khi xác thực
nội dung đã ký số và thông tin người ký ở trong ClipBoard, paste nội dung này
vào thư để xem.
Hình 3.7: Giao diện xác thực nội dung clipboard
67
Chức năng Xác thực, Giải mã nội dung
Sao chép nội dung thư điện tử đã ký và mã hoá, sau đó vào chức năng
“Xác thực/Giải mã”, chọn “Xác thực, Giải mã nội dung”, bấm “Tải khoá” để
chọn chứng thư giải mã. Sau khi giải mã và xác thực nội dung thông tin người
ký và nội dung thư ở dạng rõ ở trong ClipBoard, paste nội dung này vào thư để
xem.
Hình 3.8: Giao diện xác thực, giải mã nội dung clipboard
Chức năng quản lý chứng thư số
Bấm vào nút “Quản lý chứng thư số”, giao diện như sau:
Hình 3.9: Giao diện quản lý chứng thư số
68
Có thể Thêm, Sửa, Xoá, Xem chứng thư.
Chức năng cấu hình hệ thống
Bấm vào nút “Cấu hình” và thiết lập các cấu hình cần thiết rồi bấm “Lưu
cấu hình”
Hình 3.10: Giao diện cấu hình hệ thống
Hình 3.11: Giao diện ký cấu hình đường dẫn thư viện PKCS#11
69
3.2. Phương pháp, mô hình triển khai thử nghiệm
3.2.1. Mô hình triển khai thử nghiệm
Hình 3.12: Sơ đồ mô hình thử nghiệm hệ thống bảo mật thư điện tử
Mô tả mô hình:
- Server Mail: Server Mail là máy chủ phục vụ thư điện tử trên đó cài hệ
thống thư điện tử nguồn mở Zimbra và các ứng dụng bảo mật, xác
thực nội dung thư điện tử.
- Database Server: Server cài đặt cơ sở dữ liệu của hệ thống thư điện tử.
3.2.2. Phương pháp thử nghiệm
Để kiểm tra các chức năng phần mềm, phương pháp sử dụng là kiểm tra
khả năng đáp ứng của các chức năng mô tả.
3.3. Nội dung, kết quả thử nghiệm
3.3.1. Nội dung các bài đo thử
Căn cứ vào phương pháp thử nghiệm, mô hình mạng thử nghiệm, mười
(10) bài thử nghiệm được tiến hành để kiểm tra hoạt động của các chức năng
theo thiết kế như sau:
Bảng 3.1 : Yêu cầu thử nghiệm hệ thống bảo mật và xác thực thư điện tử
STT Chức năng Yêu cầu cần đạt Kết quả
01 Hệ thống thư điện tử mã
nguồn mở Zimbra
- Đáp ứng được các yêu cầu của
một hệ thống thư điện tử
Khả năng
đáp ứng
02
Chức năng ký số nội
dung thư điện tử trên
ứng dụng bảo mật thư
- Ký số nội dung thư thông qua
clipboard.
- Ký số sử dụng chuẩn chữ ký số
Khả năng
đáp ứng
70
điện tử trên nền
Desktop
PKCS#7, hàm băm mật mã
SHA-1 và thiết bị lưu khóa.
03
Chức năng xác thực nội
dung thư điện tử trên
ứng dụng bảo mật thư
điện tử trên nền
Desktop
- Xác thực được nội dung đã ký
với chuẩn chữ ký số PKCS#7,
hàm băm mật mã SHA-1.
Khả năng
đáp ứng
04
Chức năng mã hoá nội
dung thư điện tử trên
ứng dụng bảo mật thư
điện tử trên nền
Desktop
- Mã hoá nội dung thư sử
dụngthuật toán mã hóa AES chế
độ CBC, thuật toán trao đổi
khóa RSA.
Khả năng
đáp ứng
05 Chức năng giải mã nội
dung thư điện tử trên
ứng dụng bảo mật thư
điện tử trên nền
Desktop
- Giải mã nội dung thư sử
dụngthuật toán mã hóa AES,
thuật toán trao đổi khóa RSA.
Khả năng
đáp ứng
06 Chức năng ký số nội
dung thư điện tử tích
hợp trong hệ thống thư
Zimbra
- Ký số sử dụng chuẩn chữ ký số
PKCS#7, hàm băm mật mã
SHA-1 và thiết bị etoken.
Khả năng
đáp ứng
07 Chức năng xác thực nội
dung thư điện tử tích
hợp trong hệ thống thư
Zimbra
- Xác thực được nội dung đã ký
với chuẩn chữ ký số PKCS#7,
hàm băm mật mã SHA-1.
Khả năng
đáp ứng
08 Chức năng mã hoá nội
dung thư điện tử tích
hợp trong hệ thống thư
Zimbra
- Mã hoá nội dung thư sử
dụngthuật toán mã hóa AES,
thuật toán trao đổi khóa RSA.
Khả năng
đáp ứng
09 Chức năng giải mã nội
dung thư điện tử tích
hợp trong hệ thống thư
Zimbra
- Giải mã nội dung thư sử
dụngthuật toán mã hóa AES,
thuật toán trao đổi khóa RSA.
Khả năng
đáp ứng
10 Tích hợp mật mã khóa - Tất cả các thao tác ký số, xác Khả năng
71
công khai trong hệ
thống bảo mật thư điện
tử
thực, mã hóa, giải mã trong hệ
thống thư điện tử có bảo mật
đều phải sử dụng thiết bị lưu
khóa.
đáp ứng
3.3.2. Kết quả đánh giá
Tác giả sử dụng hệ thống thư điện tử nguồn mở Zimbra. Hệ thống Zimbra
đã đáp ứng được các yêu cầu của một hệ thống thư điện tử: gửi, gửi theo nhóm,
nhận thư trong và ngoài hệ thống.
Bên cạnh các chức năng đã được cung cấp sẵn bởi hệ thống Zimbra, tác
giả cũng đã tùy biến, can thiệp vào mã nguồn để tích hợp thêm trong hệ thống
thư điện tử Zimbra các chức năng mới phục vụ cho yêu cầu bảo mật và xác thực
thư điện tử theo thiết kế. Các chức năng xác thực và bảo mật chủ yếu bao gồm:
ký số văn bản, tài liệu, xác thực người dùng, mã hóa và giải mã dữ liệu...Kết quả
chi tiết các bài thử nghiệm chính được đưa ra trong bảng 3.2.
Bảng 3.2: Kết quả thử nghiệm hệ thống bảo mật và xác thực thư điện tử
STT Chức năng
Kết
quả
01
Chức năng ký số nội dung thư điện tử:
Yêu cầu: Ký số sử dụng chuẩn chữ ký số PKCS#7, hàm băm
mật mã SHA-1 và thiết bị etoken.
Đạt
02
Chức năng xác thực nội dung thư điện tử:
Yêu cầu: Xác thực được nội dung đã ký với chuẩn chữ ký số
PKCS#7, hàm băm mật mã SHA-1.
Đạt
03
Chức năng mã hoá nội dung thư điện tử :
Yêu cầu: Mã hoá nội dung thư sử dụngthuật toán mã hóa AES,
thuật toán trao đổi khóa RSA.
Đạt
04
Chức năng giải mã nội dung thư điện tử :
Yêu cầu: Giải mã nội dung thư sử dụngthuật toán mã hóa AES,
thuật toán trao đổi khóa RSA.
Đạt
05
Tích hợp mật mã khóa công khai trong hệ thống bảo mật thư
điện tử :
Yêu cầu: Tất cả các thao tác ký số, xác thực, mã hóa, giải mã
Đạt
72
trong hệ thống thư điện tử có bảo mật đều phải sử dụng thiết bị
lưu khóa.
Ngoài việc tích hợp các chức năng trong hệ thống thư điện tử dùng
Zimbra, tác giả cũng đã xây dựng một ứng dụng trên nền desktop thực hiện các
chức năng tương tự.
Chức năng ký số nội dung thư điện tử thông qua Clipboard.
Chức năng xác thực nội dung thư điện tử.
Chức năng mã hoá nội dung thư điện tử.
Chức năng giải mã nội dung thư điện tử.
Tất cả các chức năng trên đều đáp ứng với yêu cầu đặt ra.
73
KẾT LUẬN
Luận văn cơ bản trình bày được tổng quan về an toàn thư tín điện tử, các
giao thức trong thư điện tử, một số kỹ thuật an toàn bảo mật và một số phần
mềm bảo mật thư. Luận văn đã đưa ra được giải pháp an toàn cho việc gửi và
nhận thư, cài đặt bảo mật thư điện tử trên hệ thống Zimbra Mail Server cụ thể
như sau:
- Cài đặt thành công hệ thống thư điện tử Zimbra thực hiện việc gửi và
nhận thư điện tử.
- Tích hợp chức năng xác thực, bảo mật thư điện tử trên hệ thống Zimbra
Mail Server thực hiện được các chức năng: Gửi thư mã hóa, giải mã, ký và xác
thực nội dung thư cho người dùng. Xây dựng mới ứng dụng ký số, mã hóa, xác
thực, giải mã clipboard trên nền tảng Desktop.
- Đã thử nghiệm các chức năng ký số, mã hóa thư, xác thực người gửi cho
bức thư soạn thông thường, hệ thống bảo mật, xác thực thư điện tử được tích
hợp với thiết bị Etoken.
Luận văn đã thực hiện hoàn thành các nội dung theo đề cương đã được
phê duyệt.
Hướng phát triển:
Luận văn có thể được mở rộng và phát triển theo hướng:
- Nghiên cứu xây dựng mô-đun ký số, mã hóa tập tin đính kèm trên nền
tảng Web để hoàn thiện giải pháp bảo mật cho Hệ thống thư điện tử Zimbra.
- 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.
74
DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ
LIÊN QUAN ĐẾN LUẬN VĂN
- Thành viên đề tài cấp nhà nước KC01.02/11-15 “Xây dựng giải pháp bảo mật
hệ thống thông tin dựa trên công nghệ mở”.
- Hồ Văn Hương, Nguyễn Quốc Uy, Giải pháp bảo mật cơ sở dữ liệu ứng dụng
mã nguồn mở, Tạp chí An toàn thông tin số 03 (027) năm 2013.
- Hồ Văn Hương, Nguyễn Quốc Uy, Nguyễn Anh Đoàn, Tích hợp giải pháp
bảo mật và xác thực cho mạng riêng ảo, Tạp chí nghiên cứu Khoa học và Công
nghệ Quân sự số 28, 12/2013.
- Hồ Văn Hương, Hoàng Chiến Thắng, Nguyễn Quốc Uy, Giải pháp bảo mật và
xác thực cho văn phòng điện tử, Kỷ yếu Hội nghị Quốc gia về Điện tử và
Truyền thông (REV2013-KC01), tổ chức tại Đại học CN- Đại học Quốc gia Hà
nội, 17-18/12/2013.
- Hồ Văn Hương, Hoàng Chiến Thắng, Nguyễn Quốc Uy, Giải pháp bảo mật và
xác thực thư điện tử, Tạp chí An toàn thông tin số 04 (028), 2013.
- Hồ Văn Hương, Đào Thị Ngọc Thuỳ, Hoàng Chiến Thắng, Nguyễn Quốc Uy,
Nghiên cứu hệ thống lõi OpenCA và ứng dụng, Tạp chí Khoa học và Công nghệ
Tập 52 - Số 1B, 2014.
75
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]
Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, Đại Học
Quốc Gia Hà Nội, năm 2002.
[2]
Nguyễn Hiếu Minh, Bài giảng lý thuyết mật mã, Học Viện Kỹ Thuật
Quân Sự, năm 2007.
[3]
Trịnh Nhật Tiến, Bài giảng về mật mã và an toàn dữ liệu, Khoa
CNTT-Trường Đại Học Công Nghệ, 2009.
[4]
TS. Hồ Văn Hương, KS. Hoàng Chiến Thắng, KS. Nguyễn Quốc
Uy, Giải pháp bảo mật và xác thực cho văn phòng điện tử, Hội nghị
Quốc gia về điện tử và truyền thông (REV 2013-KC01).
[5]
TS. Hồ Văn Hương, KS. Hoàng Chiến Thắng, KS. Nguyễn Quốc
Uy Giải pháp bảo mật và xác thực thư điện tử, Tạp chí An toàn thông
tin số 04 (028), 2013.
[6] TCVN 11367-2:2016 (ISO/IEC 18033-2:2006) Công nghệ thông tin
– Các kỹ thuật an toàn – Thuật toán mật mã – Phần 2: Mật mã phi
đối xứng.
[7] TCVN 11367-3:2016 (ISO/IEC 18033-3:2010) Công nghệ thông tin
– Các kỹ thuật an toàn – Thuật toán mật mã – Phần 3: Mã khối.
[8] TCVN 7635:2007 Kỹ thuật mật mã – Chữ ký số.
[9] TCVN 7876:2007 Công nghệ thông tin – Kỹ thuật mật mã – Thuật
toán mã dữ liệu AES.
Tiếng Anh
[10]
Willian Stallings, Cryptography and Network Security Principles
and Practices, Fourth Edition, 2005.
[11]
Carlisle Adams and Stevel Lioyd, Understancling PKI: Concepts,
Standards and Deployment Considerations, Addision-Wesley, 2003.
[12]
Milestracy, Wayne Jansen, Scott Bisker, Guidelines on Electronic
Mail Securrity U.S Government Printing Office Washington, 2002.
[13] FIPS PUB 186-4, Digital Signature Standard (DSS), 2013.
[14] ISO/IEC 10116:2006Information technology – Security techniques –
Modes of operation for an n-bit block cipher.
[15] RSA Laboratories, PKSC#1 v2.1: RSA Cryptography Standard, 2002.
[16] Trang thông tin của Zimbra www.zimbra.com
[17] Trang thông tin của Bouncy Castle www.bouncycastle.org
Các file đính kèm theo tài liệu này:
- luan_van_nghien_cuu_va_xay_dung_giai_phap_bao_mat_va_xac_thu.pdf