Nội dung Luật khung bao gồm 12 mục như phạm vi áp dụng (Mục 1), các định nghĩa (Mục 2) (trong đó định nghĩa cho chữ ký điện tử, chứng chỉ số, thông điệp dữ liệu, người ký, nhà cung cấp dịch vụ chứng thực, thành viên tin cậy, ...), về đối xử bình đẳng đối với các công nghệ chữ ký (Mục 3), các hướng dẫn dành cho người ký, nhà cung cấp dịch vụ chứng thực (Mục 8 và Mục 9), sự tin cậy và hướng dẫn thành viên tin cậy (Mục 10, 11), công nhận chứng chỉ và chữ ký điện tử của các nước khác (Mục12).
Xét riêng về những vấn đề chính liên quan đến hạ tầng khoá công khai, ta có thể tóm tắt một số nội dung quy định trong Luật khung như sau:
Các khoá riêng và khoá công khai:
Khoá được sử dụng để tạo ra các chữ ký số được gọi "khoá riêng", chỉ người ký được phép sử dụng khoá này để tạo ra chữ ký số, "khoá công khai" được biết rộng rãi hơn và thành viên tin cậy sử dụng khoá này để kiểm tra chữ ký số. Người sử dụng cần phải giữ bí mật khoá riêng. Lưu ý rằng, người sử dụng không nhất thiết phải biết khoá riêng, khoá này thường được lưu giữ trong một thẻ thông minh, có thể truy nhập vào nó thông qua số hiệu nhận dạng cá nhân (PIN), hoặc thiết bị nhận dạng sinh trắc học. Nếu nhiều người muốn kiểm tra chữ ký số của người ký, thì khoá công khai phải có hiệu lực, hoặc phân phối cho tất cả những người này, chẳng hạn bằng cách công bố trong một kho lưu giữ trực tuyến, hoặc một dạng thư mục công khai nào đó, sao cho việc truy nhập vào chúng là hoàn toàn dễ dàng. Các khoá trong cặp khoá có liên quan toán học với nhau, nếu một hệ mật phi đối xứng được tạo ra và thiết lập an toàn, khó có thể biết được khoá riêng từ khoá công khai. Hầu
hết các thuật toán dành cho mã hoá sử dụng khoá công khai và khoá riêng đều dựa vào một đặc tính rất quan trọng của các số nguyên tố lớn, đó là một khi nhân chúng với nhau để tạo ra một số mới, chúng ta không thể hoặc mất rất nhiều thời gian để có thể xác định được số nào trong hai số nguyên tố là số mới và là số lớn hơn. Chính vì vậy, mặc dù nhiều người biết khoá công khai nhưng không thể làm giả chữ ký số vì họ không thể khôi phục được khoá riêng cùng cặp, họ chỉ có thể kiểm tra chữ ký số.
Hàm băm
Ngoài việc sinh ra các cặp khoá, quá trình tạo và kiểm tra chữ ký số cần sử dụng hàm băm. Hàm băm dựa vào một thuật toán, với đầu vào là một thông báo, thông báo ở đầu ra của thuật toán có dạng nén, thường được gọi là “tóm lược thông báo” hoặc "dấu vân tay của thông báo". Độ dài chuẩn của “kết quả băm” thường nhỏ hơn độ dài của thông báo. Khi sử dụng cùng một hàm băm, kết quả băm sẽ khác nhau nếu thông báo ban đầu có bất kỳ thay đổi nào. Hàm băm phải thoả mãn một tính chất quan trọng và được gọi là “hàm băm một chiều”, do đó, người ngoài cuộc không thể khôi phục lại được thông báo ban đầu từ kết quả băm. Vì vậy, các hàm băm cho phép phần mềm (tạo các chữ ký số) tính toán trên một khối dữ liệu nhỏ hơn và có thể đoán được, trong khi vẫn đảm bảo sự tương quan với nội dung của thông báo gốc, vì vậy có thể đảm bảo rằng không có sửa đổi nào xảy ra đối với thông báo từ khi nó được ký số.
Chữ ký số
Để ký một tài liệu hoặc một mục thông tin nào đó, trước tiên người ký phân định chính xác những gì cần được ký. Sau đó, hàm băm trong phần mềm của người ký tính toán một kết quả băm duy nhất đối với thông tin được ký. Tiếp theo, phần mềm của người ký "chuyển đổi" kết quả băm thành chữ ký, bằng cách sử dụng khoá riêng của người ký. Do vậy, chữ ký số được tạo ra là duy nhất đối với thông tin được ký và khoá riêng được sử dụng để tạo ra chữ ký số này.
Kiểm tra chữ ký số
Kiểm tra chữ ký số là quá trình xem xét chữ ký số với thông báo gốc và một khoá công khai cho trước, bằng cách này có thể xác định: chữ ký số có được tạo ra từ thông báo gốc và khoá riêng tương ứng với khoá công khai này hay không. Việc kiểm tra được bắt đầu bằng cách tính toán một kết quả băm mới cho thông báo nhận được, sử dụng cùng một hàm băm như đã được sử dụng trong quá trình tạo chữ ký. Sau đó, sử dụng khoá công khai và kết quả băm mới để kiểm tra xem chữ ký số có được tạo ra từ khoá riêng tương ứng hay không, so sánh kết quả băm mới được tạo ra và kết quả băm gốc (được trích ra từ chữ ký số) xem chúng có trùng khớp hay không.
Phần mềm kiểm tra sẽ xác nhận chữ ký số "đã được kiểm tra" nếu: (1) khoá riêng của người ký được sử dụng để ký thông báo, trong trường hợp chỉ có thể kiểm tra chữ ký số bằng cách sử dụng khoá công khai tương ứng với khoá riêng của người ký; và (2) thông báo không bị sửa đổi, trong trường hợp kết quả băm do người kiểm tra tính toán đồng nhất với kết quả băm được trích ra từ chữ ký số trong quá trình kiểm tra.
Cơ sở hạ tầng khoá công khai
Việc thiết lập cơ sở hạ tầng khoá công khai (PKI) là một cách để đảm bảo rằng: (1) Khoá công khai của người sử dụng không bị làm giả và thực tế nó cùng cặp với khoá riêng của người sử dụng này; (2) Các kỹ thuật mật mã được sử dụng thích hợp. Để đảm bảo điều này, PKI có thể đưa ra một số dịch vụ như sau:(1) Sinh và quản lý các khoá được sử dụng cho các chữ ký số; (2) Chứng thực rằng khoá công khai cùng cặp với khoá riêng; (3) Cung cấp khoá cho người sử dụng cuối; (4) Công bố một thư mục an toàn có chứa thông tin về các khoá công khai hoặc chứng chỉ; (5) Quản lý các thẻ bài cá nhân (ví dụ, thẻ thông minh) được sử dụng để nhận dạng người sử dụng thông qua thông tin nhận dạng cá nhân duy nhất; hoặc có thể sinh ra hoặc lưu giữ khoá riêng của một cá nhân; (6) Kiểm tra nhận dạng của người sử dụng cuối và cung cấp các dịch vụ cho họ; (7) Cung cấp các dịch vụ gán nhãn thời gian; (8) Sinh và
quản lý các khoá mã hoá.
Một PKI thường dựa vào các mức phân cấp khác nhau. Ví dụ, các mô hình được xem xét tại một số nước khi thiết lập các PKI bao gồm các mức sau: (1) Một "cơ quan gốc" duy nhất, cơ quan này có thể chứng thực công nghệ và các hoạt động của tất cả các thành viên được phép phát hành các cặp khoá mã hoặc các chứng chỉ, có thể đăng ký các cơ quan chứng thực cấp dưới; (2) Các cơ quan chứng thực là cấp dưới của cơ quan gốc có thể chứng thực khoá công khai (tương ứng với khoá riêng) của người sử dụng; (3) Các cơ quan đăng ký địa phương là cấp dưới của các cơ quan chứng thực. Các cơ quan này có nhiệm vụ nhận yêu cầu về các cặp khoá mã hoặc các chứng chỉ từ phía người sử dụng, yêu cầu bằng chứng nhận dạng của người sử dụng và kiểm tra các nhận dạng đó. Tại một số nước, công chứng viên có thể hỗ trợ hoặc hoạt động như các cơ quan đăng ký địa phương.
Nhà cung cấp dịch vụ chứng thực
Để liên kết một cặp khoá với một người ký tương lai (thuê bao), nhà cung cấp dịch vụ chứng thực (hoặc cơ quan chứng thực) phát hành một chứng chỉ, một bản ghi điện tử có chứa khoá công khai cùng với tên của thuê bao (hay chủ thể của chứng chỉ) và có thể xác nhận rằng thuê bao được nhận dạng trong chứng chỉ nắm giữ khoá riêng cùng cặp. Khi “người nhận” muốn kiểm tra chữ ký số của thuê bao (được nhận dạng trong chứng chỉ do cơ quan chứng thực, hoặc nhà cung cấp dịch vụ chứng thực phát hành) trên một thông báo nào đó, có thể sử dụng khoá công khai có trong chứng chỉ để kiểm tra chữ
ký số đó. Nếu việc kiểm tra thành công, có thể đảm bảo rằng chữ ký số này là của thuê bao và thông báo không bị sửa đổi sau khi ký.
Để đảm bảo tính đích thực cả về nội dung và nguồn gốc của chứng chỉ, nhà cung cấp dịch vụ chứng thực tiến hành ký số lên chứng chỉ. Chữ ký số của nhà cung cấp dịch vụ chứng thực được kiểm tra bằng cách sử dụng khoá công khai của nhà cung cấp dịch vụ chứng thực này nhưng lại được nhà cung cấp dịch vụ chứng thực khác chứng thực, thông qua việc phát hành các chứng chỉ, cứ như vậy, lần lượt kiểm tra cho đến khi chữ ký số được tin cậy hoàn toàn.
Một chữ ký số tương ứng với một thông báo. Chữ ký này có thể do thuê bao tạo ra nhằm xác thực một thông báo, hoặc do nhà cung cấp dịch vụ chứng thực tạo ra nhằm xác thực chứng chỉ của họ, nói chung trong trường hợp nào cũng cần gán nhãn thời gian để chỉ ra thời điểm ký, đây cũng là một điều kiện để kiểm tra một chữ ký số.
Để thuận tiện cho việc kiểm tra, chứng chỉ có thể được công bố tại một kho lưu giữ, hoặc phương tiện khác. Thông thường, kho lưu giữ là một cơ sở dữ liệu trực tuyến có chứa thông tin liên quan đến chứng chỉ hoặc các thông tin khác, người sử dụng có thể tìm kiếm và sử dụng trong quá trình kiểm tra chữ ký số.
Một khi chứng chỉ được phát hành, vẫn có thể xảy ra một số trường hợp chứng chỉ không đáng tin cậy, chẳng hạn như thuê bao gửi cho nhà cung cấp dịch vụ chứng thực nhận dạng sai của mình, hoặc khoá riêng bị lộ, nhà cung cấp dịch vụ chứng thực (theo yêu cầu của thuê bao, hoặc thậm chí không cần sự đồng ý của thuê bao, tuỳ thuộc vào từng hoàn cảnh cụ thể) có thể treo (ngừng hoạt động tạm thời) hoặc huỷ bỏ (chấm dứt hoạt động) đối với chứng chỉ. Ngay sau khi treo hoặc huỷ bỏ một chứng chỉ, nhà cung cấp dịch vụ chứng thực cần công bố công khai tình trạng này.
CA có thể do một cơ quan của chính phủ, hoặc nhà cung cấp dịch vụ tư nhân điều hành. Tại một số nước, chỉ có các thực thể của chính phủ mới có quyền hoạt động như là các cơ quan chứng thực. Tại một số nước khác, các nhà cung cấp dịch vụ chứng thực tư nhân được tự do cạnh tranh các dịch vụ chứng thực. Bất luận các cơ quan chứng thực có được điều hành bởi các thực thể công cộng hay các nhà cung cấp dịch vụ chứng thực tư nhân hay không, bất luận các cơ quan chứng thực có cần một giấy phép để hoạt động hay không, nói chung nên có nhiều hơn một nhà cung cấp dịch vụ chứng thực hoạt động trong PKI. Vậy mối quan hệ giữa các CA sẽ ra sao? Các CA trong một PKI có thể được thiết lập theo cấu trúc phân cấp - trong đó, một số CA chỉ chứng thực các CA cung cấp các dịch vụ trực tiếp cho người sử dụng. Theo cấu trúc này, tồn tại các CA là cấp dưới của các CA khác. Trong một số các cấu trúc khác, tất cả các CA có thể hoạt động trên cơ sở quan hệ ngang bằng. Trong một PKI lớn, tồn tại cả CA cấp dưới và cấp trên. Trong một PKI
Quốc tế, có thể phát sinh một số vấn đề liên quan tới việc công nhận các chứng chỉ do các CA phát hành tại các Quốc gia khác nhau. Việc công nhận các chứng chỉ của các CA của các nước khác thường được thực hiện thông qua một giải pháp, giải pháp này được gọi là “chứng thực chéo”. Trong trường hợp này, cần phải có các CA ngang bằng nhau (hoặc các CA sẽ phải gánh chịu các rủi ro nào đó liên quan tới các chứng chỉ do các CA khác phát hành) công nhận các dịch vụ do các CA khác cung cấp, vì vậy người sử dụng của các CA khác nhau có thể truyền thông với nhau một cách dễ dàng và thuận lợi.
Tóm tắt quá trình xử lý chữ ký số
Thông thường, quá trình tạo và kiểm tra chữ ký số bao gồm các bước sau đây: a. Người ký tạo ra hoặc được cung cấp một cặp khoá;
b. Người ký chuẩn bị thông báo (ví dụ, theo dạng của một thông báo thư điện tử );
c. Người ký chuẩn bị một “tóm lược thông báo”, bằng cách sử dụng một thuật toán băm nào đó. Quá trình tạo chữ ký số sử dụng một kết quả băm có nguồn gốc và duy nhất đối với cả thông báo được ký và khoá riêng cho trước.
d. Người ký mã hoá tóm lược thông báo với khoá riêng. Chữ ký số chính là tóm lược thông báo được mã hoá.
e. Thông thường, người ký gắn chữ ký số vào thông báo.
f. Người ký gửi chữ ký số và thông báo (đã được mã hoá hoặc không) cho thành viên tin cậy.
g. Thành viên tin cậy sử dụng khoá công khai của người ký để kiểm tra chữ ký số của người ký. Việc kiểm tra có sử dụng khoá công khai của người ký đảm bảo rằng thông báo có nguồn gốc từ người ký.
h. Thành viên tin cậy cũng tạo ra một “tóm lược thông báo” từ thông báo nhận được, bằng cách sử dụng cùng một thuật toán băm của người ký. i. Thành viên tin cậy có được tóm lược thông báo nguyên thuỷ, bằng cách
giải mã chữ ký số nhận được với khoá công khai của người ký. Sau đó, so sánh hai tóm lược thông báo với nhau, nếu chúng trùng khớp thì thành viên tin cậy có thể xác định được rằng thông báo không bị sửa đổi sau khi nó được ký. Chỉ cần một bít trong thông báo gửi đến bị sửa đổi cũng làm cho hai tóm lược thông báo khác nhau.