2.3. HẠ TẦNG MẬT MÃ KHÓA CÔNG KHAI (PKI)
2.3.6.1. Các mô hình triển khai hệ thống CA
Hệ thống CA khi đƣợc triển khai ở bất kỳ phạm vi nào đều cần có một kiến trúc phù hợp. Thông thƣờng, ta dựa trên đặc điểm tổ chức của hệ thống các dịch vụ sử dụng CA để định ra kiến trúc phù hợp. Sau đây, ta sẽ tìm hiểu những kiến trúc hệ thống CA tiêu biểu.
1/. Kiến trúc CA phân cấp
Trong kiến trúc này, các CA đều nằm dƣới một CA gốc. CA gốc cấp các chứng chỉ số cho những CA thứ cấp hay các EE. Đến lƣợt các CA này lại cấp các chứng chỉ số cho những CA ở mức thấp hơn hoặc cho các EE.
CA gèc CA 3 EE CA 2 EE EE (A) CA 5 EE EE EE EE EE EE (B) CA 4 Hình 2.21 : Kiến trúc CA phân cấp
Trong mô hình này, tất cả các đối tƣợng trong hệ thống đều phải biết khóa công khai của CA gốc. Tất cả các chứng chỉ số đều có thể đƣợc kiểm chứng bằng cách kiểm tra đƣờng dẫn của chứng chỉ số đó đến CA gốc. Ví dụ, khi A muốn kiểm chứng chứng chỉ số của B, thẻ này do CA4 cấp, do vậy A kiểm tra chứng chỉ số của CA4; chứng chỉ số của CA4 lại do CA2 cung cấp nên A lại kiểm tra chứng chỉ số của CA2; chứng chỉ số của CA2 là do CA gốc cung cấp. Vì A biết khóa công khai của CA gốc nên nó có thể kiểm chứng trực tiếp.
Nhƣ vậy, trong kiến trúc của hệ thống PKI này, tất cả các đối tƣợng đều dựa trên sự tin cậy đối với CA gốc duy nhất. Khóa công khai của CA gốc phải đƣợc phân phát cho các đối tƣợng đã đƣợc xác thực để đảm bảo sự tin cậy trong hệ thống. Sự tin cậy này đƣợc hình thành theo các cấp từ CA gốc đến các CA thứ cấp và đến các đối tƣợng sử dụng.
Một số đánh giá về kiến trúc hệ thống PKI phân cấp nhƣ sau:
* Những ƣu điểm của kiến trúc CA phân cấp
Cấu trúc hệ thống quản lý của hầu hết các tổ chức đều có dạng phân cấp. Các mối quan hệ trong mô hình phân cấp cũng khá giống với các quan hệ trong các tổ chức. Vì vậy, ta có thể coi các nhánh của quá trình xác thực đối tƣợng giống với các nhánh trong cấu trúc của tổ chức.
Kiến trúc phân cấp này cũng gần giống với hình thức phân cấp trong việc tổ chức thƣ mục. Do vậy, ta có thể dễ dàng làm quen hơn. Cách thức tìm ra một nhánh xác thực là theo một hƣớng nhất định, không có hiện tƣợng vòng lặp. Do vậy, quá trình xác thực đƣợc thực hiện đơn giản và nhanh chóng.
Tất cả các đối tƣợng sử dụng đều có nhánh xác thực hƣớng về CA gốc, do vậy, nêu một đối tƣợng sử dụng A cung cấp cho B thông tin về nhánh xác thực của mình thì B cũng có thể thực hiện xác thực theo hƣớng đó vì B cũng biết khóa công khai của CA gốc.
* Những khuyết điểm của kiến trúc CA phân cấp
Nếu ta áp dụng một mô hình phân cấp một cách cứng nhắc thì vẫn có một số nhƣợc điểm nhƣ sau:
Trên một phạm vi lớn, không thể chỉ có một CA duy nhất để đảm nhận tất cả các quá trình xác thực.
Các quan hệ kinh doanh, thƣơng mại không phải lúc nào cũng có dạng phân cấp. Khi khóa riêng của CA gốc bị tiết lộ thì toàn bộ hệ thống sẽ bị nguy hiểm. Nếu có khắc phục bằng cách thay cặp khóa mới thì thông tin về khóa công khai của CA gốc phải đƣợc truyền đến cho tất cả các đối tƣợng trong hệ thống. Điều này đòi hỏi thời gian và một lƣu lƣợng truyền thông rất lớn.
Trong các hệ thống ban đầu đƣợc triển khai, mô hình phân cấp đã đƣợc ƣu tiên sử dụng. Tuy nhiên, phiên bản 3.0 của các chứng chỉ số đã có những phần mở rộng hỗ trợ quá trình xác thực không theo mô hình phân cấp. Do vậy, mô hình phân cấp ngày càng ít đƣợc sử dụng.
2/. Kiến trúc hệ thống CA mạng lưới
Trong kiến trúc này, việc các CA thực hiện xác thực ngang hàng đã tạo nên một mạng lƣới các mối quan hệ tin cậy lẫn nhau giữa các CA ngang hàng. Các đối tƣợng nắm đƣợc khóa công khai của CA nằm “gần” mình nhất. Thông thƣờng, đây là CA cấp cho đối tƣợng đó chứng chỉ số. Các đối tƣợng kiểm chứng một chứng chỉ số bằng cách kiểm tra quá trình xác thực với đích là CA đã phát hành chứng chỉ số đó.
Các CA sẽ xác thực ngang hàng bằng cách phát hành cho nhau những chứng chỉ số, những cặp chứng chỉ số này đƣợc kết hợp và lƣu trong một cấu trúc dữ liệu có tên: CrossCertificatePair. Trong sơ đồ dƣới đây, A có thể xác thực B theo nhiều nhánh khác nhau. Theo nhánh ngắn nhất, B đƣợc CA4 cấp chứng chỉ số nên nó đƣợc xác thực bở CA4. CA4 đƣợc xác thực ngang hàng bởi CA5 và CA5 lại đƣợc xác thực ngang hàng bởi CA3. A đƣợc CA3 cấp phát chứng chỉ số và biết đƣợc khóa công khai của CA3 nên nó có thể xác thực trực tiếp với CA3.
EE EE CA 1 CA 2 CA 5 CA 4 EE EE CA gèc (CA3) EE (A) EE EE EE EE (B) EE EE Hình 2.22 : Kiến trúc CA mạng lƣới * Ƣu điểm của kiến trúc CA mạng lƣới
Đây là một kiến trúc linh động, nó thích hợp với các mối liên hệ và mối quan hệ tin cậy lẫn nhau trong thực tế của công việc kinh doanh.
Một đối tƣợng sử dụng ít nhất phải tin cậy CA cấp phát chứng chỉ số cho nó. Có thể coi đây là cơ sở để tạo nên tất cả các mối quan hệ tin tƣởng lẫn nhau.
Các CA có thể xa nhau trong mô hình tổ chức nhƣng những đối tƣợng sử dụng của nó lại làm việc cùng nhau với mức ƣu tiên cao có thể xác thực ngang hàng theo một cách thức có độ ƣu tiên cao. Độ ƣu tiên này chỉ đƣợc giới hạn trong phạm vi của các CA này.
Kiến trúc này cho phép các CA có thể xác thực ngang hàng một cách trực tiếp trong trƣờng hợp các đối tƣợng sử dụng của chúng liên lạc với nhau thƣờng xuyên để giảm tải lƣợng đƣờng truyền và thao tác xử lý.
Việc khôi phục hệ thống do khóa riêng của một CA bị tiết lộ sẽ chỉ gồm việc phân phát một cách an toàn khóa công khai mới của CA đến các đối tƣợng mà CA này cấp phát chứng chỉ số.
* Nhƣợc điểm của mô hình CA mạng lƣới
Do cấu trúc của mạng có thể rất phức tạp nên việc tìm kiếm các đối tƣợng rất khó khăn. Trong trƣờng hợp có nhiều đƣờng truyền đến một đối tƣợng khác thì bài toán tìm đƣờng đi ngắn nhất đến đối tƣợng đó có thể rất phức tạp.
Một đối tƣợng không thể đƣa ra một nhánh xác thực duy nhất mà có thể đảm bảo tất cả các đối tƣợng khác trong hệ thống có thể thực hiện đƣợc.
3/. Kiến trúc CA danh sách tin cậy
Đây là kiến trúc đƣợc áp dụng rộng rãi đối với dịch vụ Web. Trong đó, các trình duyệt và các máy chủ là những đối tƣợng sử dụng tiêu biểu nhất. Trong mô hình này, các trình duyệt đều lƣu một file riêng chứa các chứng chỉ số gốc của các CA đƣợc tin cậy. File này tồn tại ngay khi trình duyệt đƣợc cài đặt. Việc quản lý file này có thể đƣợc thực hiện bởi các cá nhân sử dụng trình duyệt. Các tổ chức cũng có thể cấp quyền cho việc tải hoặc quản lý các thông tin từ một máy chủ của tổ chức. Đối với mỗi file này, ngƣời sử dụng có thể bổ sung hoặc xóa bớt những chứng chỉ số khỏi danh sách. Tuy nhiên, khả năng xử lý cách nhánh xác thực của các ứng dụng hiện còn khá hạn chế.
Các trình duyệt có thể sử dụng các cặp khóa công khai/khóa riêng để ký, để kiểm chứng, giải mã hoặc mã hoá các thƣ điện tử theo chuẩn S/MIME. Với các chứng chỉ số, các trình duyệt cũng có thể thiết lập các phiên truyền thông an toàn SSL (Secure Sockets Layer). SSL là một giao thức xác thực và mã hoá ở tầng chuyển vận. Trong một phiên truyền thông SSL, ngƣời dùng có thể gửi đi một mẫu biểu hoặc nhận về các thông tin từ một máy chủ dƣới hình thức đƣợc mã hoá và xác thực. Mặt khác, các trình duyệt còn có thể kiểm chứng các chữ ký số đƣợc áp dụng đối với thông tin đƣợc truyền đi.
EE 4 4 4 5 5 (A)
(B) EE EE
EE EE
CA 1 CA 2 CA 3
EE EE
Hình 2.23 : Kiến trúc CA danh sách tin cậy
Nhƣ vậy, ta có thể coi kiến trúc CA danh sách tin cậy là một mô hình hƣớng trình duyệt.
*Ƣu điểm của kiến trúc CA danh sách tin cậy
Đây là kiến trúc đơn giản, quá trình truyền thông và xác thực theo một hƣớng duy nhất, hơn nữa, mô hình này có thể đƣợc triển khai khá dễ dàng.
Trong kiến trúc này này, các đối tƣợng sử dụng có toàn quyền quản lý file lƣu trữ danh sách chứng chỉ số của các CA mà mình tin cậy.
Kiến trúc này có thể làm việc rất tốt với giao thức quản lý trạng thái chứng chỉ số trực tiếp do các nhánh xác thực khá đơn giản. Hơn nữa, những yêu cầu về trạng thái chứng chỉ số chỉ đƣợc gửi tới các CA ở trong danh sách các CA đƣợc tin cậy.
*Nhƣợc điểm của kiến trúc CA danh sách tin cậy
Ngƣời sử dụng có toàn quyền nội dung của file chứa chứng chỉ số của các CA mà nó tin cậy. Do vậy việc quản lý danh sách các CA đƣợc tin cậy của một tổ chức là rất khó khăn.
Việc khởi tạo danh sách mặc địch các CA đƣợc tin cậy khi cài đặt một trình duyệt sẽ dẫn đến khó đảm bảo tính xác thực trong quá trình khởi tạo thông tin về khóa công khai của các CA này. Đây là một kẽ hở để các đối tƣợng tấn công lợi dụng.
Không phải tất cả những ngƣời sử dụng đều có khả năng quản lý tốt một file chứa quá nhiều chứng chỉ số của các CA mà mình tin cậy.
Cấu trúc chứng chỉ số không hỗ trợ nhiều cho việc tìm ra các nhánh xác thực. Không có những hỗ trợ trực tiếp đối với các cặp chứng chỉ số ngang hàng. Do vậy, hạn chế khả năng của CA trong quản lý sự tin cậy của mình đối với các CA khác.
Các chính sách đối với chứng chỉ số không đƣợc hỗ trợ, do vậy, cần phải có một CA quản lý một số CA khác để có thể áp dụng các chính sách chứng chỉ số và các mức đảm bảo. Điều này dẫn đến việc tăng số CA đƣợc tin cậy trong file của mỗi đối tƣợng sử dụng.
Hiện tại các trình duyệt không hề hỗ trợ tính năng tự động lấy thông tin trạng thái hoặc hủy bỏ các chứng chỉ số.
Tóm lại, ƣu điểm đáng kể nhất của kiến trúc danh sách tin cậy là khả năng hỗ trợ đối với định dạng dữ liệu S/MIME và các phiên truyền thông SSL đối với các trình duyệt hiện nay. Dịch vụ World Wide Web và các trình duyệt là những đối tƣợng cơ bản trong công nghệ mạng hiện nay, nó cũng là nền tảng để phát triển các trình ứng dụng phân tán.
Hiện nay, các máy chủ Web đều hỗ trợ kiến trúc CA theo danh sách tin cậy, bất kể ai muốn phát triển các ứng dụng CA cho một lƣợng lớn đối tƣợng sử dụng đều phải ý thức đƣợc điều này. Hơn nữa, công nghệ Web hiện đang là một hƣớng lựa chọn phổ biến cho các ứng dụng trong phạm vi các mạng cục bộ. Nhƣ vậy, với sự hiện diện của các trình duyệt ở khắp mọi nơi và một vị trí quan trọng của chúng để xây dựng các ứng dụng mạng, đây thực sự là một kiến trúc quan trọng trong số các kiến trúc đƣợc áp dụng để xây dựng các hệ thống CA.