Khi sử dụng khoá công khai của một thành viên từ xa, cần phải tìm và phê chuẩn một đƣờng dẫn chứng thực đầy đủ, đƣờng dẫn chứng thực này đi qua nhiều CA, từ khoá công khai này tới một CA gốc, khoá công khai của các CA trên đƣờng dẫn đƣợc lƣu giữ trong một khuôn dạng tin cậy. Để xây dựng các PKI lớn và có khả năng mở rộng, một trong các vấn đề chính cần giải quyết là làm cho việc tìm và phê chuẩn các đƣờng dẫn chứng thực trở nên thuận tiện. Có nghĩa là thiết lập các quy ƣớc cấu trúc quản lý, trong đó các CA chứng thực các CA khác nhƣ thế nào, các quy ƣớc cấu trúc này đôi khi đƣợc gọi là các mô hình tin cậy. Tuy nhiên, sự tin cậy không phải là câu hỏi duy nhất đƣợc đặt ra. Tiếp theo sau, chúng ta tìm hiểu các chuẩn bị cấu trúc chính, các chuẩn bị này đã đƣợc đề xuất và đƣợc sử dụng trong việc phát triển các PKI.
Về cấu trúc quan hệ của hệ thống CA có thể chia làm ba loại:
- Cấu trúc phân cấp tổng quát
- Cấu trúc phân cấp với liên kết bổ sung
- Cấu trúc phân cấp trên - xuống
Ở đây tôi chỉ trình bày chi tiết về cấu trúc CA dạng phân cấp tổng quát :
Để quy gọn vấn đề cơ bản về một dạng đơn giản nhất, chúng ta cần liên kết một cách có hệ thống các cặp khoá của các thành viên (nằm trong một cộng đồng lớn) thông qua các đƣờng dẫn ngắn có thể chấp nhận đƣợc, với mỗi đƣờng dẫn đi qua các CA tin cậy. Theo lý thuyết đồ thị toán học, thông qua cấu trúc cây hoặc phân cấp, chúng ta tìm ra một cách giải quyết hiệu quả và hệ thống đối với vấn đề này.
Hình 2.6 Mô hình CA theo cấu trúc hình cây Hình 2.6 Mô hình CA theo cấu trúc hình cây
41
Khi xem xét cấu trúc trong hình 2.7, các thực thể có tên bằng chữ hoa (ví dụ nhƣ
Z, X và Y) là các CA. Các thực thể có tên bằng chữ thƣờng (ví dụ nhƣ a, b và c) là các thực thể cuối, hoặc các thuê bao. Các mũi tên một chiều chỉ ra rằng thực thể nguồn đã phát hành một chứng chỉ, chứng chỉ này có chứa khoá công khai của thực thể đích; các mũi tên hai chiều chỉ ra rằng mỗi cặp CA phát hành các chứng chỉ cho nhau.
Theo cấu trúc này, chúng ta có thể dễ dàng xây dựng đƣợc một đƣờng dẫn chứng thực giữa các cặp thực thể cuối bất kỳ, không quan tâm đến việc mỗi thực thể cuối làm thế nào để xác định CA (hoặc nhiều CA) đƣợc chấp nhận nhƣ là một CA gốc (root CA). Lƣu ý rằng, mỗi thực thể cuối thiết lập một mối quan hệ gần gũi với một CA và quyết định chấp nhận nó nhƣ một CA gốc. Ví dụ, thực thể cuối a thiết lập một mối quan hệ gần gũi với CA A và chấp nhận khoá công khai của A nhƣ là khoá công khai gốc. Sau đó a có thể có đƣợc (một cách có hệ thống) một bản sao khoá công khai (đã đƣợc phê chuẩn) của các thực thể cuối khác trong cấu trúc, từ đó tồn tại một đƣờng dẫn chứng thực cho tất cả các thực thể cuối.
Ví dụ, để có thể có đƣợc một bản sao khoá công khai của c (bản sao khoá công khai này đã đƣợc phê chuẩn), a phải xử lý một đƣờng dẫn chứng thực của 3 chứng chỉ nhƣ sau: Z Z X X Y Y Q Q R R S S T T O O M M K K I I G G E E C C A A a a b b c c d d e e f f g g h h i i j j k k l l m m n n o o p p
Hình 2.7 Cấu trúc phân cấp tổng quát Hình 2.7 Cấu trúc phân cấp tổng quát
42
Chứng chỉ của A dành cho CA Q , chứng chỉ này đƣợc CA A phát hành (lƣu ý rằng a luôn tin tƣởng vào khoá công khai của A);
Chứng chỉ của A dành cho CA C , chứng chỉ này đƣợc CA Q phát hành; Chứng chỉ của A dành cho thực thể cuối c, chứng chỉ này đƣợc CA C phát hành.
Để a có đƣợc một bản sao khoá công khai của g cần sử dụng một đƣờng dẫn chứng thực gồm có 5 chứng chỉ. Để a có đƣợc một bản sao khoá công khai của m, cần sử dụng một đƣờng dẫn chứng thực gồm có 7 chứng chỉ.
Mô hình này thực sự hợp lý. ở đây có thể có nhiều hơn hai thực thể là mức dƣới (hoặc lệ thuộc) của một thực thể khác. Ví dụ, giả thiết rằng mọi CA có thể chứng thực tới 100 CA hoặc các thực thể cuối mức dƣới. Trong trƣờng hợp này, 4 mức CA (nhƣ đã đƣợc trình bày trong hình 2.7), có thể cho phép tới 100 triệu thực thể cuối phê chuẩn các khoá công khai của mỗi thực thể, với độ dài của các đƣờng dẫn chứng thực không bao giờ vƣợt quá 7 chứng chỉ. Nếu chúng ta thêm vào một mức các CA khác và cho trƣớc độ dài đƣờng dẫn tối đa là 9 chứng chỉ, thì có tới 10 tỷ thực thể cuối đƣợc hỗ trợ.
Mô hình này có thể cho chúng ta cách xây dựng các đƣờng dẫn chứng thực có độ dài ngắn hợp lý giữa một số lƣợng lớn các thực thể cuối, nhƣng có một vấn đề cần quan tâm đó là sự tin cậy. Khi sử dụng một đƣờng dẫn chứng thực cho trƣớc, ngƣời sử dụng chứng chỉ phải tin cậy mọi CA trên đƣờng dẫn và tiến hành các biện pháp phòng ngừa nhằm đảm bảo rằng không một thành viên nào khác có thể làm giả các chứng chỉ, có nghĩa là khoá riêng đƣợc sử dụng để ký chứng chỉ phải đƣợc bảo vệ chặt chẽ và không bị lộ.
Một vấn đề xuất hiện trong cấu trúc phân cấp này là nhiều đƣờng dẫn chứng thực mong muốn đƣợc đi qua các CA ở mức cao hơn, đặc biệt là CA mức cao nhất, đó là Z. Vì vậy, tất cả các thành viên trong hạ tầng cơ sở cần tin cậy Z. Nếu một đối tƣợng tấn công có đƣợc khoá riêng của Z (nhờ thoả hiệp) thì đối tƣợng tấn công này
43
có thể làm giả các chữ ký số của những ngƣời ký trong cấu trúc và làm cho ngƣời kiểm tra chữ ký số (ngƣời này sử dụng đƣờng dẫn chứng thực đi qua Z) tin rằng chữ ký giả là hợp lệ.
Đôi khi, một mô hình đƣợc coi là thích hợp với cấu trúc phân cấp, trong đó CA
Z là một cơ quan chứng thực quốc tế; mức tiếp theo là các cơ quan chứng thực quốc gia, ví dụ: X và Y là các cơ quan chứng thực quốc gia của Mỹ và Anh; mức CA thấp hơn tƣơng ứng với các tổ chức của quốc gia, các nhà kinh doanh, cơ quan và cộng đồng của các cá nhân. Các mối quan tâm về sự tin cậy trở nên rõ ràng hơn. Nếu cơ quan chứng thực của Mỹ bị thỏa hiệp (để lộ khoá), điều này cho phép một đối tƣợng tấn công:
Làm giả các chữ ký số của bất cứ ngƣời nào trên nƣớc Mỹ và làm cho mọi ngƣời trên thế giới tin rằng các chữ ký là hợp lệ;
Làm giả các chữ ký số của bất cứ ngƣời nào ở bên ngoài nƣớc Mỹ và làm cho mọi ngƣời trên nƣớc Mỹ tin rằng các chữ ký là hợp lệ.
Đối với Z, các hậu quả của việc lộ khoá rất nghiêm trọng. Một đối tƣợng tấn công có thể làm giả các chữ ký số của bất cứ ngƣời nào trên thế giới và làm cho mọi ngƣời ở các nƣớc khác tin rằng các chữ ký đều hợp lệ. (Nếu các quy tắc ràng buộc có thể giới hạn các đƣờng dẫn chứng thực trong nƣớc, không đƣợc mở rộng tới cơ quan chứng thực mức cao nhất, các đƣờng dẫn chứng thực trong một nƣớc không nên bị co ngắn lại). Do các mối quan tâm về độ tin cậy, việc sử dụng cấu trúc phân cấp này không đƣợc chấp nhận và thực thi trong một số các lĩnh vực kinh doanh xác định hoặc trong các cộng đồng khép kín khác.
Các nội dung của một chính sách chứng chỉ
Ở đây không có định nghĩa chuẩn về việc yêu cầu một chính sách chứng chỉ phải bao gồm những chủ đề gì. Việc thiết lập các chủ đề (mà một CA thấy cần phải đƣa vào và thoả mãn những ngƣời sử dụng chứng chỉ, nhƣ khả năng ứng dụng của các chứng chỉ đặc thù) rất đơn giản. Các chủ đề điển hình nhƣ sau:
44
(a)Các giới hạn về khả năng ứng dụng và cộng đồng (Community and applicability restrictions): CA có thể chỉ phát hành các chứng chỉ cho các thành viên trong một cộng đồng riêng biệt theo một chính sách định sẵn. Ví dụ, những ngƣời làm công của một tổ chức hoặc các thuê bao dịch vụ của một CA. Ngoài ra, các chứng chỉ (tuân theo một chính sách đặc thù) đƣợc dự định dùng cho một mục đích xác định.
(b)Chính sách xác thực và nhận dạng (Identification and authentication policy): Đây là các hoạt động mà CA cần tuân theo khi nhận dạng và xác thực các chủ thể của chứng chỉ.
(c)Chính sách quản lý khoá (Key Management policy): CA cần thực hiện các biện pháp để bảo vệ các khoá mật mã của CA và khoá của các thuê bao của CA. Ngƣời ta cũng mong muốn các thuê bao tự bảo vệ các khoá mật mã của mình.
(d)Chính sách hoạt động (Operational policy): Đây là các hoạt động mà CA cần tuân theo khi tiến hành các dịch vụ của mình, ví dụ, thƣờng xuyên phát hành các danh sách các chứng chỉ bị thu hồi (CRL) và các thủ tục kiểm toán.
(e)Chính sách an toàn cục bộ (Local security policy): Một CA, cơ quan đăng ký địa phƣơng (LRA), và/ hoặc thực thể cuối cần thực hiện các biện pháp để đảm bảo an toàn cho môi trƣờng của chúng. Trong đó, các biện pháp bảo vệ liên quan tới an toàn vật lý, an toàn cá nhân, bảo hành sản phẩm và an toàn truy nhập mạng.
(f) Các điều khoản pháp lý (Legal provisions): Đây là một công bố về các giới hạn trách nhiệm pháp lý (CA xác nhận công bố này), chẳng hạn, sử dụng các chứng chỉ theo một chính sách riêng biệt, cộng với các bác bỏ hợp pháp hoặc các điều khoản khác.
(g)Quản lý chính sách (Policy administration): Tên, các thông tin chi tiết liên quan đến cơ quan định nghĩa chính sách và các thông tin về các định nghĩa chính sách đƣợc duy trì và phát hành nhƣ thế nào.
45
Đây là một thành phần tuỳ chọn và có thể thực hiện một số chức năng từ CA. RA thông thƣờng liên quan đến quá trình đăng ký của thành phần End entity.
RA thông thƣờng liên quan đến quá trình đăng ký End Entity, bao gồm cả việc kiểm tra định danh của End Entity đăng ký với PKI. Tuy nhiên RA có thể thực hiện một số chức năng khác nhƣ:
- Phê chuẩn các thuộc tính của chủ thể yêu cầu chứng chỉ.
- Sinh cặp khoá bí mật/công khai.
- Tiến hành các tƣơng tác với CA nhƣ là thành phần trung gian của End Entity kể cả việc thông báo lộ khoá cũng nhƣ các yêu cầu khôi phục khoá.
Cho dù RA có thể thực hiện nhiều chức năng của CA nhƣng RA không bao giờ là ngƣời phát hành chứng chỉ khoá công khai.
Repository
Là cơ sở dữ liệu quản lý và lƣu trữ toàn bộ các chứng thực số đã đƣợc cấp cho tìm kiếm và truy lục. Cho phép truy xuất trực tuyến cho xác thực tính hợp lệ của một chứng thực số.
CSDL các thông tin liên quan đến PKI. Repository có thể là danh bạ X500 với truy nhập của khách hàng bằng LDAP. Vấn đề mấu chốt ở đây là các End Entity phải có một cơ chế nào đó để tìm kiếm đƣợc những chứng chỉ và những CRL cần thiết.
Hai vấn đề quan trọng cần đƣợc quan tâm nhiều nhất trong thiết lập các hệ thống khoá công khai trên phạm vi lớn là làm thế nào để tìm đƣợc một đƣờng dẫn chứng thực thích hợp và khi tìm đƣợc rồi thì phê chuẩn nó nhƣ thế nào. Các chức năng này phải đƣợc thiết lập trong tất cả các hệ thống sử dụng chứng chỉ (hoặc trong máy chủ hỗ trợ cho hệ thống này). Tốt nhất chúng ta nên tách riêng các thiết lập này, vì việc phát hiện đƣờng dẫn chứng thực không phải là một chức năng an toàn thiết yếu, việc phê chuẩn đƣờng dẫn chứng thực mới là chức năng an toàn thiết yếu.
46
Tìm đƣờng dẫn chứng thực
Chẳng hạn, chúng ta gọi ngƣời sử dụng từ xa là ngƣời sử dụng đích. Chúng ta cũng giả thiết tồn tại một đƣờng dẫn chứng thực nào đó.
Sự khó khăn của việc tìm đƣờng dẫn chứng thực đi từ đơn giản đến phức tạp, tuỳ thuộc vào cấu trúc quan hệ của các CA và vào các thông tin bổ sung thích hợp để tìm đƣờng dẫn.
Bây giờ ta bắt đầu với trƣờng hợp phức tạp nhất, trong đó không có thêm các thông tin nào khác, ngoài tên của ngƣời sử dụng đích và tên của các CA gốc (root CA). Điều này đƣợc minh hoạ trong hình 2.6.
Nếu tồn tại một đƣờng dẫn và đƣờng dẫn này có độ dài hợp lý, ta có thể tìm đƣợc đƣờng dẫn này nếu các dịch vụ tìm thông tin có hiệu lực. Trƣớc hết, ta cần lấy lại một chứng chỉ khoá công khai của ngƣời sử dụng đích (do một CA nào đó phát hành). Điều này không khó thực hiện vì với một chữ ký số, chứng chỉ dành cho khoá công khai của ngƣời sử dụng đích thƣờng đƣợc phân phối cùng với chữ ký; với mã hoá, có thể dễ dàng thu đƣợc chứng chỉ của ngƣời sử dụng đích, từ các cuộc truyền thông trƣớc với ngƣời sử dụng này, ta có đƣợc một bản sao chứng chỉ (đƣợc cất giữ) hoặc tìm kiếm trong một danh bạ riêng (từ danh bạ này, các chứng chỉ đƣợc phân phối cho ngƣời sử dụng). Từ đó nảy sinh hai yêu cầu đối với dịch vụ lấy lại thông tin:
47
(a) Từ tên của một CA, dịch vụ lấy lại các chứng chỉ (có chứa khoá công khai của CA này) do các CA khác phát hành, và/hoặc:
(b) Từ tên của một CA, dịch vụ lấy lại các chứng chỉ mà CA này đã phát hành cho các CA khác.
Nếu dịch vụ (a) có hiệu lực, chúng ta có thể tìm đƣợc một đƣờng dẫn chứng thực bằng cách lần ngƣợc từng bƣớc, từ chứng chỉ của ngƣời sử dụng đích tới một khoá gốc:
Bƣớc 1: Từ một chứng chỉ do CA X phát hành, xác định các CA đã phát hành chứng chỉ cho khoá công khai của X;
Bƣớc 2: Nếu một trong các CA (đã đƣợc xác định ở bƣớc 1) là cơ quan gốc thì có thể tìm đƣợc đƣờng dẫn theo yêu cầu, còn không, tiếp tục bƣớc 3;
Bƣớc 3: Tiếp tục tiến hành thủ tục của bƣớc 1 với mỗi CA đƣợc tìm thấy trong bƣớc 1, xem CA này nhƣ là CA X.
Cuối cùng, thủ tục này sẽ tìm đƣợc một đƣờng dẫn chứng thực nếu nó tồn tại.
Gốc 2 Gốc 2 Gốc 3 Gốc 3 Gốc 1 Gốc 1 Đích User Đích User Cơ quan chứng thực Cơ quan chứng thực Chứng chỉ Chứng chỉ Hình 2.6 Vấn đề tìm đường dẫn chứng thực tổng quát Hình 2.6 Vấn đề tìm đường dẫn chứng thực tổng quát
48
Nếu dịch vụ (b) có hiệu lực, có thể áp dụng một thủ tục tƣơng tự (nhƣng không đƣợc đảo ngƣợc các bƣớc), bắt đầu từ CA gốc, việc tìm kiếm kết thúc khi tìm đƣợc một đƣờng dẫn tới CA đã phát hành chứng chỉ cho ngƣời sử dụng đích.
Nếu cả hai dịch vụ (a) và (b) có hiệu lực, việc tìm kiếm càng linh hoạt hơn. Ví dụ, có thể bắt đầu từ việc tìm kiếm CA của ngƣời sử dụng đích và các CA gốc trung gian. Từ hai dịch vụ này, có nhiều cách để tìm kiếm các đƣờng dẫn chứng thực.
Có hợp lý không khi giả thiết cả hai dịch vụ (a) và (b) tồn tại? Giả sử ta có một dịch vụ danh bạ ở khắp nơi, sử dụng kỹ thuật danh bạ X.500 hoặc danh bạ khác, khi đó cả hai dịch vụ (a) và (b) có thể tồn tại. X.500 có một thuộc tính dự trữ dành cho một CA, thuộc tính này đƣợc gọi là chính sách chứng chỉ chéo. Thông qua một CA xác định, thuộc tính này nắm giữ một số forward certificate (các chứng chỉ đƣợc các CA khác phát hành cho CA này) cộng với một số reverse certificate (các chứng chỉ đƣợc CA này phát hành cho các CA khác). Vì vậy, nếu giá trị của các thuộc tính này đƣợc duy trì hợp lệ thì danh bạ X.500 cung cấp cả dịch vụ (a) và (b).
ở đây còn có các cách khác để cung cấp các dịch vụ này, ví dụ nhƣ có thể thiết lập các cơ sở dữ liệu Web để chứa các chứng chỉ cần thiết. Nhóm IETF PKIX đề