Public Key Infrastructure – Phần 1: Tổng quan

Tôi đã đọc nhiều bài viết về PKI cả Tiếng Việt lẫn Tiếng Anh. Tuy nhiên có khá nhiều bài dễ gây hiểu lầm cho người học rằng PKI là công nghệ cao siêu nào đó. Trong bài viết này, tôi sẽ cố giải thích tường minh nhất về PKI.

Public Key là gì?

Trong ngành mật mã học, mục đích cuối cùng là mã hóa và giải mã dữ liệu. Bạn có thể hiểu nôm na password của các bạn đặt là Newpassword, nhưng khi được lưu hay gửi đi, nó sẽ được mã hóa thành những ký tự khác #$#jkhsg$9t1234!@thkf để người khác không đọc được. Ai đó muốn đọc được, cần phải được giải mã. Việc mã hóa/giải mã cần sự hỗ trợ của thuật toán.

Ở đây phát sinh thêm một khái niệm nữa gọi là Khóa (key). Khóa là một đoạn thông tin điều khiển hoạt động của thuật toán mật mã hóa. Một cách nôm na, để mã hóa Newpassword thành #$#jkhsg$9t1234!@thkf ta sẽ cần một thuật toán mã hóa. Để đọc được đoạn ký tự #$#jkhsg$9t1234!@thkf có nội dung thực là Newpassword ta cần một thuật toán giải mã. Khóa (key) là một phần của thuật toán. Cũng giống như chìa khóa là một phần ngôi nhà, nhưng có chìa khóa thì ta mới mở cửa được ngôi nhà.

Hình ảnh mô tả việc mã hóa

Thuật toán mã hóa được chia làm 2 nhóm: thuật toán khóa đối xứng và thuật toán khóa bất đối xứng.

  • Thuật toán khóa đối xứng (symmetric-key algorithms) là một lớp các thuật toán mật mã hóa trong đó các khóa dùng cho việc mật mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia). Mã khóa loại này không công khai.
  • Thuật toán khóa bất đối xứng (Asymmetric-key algorithms) còn có tên khác là thuật toán mật mã hóa khóa công khai. Khác với thuật toán khóa đối xứng, thuật toán mã hóa khóa công khai cho phép trao đổi thông tin mật mà không cần phải trao đổi các khóa chung bí mật trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa bí mật).

Vậy đến đây chúng ta đã làm rõ khóa công khai (public key) là một cái khóa được sử dụng trong thuật toán khóa bất đối xứng. Trong thực tế, các giao dịch điện tử hay các hệ thống phần mềm, đều sử dụng khóa công khai để nói chuyện với nhau. Đó là lý do cần xây dựng một cơ sở hạ tầng cho khóa công khai vốn có nhiều thành phần tham gia vào nó.

PKI là gì?

Public Key Infrastructure dịch ra Tiếng Việt có nghĩa là Hạ tầng khóa công khai. Đúng như tên gọi, PKI là cơ sở hạ tầng (cũng như điện, đường, trường trạm…) để tạo thuận lợi cho sự “tin tưởng” trong các giao dịch điện tử có sử dụng khóa công khai – cho dù đó có thể chỉ là một tin nhắn điện tử đơn giản hay một giao dịch tài chính. Cơ sở hạ tầng ở đây bao gồm phần cứng, phần mềm, chính sách, quy trình và thủ tục cần thiết để tạo, quản lý, phân phối, sử dụng, lưu trữ và thu hồi khóa công khai.

Làm thế nào để tạo ra có sự tin tưởng (trust) trong một thế giới điện toán? Bằng cách cách đảm bảo tính toàn vẹn (integrity), tính xác thực (authenticity), không từ chối (non-repudiation) và tính bảo mật (confidentiality).

  • Tính toàn vẹn – đảm bảo rằng các thông điệp không bị thay đổi;
  • Tính xác thực – đảm bảo rằng người gửi và người nhận tin chắc chắn về danh tính của nhau
  • Không từ chối – đảm bảo một bên không thể từ chối một hành động
  • Tính bảo mật – đảm bảo bí mật thông tin liên lạc giữa người gửi và người nhận.

Vì vậy, để PKI tạo điều kiện tin tưởng, nó cần đảm bảo tất cả những điều này.

PKI yêu cầu phải có ít nhất 4 thành phần để tạo tạo nên “sự tin tưởng”. Đó là: Công nghệ (Technology), Thi hành (Implementation), Tiêu chuẩn (Standard) và Chính sách (Policy). Mỗi thành phần này có một vai trò riêng đối với các bên.

  • Công nghệ : Nhà mật mã (Cryptographers)
  • Thi hành: Cơ quan chứng nhận (Certificate Authority), Nhà sản xuất HSM, nhà phát triển ứng dụng PKI…
  • Tiêu chuẩn: Các tổ chức đang phát triển tiêu chuẩn, như IETF, IEEE, và các hiệp hội ngành khác
  • Chính sách: Chính phủ và Cơ quan quản lý
Các thành phần cơ bản của PKI

Tất cả những thành phần này phải làm việc cùng nhau để thiết lập PKI là an toàn và đáng tin cậy. Lỗ hổng/lỗi hoặc điểm yếu của bất kỳ thành phần nào cũng sẽ ảnh hưởng đến PKI và làm cho nó không đáng tin cậy.

Cho đến nay, hầu hết PKI trên thế giới, thường sử dụng các khái niệm về PKC (Public Key Cryptography) trong thành phần Công nghệ. Mô hình phân cấp của Cơ quan chứng nhận (CA) trong thành phần triển khai. PKCS trong thành phần Tiêu chuẩn. Và luật anh ninh mạng do chính phủ các nước đặt ra trong thành phần chính sách.

Nếu bạn muốn thành lập PKI riêng cho doanh nghiệp của mình, trước tiên bạn cần xác định được 4 thành phần trên.

Leave a Comment