Thuật toán mật mã là thành phần cốt lõi của môđun mật mã cũng như sản phẩm an toàn thông tin (ATTT), nó đóng vai trò quan trọng trong an toàn tổng thể của một sản phẩm ATTT. Việc xác nhận (phê duyệt) sự chính xác của các thuật toán mật mã làm nền tảng cho công tác kiểm định, đánh giá chất lượng của sản phẩm ATTT. Đây là một công việc tốn nhiều thời gian và công sức. CAVP được thành lập nhằm xác nhận việc thực thi các thuật toán mật mã trong các môđun mật mã của sản phẩm ATTT. Chương trình này đảm bảo rằng các triển khai thuật toán mật mã trong sản phẩm tuân thủ các chi tiết kỹ thuật được nêu trong tài liệu của nhà cung cấp.
Giới thiệu CAVP
Để đảm bảo an toàn các sản phẩm ATTT, thì việc kiểm tra, đánh giá chất lượng các sản phẩm ATTT theo các tiêu chuẩn, quy chuẩn kỹ thuật tương ứng là hết sức cần thiết và cấp bách. Hệ thống các tiêu chí, phương pháp luận đánh giá chất lượng an toàn sản phẩm ATTT đã được phát triển từ rất sớm trên thế giới và ngày càng hoàn thiện. Trong đó, kiểm định, đánh giá chất lượng môđun mật mã cũng như thuật toán thực thi trong sản phẩm là một lĩnh vực độc lập đang được nhiều nhà khoa học quan tâm, nghiên cứu. Bảng 1 dưới đây trình bày ví dụ về một ứng dụng ATTT và các tiêu chí để đánh giá:
Năm 1995, Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ (National Institute of Standards and Technology – NIST) và Cơ quan thiết lập an toàn Canada (Communications Security Establishment Canada – CSE) đã thành lập chương trình phê duyệt môđun mật mã (Cryptographic Module Validation Program - CMVP). Lúc đó, CMVP bao gồm cả chức năng của CMVP hiện tại và chương trình xác nhận thuật toán mật mã CAVP. Năm 2003, CAVP [1] được NIST và CSE thành lập như một chương trình riêng biệt để xác nhận sự chính xác khi triển khai các thuật toán mật mã trong các môđun hay sản phẩm mật mã. CMVP phê duyệt môđun mật mã theo FIPS 140-2, trong khi CAVP xác nhận việc thực thi các thuật toán mật mã được chấp thuận bởi NIST. Việc xác nhận tính hợp lệ các thuật toán mật mã được thực thi trong môđun mật mã là một công việc độc lập và là điều kiện tiên quyết để phê duyệt môđun mật mã đó.
CAVP thiết kế một bộ kiểm tra cho mỗi thực thi thuật toán mật mã để kiểm tra các đặc tả thuật toán, các thành phần, tính năng, hoặc chức năng của việc thực thi thuật toán đó. Một môđun mật mã gồm một hoặc nhiều thực thi thuật toán mật mã, mỗi thực thi thuật toán có một tên và số phiên bản duy nhất. Khi thực thi thuật toán mật mã đang được xác nhận lần đầu tiên, nó được gọi là xác nhận mới. Khi một thực thi thuật toán mật mã là phiên bản sửa đổi thì được gọi là xác nhận cập nhật (ví dụ AES thêm chế độ CFB…).
Vai trò và trách nhiệm của các bên tham gia CAVP
Sơ đồ dưới đây thể hiện vai trò và trách nhiệm của các bên tham vào CAVP. Trong đó bao gồm 4 chủ thể: Nhà cung cấp, Phòng thí nghiệm CST, Cơ quan phê duyệt CAVP, Người sử dụng.
Nhà cung cấp: Vai trò của nhà cung cấp là triển khai các thuật toán mã hóa tuân thủ các yêu cầu được quy định trong các tài liệu của FIPS hoặc NIST được áp dụng. Khi việc triển khai thuật toán mã hóa đã sẵn sàng để kiểm định, nhà cung cấp lựa chọn một phòng thí nghiệm CST để xác nhận việc thực thi thuật toán của họ.
Phòng thí nghiệm CST: Vai trò của phòng thí nghiệm CST là kiểm định việc thực thi thuật toán mật mã một cách độc lập. Phòng thí nghiệm CST liên lạc với CAVP khi việc kiểm định thực thi thuật toán thành công để CAVP đánh giá kết quả và xác nhận việc thực thi thuật toán mật mã.
Cơ quan phê duyệt CAVP: Ở đây, cơ quan phê duyệt CAVP là NIST. Cơ quan này có vai trò phê duyệt kết quả kiểm định cho mỗi thực thi thuật toán mật mã. Nếu việc thực thi thuật toán mật mã được xác định là phù hợp với tài liệu kèm theo, thì việc thực thi được xác nhận và danh sách thực thi thuật toán mật mã được cập nhật trực tuyến.
Người sử dụng: Người dùng xác minh rằng việc thực thi thuật toán mật mã bên trong một môđun mật mã hoặc một sản phẩm mà họ đang cân nhắc mua đã được xác nhận là chính xác. Danh sách các thực thi thuật toán mật mã đã phê duyệt được công bố tại trang chủ của NIST [3].
Quy trình xác nhận thuật toán mật mã của CAVP
Hình 3 trình bày tổng quát chương trình xác nhận thuật toán mật mã CAVP. Bao gồm 12 bước kiểm định, đánh giá và cấp chứng nhận cơ bản được thể hiện như sau:
Bước 1: Nhà cung cấp chọn một trong các phòng thí nghiệm CST được công nhận để yêu cầu thực hiện kiểm định hoặc giám sát việc kiểm định việc thực thi thuật toán mật mã của họ. Lưu ý rằng, việc kiểm định thực thi thuật toán mật mã của nhà cung cấp có thể được thực hiện tại chỗ hoặc có thể được gửi đến phòng thí nghiệm CST để kiểm định (thuật ngữ “người kiểm định” là bên thực hiện kiểm định thực thi thuật toán).
Bước 2: Phòng thí nghiệm CST yêu cầu nhà cung cấp gửi thông tin liên quan đến thực thi thuật toán mật mã trong quá trình thực hiện kiểm định.
Bước 3: Sau khi nhận được tài liệu, người kiểm định sử dụng tài liệu để xác nhận sự phù hợp với tham chiếu việc thực thi thuật toán cụ thể được nêu trong tài liệu đi kèm của mỗi thuật toán. Các tài liệu này đã được phê duyệt trên trang chủ của NIST theo từng thuật toán cụ thể, đồng thời, phòng thí nghiệm CST thiết kế ra bộ kiểm tra.
Bước 4: Đối với mỗi thực thi thuật toán đang được kiểm định, phòng thí nghiệm CST sử dụng thông tin này và công cụ xác nhận thuật toán mật mã (Cryptographic Algorithm Validation System - CAVS) để tạo các vectơ kiểm tra đầu vào sử dụng trong các bài kiểm tra.
Bước 5: Phòng thí nghiệm CST cung cấp các vector kiểm tra đầu vào cho người kiểm định.
Bước 6: Người kiểm định sử dụng vectơ kiểm tra như là đầu vào để thực thi thuật toán.
Bước 7: Các kết quả thực thi thuật toán được chuyển tiếp đến phòng thí nghiệm CST.
Bước 8: Phòng thí nghiệm CST sử dụng công cụ CAVS để xác minh kết quả của các bài kiểm tra bằng cách so sánh kết quả thực thi thuật toán của nhà cung cấp và kết quả thực thi thuật toán của phòng thí nghiệm. Nếu kết quả không chính xác, công cụ CAVS ghi lại các bài kiểm tra thất bại và nêu lý do tại sao.
Bước 9: Khi quá trình kiểm định, đánh giá hợp lệ, việc thực thi thuật toán mật mã được thực hiện thành công, phòng thí nghiệm CST sẽ đệ trình gói tài liệu yêu cầu đến NIST. Gói này chứa yêu cầu xác nhận việc thực thi thuật toán chính thức từ phòng thí nghiệm và tất cả các tệp tin được tạo ra từ công cụ CAVS bao gồm tệp tóm tắt kết quả kiểm định cho mỗi thuật toán được kiểm định.
Bước 10: NIST đánh giá gói đầy đủ và xác nhận rằng tất cả các bài kiểm tra đã thực hiện xong. Nếu điều này là đúng, NIST và CSE sẽ xác nhận thực việc thực thi thuật toán mật mã.
Bước 11: NIST nhập tất cả các thông tin thích hợp liên quan đến việc xác nhận hợp lệ này vào cơ sở dữ liệu nội bộ, tạo ra chứng chỉ hợp nhất xác nhận thuật toán mật mã (có chứa nhiều thực thi thuật toán mật mã). NIST ký chứng chỉ xác nhận hợp nhất này và gửi đến CSE để ký tên.
Bước 12: CAVP tạo ra danh mục thuật toán được phê duyệt, thuật toán mật mã được đăng lên danh sách thuật toán mật mã được phê duyệt của CAVP.
Danh sách các thuật toán mật mã đã được xác nhận trên trang chủ của NIST bao gồm: AES, CCM, DRBG, ECDSA, HMAC, KAS, KDF, RSA, SHA-3, TDES… Mỗi thuật toán mật mã được xác nhận bao gồm một danh sách các môđun mật mã đã được phê duyệt chứa thuật toán đó.
Công cụ xác nhận thuật toán mật mã CAVS
Việc sử dụng công cụ CAVS đảm bảo rằng việc thực thi thuật toán mật trong sản phẩm là chính xác và là một điều kiện tiên quyết của việc xác nhận thuật toán mật mã của CAVP. Phòng thí nghiệm CST sử dụng công cụ CAVS phiên bản mới nhất và thông tin từ nhà cung cấp thực thi thuật toán này tạo ra vector kiểm định đầu vào. Phòng thí nghiệm sử dụng công cụ CAVS tạo ra 3 loại tệp tin [2], đó là:
- FAX: Tệp tin phản hồi;
- Request: Tệp tin chứa vector kiểm định đầu vào;
- Sample: Định dạng yêu cầu của tệp tin phản hồi;
Tệp tin phản hồi được tạo ra bằng cách thực hiện thuật toán của nhà cung cấp.
Vectơ kiểm định được tạo ra và đặt trong các tệp yêu cầu được cung cấp cho người kiểm định cùng với tệp mẫu có chứa thông tin định dạng tệp phản hồi. Người kiểm định sử dụng vectơ kiểm định, tính toán kết quả thực hiện thuật toán và lưu trữ chúng theo định dạng được chỉ định trong các tệp phản hồi, sau đó gửi tệp phản về phòng thí nghiệm CST. Công cụ CAVS xác định thuật toán mật mã trong sản phẩm thực hiện chính xác bằng cách so sánh giá trị của kết quả thực hiện với các kết quả dự kiến.
Trong quá trình này, công cụ CAVS tạo ra một bản tóm tắt và một tệp nhật ký. Tệp tóm tắt chỉ ra các bài kiểm tra đã được chạy và việc chạy có thành công hay không. Số kết quả thành công trong tổng số kết quả sẽ được ghi lại. Nếu xảy ra lỗi, tệp nhật ký sẽ chỉ ra giá trị nào không thành công và nêu lý do không thành công. Có 2 loại lỗi thường xảy ra trong quá trình này gồm:
- Lỗi chính: Tệp nhật ký cho thấy phản hồi kiểm tra không có vấn đề về định dạng, nhưng không thể xác định.
- Lỗi phụ: Tệp nhật ký cho thấy phản hồi kiểm tra không thể đọc chính xác hoặc có vấn đề về định dạng.
Phòng thí nghiệm CST sử dụng các tệp này để cung cấp các thông tin cho nhà cung cấp thuật toán liên quan đến lỗi đã xảy ra. Căn cứ vào đó, nhà cung cấp sẽ khắc phục lỗi trong việc thực thi thuật toán mật mã của họ. Phòng thí nghiệm CST thông báo cho nhà cung cấp rằng việc thực thi thuật toán không đáp ứng các yêu cầu của tài liệu tham khảo có liên quan và cung cấp các thông tin do CAVS tạo ra để hỗ trợ nhà cung cấp xác định vị trí thuật toán thực thi của họ sai lệch so với thông số kỹ thuật trong tài liệu tham khảo.
Kết luận
Việc CAVP công bố công khai thông tin về danh mục thuật toán mật mã được xác nhận và chi tiết các kết quả kiểm định thực thi thuật toán trong sản phẩm, sẽ giúp ích rất nhiều cho các nhà phát triển sản phẩm ATTT trong quá trình tích hợp các thuật toán mật mã theo tiêu chuẩn. Đồng thời cũng giúp cho công tác quản lý chất lượng và kiểm định sản phẩm chặt chẽ hơn.
TÀI LIỆU THAM KHẢO [1] NIST & CSE, Cryptographic Algorithm Validation Program Management Manual CAVP, Ver 1.0, 2009. [2] Yuan Xu, Analysis and Solutions for CAVS Testing Errors, Ottawa, Canada, May-18, 2016. [3] http://csrc.nist.gov |
KS. Hoàng Anh Thuận
09:00 | 17/09/2018
15:00 | 10/07/2018
15:00 | 03/05/2019
07:00 | 14/06/2019
09:00 | 08/03/2024
08:00 | 08/08/2024
Trí tuệ nhân tạo (AI) có khả năng xác định và ưu tiên các rủi ro, mang lại cho các chuyên gia IT cơ hội phát hiện ngay lập tức mã độc trong mạng của họ và phát triển chiến lược phản ứng sự cố. Hiện nay, AI đóng vai trò quan trọng trong quản lý an toàn thông tin (ATTT), đặc biệt là trong việc phản ứng với sự cố, dự đoán việc xâm phạm, kiểm soát hiệu suất và quản lý hàng tồn kho. Bài viết này giới thiệu về các ứng dụng của AI trong quản lý ATTT bằng cách xem xét những lợi ích và thách thức của nó, đồng thời đề xuất các lĩnh vực cho các nghiên cứu trong tương lai.
10:00 | 22/04/2024
Những ngày gần đây, liên tục các kênh YouTube với lượng người theo dõi lớn như Mixigaming với 7,32 triệu người theo dõi của streamer nổi tiếng Phùng Thanh Độ (Độ Mixi) hay Quang Linh Vlogs - Cuộc sống ở Châu Phi với 3,83 triệu người theo dõi của YouTuber Quang Linh đã bị tin tặc tấn công và chiếm quyền kiểm soát.
13:00 | 26/02/2024
Operation Triangulation là một chiến dịch phức tạp nhắm vào thiết bị iOS trong các cuộc tấn công zero-click. Tạp chí An toàn thông tin đã từng cung cấp một số bài viết liên quan đến chiến dịch này, như giải mã tính năng che giấu của phần mềm độc hại TriangleDB, những cuộc tấn công zero-day trên thiết bị iOS hay giới thiệu cách sử dụng công cụ bảo mật phát hiện tấn công zero-click. Tiếp nối chuỗi bài viết về chiến dịch Operation Triangulation, bài viết sẽ phân tích các phương thức khai thác, tấn công chính của tin tặc trong chuỗi tấn công này, dựa trên báo cáo của hãng bảo mật Kaspersky.
10:00 | 20/09/2023
ChatGPT và các mô hình ngôn ngữ lớn (LLM) tương tự đã làm tăng thêm độ phức tạp trong bối cảnh mối đe dọa trực tuyến ngày càng gia tăng. Tội phạm mạng không còn cần các kỹ năng mã hóa nâng cao để thực hiện gian lận và các cuộc tấn công gây thiệt hại khác chống lại các doanh nghiệp và khách hàng trực tuyến nhờ vào bot dưới dạng dịch vụ, residential proxy, CAPTCHA và các công cụ dễ tiếp cận khác. Giờ đây, ChatGPT, OpenAI và các LLM khác không chỉ đặt ra các vấn đề đạo đức bằng cách đào tạo các mô hình của họ về dữ liệu thu thập trên Internet mà LLM còn đang tác động tiêu cực đến lưu lượng truy cập web của doanh nghiệp, điều này có thể gây tổn hại lớn đến doanh nghiệp đó.
Trí tuệ nhân tạo (AI) đang ngày càng phát triển và được áp dụng trong nhiều lĩnh vực của đời sống. Thậm chí đối với những lĩnh vực đòi hỏi trình độ cao của con người như lập trình hay bảo mật, AI cũng đang chứng minh khả năng vượt trội của mình. Với sự trợ giúp của AI, Google đã phát hiện một lỗ hổng bảo mật tồn tại hơn 20 năm trong dự án phần mềm mã nguồn mở được sử dụng rộng rãi.
13:00 | 02/12/2024
Các doanh nghiệp vừa và nhỏ thường phải đối mặt với nhiều thách thức về bảo mật, vì nguồn ngân sách khó có thể sở hữu một nhóm bảo mật chuyên trách. Do vậy vấn đề liên quan đến việc đảm bảo an toàn thông tin thường do một người phụ trách hoặc kiêm nhiệm, dẫn đến chỉ giải quyết được một phần sự việc khi xảy ra các sự cố.
14:00 | 27/11/2024