An toàn ứng dụng người dùng chứng thư số: Từ phân tích thiết kế đến cài đặt vận hành

09:13 | 09/06/2015

Ứng dụng người dùng chứng thư số thường sử dụng các chứng thư số để ký số, kiểm tra chữ ký số, lập mã và giải mã các thông báo điện tử hay các tài liệu điện tử. Đôi khi ứng dụng người dùng chứng thư số còn yêu cầu thẩm quyền gắn nhãn thời gian TSA (thường được đặt tại hạ tầng PKI) gắn nhãn thời gian lên tài liệu điện tử và kiểm tra tính hợp lệ nhãn thời gian khi cần thiết.

Mở đầu

Trong các bài báo trước đây chúng ta đã xem xét đến các vấn đề an toàn đối với ứng dụng phía hạ tầng PKI (PKI Server), nơi cung cấp các dịch vụ tin cậy cho các ứng dụng người dùng chứng thư số (PKI Client) hoạt động tại phía thuê bao sử dụng chứng thư số (CTS).

Hạ tầng PKI cung cấp cho phía ứng dụng người dùng CTS các dịch vụ tin cậy để họ có thể tin tưởng rằng các CTS mà họ đang sử dụng do hạ tầng PKI cung cấp là hoàn toàn hợp lệ tại thời điểm sử dụng. Về bản chất nhãn thời gian cũng là một chữ ký số (CKS) trên tài liệu điện tử (TLĐT), nhưng bao hàm cả thời gian ký số hiện hành được đồng bộ.

Vấn đề đặt ra là, khi hạ tầng PKI cung cấp các dịch vụ tin cậy về CTS hoàn toàn chính xác thì hoạt động chứng thực điện tử (CTĐT) của thuê bao sử dụng CTS trên ứng dụng người dùng CTS đã đủ tin cậy chưa? Bởi vì hoạt động CTĐT tại ứng dụng người dùng CTS an toàn còn phụ thuộc vào cơ chế đảm bảo an toàn của chính nó.

Cơ chế an toàn đối với ứng dụng người dùng CTS thường bao gồm các lớp sau đây: (i) Lớp mật mã, đảm bảo cung cấp cài đặt các thuật toán và các tham số mật mã chính xác và an toàn; (ii) Lớp lưu trữ khóa, thông tin bí mật và thao tác mật mã cung cấp khả năng lưu trữ an toàn các khóa và thông tin bí mật không bị lộ và thực hiện chính xác và an toàn các thao tác mật mã trên các khóa và thông tin bí mật; (iii) Lớp quản lý CTS, đảm bảo CTS được sẵn sàng và nội dung CTS được chính xác, toàn vẹn khi sử dụng; (iv) Lớp cung cấp thông tin trạng thái CTS, cho biết chắc chắn trạng thái CTS đang sử dụng; (v) Lớp an toàn của ứng dụng người dùng CTS, đảm bảo cho các dịch vụ CTĐT thực hiện trên các TLĐT luôn bí mật, toàn vẹn và chính xác; (vi) Lớp đảm bảo an toàn các chức năng mở rộng và nâng cao, đảm bảo các ứng dụng này được tích hợp các chức năng và môi trường hoạt động nghiệp vụ mới và nâng cao độ phức tạp mà vẫn đảm bảo an toàn.

Dưới đây sẽ xem xét tổng quát về các lớp an toàn này và các giải pháp an toàn cần phải được cài đặt vào ứng dụng người dùng CTS để đảm bảo cho hoạt động CTĐT của các thuê bao sử dụng luôn an toàn theo yêu cầu. 

An toàn đối với ứng dụng người dùng CTS và giải pháp

Các dịch vụ CTĐT sử dụng CTS cần phải giải quyết các vấn đề sau:

Các thuật toán và các tham số mật mã

Các thuật toán và tham số mật mã phải được nghiên cứu thiết kế có độ an toàn đảm bảo và được chuẩn hóa trước khi cài đặt; Có khả năng nâng cấp lên các phiên bản cao hơn khi cần thiết. 

Khi các tiến bộ về khoa học mật mã và khoa học tính toán tăng lên thì các tham số mật mã cũng cần được nâng cao để giữ được độ an toàn cần thiết. Điều quan trọng nữa là các nguồn sinh ngẫu nhiên cũng cần phải đủ độ bất định để bảo đảm các tham số được sinh ra có độ ngẫu nhiên cao.

Các thuật toán và tham số mật mã còn cần phải an toàn trước các tấn công cài đặt. Quá trình cài đặt phải đảm bảo không làm cho các thuật toán và các tham số mật mã bị yếu đi, tạo điều kiện cho những kẻ tấn công thực hành có thể khai thác, lấy cắp thông tin.

Các chuyên gia mật mã phải đảm bảo các thuật toán và các tham số mật mã khi cài đặt phải có độ an toàn, đảm bảo cho các dịch vụ CTĐT được cung cấp. Cài đặt các thuật toán và tham số mật mã vào ứng dụng người dùng CTS cũng phải thực hiện để những kẻ tấn công không thể khai thác nhằm tìm ra các thông tin bí mật hoặc nhạy cảm của thuê bao sử dụng CTS. Chủ đề này luôn được các chuyên gia mật mã quan tâm nghiên cứu phát triển thường xuyên, nhất là môi trường học thuật tại các viện nghiên cứu và các cơ sở đào tạo đại học chuyên ngành CNTT.

Lưu trữ khóa, thông tin bí mật và vận hành mật mã an toàn

Khóa, thông tin bí mật và quá trình vận hành mật mã phải được đưa vào môi trường tính toán an toàn và cách ly hoàn toàn đối với môi trường mạng không tin cậy.

Muốn làm được như vậy thì các khóa, thông tin bí mật phải được lưu trữ và vận hành mật mã trong các thẻ thông minh chuyên dùng. Các thẻ này là những thiết bị tách biệt và có giao diện trao đổi thông tin với môi trường tính toán của ứng dụng người dùng CTS. Thuê bao sử dụng sở hữu các thẻ thông minh và có mã số nhận diện cá nhân (PIN) để truy cập và sử dụng chúng.

Ứng dụng người dùng CTS sử dụng thẻ thông minh để ký số, kiểm tra CKS, lập mã, giải mã trên thông báo điện tử mong muốn. Nó cũng có thể yêu cầu thẩm quyền gắn nhãn thời gian TSA gắn nhãn thời gian và kiểm tra hợp lệ nhãn thời gian (thực chất là kiểm tra CKS) trên TLĐT nhờ các thẻ thông minh.

Vấn đề này được giải quyết nhờ sử dụng các thẻ thông minh là các thiết bị phần cứng kiểu như HSM và PKI Token. Chúng tạo ra môi trường cách ly cả về vật lý và lôgic để lưu trữ các khóa và các thông tin bí mật, thực hiện các vận hành mật mã để đáp ứng các dịch vụ CTĐT từ ứng dụng người dùng CTS như ký số, kiểm tra CKS, lập mã và giải mã trên TLĐT sử dụng CTS của thuê bao sử dụng.

Vấn đề này rất cấp thiết hiện nay nên được các hãng sản xuất thẻ thông minh quan tâm và liên kết với các nhà cung cấp sản phẩm phần mềm PKI để cung cấp sản phẩm và giải pháp.



Quản lý Chứng thư số

Ứng dụng người dùng CTS phải quản lý được các CTS mà chúng được cung cấp từ phía hạ tầng PKI thông qua các giao thức LDAP, HTTP, FTP hay truy vấn từ xa đến các CSDL chứa CTS. Cơ chế quản lý CTS phải thuận tiện cho việc đồng bộ trong tìm kiếm, tra cứu, cập nhật và sử dụng. Các CTS cần sử dụng phải luôn sẵn sàng và nội dung được đảm bảo toàn vẹn, không bị sửa đổi trái phép, để giúp cho việc sử dụng CTS trở nên đúng đắn và chính xác.

Giải pháp quản lý và sử dụng hiệu quả CTS được các nhà cung cấp sản phẩm phần mềm PKI nghiên cứu và giải quyết. Tuy nhiên, các vấn đề về an toàn CSDL, dịch vụ Web, giao thức HTTP, FTP, LDAP được đặt ra và phải có những giải pháp hợp lý. Các CTS phải được đảm bảo tính sẵn sàng và tính toàn vẹn cao, đáp ứng nhanh nhất cho yêu cầu của thuê bao sử dụng (Subscriber) và bên liên quan tới CTS (Relying party).

Đảm bảo cung cấp chính xác thông tin trạng thái hiện tại của CTS cần sử dụng

Vấn đề này do hạ tầng PKI giải quyết, còn ứng dụng người dùng CTS chỉ đặt các yêu cầu dịch vụ và nhận lại kết quả. Các dịch vụ tin cậy này bao gồm hai khả năng. Khả năng thứ nhất là hạ tầng PKI cung cấp danh sách chứng thư số bị gỡ bỏ (CRL) mới nhất được ký số để đảm bảo tính xác thực và tính toàn vẹn. Ứng dụng người dùng CTS sẽ tải CRL xuống và kiểm tra CKS. Nếu trong nội dung CRL không chứa số sê-ri nhận diện duy nhất CTS đang sử dụng, thì CTS đó còn được xem là chưa bị gỡ bỏ.

Khả năng thứ hai là hạ tầng PKI cung cấp dịch vụ quản lý trạng thái CTS trực tuyến OCSP cho ứng dụng người dùng CTS. Khi đó, ứng dụng người dùng CTS nhận được ngay kết quả là CTS đang sử dụng là còn hợp lệ hay không. Tuy nhiên, ứng dụng người dùng CTS vẫn kiểm tra các CKS trên các CTS liên quan để khẳng định tính toàn vẹn của nội dung các CTS này và trích đọc nội dung về thời hạn hợp lệ của CTS bên trong nội dung để biết chắc CTS đang sử dụng có còn hạn sử dụng hay không.

Kết hợp thông tin CTS chưa bị gỡ bỏ với CTS còn hạn sử dụng, thì thuê bao có thể chắc chắn rằng CTS đang sử dụng là hợp lệ. Một số hạ tầng PKI còn thông báo cho thuê bao cả về tình trạng CTS đang bị treo hoặc tạm hoãn sử dụng do một nguyên nhân nào đó. Trong trường hợp này, sau khi hủy bỏ trạng thái bị treo (tạm hoãn sử dụng) thì CTS lại có thể hợp lệ để sử dụng.

Giải pháp là cung cấp chính xác thông tin trạng thái CTS được phía hạ tầng PKI đáp ứng với tính toàn vẹn và tính chính xác, sẵn sàng cao thông qua hai cách thức: Cung cấp danh sách chứng thư số bị gỡ bỏ CRL để kiểm tra và cung cấp trạng thái trực tuyến chứng thư số OCSP. Tuy nhiên, các vấn đề an toàn vẫn cần được củng cố và nâng cao để cung cấp dịch vụ thông tin trạng thái CTS được tốt hơn.

Cơ chế an toàn của chính bản thân ứng dụng người dùng CTS

Ứng dụng này phải có cơ chế an toàn đảm bảo cho hoạt động nghiệp vụ của mình như thư điện tử, dịch vụ Web, CSDL, xử lý văn bản điện tử….

Giải pháp là cơ chế an toàn nội tại của các ứng dụng người dùng CTS. Đây là vấn đề cần bàn bạc ,xem xét nhiều nhất, bởi rất nhiều ứng dụng nghiệp vụ cài sẵn vẫn còn thiếu hoặc chỉ có cơ chế an toàn sơ sài hoặc thiếu hẳn cơ chế an toàn. Nhiều ứng dụng nghiệp vụ khi tích hợp các dịch vụ CTĐT sử dụng CTS đã không nâng cấp kịp thời để bao hàm cả các vấn đề an toàn cho việc thực thi các dịch vụ CTĐT sử dụng CTS.

Các chuyên gia ATTT hiện nay đều cho rằng, cơ chế an toàn các dịch vụ CTĐT nói riêng và cơ chế an toàn nói chung của các ứng dụng phần mềm nghiệp vụ cần phải được cùng thiết kế song hành ngay từ đầu (cùng lúc với thiết kế ứng dụng phần mềm nghiệp vụ). Các giải pháp cho vấn đề này bao gồm nhiều khía cạnh và rất quan trọng cần được nghiên cứu cẩn thận, nhất là việc tích hợp cơ chế an toàn vào ứng dụng người dùng CTS.

Ví dụ, một ứng dụng xử lý văn bản điện tử bất kỳ đều có thể tích hợp thêm các dịch vụ CTĐT, khi có nhu cầu và trở thành ứng dụng người dùng CTS. Khi cần lập mã sử dụng CTS, thì nó phải đảm bảo các văn bản điện tử được lập mã đúng đắn không bị lộ bản rõ trước khi lập mã cho những bên không liên quan.

An toàn cho các chức năng mới và nâng cao

Đó là các chức năng sẽ xuất hiện trong môi trường mạng không dây và di động, môi trường ứng dụng chứng minh thư điện tử và hộ chiếu điện tử, lưu trữ TLĐT lâu dài, ứng dụng các thuật toán và giao thức mật mã phức tạp và nâng cao, môi trường các thành phần PKI thay đổi và phức tạp, ứng dụng dịch vụ CTĐT mới và nâng cao.

Dịch vụ CTĐT trong các môi trường này đòi hỏi phải được an toàn khi sử dụng. Một điểm lưu ý rằng, các dịch vụ CTĐT sử dụng CTS được tích hợp vào các ứng dụng nghiệp vụ vì chúng được cho là có độ an toàn cao hơn so với các giải pháp dịch vụ CTĐT khác hiện hành. 

Một khi xuất hiện các chức năng mới và nâng cao, thì vấn đề an toàn cho chúng cần phải được đặt ra và giải quyết như một giải pháp an toàn trọn vẹn.

Những giải pháp cho các dịch vụ CTĐT không sử dụng CTS có thể là sử dụng mật mã phi đối xứng. Giải pháp này dựa trên định danh hay công nghệ sinh trắc và sau này là những giải pháp hậu lượng tử dựa trên các mật mã an toàn kể cả sau khi máy tính lượng tử ra đời.

Kết luận

Các vấn đề và các giải pháp sơ bộ về an toàn đối với ứng dụng người dùng CTS đã cho thấy bức tranh về các vấn đề an toàn cần giải quyết đối với ứng dụng người dùng CTS. Ứng dụng người dùng CTS có nhiệm vụ sử dụng CTS để tạo ra các dịch vụ CTĐT an toàn.

Vấn đề an toàn và các giải pháp tương ứng về an toàn ứng dụng người dùng CTS cần được nghiên cứu sâu nhằm giúp cho việc kiểm định an toàn sản phẩm cũng như phân tích thiết kế thực thi sản phẩm ứng dụng người dùng CTS, đáp ứng các yêu cầu ứng dụng ngày càng hiện đại và phức tạp hiện nay.

 Tài liệu tham khảo

1. Tobias Straub and Harald Baier: A Framework for Evaluating the Usability and the Utility of PKI-enabled Applications. Germany, 2003.

2. Partha Dasgupta et als: Vulnerabilities of PKI based Smartcards. IEEE, 2007.