Chứng thực khóa công khai

Trong mật mã học, chứng thực khóa công khai (còn gọi là chứng thực số / chứng thực điện tử) là một chứng thực sử dụng chữ ký số để gắn một khóa công khai với một thực thể (cá nhân, máy chủ hoặc công ty...). Một chứng thực khóa công khai tiêu biểu thường bao gồm khóa công khai và các thông tin (tên, địa chỉ...) về thực thể sở hữu khóa đó. Chứng thực điện tử có thể được sử dụng để kiểm tra một khóa công khai nào đó thuộc về ai.
Trong một mô hình hạ tầng khóa công khai (PKI) tiêu biểu, chữ ký trong chứng thực thuộc về nhà cung cấp chứng thực số (certificate authority, viết tắt là CA). Trong mô hình mạng lưới tín nhiệm (web of trust), thì chữ ký có thể là của chính thực thể đó hoặc của một thực thể khác. Trong bất kỳ trường hợp nào thì chữ ký trong chứng thực là sự đảm bảo của người ký về mối liên hệ giữa khóa công khai và thực thể được chứng nhận.
Sử dụng.
Việc sử dụng chứng thực sẽ tạo điều kiện áp dụng rộng rãi mật mã hóa khóa công khai. Đối với hệ thống mã hóa khóa bí mật, việc trao đổi khóa giữa những người sử dụng trên quy mô lớn là không thể thực hiện được. Hệ thống mã hóa khóa công khai có thể tránh được vấn đề này. Trên nguyên tắc nếu Alice và Bob muốn người khác gửi thông tin mật cho mình thì chỉ cần công bố khóa công khai của chính mình. Bất kỳ ai có được khóa này đều có thể gửi thông tin mật cho họ. Tuy nhiên, bất kỳ người nào ("David") cũng có khả năng đưa ra một khóa công khai khác và giả mạo rằng đó là khóa của Alice. Bằng cách làm như vậy kẻ tấn công có thể đọc được một số thông tin gửi cho Alice. Nếu Alice đưa khóa công khai của mình vào một chứng thực và chứng thực này được một bên thứ 3 ("Trent") xác nhận bằng chữ ký điện tử thì bất kỳ ai tin tưởng vào Trent sẽ có thể kiểm tra khóa công khai của Alice. Trong hạ tầng khóa công cộng thì Trent chính là nhà cung cấp chứng thực số (CA). Trong mô hình mạng lưới tín nhiệm, Trent có thể là bất kỳ người dùng nào và mức độ tin tưởng vào sự chứng thực tùy thuộc vào sự đánh giá của người dùng.
Khi áp dụng chứng thực ở quy mô lớn, có rất nhiều CA cùng hoạt động. Vì vậy Alice có thể không quen thuộc (không đủ tin tưởng) với CA của Bob. Do đó chứng thực của Bob có thể phải bao gồm chữ ký của CA ở mức cao hơn CA2. Quá trình này dẫn đến việc hình thành một mạng lưới quan hệ phức tạp và phân tầng giữa các CA. Hạ tầng khóa công khai thông thường chính là chỉ tới các phần mềm để quản lý hệ thống này. Trong tiêu chuẩn X.509 về hệ thống hạ tầng khóa công khai, mạng lưới CA tạo thành cây từ trên xuống với gốc là một CA trung tâm mà không cần được chứng thực bởi một bên thứ 3 nào khác.
Một chứng thực khóa công khai có thể bị thu hồi nếu như khóa bí mật của nó đã bị lộ hoặc mối liên hệ giữa khóa công khai và chủ thể sở hữu đã thay đổi. Điều này có thể xảy ra ở mức độ không thường xuyên nhưng người sử dụng phải luôn kiểm tra tính pháp lý của chứng thực mỗi khi sử dụng. Điều này có thể thực hiện bằng cách so sánh chứng thực với danh sách các chứng thực bị thu hồi (certificate revocation list - CRL). Việc đảm bảo danh sách này chính xác và cập nhật là chức năng cơ bản của hạ tầng khóa công cộng tập trung. Tuy nhiên công việc này đòi hỏi nhân công cũng như ngân sách nên thường không được thực hiện đầy đủ. Để thực sự đạt hiệu quả, danh sách này phải luôn sẵn sàng cho bất kỳ ai cần đến vào bất kỳ thời điểm nào tại mọi nơi. Một cách kiểm tra khác là truy vấn vào nơi đã cung cấp chứng thực với giao thức kiểm tra chứng thực online OCSP (Online Certificate Status Protocol).
Cả hai phương pháp trên đều có thể bị thay thế bằng một chuẩn mới: XKMS. Tuy nhiên tiêu chuẩn này chưa được sử dụng rộng rãi.
Một chứng thực tiêu biểu gồm các thành phần sau:
Tiêu chuẩn chứng thực khóa công khai phổ biến nhất hiện này là X.509 do ITU-T ban hành. Tiêu chuẩn này được làm thích ứng với Internet bởi nhóm làm việc IETF PKIX working group.
Phân loại.
Công ty Verisign đưa ra mô hình gồm ba loại chứng thực điện tử: