Tiêu chuẩn chứng thực khĩa cơng khai X.509:

Một phần của tài liệu Tìm hiểu được một số giải thuật chính như DES, ECB, CBC, RSA, MD5 (Trang 57 - 63)

Chương 3: Các Tiêu Chuẩn 3.1 Tiêu chuẩn mật mã khĩa cơng khai :

3.2.Tiêu chuẩn chứng thực khĩa cơng khai X.509:

- Được CCITT giới thiệu vào 1988 và đến năm1993 thì được sửa đỗi và được phát hành.

- X.509 là một server chứa cơ sở dữ liệu về thơng tin của các user. Thơng tin bao gồm sự ánh xạ từ tên user tới địa chỉ mạng cũng như các thuộc tính và thơng tin khác về user.

- X.509 là một tiêu chuẩn quan trọng bởi vì nĩ xác định 1 khung làm viêc (framework) cho các dịch vụ chứng thực bởi thư mục X.500 tới các user của nĩ và X.500 được sử dụng một cách rộng rãi. Thêm vào đĩ cấu trúc và các giao thức chứng thực trong X.509 cĩ thể được sử dụng trong các ngữ cảnh khác chẳng hạn nĩ được sử dụng trong PEM (Privary Enhanced Mail).

- X.509 dựa trên việc sử dụng hệ mật mã khĩa cơng khai và chữ ký số. Tiêu chuẩn khơng yêu cầu sử dụng giải thuật đặc tả nhưng giới thiệu RSA. Sơ đồ chữ ký số được giả thiết yêu cầu sử dụng hàm băm nhưng khơng yêu cầu đặc tả giải thuật băm.

3.2.1. Sự chứng thực:

- Điểm mấu chốt của sơ đồ X.509 là sự chứng thực khĩa cơng khai liên hệ với mỗi user. Sự chứng thực của các user này được giả thiết là được tạo bởi một vài CA (Certification Authority) tin cậy được đặt trong thư mục bởi CA hay bởi user. Bản thân server thư mục khơng cĩ trách nhiệm cho việc tạo các khĩa cơng khai hay cho hàm chứng thực nhưng nĩ gần như cung cấp vị trí cĩ thể truy xuất dễ dàng cho user để đưa ra sự chứng thực.

- Dạng thức tổng quát của sự chứng thực bao gồm các phần tử sau:

Algorithm identifier Period of validdity Subject’s public key Version Serial number algorithm parameters Issuer not before not after Subject algorithm parameters key Signature

. Version: chỉ ra các version thành cơng của dạng thức chứng thực, mặc định là vào 1988.

. Serial number: giá trị nguyên duy nhất trong CA mà được liên kết một cách khơng chắc tới sự chứng thực này.

. Algorithm identifier: giải thuật đã sử dụng để ký bản chứng thực cùng với bất kỳ các thơng số liên quan.

. Issuer: CA mà đã tạo và ký chứng thực này. . Period of validity: thời gian hợp lệ của chứng thực. . Subject: user mà tham khảo chứng thực này.

. Public key information: khĩa cơng khai của subject cộng với định danh của giải thuật mà khĩa này được sử dụng.

. Signature: bao gồm mã băm của các vùng khác được mã hĩa bằng khĩa bí mật của CA.

- Tiêu chuẩn sử dụng ý tưởng sau để xác định sự chứng thực: CA <<A>> = CA {V, SN, AI, CA, TA, A, AP } Trong đĩ:

. Y <<X>> = chứng thực của user X được làm rỏ bởi CA Y

. Y {I} = chữ ký của I bởi Y. Nĩ bao gồm I cùng với mã băm đã được mã hĩa kèm theo.

- CA ký bản chứng thực bằng khĩa bí mật của nĩ. Nếu khĩa cơng khai tương ứng được biết tới user thì user đĩ cĩ thể làm rỏ rằng chứng thực được ký bởi CA là hợp lệ. Sơ đồ chứng thực như sau:

3.2.2. Đưa ra chứng thực của user:

M || H E KRa M EKra[H(M)] H D So sánh KUa

- Sự chứng thực của user được tạo bởi CA cĩ các đặc điểm:

. Bất kỳ user nào truy xuất khĩa cơng khai của CA thì cĩ thể khơi phục khĩa cơng khai của user mà đã chứng thực.

. Khơng một ai khác hơn CA cĩ thể mơ phỏng sự chứng thực.

- Bởi vì sự chứng thực là khơng thể đốn trước nên chúng cĩ thể được đặt trong một thư mục mà khơng cần thiết phải cố gắng để bảo vệ chúng.

- Nếu tất cả user mơ tả tới cùng CA thì cĩ độ tin cậy chung của CA đĩ. Tất cả chứng thực của user cĩ thể được đặt trong thư mục cho tất cả các user truy xuất. Ngồi ra user cĩ thể truyền chứng thực của mình trực tiếp tới các user khác.

- Nếu các user ở trong một mạng truyền thơng lớn thì khơng thể áp dụng cho tất cả các user mơ tả cùng một CA bởi vì CA ký chứng thực, mỗi user tham gia phải cĩ một bản sao khĩa cơng khai của riêng CA để làm rỏ chữ ký. Khĩa cơng khai này phải được cung cấp tới mỗi user trong cách thức bảo mật tuyệt đối để cho mỗi user đảm bảo tính bí mật trong sự chứng thực liên quan.

- Giả sử A đã đưa ra một chứng thực từ CA X1 và B đã đưa ra một chứng thực từ CA X2. Nếu A khơng biết sự bảo mật khĩa cơng khai của X2 thì chứng thực của B khơng cĩ ích với A. A cĩ thể đọc chứng thực của B nhưng A khơng thể làm rỏ chữ ký. Tuy nhiên nếu hai CA cĩ sự trao đổi một cách bảo mật các khĩa cơng khai của chúng thì thủ tục sau sẽ cho phép A đưa ra khĩa cơng khai của B:

. A đưa ra từ thư mục sự chứng thực của X2 được ký bởi X1. Bởi vì A biết khĩa cơng khai của X1 nên A cĩ thể đưa ra khĩa cơng khai của X2 từ sự chứng thực của nĩ và làm rỏ nĩ bằng chữ ký trên bản chứng thực của X1.

. Sau đĩ A quay lại thư mục và đưa ra bản chứng thực của B được ký bởi X2.. Bởi vì giờ đây A đã cĩ một bản sao tin cậy về khĩa cơng khai của X2 nên A cĩ thể làm rỏ chữ ký và đưa ra khĩa cơng khai của B.

- A đã sử sdụng một dây chuyền các chứng thực để đưa ra khĩa cơng khai của B như sau: (adsbygoogle = window.adsbygoogle || []).push({});

X1 <<X2>> X2 <<B>>

Tương tự B cĩ thể đưa ra khĩa cơng khai của A: X2 <<X1>> X1 <<A>>

- Mở rộng dây chuyền với N phần tử:

Trong dây chuyền này mỗi cặp CA (Xi, Xi+1) cĩ thể tạo chứng thực cho mỗi cặp khác. - Tất cả sự chứng thực của CA bởi CA này cần xuất hiện trong thư mục và user cần biết làm sao để liên kết chúng theo một đường dẫn tới sự chứng thực khĩa cơng khai của user khác. X.509 đề nghị chúng được tổ chức theo thứ tự phân cấp. Ví dụ:

Đường nối các vịng trịn chỉ mối quan hệ phân cấp giữa các CA, các hộp vuơng chỉ ra các chứng thực đã duy trì trong thư mục cho mỗi CA. Mỗi CA X bao gồm hai kiểu chứng thực:

. Chứng thực về phía trước: chứng thực của X được tạo ra bởi CA khác.

. Chứng thực đảo ngược (quay lui): chứng thực của CA khác được tạo ra bởi X. Trong ví dụ này user A cĩ thể yêu cầu sự chứng thực sau từ thư mục để thiết lập một đường dẫn tới B:

X <<W>> W <<V>> V <<Y>> Y <<Z>> Z <<B>> Khi đĩ A cĩ thể biết được khĩa cơng khai của B.

Tương tự khi B cần biết khĩa cơng khai của A:

Z <<Y>> Y <<V>> V <<W>> W <<X>> X <<A>> 3.2.3. Hủy bỏ sự chứng thực: Y B A C Z X W V U U<<V> > V<<U> V <<Y>> Y Y <<Z>> Z V<<W> > W<<V> W<<X> > X<<W> X<<C> > X<<A>> Z<<B>>

- Vì mỗi chứng thực chỉ cĩ một thời gian hợp lệ nên một chứng thực mới sẽ được tạo ra đúng khi chứng thực cũ hết hạn. Ngồi ra, người ta mong muốn cĩ dịp để hủy bỏ chứng thực trước khi nĩ hết hạn vì một trong các lí do sau:

. Khĩa bí mật của user được giả thiết là đã được thỏa hiệp. . Một thời gian dài user khơng được chứng thực bởi CA này. . Khĩa bí mật của CA được giả thiết là đã được thỏa hiệp.

- Mỗi CA phải duy trì một danh sách bao gồm tất cả các chứng thực bị hủy nhưng chưa hết hạn tới các user và các CA khác. Danh sách này cũng nên được gởi nên thư mục. Mỗi danh sách hủy bỏ chứng thực đã gởi tới thư mục được ký nhận bởi issuer và bao gồm cả tên của issuer, ngày tháng danh sách đã được tạo và một mục từ (entry) cho mỗi chứng thực bị hủy. Mỗi entry bao gồm serial number của chứng thực và ngày tháng hủy bỏ chứng thực đĩ.

- Khi user nhận được chứng thực trong đoạn tin thì user phải xác định cĩ bị hủy chưa. User cĩ thể kiểm tra thư mục mỗi lần nhận được chứng thực. Để tránh sự trì hỗn và các chi phí cĩ thể liên quan đến thư mục tìm kiếm, thật là tốt nếu user duy trì một bộ nhớ (cache) cục bộ về các chứng thực và danh sách các chứng thực đã hủy.

3.2.4. Các thủ tục chứng thực:

X.509 bao gồm ba thủ tục chứng thực khác nhau cho các úng dụng khác nhau. Tất cả các thủ tục này đều sử dụng chữ ký khĩa cơng khai. Nĩ được giả thiết rằng hai người tham gia phải biết khĩa cơng khai lẫn nhau hoặc bằng cách đưa ra chứng thực lẫn nhau từ thư mục hoặc chứng thực được bao gồm trong đoạn tin khởi tạo từ mỗi phía.

- Chứng thực một phía (one-way): (h.a)

Đây là sự truyền thơng đơn thơng tin từ user A đến user B và thiết lập các việc sau: 1. Định danh của A và đoạn tin được tạo bởi A.

2. Đoạn tin dự kiến cho B.

3. Sự tường minh và nguồn gốc của đoạn tin.

Ở mức tối thiểi đoạn tin bao gồm: timestamp tA (gồm cĩ thời gian tạo và thời gian hết hạn), nonce rA, định danh của B, sgnData (chữ ký), Kab (khĩa phiên liên lạc được mã hĩa bằng khĩa cơng khai của B). Giá trị rA là duy nhất trong thời gian hợp lệ của đoạn tin, nĩ được sử dụng để chống lại các cuộc tấn cơng lặp lại và nĩ được lưu trữ ở B cho đến khi hết hạn, B sẽ khơng nhận bất kỳ đoạn tin mới nào cĩ rA tương tự.

Ngồi ba phần tử ở chứng thực một phía thì chứng thực hai phía cịn thiết lập thêm các phần tử sau:

Một phần của tài liệu Tìm hiểu được một số giải thuật chính như DES, ECB, CBC, RSA, MD5 (Trang 57 - 63)