- Các hoạt động hủy bỏ
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.
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.
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.
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.
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.