Lượt xem: 12137 | Gửi lúc: 17/12/2015 14:07:08
Bookmark and Share

Phát triển thiết bị PKI Token an toàn sử dụng trong hệ thống CA

Thiết bị PKI Token là một thành phần không thể thiếu trong hệ thống chứng thực điện tử, có chức năng đảm bảo an toàn cho việc lưu trữ khóa mật mã và thực thi mật mã của các ứng dụng. Bài viết này giới thiệu về giải pháp nghiên cứu làm chủ hệ điều hành và tích hợp các thuật toán, tham số mật mã có độ an toàn cao vào thiết bị PKI Token trên nền tảng công nghệ thẻ thông minh (smartcard) để triển khai cho hệ thống chứng thực điện tử.

Giới thiệu về thiết bị PKI Token

PKI Token là một loại thiết bị mật mã an toàn được trang bị cho người dùng cuối trong hệ thống Chứng thực điện tử. Thiết bị PKI Token có thể dưới dạng các thẻ thông minh, thiết bị USB Token, thẻ SIM có tích hợp chip xử lý mật mã.

Các thiết bị PKI Token dạng thẻ thường có kích thước như một thẻ tín dụng, với hai loại chính là thẻ tiếp xúc và thẻ không tiếp xúc (cần phải có đầu đọc để giao tiếp với thẻ). PKI Token dạng thẻ thường được sử dụng nhiều trong các giao dịch điện tử của lĩnh vực ngân hàng, sử dụng làm chứng minh thư điện tử, bằng lái xe điện tử, hộ chiếu điện tử.

Các thiết bị PKI Token dạng USB giao tiếp với máy tính qua cổng USB, được lựa chọn để triển khai cho các hệ thống máy tính có sẵn cổng USB mà không cần đầu đọc thẻ. Hiện nay tại Việt Nam, hầu hết các hệ thống Chứng thực điện tử đều triển khai thiết bị USB Token.

Các thiết bị PKI Token dạng thẻ SIM (thường được gọi là SIM PKI) được sử dụng trong các thiết bị di động (điện thoại thông minh, máy tính bảng). Chip mật mã được tích hợp trực tiếp lên thẻ SIM có thể xác thực và bảo mật dữ liệu trên các thiết bị di động.

Trên thế giới, một số hãng sản xuất thiết bị PKI Token như: SafeNet, Feitan, Vasco, RSA, Entrust. Các thiết bị này có độ an toàn cao, thường được đánh giá theo Tiêu chuẩn môđun mật mã an toàn (FIP 140-2) của Mỹ và Tiêu chí đánh giá chung (CC). Các thiết bị PKI Token thường được tích hợp các thuật toán mật mã RSA, ECC, AES, 3DES, SHA1, SHA2... và cứng hóa trên chip để tăng hiệu năng thực thi của thiết bị.

Mô hình thiết kế tổng quát của một thiết bị PKI Token

Thiết bị PKI Token thực chất là một máy tính nhỏ chuyên dụng với môi trường hoạt động được bảo vệ an toàn về vật lý và logic, giúp thực thi các thuật toán mật mã an toàn. Các tham số khóa mật mã trong thiết bị được bảo vệ, tránh việc đọc và sao chép ra môi trường bên ngoài.

Thiết kế chung của thiết bị PKI Token được chia làm 3 lớp riêng biệt: lớp phần cứng, lớp hệ điều hành và lớp ứng dụng.

Lớp phần cứng: Có rất nhiều thành phần bên trong lớp phần cứng (chip xử lý) của thiết bị PKI Token, các thành phần cơ bản bao gồm: CPU, EEPROM, ROM, RAM, bộ đồng xử lý mật mã, giao diện kết nối,... Trong phần cứng của các PKI Token đều có bộ đồng xử lý mật mã để xử lý các thuật toán RSA, ECDSA, 3DES, AES. Ngoài ra, một bộ xử lý sinh số ngẫu nhiên TRNG được sử dụng cho các thuật toán mật mã. Giao diện giao tiếp của PKI Token có thể theo chuẩn ISO 7816 (thẻ thông minh) hoặc giao tiếp USB (đối với các thiết bị USB Token).

Lớp hệ điều hành: Là một chương trình phần mềm được thực thi bởi bộ vi xử lý của PKI Token. Đây là thành phần cơ bản, quan trọng nhất của thiết bị. Hệ điều hành điều khiển, quản lý các thiết bị phần cứng, bộ nhớ, quá trình trao đổi dữ liệu, một số thuật toán mật mã và cung cấp môi trường quản lý, chạy các ứng dụng trên thiết bị.

Hiện nay có hai hướng phát triển hệ điều hành cho thiết bị PKI Token, đó là sử dụng ngôn ngữ C để phát triển hệ điều hành cho chip (Native Code) và sử dụng công nghệ Javacard để phát triển hệ điều hành (Java OS). Tuy nhiên, cấu trúc của hai hệ điều hành này tương đối giống nhau. 

Lớp ứng dụng: Gồm các ứng dụng giao tiếp với hệ điều hành của thiết bị PKI Token. Các ứng dụng này có thể chạy trên máy tính giao tiếp với PKI Token hoặc chạy trực tiếp trên nền hệ điều hành của thiết bị, bao gồm ứng dụng xác thực và bảo mật như: quản lý khóa, ký số, giải mã....


Hình 1: Kiến trúc của một thiết bị PKI Token

Hướng nghiên cứu, phát triển thiết bị PKI Token

Hiện nay, chứng thực điện tử đang là giải pháp quan trọng nhất để bảo đảm bí mật, xác thực và toàn vẹn dữ liệu trong các giao dịch điện tử phục vụ triển khai Chính phủ điện tử và các hoạt động trong lĩnh vực quốc phòng, an ninh. Các thành phần của hệ thống thông tin tham gia quá trình bảo mật và xác thực cho giao dịch điện tử cần phải được kiểm soát an toàn thông tin ở mức cao, ví dụ về mã nguồn chương trình, thuật toán. Vì vậy, việc nghiên cứu, phát triển một thiết bị PKI Token an toàn là rất quan trọng. Thiết bị PKI Token an toàn cần kiểm soát được phần cứng và sử dụng hệ điều hành phát triển riêng, phục vụ các ứng dụng xác thực và bảo mật.

Dưới đây, thiết kế đề xuất của thiết bị an toàn tuân thủ theo chuẩn thiết kế 3 lớp của PKI Token (Hình 2).


Hình 2: Mô hình thiết kế của thiết bị PKI Token

Lớp phần cứng: Thực tế, trình độ công nghệ tại Việt Nam hiện nay chưa có khả năng sản xuất các chip vi xử lý bậc cao để thiết kế, chế tạo thiết bị PKI Token. Do vậy, chip vi xử lý thường phải nhập khẩu từ nước ngoài, từ một số nhà sản xuất chip như STMicroelectronics, NXP, Infineon, Atmel. Vì vậy, để hạn chế các rủi ro về an toàn, cần lựa chọn các chip vi xử lý đã được cấp các chứng nhận an toàn và bảo mật (như chứng nhận theo tiêu chí chung CC EAL mức 4+ hoặc 5+). Bên cạnh đó, cần sử dụng các chip trắng (chưa nạp chương trình) và dùng các biện pháp kỹ thuật để kiểm tra, rà soát lỗ hổng, cửa hậu nhằm đảm bảo chip an toàn trước khi đưa vào sản xuất thiết bị PKI Token.

Nghiên cứu này đã lựa chọn sử dụng Chip SLE97 của Infineon để xây dựng phần cứng cho thiết bị PKI Token. Đây là dòng chip 32 bit bảo mật cao cấp mới nhất của Infineon, đạt chứng nhận Tiêu chí chung EAL 5+, tiêu thụ ít điện năng. Chip SLE97 được các hãng PKI Token lớn trên thế giới sử dụng để sản xuất thiết bị PKI Token. Đặc biệt chip SLE97 cứng hóa các thuật toán mật mã trên các môđun đồng xử lý mật mã giúp tăng hiệu năng xử lý trên chip. 

Lớp hệ điều hành: Đây là lớp rất quan trọng trong quá trình xây dựng và phát triển một thiết bị PKI Token.Việc phát triển một hệ điều hành là độc lập với phần cứng, để có thể triển khai trên các thiết bị phần cứng khác nhau. Nghiên cứu này được thực hiện ở lớp trừu tượng hóa phần cứng (HAL) mà không phải thay đổi các ứng dụng cũng như các chức năng của hệ điều hành. Hệ điều hành được xây dựng trên ngôn ngữ C, phát triển theo hướng Native Code và chia thành hai lớp: lớp trừu tượng hóa phần cứng và lớp nhân hệ điều hành.

Trong việc xây dựng lớp nhân hệ điều hành cần thực hiện các công việc: xây dựng thư viện giao thức T=0 theo chuẩn ISO/7816; Xây dựng thư viện quản lý bộ nhớ; Xây dựng thư viện xử lý mật mã; Xây dựng môđun khởi tạo hệ thống và xây dựng môđun xử lý lệnh. Trong quá trình xây dựng lớp trừu tượng hóa phần cứng, cần thực hiện thiết lập hàm quản lý vào ra, hàm xử lý bộ nhớ và hàm xử lý mật mã.

Lớp ứng dụng: Xây dựng ứng dụng mật mã cho thiết bị PKI Token.

Nghiên cứu này tập trung vào việc xây dựng và triển khai thuật toán sinh cặp khóa RSA và ký số dữ liệu trên thiết bị PKI Token.

Sinh cặp khóa RSA trên thiết bị PKI Token được thực hiện gồm các bước sau:

- Bước 1, ứng dụng gửi lệnh sinh cặp khóa RSA cho hệ điều hành, môđun xử lý lệnh sẽ chuyển lệnh sinh cặp khóa RSA cho thư viện xử lý mật mã.

- Bước 2, thư viện xử lý mật mã sẽ gửi yêu cầu cho hàm xử lý mật mã để yêu cầu phần cứng sinh chuỗi ngẫu nhiên thông qua môđun sinh số ngẫu nhiên trên chip vi xử lý. 

- Bước 3, thư viện xử lý mật mã sẽ xử lý và sinh cặp khóa RSA dựa trên chuỗi ngẫu nhiên trả về. Khóa bí mật được mã hóa và lưu trong vùng nhớ an toàn của chip, khóa công khai được trả về cho ứng dụng. 

Ký số dữ liệu được thực hiện gồm các bước sau: 

- Bước 1, dữ liệu được băm trước khi đưa vào chip để ký số, môđun xử lý lệnh sẽ chuyển lệnh ký số và mã băm của dữ liệu cần ký xuống thư viện xử lý mật mã.

- Bước 2, khóa bí mật được giải mã và sử dụng để ký số mã băm của dữ liệu. Trong quá trình ký số dữ liệu, thư viện xử lý mật mã sẽ gọi hàm xử lý mật mã để yêu cầu phần cứng xử lý các phép toán xử lý số lớn. 

- Bước 3, mã băm của dữ liệu được ký sẽ được trả về cho ứng dụng để đóng gói với dữ liệu ký, tạo thành dữ liệu được ký.

Quá trình sinh khóa, ký số dữ liệu sẽ tương tác đến các thành phần khác của hệ điều hành như thư viện quản lý bộ nhớ, thư viện quản lý vào/ra của hệ điều hành.

Với quy trình xử lý như vậy, khóa bí mật sẽ luôn được lưu trong thiết bị PKI Token dưới dạng mã hóa, chống bị đọc và sao chép ra môi trường ngoài. Các thuật toán mật mã được xử lý bên trong thiết bị PKI Token, do vậy, đảm bảo an toàn cho khóa bí mật và dữ liệu xử lý.

Kết luận

Để xây dựng và phát triển thiết bị PKI Token an toàn, việc kiểm soát phần cứng, làm chủ hệ điều hành và kiểm soát ứng dụng của thiết bị là rất cần thiết. Trong hướng nghiên cứu này, hệ điều hành được xây dựng từ đầu, do vậy có thể coi như đã được làm chủ. Tuy nhiên, phần cứng của thiết bị chưa thể kiểm soát được hoàn toàn, do phải sử dụng các chip vi xử lý của nước ngoài. Trong tương lai, khi công nghệ chế tạo chip của Việt Nam phát triển, chúng ta có thể tự sản xuất các chip vi xử lý bậc cao và kết hợp với các nghiên cứu phát triển về hệ điều hành thì việc chế tạo một thiết bị PKI Token hoàn chỉnh đáp ứng nhu cầu triển khai xác thực và bảo mật trong các giao dịch điện tử yêu cầu độ an toàn cao là hoàn toàn khả thi.

ThS. Lê Quang Tùng, Cục CTS&BMTT, Ban Cơ yếu Chính phủ