Tích hợp mật mã cho các ứng dụng văn phòng di động M-Office

14:00 | 03/07/2009

Trong thời gian vừa qua, các kết quả nghiên cứu khoa học mật mã nhằm chuẩn hoá các lược đồ, thuật toán, tham số mật mã phục vụ cho việc bảo mật thông tin đã từng bước được triển khai ứng dụng trong thực tế. Một trong số các kết quả đó là các thư viện mật mã đã được tích hợp cho ứng dụng Văn phòng di động M-Office do Sở Khoa học và Công nghệ (KH&CN) Đồng Nai xây dựng.

I. Mở đầu
Trong thời gian vừa qua, các kết quả nghiên cứu khoa học mật mã nhằm chuẩn hoá các lược đồ, thuật toán, tham số mật mã phục vụ cho việc bảo mật thông tin đã từng bước được triển khai ứng dụng trong thực tế. Một trong số các kết quả đó là các thư viện mật mã đã được tích hợp cho ứng dụng Văn phòng di động M-Office do Sở Khoa học và Công nghệ (KH&CN) Đồng Nai xây dựng.
Hệ thống M-office (Mobile Office) là môđun chính của Văn phòng điện tử, với mục đích tăng cường hiệu quả công tác hành chính trong các cơ quan, tổ chức. M-Office góp phần tăng cường sức mạnh của người quản lý. Bằng cách giao việc và thu hồi các ý kiến xử lý công việc qua mạng, liên kết nhiều người cùng tham gia vào một công việc trong các luồng thông tin, phần mềm này đã giúp giảm thiểu thời gian chờ đợi trong xử lý công việc. M-Office được xây dựng trên nền công nghệ DOTNET, với ứng dụng web thân thiện và dễ sử dụng, giúp điều hành một cách tổng thể các hoạt động của một tổ chức. M-Office cũng được thiết kế cho hệ thống liên văn phòng, công ty mẹ - công ty con, tạo một hệ thống liên thông từ Bộ, ngành trung ương đến các ban, ngành địa phương, đặc biệt thích hợp cho việc quản lý, điều hành theo tiêu chuẩn ISO và những nơi triển khai Chính phủ điện tử.
Ban đầu, các tính năng bảo mật và xác thực được tích hợp cho hệ thống M-Office bao gồm:
- Các thuật toán băm, mã hoá/giải mã, ký/kiểm tra chữ ký được gọi từ thư viện mật mã sẵn có trên môi trường Microsoft Windows (gồm các hàm thực thi các thuật toán như SHA1, 3DES,…).
- Chứng chỉ điện tử sử dụng cho quá trình xác thực người dùng và sinh chữ ký/kiểm tra chữ ký của người dùng là các chứng chỉ được cấp phát từ hệ thống CA có sẵn trên Windows server 2003.

II. Tích hợp các thư viện mật mã cho M-Office
1. Các kết quả đạt được

Mặc dù khi xây dựng ứng dụng M-Office, các tác giả đã xây dựng sẵn các tính năng bảo mật. Song, việc sử dụng các tính năng bảo mật có sẵn trên môi trường Windows có một số hạn chế dưới đây:
- Các thư viện mật mã đã được đóng gói dưới dạng sản phẩm thương mại nên việc kiểm chứng tính đúng đắn của các thuật toán được cài đặt trong thư viện là không dễ dàng.
- Các thuật toán, lược đồ mật mã (mã dữ liệu, băm dữ liệu,…) chưa phải là các thuật toán mạnh.
- Việc cập nhật, nâng cấp tính năng mật mã cho sản phẩm rất khó khăn.
Trên cơ sở các kết quả nghiên cứu trước đó, năm 2005 nhóm cán bộ kỹ thuật của Ban Cơ yếu Chính phủ đã phối hợp với Sở KH&CN Đồng Nai xây dựng chương trình tích hợp thư viện mật mã mới cho M-Office. Các thuật toán mật mã được xây dựng trong thư viện bao gồm:
- Mã hoá, giải mã khoá công khai RSA theo chuẩn PKCS#1 phiên bản 1.5.
- Lược đồ chữ ký RSA theo chuẩn PKCS#1 phiên bản 1.5.
- Hàm băm dữ liệu SHA256.
- Thuật toán mã hoá dữ liệu AES 256 bit khoá.

2. Thử nghiệm kết quả mới
Dựa trên kết quả của đề tài nghiên cứu khoa học về “Nghiên cứu xây dựng chuẩn mật mã quốc gia Việt Nam” của Ban Cơ yếu Chính phủ, các lược đồ thuật toán mật mã đã được chương trình hoá chúng thành các thư viện và các thư viện này được tích hợp, chạy thử nghiệm trên ứng dụng văn phòng di động M-Office. Cụ thể các thư viện bao gồm: ECDSA_LIB.DLL, ECMQV1LIB.DLL và ECMQV2LIB.DLL. Trong đó:
- Lược đồ chữ ký số ECDSA được xây dựng thành các hàm thuộc thư viện ECDSA_LIB.DLL.
- Lược đồ trao đổi khoá ECMQV một lần chuyển được xây dựng thành các hàm thuộc thư viện ECMQV1LIB.DLL.
- Lược đồ trao đổi khoá ECMQV hai lần chuyển được xây dựng thành các hàm thuộc thư viện ECMQV2LIB.DLL.
Thuật toán mã dữ liệu AES (độ dài khoá 256 bit, hoạt động ở chế độ OFB), thuật toán băm dữ liệu WhirlPool và thuật toán sinh các bit ngẫu nhiên được xây dựng thành các hàm tương ứng và được sử dụng trong quá trình thực thi các lược đồ ở trên. Trong đó thuật toán mã hoá dữ liệu AES và thuật toán sinh các bit ngẫu nhiên được sử dụng cho các lược đồ ECMQV một lần chuyển và hai lần chuyển với các chức năng tương ứng là khẳng định khoá và sinh ngẫu nhiên các thành phần khoá trong từng phiên trao đổi. Còn thuật toán băm dữ liệu WhirlPool và thuật toán sinh các bit ngẫu nhiên được sử dụng cho lược đồ chữ ký ECDSA với chức năng tóm lược thông báo cần ký và sinh thành phần ngẫu nhiên trong quá trình tạo chữ ký.
Các bộ tham số sử dụng cho việc thử nghiệm:
Để phục vụ cho quá trình thử nghiệm, nhóm tác giả đã tạo ra:
- 03 bộ tham số miền đường cong elliptic trên trường nguyên tố với độ dài số nguyên tố p định nghĩa trường hữu hạn cơ sở F(p) tương ứng là 256 bit, 272 bit và 288 bit.
- 10 cặp khóa bí mật/công khai với mỗi bộ tham số miền.
Ngoài ra, để khẳng định cho tính tương thích của các lược đồ, thuật toán mật mã đã được đề xuất là hoàn toàn tương thích với các lược đồ thuật toán cùng chủng loại đã được đưa ra bởi tổ chức Tiêu chuẩn quốc tế ISO, trong quá trình thử nghiệm có sử dụng bộ tham số miền đã được giới thiệu trong tiêu chuẩn ISO/IEC 15946 – Part 1, và 10 cặp khóa được sinh từ bộ tham số miền này.
Nội dung thử nghiệm
Trên cơ sở khảo sát các tính năng cơ bản của ứng dụng M-Office, một số nội dung đã được thử nghiệm như sau:
- Thư viện thực thi lược đồ chữ ký số ECDSA đã được tích hợp vào hệ thống M-Office, thay thế cho lược đồ chữ ký RSASSA-PKCS#1 v1.5, thực hiện chức năng đảm bảo tính toàn vẹn cho văn bản được gửi/ nhận qua M-Office.
- Các thư viện thực thi các lược đồ ECMQV một lần chuyển và ECMQV hai lần chuyển lần lượt được tích hợp và chạy thử cho ứng dụng “nhắc việc” giữa server và client. Với việc tích hợp các lược đồ trao đổi khóa ECMQV cho tiện ích nhắc việc, mỗi khi client đăng nhập vào hệ thống nếu tiện ích nhắc việc được kích hoạt. Việc đầu tiên là server và client đã sử dụng lược đồ trao đổi khóa được tích hợp để thỏa thuận một khóa phiên dùng chung. Sau đó, mọi thông tin trao đổi qua lại thông qua tiện ích nhắc việc sẽ được mã hóa thông qua việc gọi hàm thực hiện thuật toán mã hóa dữ liệu AES hoạt động ở chế độ OFB, dùng khóa phiên đã thỏa thuận giữa client và server.
a. Tích hợp thư viện thực hiện lược đồ ECDSA vào chức năng xác thực các văn bản trong hệ thống phần mềm M-Office.
Chức năng xác thực văn bản trong hệ thống phần mềm M-Office được tích hợp ngay trong ứng dụng Microsoft Office Word. Sau khi người dùng soạn thảo văn bản trên MS Word, có thể thực hiện tạo chữ ký cho văn bản và chữ ký được gắn ngay trên văn bản đó.
Kết quả: đã tích hợp được thuật toán ký và kiểm tra chữ ký ECDSA vào chức năng xác thực văn bản. Dưới đây là giao diện thể hiện kết quả sau khi tích hợp.
b. Tích hợp 2 lược đồ trao đổi khoá ECMQV (một lần chuyển và hai lần chuyển thẻ khoá) vào ứng dụng “nhắc việc” của hệ thống M-Office
Ứng dụng “nhắc việc” trong hệ thống M-Office được viết bằng ngôn ngữ lập trình Visual Basic .NET. Hoạt động cơ bản gồm:
- Ứng dụng trên Server chấp nhận kết nối từ Client. Sau đó hai ứng dụng sẽ gửi thông tin liên quan đến công việc mà Client chưa xử lý trong hệ thống, dữ liệu khi gửi chưa được mã hóa.
- Ứng dụng Client chạy trên máy của người dùng, thực hiện kết nối tới Server. Sau mỗi khoảng thời gian định sẵn, Client gửi dữ liệu về Server, thông báo về tình trạng công việc đang thực hiện. Dữ liệu này khi gửi cũng chưa được mã hóa.
Yêu cầu tích hợp lược đồ trao đổi khóa như sau:
- Thực hiện lược đồ trao đổi khóa ECMQV trong phần kết nối giữa ứng dụng Client và ứng dụng Server. Nếu bước trao đổi khóa này không thành công thì Client không thể kết nối được tới Server.
- Ngược lại, nếu bước trao đổi khóa này thành công thì hai ứng dụng sẽ thiết lập được một khóa chung.
- Thực hiện mã hóa dữ liệu trao đổi giữa Client và Server, sử dụng thuật toán mã hóa AES hoạt động ở chế độ OFB, với khóa chung được thiết lập ở trên.
Để thực hiện tích hợp lược đồ trao đổi khóa vào ứng dụng “nhắc việc”, nhóm tác giả đã thực hiện các công việc:
- Xây dựng các CLASS trong VBNET tương tác với thư viện trao đổi khóa ECMQV1LIB.DLL và ECMQV2LIB.DLL.
- Tích hợp các CLASS này vào trong ứng dụng trên Server và ứng dụng Client.
Kết quả thử nghiệm
Kết quả của quá trình thử nghiệm cho thấy, thư viện phần mềm thực thi các lược đồ và các thuật toán đã nghiên cứu hoàn toàn có thể sử dụng cho các chức năng xác thực và bảo mật trong phần mềm M-Office.

III. Kết luận
Như một sự phát triển tiếp theo của các kết quả tích hợp mật mã trước đây, việc ứng dụng thành công các thư viện mật mã tạo cơ sở để đưa ra một số kết luận sau:
- Có thể nghiên cứu đề xuất các lược đồ và các thuật toán mật mã để đưa vào triển khai cài đặt và sử dụng trong thực tế.
- Lược đồ chữ ký ECDSA và các lược đồ trao đổi khóa EMQV là hoàn toàn tương thích với các lược đồ cùng chủng loại mà tổ chức ISO đã đưa ra (bộ tham số miền được đưa ra bởi chuẩn ISO/IEC 15946 – Part 1 đã được sử dụng trong quá trình thử nghiệm).