Hệ thống thư điện tử thường được tổ chức theo mô hình Client/ Server, trong đó:
- Mail server có nhiệm vụ nhận thư từ Mail Client và chuyển đến Mail Server của Client đích, đồng thời lưu trữ thư điện tử được gửi đến để Client tải về. Quá trình chuyển và phân phát thư của các Mail Server không phân biệt giữa thư thường và thư mật.
- Mail Client Có nhiệm vụ gửi và nhận thư từ Mail Server. Hệ thống này có chức năng mã và ký thư trước khi gửi đi, kết nối, quản lý thư, giải mã và kiểm tra chữ ký.
Dịch vụ thư điện tử làm việc theo nguyên tắc offline. Mail Client chỉ kích hoạt khi có nhu cầu gửi, nhận thư của người sử dụng. Người dùng giao tiếp với hệ thống 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. Trong quá trình chuyển giao đến đích, thư điện tử có thể được chuyển giao và lưu giữ tại một số Mail Server, nên khả năng bị tấn công là rất cao. Bởi vậy, hệ thống thư điện tử an toàn phải đảm bảo được các yêu cầu sau:
- Đảm bảo bí mật thông tin về tài khoản khi kết nối đến server, 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, giúp kiểm soát chặt chẽ và xác thực người dùng trong hệ thống.
- Mã hóa các thông điệp gửi và nhận giữa các người dùng để đảm bảo an toàn dữ liệu trên đường truyền.
- 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ỏ.
1. Giải pháp bảo mật, xác thực thư điện tử
Bảo đảm an toàn thông tin tài khoản khi đăng nhập
Yêu cầu đầu tiên của bất kỳ hệ thống kiểm soát đăng nhập nào là thông tin về tài khoản, đặc biệt là mật khẩu phải được đảm bảo bí mật khi gửi qua mạng. Điều này càng quan trọng đối với hệ thống thư điện tử, vì thông tin về địa chỉ thư là công khai và khi lộ mật khẩu người dùng sẽ bị mạo danh. Mật khẩu ở dạng rõ khi gửi đi trên đường truyền tới server có thể dễ dàng bị chặn bắt và đọc trộm. Mặt khác, người dùng thường chọn các mật khẩu có ít ký tự để dễ nhớ, do đó hacker dễ đoán và thử mật khẩu để kết nối đến server. Để khắc phục những vấn đề trên, hệ thống thư mật sử dụng các hàm băm để biến đổi mật khẩu khi gửi lên server. Khi đó server sẽ tính lại giá trị băm của mật khẩu để so sánh xác thực. Như vậy, chỉ người dùng mới biết mật khẩu ở dạng rõ của mình và mật khẩu này chỉ xuất hiện khi được nhập vào ô thông tin đăng nhập.
Đảm bảo an toàn dữ liệu trên đường truyền
Trong dịch vụ thư điện tử, các thông tin khi gửi đi trên đường truyền có thể bị chặn bắt bất hợp pháp, do đó nguy cơ mất an toàn cho dữ liệu là rất lớn. Giải pháp được sử dụng rộng rãi nhất hiện nay cho vấn đề an toàn dữ liệu là kỹ thuật mã hóa. Trong hệ thống thư mật, nội dung của thông điệp trước khi gửi đi sẽ được mã hóa tại phía người gửi bằng một khóa phiên, sau đó nội dung thư đã được mã hóa cùng với khóa phiên (đã được mã hóa bằng khóa công khai của người nhận) sẽ được đóng gói vào khuôn dạng chuẩn và gửi đi. Tại nơi nhận, chương trình Mail Client sẽ lấy thư mật về cơ sở dữ liệu cục bộ, tách phần nội dung và tách thông tin về người gửi trong thông điệp, dùng khóa bí mật của người nhận để giải mã khóa phiên sau đó dùng khóa phiên để giải mã nội dung của thư.
Xác thực nội dung thông điệp và người gửi
Chữ ký số được ứng dụng trong hệ thống bảo mật thư nhằm đảm bảo toàn vẹn của thông điệp, cũng như tính xác thực và tính chống chối bỏ của thông điệp. Trước khi thư được gửi đi, chương trình Mail Client mật sẽ ký nội dung thư và các file đính kèm bằng cách tính giá trị băm của chúng và mã bằng khóa bí mật của người gửi. Chữ ký được đóng gói cùng với thư theo khuôn dạng chuẩn và gửi đến nơi nhận. Tại nơi nhận, người nhận tách phần chữ ký trong nội dung thư và các file đính kèm, sau đó dùng khóa công khai của người gửi để giải mã ra các giá trị băm, tính toán lại các giá trị băm của nội dung thư và file đính kèm, so sánh chúng với các giá trị băm đã giải mã được. Vì chữ ký được tạo bởi khóa bí mật của người gửi, không thể giả mạo được nên tính toàn vẹn của thư sẽ được đảm bảo và người gửi không thể chối bỏ các thông tin đã giao dịch.
Hệ thống bảo mật thư sẽ sử dụng hệ mật khóa công khai để phân phối khóa phiên cho các phiên làm việc và xác thực, còn hệ mật khóa đối xứng được sử dụng để mã hóa dữ liệu.
Để quản lý và phân phối khóa, hệ thống bảo mật thư ứng dụng cơ sở hạ tầng khóa công khai (PKI). Mỗi thành viên tham gia vào hệ thống thư được cấp phát một cặp khóa công khai và khóa bí mật. Các khóa công khai được công bố rộng rãi thông qua chứng thư X509 V3, do đó các thành viên có thể dễ dàng có khóa công khai của nhau một cách tin cậy. Khi sử dụng chứng thư số trong hệ thống thư mật, các cặp khóa của người dùng và khóa công khai của CA sẽ được lưu trữ trên thiết bị eToken an toàn, tiện lợi cho quá trình sử dụng. Cách phân phối khóa như trên giúp cho việc quản lý khóa và mở rộng hệ thống trở nên thuận lợi hơn, đặc biệt là đối với mạng liên lạc có nhiều người sử dụng thư điện tử.
2. Xây dựng ứng dụng bảo mật, xác thực thư điện tử
Phần mềm bảo mật thư điện tử có thể xác thực và bảo mật nội dung các văn bản thông qua bộ nhớ đệm clipboard của hệ điều hành. Mục đích chính của chức năng này là xác thực và bảo mật nội dung thư, với khả năng xác thực và bảo mật thông qua vùng nhớ đệm clipboard.
Hệ thống bao gồm các chức năng: mã hóa, giải mã, ký số, xác thực nội dung thư và cấu hình hệ thống. Trong đó, cấu hình hệ thống sẽ thực hiện cấu hình đường dẫn thư viện truy cập eToken, 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/3DES. Do đó, các môđun mật mã của phần mềm cần có các chức năng sau:
- 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 và giải mã nội dung thư.
- Hàm mã hóa file đính kèm sử dụng khóa phiên làm khóa cho hệ mật khóa đối xứng để mã hóa và giải mã nội dung các file đính kèm.
Lược đồ ký số
Trong lược đồ này sử dụng phương pháp tách chữ ký và dữ liệu ký. Do vậy, dữ liệu cần ký không được ghép vào 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, 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. Khuôn dạng chữ ký đầu ra gồm các thông tin chính sau: Tên hàm băm được sử dụng; Chữ ký số; Chứng thư số người ký; ID người ký.
Lược đồ xác thực dữ liệu
Lược đồ xác thực thực hiện theo quy trình ngược lại với lược đồ ký. Người nhận xác thực chữ ký sẽ thực hiện các bước: Tách thuật toán hàm băm đã sử dụng; 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; Tách chữ ký số, chứng thư số người ký; Lấy khóa công khai từ chứng thư số người ký và giải mã chữ ký để thu được bản tóm lược gốc của dữ liệu ký. Sau đó, so sánh tóm lược mới và tóm lược gốc (nếu 2 bản tóm lược giống nhau, chữ ký được xác thực, ngược lại, chữ ký sẽ không được xác thực).
Lược đồ mã hóa
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 công khai tách từ các chứng thư số. Các chứng thư số này là của người nhận dữ liệu, được lấy từ kho lưu trữ chứng thư số, 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ã. Ở đây sử dụng các thuật toán mã hóa 3DES, AES.
Lược đồ giải mã
Lược đồ giải mã thực hiện theo quy trình ngược lại với lược đồ mã hóa. Tiến hành giải mã dữ liệu nhận được, tìm kiếm thuật toán đối xứng gửi kèm dữ liệu mã và so sánh ID của chứng thư số người nhận với ID được gửi kèm dữ liệu mã. Nếu ID 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 eToken, tiến hành giải mã khóa đối xứng và dùng nó để giải mã dữ liệu.
Dựa vào các phân tích trên đây, có thể xây dựng ứng dụng bảo mật và xác thực cho thư điện tử, để triển khai trong thực tiễn. Sau đây là một số giao diện ứng dụng.
Trên đây đã trình bày về hệ thống thư điện tử, một số yêu cầu khi xây dựng hệ thống thư điện tử an toàn và đề xuất một số giải pháp bảo mật, xác thực cho thư điện tử. Từ đó có thể thiết kế, xây dựng ứng dụng bảo mật và xác thực điện tử. Ứng dụng bảo mật và xác thực này có các chức năng tương tự với các sản phẩm đã được thương mại trên thế giới và trong nước, tương thích với nhiều ứng dụng thư điện tử khác nhau, dễ dàng tích hợp vào các hệ thống thông tin có sẵn và có thể chạy trên nhiều hệ điều hành khác nhau.