Bối cảnh và vấn đề nghiên cứu

Đồ án tốt nghiệp "Xây dựng phần mềm ký số, mã mật CMS, JSON và XML trên Windows" được thực hiện bởi sinh viên Võ Lê Huy (mã số sinh viên: AT131315, lớp AT13P), dưới sự hướng dẫn của Tiến sĩ Lê Quang Huy thuộc Cục Chứng thực số và Bảo mật thông tin, tại Học viện Kỹ thuật Mật mã (cơ sở Thành phố Hồ Chí Minh, năm 2021). Đề tài thuộc ngành An toàn thông tin, mã số chuyên ngành: 7.02.

Bối cảnh thực tiễn được tác giả xác định xuất phát từ sự phát triển của xã hội và mạng Internet, dẫn tới các giao dịch điện tử ngày càng gia tăng. Sự phát triển này kéo theo các yêu cầu cấp thiết về an toàn thông tin, cụ thể là bốn vấn đề cốt lõi: xác thực, tính bí mật, tính toàn vẹn và khả năng chống chối bỏ. Để giải quyết các vấn đề trên, tác giả đã tổng hợp và so sánh các giải pháp kỹ thuật hiện nay qua bảng đánh giá mức độ đáp ứng:

Các giải pháp / dịch vụ Xác thực Toàn vẹn Bí mật Chống chối bỏ
Tên / mật khẩu Trung bình Không Không Không
Sinh trắc Mạnh Không Không Không
Đối xứng Không Mạnh Mạnh Không
Bất đối xứng Mạnh Mạnh Mạnh Mạnh

Từ phân tích trên, kỹ thuật mật mã bất đối xứng (mật mã khóa công khai) được chứng minh là giải pháp toàn diện nhất. Tuy nhiên, khi áp dụng vào thực tiễn, mật mã khóa công khai gặp phải 3 vấn đề căn bản:

  1. Xác thực cặp khóa: Xác định ai thực sự là chủ sở hữu của cặp khóa đã thực hiện thao tác ký hoặc mã hóa dữ liệu.
  2. Chối bỏ hành động: Ngăn chặn chủ sở hữu cặp khóa chối bỏ việc bản thân đã thực hiện một hành động (như ký lên tài liệu điện tử).
  3. Thu hồi cặp khóa: Cơ chế làm mất hiệu lực một cặp khóa khi có sự cố và thông báo kịp thời tới các bên tham gia giao dịch.

Để giải quyết triệt để 3 bài toán này, việc xây dựng và ứng dụng hạ tầng mật mã khóa công khai (PKI) trở thành thành phần xương sống trong chiến lược công nghệ thông tin. Mục tiêu nghiên cứu của đồ án tập trung vào:

  1. Nghiên cứu tổng quan về hạ tầng mật mã khóa công khai PKI, các thành phần, dịch vụ và mô hình hoạt động.
  2. Khảo cứu chi tiết các chuẩn và cấu trúc dữ liệu ký số, mã mật bao gồm CMS (Cryptographic Message Syntax), XML và JSON.
  3. Ứng dụng các thư viện mật mã để phân tích, thiết kế và xây dựng phần mềm demo hỗ trợ ký số và mã mật dữ liệu trên nền tảng hệ điều hành Windows.

Đối tượng nghiên cứu của đồ án là hạ tầng khóa công khai PKI, các định dạng cấu trúc dữ liệu mật mã (CMS, XML, JSON) và các hàm API/thư viện mật mã. Phạm vi nghiên cứu về mặt không gian và môi trường công nghệ tập trung vào hệ thống giao dịch điện tử trên hệ điều hành Windows, với mốc thời gian hoàn thành vào năm 2021.

Cơ sở lý thuyết và phương pháp

Về cơ sở lý thuyết, tác giả tiếp cận hạ tầng mật mã khóa công khai (PKI) dưới hai góc độ kiến trúc:

  • Khung pháp lý: Bao gồm hệ thống văn bản luật, văn bản dưới luật, hệ thống chính sách chứng thư (Certificate Policy - CP) và quy chế chứng thực (Certification Practice Statement - CPS).
  • Hạ tầng kỹ thuật: Gồm trang thiết bị phần cứng, phần mềm, nguồn nhân lực vận hành và các thuật toán kỹ thuật mật mã.

Các chuẩn và đặc tả quốc tế được đồ án sử dụng làm căn cứ lý thuyết gồm:

  • Các khuyến nghị của ITU-T (nổi bật là chuẩn định dạng chứng thư X.509 phiên bản 1, phiên bản 2 và phiên bản 3).
  • Nhóm chuẩn PKIX thuộc Internet RFC: RFC 2459, RFC 3280 (quản lý chứng thư và CRL), RFC 2315 (PKCS#7 v1.5), RFC 2630 và RFC 5652 (đặc tả Cú pháp Thông điệp Mật mã - CMS), cùng các RFC liên quan đến S/MIME (RFC 2311, RFC 2633, RFC 3851).
  • Bộ tiêu chuẩn mật mã khóa công khai PKCS (Public-Key Cryptography Standards), đặc biệt là PKCS#7 (định dạng thông điệp mật mã) và PKCS#12 (lưu trữ khóa bí mật kèm chứng thư).
  • Chuẩn châu Âu ETSI TS 101 733 quy định các định dạng chữ ký điện tử nâng cao CAdES (CMS Advanced Electronic Signatures).
  • Các chuẩn về JSON Web Token (JWT) và chuẩn ký số, mã mật tài liệu XML.

Phương pháp nghiên cứu thực tế được thực hiện qua các bước:

  • Phương pháp phân tích - tổng hợp lý thuyết: Hệ thống hóa tài liệu kỹ thuật, phân rã các cấu trúc trường dữ liệu ASN.1 (Abstract Syntax Notation One) được mã hóa theo các quy tắc BER (Basic Encoding Rules), DER (Distinguished Encoding Rules) và CER (Canonical Encoding Rules).
  • Phương pháp đối chiếu và đánh giá chuẩn: So sánh sự tiến hóa giữa các phiên bản X.509 v1, v2, v3; phân biệt các cấp độ bảo đảm an toàn chữ ký số từ CAdES-BES, CAdES-EPES, CAdES-T, CAdES-C đến CAdES-A.
  • Phương pháp thiết kế và phát triển phần mềm: Ứng dụng các thư viện mật mã Bouncy Castle và Microsoft Crypto API trên môi trường Windows để hiện thực hóa quy trình tạo khóa, băm dữ liệu, đóng gói cấu trúc chữ ký số và mã mật nội dung.

Nguồn dữ liệu của nghiên cứu bao gồm các bộ tài liệu đặc tả kỹ thuật quốc tế (RFC, ITU-T, ETSI) và các cấu trúc chứng thư số, danh sách thu hồi thực tế được tạo lập phục vụ kiểm thử ứng dụng.

Nội dung chính theo từng chương

CHƯƠNG 1: HẠ TẦNG MẬT MÃ KHÓA CÔNG KHAI

Chương 1 thiết lập nền tảng lý luận toàn diện về PKI, làm rõ khái niệm hạ tầng an ninh mạng là các bộ phận phụ thuộc tạo thành cơ sở cho hệ thống an toàn thông tin mạng. PKI cung cấp các dịch vụ bảo đảm an toàn cho giao dịch điện tử gồm tính xác thực, tính toàn vẹn, tính bí mật và chống chối bỏ.

Về các thành phần và dịch vụ trong mô hình Client - Server của PKI:

  • Thẩm quyền chứng thực (Certification Authority - CA): Thành phần cốt lõi có chức năng chứng thực một cặp khóa thuộc hoặc không thuộc về một thuê bao; quản lý vòng đời chứng thư số (phát hành, gia hạn, tạm dừng, kích hoạt, thu hồi, khôi phục) và ban hành danh sách thu hồi CRL tuân thủ CP và CPS.
  • Thẩm quyền đăng ký (Registration Authority - RA): Đóng vai trò cầu nối trung gian giữa CA và người dùng cuối; thực hiện tiếp nhận, thẩm tra, phê duyệt hoặc từ chối yêu cầu chứng thực, hỗ trợ thuê bao sinh cặp khóa và bàn giao kết quả.
  • Thẩm quyền xác nhận (Validation/Verification Authority - VA): Khẳng định tính hợp lệ và tin cậy của chứng thư số đối với các giao dịch thông qua kho công cộng (LDAP), dịch vụ kiểm tra trạng thái trực tuyến (OCSP, SCVP) và dịch vụ cấp dấu thời gian (TimeStamp).
  • Thực thể cuối (End-entity): Phân thành chủ thể sở hữu chứng thư số (subscriber) và chủ thể tin cậy sử dụng chứng thư số (relying party). Thực thể cuối tương tác với hạ tầng thông qua phần mềm người dùng cuối (PKI-client software).

Về chứng thư số và danh sách thu hồi:

  • Chứng thư số: Đóng vai trò như chứng minh nhân dân trong môi trường điện tử, chứa khóa công khai và liên kết với định danh duy nhất của chủ thể theo chuẩn X.500 Distinguished Name (DN). Khóa bí mật được khuyến nghị lưu trữ an toàn trong USB Token hoặc SmartCard.
  • Phân loại chứng thư: Phân theo đối tượng gồm chứng thư số thực thể cuối và chứng thư số CA (gồm chứng thư tự phát hành, chứng thư tự ký RootCA, chứng thư số chéo); phân theo mục đích gồm chứng thư khóa công khai, chứng thư thuộc tính (Attribute Certificate - không chứa khóa công khai, dùng để phân quyền), chứng thư đủ điều kiện (Qualified Certificate) và Card Verifiable Certificates (CVC dùng cấu trúc TLV cho thiết bị tính toán hạn chế).
  • Tiến hóa chuẩn X.509: Phiên bản v1 (1988) gồm các trường cơ bản (Version, Serial Number, Signature Algorithm, Issuer Name, Validity Period, Subject Name, Subject Public Key Info, Signature Value); phiên bản v2 (1993) bổ sung Issuer Unique ID và Subject Unique ID nhằm phân biệt các CA có cùng DN nhưng bị RFC 2459/3280 khuyến cáo không dùng do nguy cơ xung đột; phiên bản v3 (1996) đưa vào hệ thống phần mở rộng (Extensions) linh hoạt. Mỗi extension gồm Extension Identifier (OID), cờ Criticality Flag và Extension Value. Các extension điển hình gồm: Authority Key Identifier, Subject Key Identifier, Key Usage (định nghĩa 9 mục đích: Digital Signature, Non-Repudiation, Key Encipherment, Data Encipherment, Key Agreement, Key Cert Sign, CRL Sign, Encipher Only, Decipher Only), Private Key Usage Period, Certificate Policies, Policy Mappings, Subject Alternative Name (cho phép định danh bằng email, IP, DNS, UPN), Basic Constraints, CRL Distribution Points, Authority Information Access, Freshest CRL.
  • Các định dạng tệp tin chứng thư: Định dạng .cer (mã hóa CER), .der (mã hóa DER), .pem (mã hóa DER dưới dạng Base64 đặt giữa hai thẻ -----BEGIN CERTIFICATE----- và -----END CERTIFICATE-----), .p7b/.p7c (chuẩn PKCS#7 chỉ chứa chứng chỉ và chuỗi chứng nhận), .pfx/.p12 (chuẩn PKCS#12 chứa cả chứng chỉ và khóa bí mật).
  • Danh sách thu hồi chứng thư (CRL): Chứa các chứng thư bị mất hiệu lực trước thời hạn tự nhiên do lộ khóa, đổi trạng thái chủ thể, thay đổi tham số. Phân loại theo phạm vi gồm CARL (cho CA) và EPRL (cho người dùng cuối). Các dạng CRL gồm: Simple CRL (chứa toàn bộ chứng thư thu hồi của 1 CA, dễ triển khai nhưng kích thước lớn), Partitioned CRL (chia nhỏ danh sách qua trường CRL Distribution Points và Issuing Distribution Point) và Delta CRL (kết hợp Base CRL định kỳ dài với Delta CRL cập nhật khoảng thời gian ngắn để tối ưu băng thông tải về).

Về hoạt động và mô hình PKI:

  • Hoạt động nghiệp vụ: Quản lý vòng đời cặp khóa (Enrollments, Renewal, Suspend/Active, Revocation); sử dụng cặp khóa trong ký số (băm dữ liệu rồi mã hóa bằng khóa riêng, thuật toán RSA phổ biến với độ dài 1024, 2048, 4096 bit, mức an toàn 128-bit yêu cầu khóa 3072 bit); xác thực người dùng qua cơ chế hỏi - đáp (challenge-response) tạo số ngẫu nhiên; mã mật kết hợp giữa mã hóa khóa công khai và mã hóa đối xứng.
  • Ứng dụng PKI: Phục vụ khối chính phủ điện tử G2G, G2B, G2C (hóa đơn, thuế, hải quan, văn bản điện tử) và khối doanh nghiệp B2C, B2B, B2G (ngân hàng điện tử, đấu thầu, bảo hiểm, y tế).
  • Ba mô hình hoạt động: Mô hình phân cấp (Hierarchical PKI - quản lý theo cây với Root CA ở đỉnh, các Subordinate CA bên dưới, Root CA có thể đặt offline); mô hình mạng lưới (Mesh PKI - hoạt động theo mạng tin cậy Web-of-Trust, tin cậy chéo hai chiều, không có điểm sụp đổ đơn lẻ); mô hình đơn CA (Single CA - phù hợp quy mô nhỏ nhưng là điểm chịu lỗi duy nhất, khó mở rộng).

CHƯƠNG 2: CẤU TRÚC DỮ LIỆU KÝ SỐ, MÃ MẬT CMS, XML JSON

Chương 2 đi sâu vào cấu trúc dữ liệu chuẩn hóa của các thông điệp mật mã:

  • Cấu trúc CMS (Cryptographic Message Syntax): Kế thừa từ PKCS#7 v1.5 (RFC 2315 năm 1993), được IETF chuẩn hóa qua RFC 2630 (bổ sung thỏa thuận khóa và khóa mã hóa khóa đối xứng) và RFC 5652. Định dạng PKCS#7 (đuôi .p7b, .p7c) lưu trữ dưới dạng ký tự ASCII, không lưu khóa riêng. CMS định nghĩa cú pháp đóng gói lồng nhau dựa trên ASN.1 mã hóa BER/DER để ký số, xác thực và mã hóa dữ liệu tùy ý.
  • Các kiểu nội dung chính trong RFC 5652:
    1. Data Content Type: Mang chuỗi octet tùy ý không bắt buộc cấu trúc nội bộ, định danh bởi OID id-data, được sử dụng trong các chuẩn S/MIME v2 (RFC 2311), S/MIME v3 (RFC 2633) và RFC 3851.
    2. Signed-data Content Type (SignedData): Chứa tập hợp thuật toán băm (DigestAlgo), nội dung đóng gói (EncapContentInfo gồm eContentType và eContent) và thông tin người ký (SignerInfos). Mỗi phần tử SignerInfo chứa phiên bản cú pháp, định danh người ký SID, tập thuộc tính đã ký SignAttrs, thuật toán chữ ký SignatureAlgorithm và giá trị chữ ký Signature. Nếu có thuộc tính SignAttrs, giá trị băm được tính trên mã hóa DER của thẻ EXPLICIT SET OF của SignAttrs (phải bao gồm contentType và messageDigest), thay vì chỉ băm trực tiếp eContent.
    3. Enveloped-Data Content Type (EnvelopedData): Cung cấp cơ chế mã hóa nội dung bằng khóa mã hóa nội dung ngẫu nhiên (Content Encryption Key - CEK). CEK được mã hóa cho từng người nhận qua 4 kỹ thuật quản lý khóa: Key transport (dùng khóa công khai người nhận), Key agreement (thỏa thuận khóa đối xứng theo cặp), Symmetric key-encryption keys (dùng khóa mã hóa khóa KEK phân phối trước) và Password (dẫn xuất từ mật khẩu). Cấu trúc KEKRecipientInfo quy định phiên bản cú pháp bắt buộc là 4, chứa kekid, keyEncryptionAlgorithm và encryptedKey.
  • Chuẩn chữ ký điện tử ETSI TS 101 733 (CAdES v1.7.4): Định nghĩa các mức bảo vệ chữ ký số từ cơ bản đến lưu trữ lâu dài:
    • CAdES-BES (Basic Electronic Signature): Gồm thông tin người ký, giá trị chữ ký và các thuộc tính bắt buộc (Content type, Message digest, ESS signing certificate - chỉ cho phép dùng thuật toán SHA-1). Các thuộc tính tùy chọn gồm: Signing time, Content hints, Signer location, Content time stamp.
    • CAdES-EPES (Explicit Policy-based Electronic Signature): Mở rộng từ BES bằng cách gắn thêm thuộc tính sigPoliciID nhằm ràng buộc chính sách chữ ký cụ thể.
    • CAdES-T (Electronic Signature with Time): Tích hợp thuộc tính dấu thời gian (Time-stamp) do nhà cung cấp dịch vụ tin cậy (TSP) cấp nhằm chống chối bỏ thời điểm ký.
    • CAdES-C (Complete validation data): Bổ sung các tham chiếu chứng chỉ đầy đủ và tham chiếu trạng thái thu hồi (CRL/OCSP) vào cấu trúc chữ ký.
    • CAdES-A (Archival): Dành cho lưu trữ điện tử dài hạn, định nghĩa hai định dạng thuộc tính dấu thời gian lưu trữ gồm ATSv2 (phục vụ tính tương thích ngược) và ATSv3 (chuẩn hóa theo điều khoản 6.5, cho phép xác thực dài hạn và linh hoạt bổ sung thuộc tính không ký hoặc chữ ký song song).
  • Cấu trúc XML và JSON: Mục lục đồ án xác lập việc nghiên cứu các chuẩn ký số, mã mật trên dữ liệu XML và JSON Web Token (JWT).

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG DEMO

Chương 3 tập trung vào việc hiện thực hóa công nghệ:

  • Khảo sát và lựa chọn các thư viện mật mã: Phân tích thư viện Bouncy Castle (thư viện mã nguồn mở hỗ trợ đầy đủ các thuật toán và cấu trúc CMS/PKCS) và thư viện Microsoft Crypto API (hệ thống giao diện lập trình mật mã chuẩn mức hệ điều hành của Microsoft Windows).
  • Phân tích và thiết kế chương trình: Xây dựng sơ đồ chức năng và luồng dữ liệu cho phần mềm ký số, mã mật hỗ trợ các định dạng CMS, XML và JSON trên môi trường Windows.
  • Giới thiệu chung về ứng dụng: Cài đặt giao diện và tính năng thao tác người dùng, cho phép nạp chứng thư, tạo chữ ký, kiểm tra tính hợp lệ của chữ ký và thực hiện mã hóa, giải mã thông điệp.

Thiết kế và triển khai

Căn cứ vào phần thuyết minh và mục lục chương 3, đồ án lựa chọn giải pháp triển khai phần mềm chạy trên nền tảng hệ điều hành Windows với các thông số kỹ thuật:

  • Môi trường và nền tảng: Hệ điều hành Windows.
  • Công nghệ mật mã tích hợp:
    • Thư viện Bouncy Castle: Cung cấp các lớp xử lý đối tượng ASN.1, hiện thực hóa các cấu trúc SignedData, EnvelopedData, cũng như các định dạng mở rộng của CAdES (từ CAdES-BES đến CAdES-A).
    • Thư viện Microsoft Crypto API: Khai thác kho lưu trữ chứng thư của Windows (Windows Certificate Store), hỗ trợ giao tiếp với thiết bị phần cứng an toàn (Token USB / SmartCard) để truy xuất khóa bí mật và thực hiện các phép toán mật mã.
  • Quy trình chức năng phần mềm:
    1. Quản lý chứng thư và khóa: Đọc các định dạng tệp tin chứng thư .cer, .der, .pem, .p7b, .pfx và truy xuất khóa công khai/khóa riêng.
    2. Ký số dữ liệu: Hỗ trợ tạo cấu trúc chữ ký số đa định dạng gồm CMS (theo RFC 5652 / CAdES ETSI TS 101 733), XML (XML Signature) và JSON (JSON Web Signature / JWT).
    3. Xác thực chữ ký: Kiểm tra tính toàn vẹn của thông điệp, thẩm tra đường dẫn chứng thư số và trạng thái hợp lệ thông qua CRL hoặc OCSP.
    4. Mã mật dữ liệu: Thực hiện quy trình mã hóa kết hợp (hybrid encryption), sử dụng CEK đối xứng để mã hóa dữ liệu lớn và mã hóa CEK bằng khóa công khai của người nhận theo cơ chế EnvelopedData.

Kết quả và đóng góp

Đồ án đạt được các kết quả cụ thể:

  • Về mặt lý thuyết: Hệ thống hóa toàn bộ kiến thức chuyên sâu về hạ tầng khóa công khai PKI, các chuẩn định dạng chứng chỉ X.509 (v1, v2, v3), các kỹ thuật quản lý danh sách thu hồi (Simple CRL, Partitioned CRL, Delta CRL) và 3 mô hình triển khai PKI (Hierarchical, Mesh, Single CA).
  • Về mặt đặc tả kỹ thuật: Phân tích chi tiết quy trình xử lý trường dữ liệu của chuẩn CMS theo RFC 5652 và các cấp độ chữ ký số nâng cao CAdES theo ETSI TS 101 733, làm rõ sự khác biệt trong tính toán bản tóm tắt thông điệp khi có hoặc không có tập thuộc tính signAttrs.
  • Về sản phẩm phần mềm: Thiết kế và xây dựng thành công ứng dụng demo ký số, mã mật trên Windows tích hợp cả hai thư viện Bouncy Castle và Microsoft Crypto API, giải quyết bài toán xử lý đồng thời ba định dạng dữ liệu phổ biến trong trao đổi thông tin điện tử hiện nay là CMS, JSON và XML.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đồ án:

  • Phạm vi triển khai ứng dụng demo được xây dựng tập trung trên hệ điều hành Windows, chưa mở rộng khả năng tương thích đa nền tảng (như Linux, macOS).
  • Thuộc tính ký số nâng cao CAdES-BES trong chuẩn ETSI TS 101 733 được khảo cứu vẫn còn phụ thuộc vào thuật toán băm SHA-1 đối với trường ESS signing certificate.
  • Văn bản trích đoạn tập trung chi tiết vào cấu trúc CMS và CAdES; nội dung chi tiết về XML và JSON Web Token chưa được trình bày đầy đủ trong phạm vi các trang thuyết minh được trích xuất.

Hướng mở nghiên cứu tiếp:

  • Mở rộng ứng dụng sang các hệ điều hành khác và tích hợp trực tiếp các giao thức kiểm tra trực tuyến OCSP/SCVP theo thời gian thực.
  • Nâng cấp các thuật toán băm an toàn hơn (họ SHA-2, SHA-3) cho các thuộc tính chứng thực chữ ký số lâu dài.
  • Hoàn thiện kiểm thử hiệu năng ký số và mã mật trên các tập tin có dung lượng lớn.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành An toàn thông tin, Công nghệ thông tin và Kỹ thuật mật mã đang thực hiện các đồ án, khóa luận về chữ ký số, xác thực điện tử và bảo mật dữ liệu.
  • Kỹ sư phát triển phần mềm trên Windows cần tài liệu hướng dẫn tích hợp thư viện Bouncy Castle hoặc Microsoft Crypto API để xử lý các tệp tin PKCS#7, PKCS#12, CMS và CAdES.
  • Phần đáng tham khảo nhất trong tài liệu là Chương 1 (chi tiết đặc tả các trường mở rộng X.509 v3 và cơ chế vận hành của các loại CRL) cùng Chương 2 (quy trình tính toán message digest và đóng gói cấu trúc SignerInfo, EnvelopedData theo RFC 5652).

Câu hỏi thường gặp

1. Điểm khác biệt mấu chốt giữa chứng thư số X.509 phiên bản 2 và phiên bản 3 là gì?
Phiên bản 2 bổ sung hai trường Issuer Unique ID và Subject Unique ID (chuỗi hexa) để phân biệt các thực thể trùng tên, nhưng bị RFC 2459/3280 khuyến cáo không dùng do nguy cơ xung đột. Phiên bản 3 (ra đời năm 1996) thay thế cơ chế này bằng việc bổ sung hệ thống phần mở rộng (Extensions) linh hoạt, mỗi extension gồm OID, cờ quan trọng (Criticality Flag) và giá trị mở rộng, cho phép định nghĩa chính sách, mục đích sử dụng khóa và các điểm phân phối thu hồi.

2. Quá trình tính toán bản tóm tắt thông báo (Message Digest) trong cấu trúc CMS SignedData thay đổi như thế nào khi có sự xuất hiện của trường SignAttrs?
Nếu không có trường signAttrs, bản tóm tắt được tính trực tiếp từ giá trị chuỗi octet của nội dung eContent. Khi có trường signAttrs, bản tóm tắt thực sự được tính trên mã hóa DER hoàn chỉnh của thẻ EXPLICIT SET OF của các thuộc tính trong SignAttrs (trong đó bắt buộc phải chứa thuộc tính messageDigest của nội dung và thuộc tính contentType).

3. Tiêu chuẩn ETSI TS 101 733 định nghĩa hai biểu mẫu lưu trữ nào cho chữ ký số CAdES-A?
CAdES-A định nghĩa hai biểu mẫu là ATSv2 (thuộc tính lưu trữ - thời gian - đóng dấu phiên bản 2, dùng để tương thích ngược) và ATSv3 (thuộc tính lưu trữ - thời gian - tem phiên bản 3, chuẩn hóa theo điều khoản 6.5 để xác thực dài hạn và hỗ trợ kết hợp chữ ký song song).

4. Cấu trúc EnvelopedData hỗ trợ những kỹ thuật quản lý khóa nào để mã hóa khóa nội dung (CEK)?
Cấu trúc hỗ trợ 4 kỹ thuật: Key transport (mã hóa CEK bằng khóa công khai người nhận), Key agreement (dùng khóa công khai người nhận và khóa riêng người gửi tạo khóa đối xứng theo cặp), Symmetric key-encryption keys (dùng khóa mã hóa KEK phân phối trước) và Password (dẫn xuất khóa từ mật khẩu).

5. Vì sao mô hình Single CA lại ít phù hợp cho các tổ chức có quy mô lớn?
Vì mô hình này có khả năng co giãn kém khi tổ chức mở rộng quy mô, đồng thời CA duy nhất đóng vai trò là điểm chịu lỗi đơn lẻ (single point of failure); nếu CA ngừng hoạt động dịch vụ sẽ tê liệt, và nếu CA bị xâm hại toàn bộ hệ thống phải cấp phát lại chứng chỉ từ đầu.

Kết luận

Đồ án "Xây dựng phần mềm ký số, mã mật CMS, JSON và XML trên Windows" của tác giả Võ Lê Huy đã hệ thống hóa đầy đủ cơ sở lý thuyết về hạ tầng mật mã khóa công khai PKI và các chuẩn đặc tả thông điệp an toàn. Đề tài làm rõ cấu trúc kỹ thuật của các định dạng chứng thư X.509, các giao thức thu hồi CRL, cú pháp CMS theo RFC 5652 và các định dạng chữ ký nâng cao CAdES theo ETSI TS 101 733. Kết quả nghiên cứu đã được chuyển hóa thành giải pháp ứng dụng thực tế trên nền tảng Windows thông qua việc kết hợp các thư viện mật mã Bouncy Castle và Microsoft Crypto API.