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ở

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.

pdf84 trang | Chia sẻ: yenxoi77 | Lượt xem: 750 | Lượt tải: 0download
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:

  • pdfluan_van_nghien_cuu_va_xay_dung_giai_phap_bao_mat_va_xac_thu.pdf
Luận văn liên quan