Hạ tầng khóa công khai

Trong mật mã học, **hạ tầng khóa công khai** (, viết tắt *PKI*) là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số) cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin. Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa công khai/khóa bí mật. Các quá trình này thường được thực hiện bởi một phần mềm đặt tại trung tâm và các phần mềm phối hợp khác tại các địa điểm của người dùng. Khóa công khai thường được phân phối trong chứng thực khóa công khai.

Khái niệm **hạ tầng khóa công khai** (PKI) thường được dùng để chỉ toàn bộ hệ thống bao gồm nhà cung cấp chứng thực số (CA) cùng các cơ chế liên quan đồng thời với toàn bộ việc sử dụng các thuật toán mật mã hóa khóa công khai trong trao đổi thông tin. Tuy nhiên phần sau được bao gồm không hoàn toàn chính xác bởi vì các cơ chế trong PKI không nhất thiết sử dụng các thuật toán mã hóa khóa công khai.

## Mục tiêu và các chức năng
PKI cho phép những người tham gia xác thực lẫn nhau và sử dụng thông tin từ các chứng thực khóa công khai để mật mã hóa và giải mã thông tin trong quá trình trao đổi. Thông thường, PKI bao gồm phần mềm máy khách (client), phần mềm máy chủ (server), phần cứng (như thẻ thông minh) và các quy trình hoạt động liên quan. Người sử dụng cũng có thể ký các văn bản điện tử với khóa bí mật của mình và mọi người đều có thể kiểm tra với khóa công khai của người đó. PKI cho phép các giao dịch điện tử được diễn ra đảm bảo tính bí mật, toàn vẹn và xác thực lẫn nhau mà không cần phải trao đổi các thông tin mật từ trước.

## Mô hình tiêu biểu
Hầu hết các hệ thống PKI quy mô doanh nghiệp đều dựa trên các chuỗi chứng thực để xác thực các thực thể. Chứng thực của người dùng sẽ được một nhà cung cấp chứng thực số cấp, đến lượt nhà cung cấp này lại có chứng thực được một nhà cung cấp khác ở cấp cao hơn tạo ra... Hệ thống sẽ bao gồm nhiều máy tính thuộc nhiều tổ chức khác nhau với các gói phần mềm tương thích từ nhiều nguồn khác nhau. Vì vậy, các tiêu chuẩn là yếu tố rất quan trọng đối với hoạt động của các PKI. Hầu hết các tiêu chuẩn về PKI hiện tại được soạn thảo bởi nhóm làm việc PKIX của IETF.

Các hệ thống PKI doanh nghiệp thường được tổ chức theo mô hình danh bạ trong đó khóa công khai của mỗi người dùng được lưu trữ (bên trong các chứng thực số) kèm với các thông tin cá nhân (số điện thoại, email, địa chỉ, nơi làm việc...). Hiện nay, công nghệ danh bạ tiên tiến nhất là LDAP và định dạng chứng thực phổ biến nhất (X.509) cũng được phát triển từ mô hình tiền nhiệm của LDAP (X.500).

## Các lựa chọn khác
### Mạng lưới tín nhiệm
Một phương thức khác để nhận thực khóa công khai là mô hình mạng lưới tín nhiệm (web of trust). Trong mô hình này, mỗi người sử dụng tự ký chứng thực cho mình và các bên thứ 3 (không tham gia trực tiếp vào phiên giao dịch) kiểm chứng các chữ ký đó. Các ví dụ về mô hình này là GPG (The GNU Privacy Guard) và PGP (Pretty Good Privacy). Do PGP và các biến thể của nó được sử dụng rộng rãi trong email nên mô hình mạng lưới tín nhiệm thực hiện bởi PGP đang là phương thức thực hiện PKI 2 chiều phổ biến nhất (thời điểm năm 2004).

### Hạ tầng khóa công cộng đơn giản
Hạ tầng khóa công cộng đơn giản (SPKI) là một phương thức thực hiện PKI mới được phát triển để khắc phục sự phức tạp của giao thứcX.509 và sự tự phát của mô hình tín nhiệm PGP. SPKI gắn trực tiếp mỗi thực thể (người sử dụng/hệ thống) với một khóa sử dụng mô hình tín nhiệm nội bộ (local trust model). Mô hình này về cơ bản giống mô hình mạng lưới tín nhiệm của PGP có bổ sung thêm phần cấp phép.

### Nhà cung cấp chứng thực số tự động (Robot CA)
Các rô bốt CA là các chương trình máy tính tự động có khả năng kiểm tra và xác nhận một số khía cạnh của khóa công cộng. Các rô bốt này có thể làm giảm đáng kể những tấn công vào hệ thống, đặc biệt là các tấn công nhằm vào việc làm chệch hướng các luồng thông tin trên mạng. Các khía cạnh của khóa công cộng thường được kiểm tra là (a) khóa được công bố dưới nhận thức của người sở hữu địa chỉ email gắn với khóa (b) người sở hữu địa chỉ email đang có khóa bí mật (c) tình trạng sử dụng khóa.

## Lịch sử
Việc Diffie, Hellman, Rivest, Shamir, và Adleman công bố công trình nghiên cứu về trao đổi khóa an toàn và thuật toán mật mã hóa khóa công khai vào năm 1976 đã làm thay đổi hoàn toàn cách thức trao đổi thông tin mật. Cùng với sự phát triển của các hệ thống truyền thông điện tử tốc độ cao (Internet và các hệ thống trước nó), nhu cầu về trao đổi thông tin bí mật trở nên cấp thiết. Thêm vào đó một yêu cầu nữa phát sinh là việc xác định định dạng của những người tham gia vào quá trình thông tin. Vì vậy ý tưởng về việc gắn định dạng người dùng với chứng thực được bảo vệ bằng các kỹ thuật mật mã đã được phát triển một cách mạnh mẽ.

Nhiều giao thức sử dụng các kỹ thuật mật mã mới đã được phát triển và phân tích. Cùng với sự ra đời và phổ biến của World Wide Web, những nhu cầu về thông tin an toàn và nhận thực người sử dụng càng trở nên cấp thiết. Chỉ tính riêng các nhu cầu ứng dụng cho thương mại (như giao dịch điện tử hay truy cập những cơ sở dữ liệu bằng trình duyệt web) cũng đã đủ hấp dẫn các nhà phát triển lĩnh vực này. Taher ElGamal và các cộng sự tại Netscape đã phát triển giao thức SSL (https trong địa chỉ web) trong đó bao gồm thiết lập khóa, nhận thực máy chủ... Sau đó, các thiết chế PKI được tạo ra để phục vụ nhu cầu truyền thông an toàn.

Các nhà doanh nghiệp kỳ vọng vào một thị trường hứa hẹn mới đã thành lập những công ty hoặc dự án mới về PKI và bắt đầu vận động các chính phủ để hình thành nên khung pháp lý về lĩnh vực này. Một dự án của American Bar Association đã xuất bản một nghiên cứu tổng quát về những vấn đề pháp lý có thể nảy sinh khi vận hành PKI (xem thêm: các hướng dẫn chữ ký số ABA). Không lâu sau đó, một vài tiểu bang của Hoa Kỳ mà đi đầu là Utah (năm 1995) đã thông qua những dự luật và quy định đầu tiên. Các nhóm bảo vệ quyền lợi người tiêu dùng thì đặt ra các vấn đề về bảo vệ quyền riêng tư và các trách nhiệm pháp lý.
 
Tuy nhiên, các luật và quy định đã được thông qua lại không thống nhất trên thế giới. Thêm vào đó là những khó khăn về kỹ thuật và vận hành khiến cho việc thực hiện PKI khó khăn hơn rất nhiều so với kỳ vọng ban đầu.

Tại thời điểm đầu thế kỷ 21, người ta nhận ra rằng các kỹ thuật mật mã cũng như các quy trình/giao thức rất khó được thực hiện chính xác và các tiêu chuẩn hiện tại chưa đáp ứng được các yêu cầu đề ra.

Thị trường PKI thực sự đã tồn tại và phát triển nhưng không phải với quy mô đã được kỳ vọng từ những năm giữa của thập kỷ 1990. PKI chưa giải quyết được một số vấn đề mà nó được kỳ vọng. Những PKI thành công nhất tới nay là các phiên bản do các chính phủ thực hiện.

## Một số ứng dụng
Mục tiêu chính của PKI là cung cấp khóa công khai và xác định mối liên hệ giữa khóa và định dạng người dùng. Nhờ vậy người dùng có thể sử dụng trong một số ứng dụng như:
* Mã hóa Email hoặc xác thực người gửi Email (OpenPGP or S/MIME).
* Mã hóa hoặc nhận thực văn bản (Các tiêu chuẩn Chữ ký XML * hoặc mã hóa XML * khi văn bản được thể hiện dưới dạng XML).
* Xác thực người dùng ứng dụng (Đăng nhập bằng thẻ thông minh, nhận thực người dùng trong SSL).
* Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL): trao đổi khóa bằng khóa bất đối xứng, còn mã hóa bằng khóa đối xứng.

## Một số hệ thống PKI
Dưới đây là danh sách một số hệ thống PKI, trong đó một số nhà cung cấp chứng thực số hàng đầu (ví dụ VeriSign) không được liệt kê vì các phần mềm của họ không được công bố công khai.
* Hệ thống quản lý chứng thực Red Hat
* Computer Associates eTrust PKI
* Entrust
* Microsoft
* US Government External Certificate Authority (ECA)
* Nexus 
* OpenCA (Một mô hình PKI mã nguồn mở)
* RSA Security
* phpki
* GenCerti 
* ejbca
* newpki 
* Papyrus CA Software 
* pyCA
* IDX-PKI 
* EuropePKI (not available) 
* TinyCA 
* ElyCA 
* SimpleCA 
* SeguriData
* Safelayer Secure Communications

## Xem thêm
* Mạng lưới tín nhiệm
* Mật mã hóa khóa công khai
* Nhận thực khóa
* Danh sách chứng thực số bị thu hồi
* Microsoft CAPI
* FIPS 201 PIV (Kiểm tra định dạng cá nhân các nhân viên và nhà thầu của chính phủ)
* PKCS Các tiêu chuẩn mã hóa khóa công khai

## Tham khảo

## Liên kết ngoài
* PKI tutorial by Peter Gutmann
* PKIX workgroup
* Easing the PAIN  — a detailed explanation of PKI Privacy, Authentication, Integrity and Non-repudiation (PAIN)
* NIST PKI Program  — in which the National Institute of Standards and Technology (NIST) is attempting to develop a public key infrastructure 
* Mozilla Open Source PKI Projects
* NewPKI  — a PKI based on the OpenSSL low-level API

### Cung cấp chứng thực số tự động

#### [[OpenPGP]]
* cardboard.net llc "currently broken"
* Imperial Violet (Adam Langley) 
* Robot Certificate Authority, at JamesHoward.us
* Toehold (Kyle Hasselbacher) 
* signedtimestamp.org  
* PGP Corporation 
#### [[Secure Sockets Layer|SSL]]
* Ascertia PVT Ltd Free Certificates 
* CAcert.org
* CertifyID Certificates 
* Thawte.com 123 SSL Certificates
* Geotrust QuickSSL Certificates
* Godaddy Turbo SSL Certificates
* Comodo SSL Certificates
* DigiCert SSL Certificates
* VeriSign SSL Certificates