Các mô hình tổ chức hệ thống CA

Một phần của tài liệu Chữ ký số trong thẻ thông minh và ứng dụng xác thực (Trang 101)

Hệ thống PKI 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 PKI đểđị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 PKI tiêu biểu.

2.6.1.1. Kin trúc phân cp

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 thẻ xác thực 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 thẻ xác thực 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-8 Kiến trúc PKI phân cp

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 thẻ xác thực đều có thểđược kiểm chứng bằng cách kiểm tra đường dẫn của thẻ xác thực đó đến CA gốc. Ví dụ, khi A muốn kiểm chứng thẻ xác thực của B, thẻ này do CA4 cấp, do vậy A kiểm tra thẻ

xác thực của CA4; thẻ xác thực của CA4 lại do CA2 cung cấp nên A lại kiểm tra thẻ xác thực của CA2; thẻ xác thực 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. Ta có một số đánh giá về kiến trúc hệ

thống PKI phân cấp như sau:

Nhng ưu đim ca kiến trúc PKI phân cp

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.

Nhng khuyết đim ca kiến trúc PKI phân cp

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 thẻ xác thực đã 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.6.1.2. Kin trúc h thng PKI mng li

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 đó thẻ xác thực. Các đối tượng kiểm chứng một thẻ xác thực bằng cách kiểm tra quá trình xác thực với đích là CA đã phát hành thẻ xác thực đó.

Các CA sẽ xác thực ngang hàng bằng cách phát hành cho nhau những thẻ

xác thực, những cặp thẻ xác thực 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 thẻ xác thực 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 thẻ xác thực 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-9 Kiến trúc PKI mng lưới Ưu đim ca kiến trúc PKI mng 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 thẻ xác thực 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ử (adsbygoogle = window.adsbygoogle || []).push({});

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 thẻ xác thực.

Nhược đim ca mô hình PKI mng 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.

2.6.1.3. Kin trúc danh sách tin cy

Đâ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 thẻ xác thực 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 thẻ xác thực 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 thẻ xác thực, 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-10 Kiến trúc PKI danh sách tin cy

Ưu đim ca kiến trúc PKI danh sách tin cy

Đâ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 thẻ xác thực 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 thẻ

xác thực 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 thẻ xác thực chỉ được gửi tới các CA ở trong danh sách các CA

được tin cậy.

Nhược đim ca kiến trúc PKI danh sách tin cy

Người sử dụng có toàn quyền nội dung của file chứa thẻ xác thực 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 việc 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 có thể 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 thẻ xác thực của các CA mà mình tin cậy.

Cấu trúc thẻ xác thực không có nhiều hỗ trợ 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 thẻ xác thực ngang hàng. Do vậy, nó 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 thẻ xác thực 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 thẻ xác thực 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 thẻ xác thực.

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ả (adsbygoogle = window.adsbygoogle || []).push({});

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 để

Hiện nay, các máy chủ Web đều hỗ trợ kiến trúc PKI theo danh sách tin cậy, bất kể ai muốn phát triển các ứng dụng PKI 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 PKI.

2.6.2. Nhng chc năng bt buc trong qun lý PKI

Các hoạt động của hệ thống quản lý PKI đã được mô tả trong phần tổng quan về PKI. Trong phạm trù triển khai hệ thống PKI, ta cần tìm hiểu những chức năng mà hệ quản lý PKI bắt buộc phải có. Mặt khác, đểđề ra những phần công việc cần lập trình thực thi trong đồ án thực tập này, ta sẽ lấy những chức năng này làm cơ sởđể lập trình thực thi một hệ thống PKI (gồm CA và EE) với các chức năng tối thiểu. Những chức năng bắt buộc đối với hệ thống quản lý PKI gồm có:

2.6.2.1. Kh%i to CA gc

Khi một CA mới tham gia vào hệ thống PKI, nó phải tạo ra các thẻ xác thực theo kiểu tự ký (self-signed). Các thẻ xác thực này được ký với khóa riêng của CA gốc đó và trường mô tả cho kiểu thẻ xác thực là NewWithNew. Nghĩa là, thẻ xác thực được cấp lần đầu cho các đối tượng trong hệ thống. Kiểu thẻ xác thực này cũng được dùng khi CA muốn gửi thẻ xác thực đến cho một đối tượng mới tham gia hệ thống. Thông điệp chứa thẻ xác thực này được gửi đi sau khi CA thực hiện công việc cập nhật khóa công khai của mình.

Đồng thời với việc tạo và gửi đi các thẻ xác thực của mình đến cho các

đối tượng trong hệ thống, CA gốc cũng phải tạo danh sách các thẻ xác thực cần hủy bỏ (CRL) và lưu các thẻ xác thực đã gửi đi vào danh sách này. Đây chính là cơ sởđể CA hủy bỏ các khóa và thực hiện các phiên cập nhật khóa của mình.

2.6.2.2. Kh%i to các CA th cp

Nếu xét trên phương diện các giao thức quản lý, việc khởi tạo một CA thứ cấp cũng giống với việc khởi tạo một EE. Điểm khác biệt duy nhất là các CA thứ cấp cũng phải khởi tạo một CRL của mình.

2.6.2.3. Cp nht khóa ca CA gc

Các khóa của CA đều có thời gian hiệu lực nhất định nên chúng cần phải

được cập nhật theo định kỳ. Thời gian hiệu lực của khóa sẽ tùy thuộc vào các chính sách được thiết lập đối với hệ thống PKI. Các thẻ xác thực theo kiểu

NewWithNew, NewWithOld, và OldWithNew được CA phát hành và gửi đến cho các đối tượng sử dụng đã có mặt trong hệ thống. Những đối tượng này đang nắm giữ thẻ xác thực cũ của CA (kiểu OldWithOld), khi nhận được các thẻ xác thực mới gửi đến từ CA, có thể chuyển sang các thẻ xác thực mới theo kiểu

NewWithNew một cách an toàn. Ngoài ra, hoạt động này của CA gốc còn giúp cho các đối tượng sử dụng mới (những đối tượng sẽ nhận được thẻ xác thực kiểu

NewWithNew) có thể thu được thẻ xác thực kiểu OldWithOld một cách an toàn, điều này sẽ giúp cho đối tượng sử dụng mới có thể kiểm tra các dữ liệu đã có (dữ liệu có thể được kiểm tra bởi khóa công khai trong các thông điệp kiểu

OldWithOld)

2.6.2.4. To lp CRL

Trước khi phát hành và gửi đi các thẻ xác thực, một CA mới được khởi tạo phải tạo ra các CRL trống để chuẩn bị cho việc bổ sung các thẻ xác thực cần hủy bỏ. Các CRL này cũng sẽ được cập nhật thông tin định kỳ theo thời gian hiệu lực của các thẻ xác thực.

2.6.2.5. Yêu c"u v thông tin h thng PKI

Khi một đối tượng trong hệ thống PKI (CA, RA hoặc EE) muốn có được thông tin trạng thái của một CA nào đó, đối tượng này có thể gửi cho CA đo một yêu cầu về các thông tin trên. CA nhận được yêu cầu phải trả lời bằng việc cung cấp ít nhất là các thông tin đã được yêu cầu. Nếu có một số trường thông tin nào

đó không thể được đáp ứng thì phải có một thông điệp báo lỗi gửi về cho đối tượng yêu cầu.

2.6.2.6. Xác thc ngang hàng

Trong giao thức của việc xác thực ngang hàng, CA yêu cầu sẽ là CA có tên trong trường subject của thẻ xác thực (CA được cấp phát thẻ xác thực). Trong khi đó, CA trả lời sẽ chính là CA đã phát hành thẻ xác thực này. Quá trình xác thực ngang hàng là cần thiết khi các CA muốn trao đổi thông tin với nhau vì nó giúp các CA biết chắc mình đang trao đổi thông tin với đối tượng nào.

Một phần của tài liệu Chữ ký số trong thẻ thông minh và ứng dụng xác thực (Trang 101)