Kỹ thuật phân phối khóa công khai

Một phần của tài liệu vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin (Trang 50)

Các hệ mã khóa công khai chúng ta đã biết yêu cầu mỗi người phải có một giá trị khóa công khai. Để phân phối các giá trịđó cho người dùng đảm bảo tính xác thực tránh được tấn công giữa dòng nhưđã chỉ ra trong chương 1 ta có thể sử dụng một trong các kỹ thuật dưới đây:

Phân phối điểm - điểm trên kênh truyền tin cậy. Khóa công khai của các bên thu được thông qua việc trao đổi trực tiếp với nhau trên một kênh tin cậy. Phương pháp này phù hợp với hệ thống không thường xuyên sử dụng hoặc hệ đóng và nhỏ.

Nhược điểm lớn nhất của phương pháp này là rất bất tiện khi cần một giá trị khóa để cho người dùng mới tham gia vào hệ thống. Lý do chính là tính không tựđộng của hệ thống. Hơn nữa để sử dụng phương pháp này phải có thêm chi phí để duy trì những kênh truyền tin cậy.

Truy nhập trực tiếp tới các tệp dùng chung (đăng ký khóa công khai). Sử dụng một CSDL công khai lưu trữ tên và khóa công khai được xác thực của mỗi người dùng hệ thống. Truy nhập từ xa qua những kênh truyền công cộng có thể tránh được những tấn công bị động, còn nếu muốn kháng lại những tấn công chủđộng phải dùng những kênh truyền tin cậy. Phương pháp này thường sử dụng cây xác thực để xác thực các giá trị công khai đó.

Sử dụng phục vụ uỷ quyền trực tuyến. Một phục vụ tin cậy cho phép các truy nhập tương tự như khi truy nhập tới tệp dùng chung, khi các bên có yêu cầu khóa công khai, nó sẽđược phục vụ gửi cho cộng với chữ ký của phục vụ trên khóa đó. Mỗi người sử dụng đều có thể kiểm thửđược chữ ký của phục vụ.

Trở ngại chính của phương pháp này là phục vụ luôn luôn phải trực tuyến (on- line), điều này có thể dẫn đến tình trạng thắt nút cổ chai. Ngoài ra phương pháp còn yêu cầu đường truyền thông nối giữa phục vụ với các bên, và giữa hai bên với nhau.

Sử dụng phục vụ uỷ quyền ngoại tuyến & chứng chỉ. Trong trường hợp này phục vụđược gọi là CA (uỷ quyền chứng chỉ). Mỗi cá thể U chỉ phải liên lạc với phục vụ một lần để đăng ký khóa công khai của mình và nhận khóa kiểm thử chữ ký của CA (để kiểm thử chứng chỉ của người khác). CA sẽ chứng nhận (công chứng) khóa công khai của U rồi ràng buộc giá trị này với xâu xác định danh tính của U, đó sẽ là nội dung chứng chỉ của U.

Sử dụng hệ xác thực ẩn các tham số hệ thống.Đó là các hệ dựa trên danh tính có sử dụng các khóa công khai xác thực ẩn thông qua việc thiết kế thuật toán, vì vậy mà mọi sự thay đổi các tham số hệ thống sẽ bị phát hiện.

Dưới đây chúng ta sẽ xem xét chi tiết các khái niệm được nhắc đến trong các kỹ thuật trên.

ƒ Cây xác thc

Cây xác thực là phương pháp tạo ra các giá trị công khai cùng với tính xác thực có thể kiểm chứng của chúng thông qua việc sử dụng cấu trúc cây kết hợp với hàm băm và tính xác thực của nút gốc. Những ứng dụng có thể sử dụng chúng gồm:

•xác thực khóa công khai (hoặc các chứng chỉ công khai) •dịch vụ tem thời gian tin cậy

•xác thực các tham số hợp lệ của người dùng

Để thuận tiện cho việc khảo sát chi tiết, trước tiên ta nhắc lại các khái niệm cơ bản của cây nhị phân.

Cây nhị phân là một cấu trúc gồm các đỉnh và các cạnh có hướng (cung). Các đỉnh của cây gồm có ba loại:

1. đỉnh gốc. Đỉnh có hai cung đi về phía nó, gọi là cung trái và cung phải.

2. đỉnh trong. Mỗi đỉnh trong có ba cung liên quan đến nó, hai cung trái và phải đi về phía nó và một cung đi ra khỏi nó.

3. lá. Mỗi đỉnh lá có một cung đi ra khỏi nó.

Hai đỉnh gắn với cung nào đó có quan hệ “cha - con”, đỉnh mà cung đó đi ra khỏi nó gọi là con (tương ứng với cung trái và phải là con trái và phải), ngược lại gọi là cha. Từ cấu trúc cây nhị phân xác định ở trên dễ dàng thấy rằng luôn luôn tồn tại duy nhất một đường đi từ một đỉnh trong (hoặc lá) bất kỳ tới gốc.

Hình 3.2: Cây nhị phân (3 đỉnh lá màu đen, 1 đỉnh trong)

Xây dng và s dng cây xác thc

Xét một cây nhị phân T có t lá. Gọi h là hàm băm không va chạm. Ta có thể sử dụng cây T để xác thực t giá trị công khai Y1, Y2, …, Yt, bằng cách xây dựng cây xác thực T* như sau.

1. Gán nhãn cho t lá các giá trị Yi khác nhau đó. 2. Trên mỗi cung đi ra từ Yi gán nhãn h(Yi).

3. Nếu cung trái và phải của mỗi đỉnh trong được gán nhãn tương ứng là h1, h2 thì đỉnh trong đó sẽđược gán nhãn là h(h1||h2).

4. Nếu các cung đi đến gốc được gán nhãn là u1, u2, thì gốc sẽđược gán nhãn là h(u1||u2).

Cung phải Cung phải Gốc

Nếu giả thiết rằng giá trị ứng với nhãn của gốc đã được xác thực khi đó t giá trị công khai Yi được xác thực như sau: với mỗi giá trị Yi, tồn tại đường đi duy nhất (đường xác thực) từ Yi đến gốc. Mỗi cung trên đường đi sẽ là cung trái hay cung phải của một đỉnh nào đó hoặc là gốc. Nếu e là cung trực tiếp đi về phía x, ta sẽ ghi lại nhãn trên cung đi về phía x mà không phải là e . Dãy các nhãn này viết theo đúng thứ tựđường đi sẽ xác thực giá trị Yi.

Hình 3.3: Cây xác thực.

ƒ Chng ch khóa công khai

Chứng chỉđược dùng như một phương tiện để phân phối hay chuyển các khóa công khai trên kênh truyền thông tin cậy, nó sẽ tạo ra các giá trị công khai của một thực thể sao cho các bên khác có thể kiểm tra tính xác thực và hợp lệ. Trong thực tế người ta thường hay sử dụng các chứng chỉ X.509.

Cấu trúc chứng chỉ

Nó gồm có hai phần: phần dữ liệu và phần chữ ký. Phần dữ liệu tối thiểu phải có khóa công khai và thông tin về danh tính xác định chủ thể dưới dạng bản rõ. Phần chữ ký là chữ ký của uỷ quyền xác nhận thông tin trong phần dữ liệu.

Tạo chứng chỉ

Trước khi tạo chứng chỉ khóa công khai cho chủ thể U nào đó, uỷ quyền nên xác định các độ đo thích hợp (mức độ an toàn cần thiết, những hoạt động thương mại), để kiểm thử danh tính của U và xác thực đúng là giá trị công khai đó là của U. Chúng ta phân biệt hai trường hợp sau:

h2 = h(Y3) Y3 h(Y2) h(Y1) Y2 Y1 h1 = h(h(Y1)||h(Y2)) R = h(h1 || h2)

− Trường hợp thứ nhất (uỷ quyền tạo khóa). Uỷ quyền sẽ tạo ra cặp khóa công khai, rồi cấp cho cá thể nào đó, cũng nhưđưa cả giá trịđó vào chứng chỉ của cá thể. Các thành viên sẽ thu được giá trị bí mật tương ứng qua kênh truyền an toàn và tin cậy sau khi chứng tỏđược mình. Tất cả các bên sau đó sử dụng chứng chỉ này chủ yếu uỷ thác sự tin cậy vào một danh tính đã được kiểm thử trước đó.

− Trường hợp thứ hai (thực thể tạo khóa). Các thành viên sẽ tự lấy khóa công khai của mình, rồi chuyển giá trịđó cho bên được uỷ quyền. Sau khi kiểm tra tính tin cậy của nguồn gốc dữ liệu, uỷ quyền sẽ tạo ra chứng chỉ khóa công khai như ta đã biết ở trên.

Lưu ý rằng trong trường hợp thứ hai, uỷ quyền sẽ yêu cầu các cá thể chứng tỏ sự hiểu biết về giá trị bí mật tương ứng, để ngăn ngừa những bên không có quyền.

Sử dụng và kiểm thử chứng chỉ

Toàn bộ quá trình mà bên V nào đó sử dụng chứng chỉđể xác nhận khóa công khai của bên U có thể mô tả qua các bước như sau:

1. V yêu cầu khóa công khai từ uỷ quyền. 2. V nhận được xâu xác định danh tính U.

3. yêu cầu (từ CSDL chứng chỉ công khai tập trung, hoặc trực tiếp từ U), chứng chỉ khóa công khai tương ứng với chủ thể U và chấp nhận xâu định danh trước (thực hiện trên kênh công cộng).

4. (a) Kiểm tra thời gian hiện tại có vi phạm khoảng thời gian hợp lệ trong chứng chỉ.

(b) Kiểm tra xem khóa công khai của CA còn hợp lệ hay không. (c) Kiểm thử chữ ký trên chứng chỉ của U, sử dụng khóa công khai của

CA.

5. Nếu tất cả các kiểm tra đều thành công thì V chấp nhận giá trị trong chứng chỉđúng là khóa công khai của U.

ƒ H da trên danh tính

Hệ này tương tự như hệ mã khóa công khai, nó cũng có những phép toán với khóa công khai và những biến đổi với khóa bí mật, chỉ khác là trong hệ mã công khai thì người dùng có giá trị khóa công khai tường minh, còn trong hệ dựa trên danh tính khóa công khai được thay bằng (hoặc có thể xác định được từ) những thông tin danh tính công khai đã có. Bất kỳ thông tin không thể chối được xác định duy nhất người sử dụng đều có thểđược dùng làm thông tin định danh.

Hệ mã khóa dựa trên danh tính (hay còn gọi là hệ dựa trên ID) là một hệ phi đối xứng trong đó thông tin xác định giá trị công khai của thực thể (tên duy nhất) đóng vai trò như khóa công khai, và được uỷ quyền T sử dụng để tính giá trị bí mật cho thực thể.

Sau khi tính được, T chuyển khóa bí mật cho thực thể qua một kênh an toàn, tin cậy. Giá trị bí mật của thực thể được tính toán từ những thông tin xác định danh tính, hoặc có thể từ những thông tin chỉ có T biết. Nhằm chống lại sự giả mạo và mạo nhận thực thể, nên chỉ có T mới có thể tạo ra những giá trị bí mật hợp lệ từ những thông tin xác định danh tính.

Trong một vài trường hợp, có thểđưa thêm vào dữ liệu công khai của hệ thống DU gắn với người dùng U trong thông tin định danh của anh ta IDU; những hệ thống như thế không còn là “thuần” dựa trên danh tính nữa, mặc dù không cần phải xác thực DU hay IDU một cách tường minh.

Chú ý (tính xác thực của hệ dựa trên ID): Hệ dựa trên ID khác với hệ mã khóa công khai ở một điểm nữa là tính xác thực của những dữ liệu công khai đặc tả người dùng không cần phải được kiểm thử một cách tường minh. Chính sự dư thừa vốn có của dữ liệu công khai người dùng trong hệ thống, cùng với việc sử dụng dữ liệu hệ thống công khai tin cậy, đã ngầm bảo vệ để chống lại sự giả mạo; nếu dữ liệu đó được sử dụng không đúng, việc mã hóa sẽ thất bại, cụ thể hơn: không kiểm thử

được chữ ký trong sơ đồ ký dựa trên ID, không xác thực được thực thể trong quá trình xác thực, không thể giải mã được bản mã trong sơ đồ mật mã, quá trình thỏa thuận khóa sẽ khiến các bên tạo ra các khóa khác nhau sau khi thực hiện giao thức. Nghiên cứu các hệ dựa trên ID cho phép xây dựng một hệ thống mô phỏng hệ thống thư điện tử lý tưởng. Trong thực tế người ta đã cài đặt những hệ thống dạng này trong đó có sử dụng các thẻđiện tử (chipcard).

ƒ Khóa công khai xác thc n

Thay vì sử dụng hệ thống khóa công khai ta có thể kết hợp sử dụng cùng với khóa công khai xác thực ẩn. Trong hệ này, các khóa công khai của người dùng phải được tái dựng lại chứ không chuyển chúng như trong hệ thống dựa trên chứng chỉ. Người ta thiết kế các hệ này sao cho:

1. Các giá trị công khai có thể dễ dàng tái dựng được (bởi bên khác) từ những dữ liệu công khai (chủ yếu thay cho chứng chỉ)

2. Dữ liệu công khai có thể bao gồm:

a. dữ liệu hệ thống gắn với uỷ quyền T;

b. danh tính của thực thể người dùng (tên hay địa chỉ chẳng hạn); c. dữ liệu bổ trợ thêm của mỗi cá thể.

3. Tính toàn vẹn của khóa công khai không được kiểm thử một cách trực tiếp, nhưng giá trị công khai “đúng” chỉ có thể thu được từ những dữ liệu đã được xác thực.

Đểđảm bảo tính xác thực của giá trị công khai có thể tái dựng được, khi thiết kế hệ thống phải cho phép:

1. thay đổi dữ liệu tái dựng khóa công khai hay danh tính người dùng sẽ không thu được giá trị công khai.

2. những kẻ tấn công (không biết giá trị bí mật của T) muốn tính được khóa bí mật từ những giá trị công khai của bất kỳ bên nào là không thể thực hiện được trong một thời gian chấp nhận được.

ƒ Đánh giá và so sánh các k thut trên

Các phương pháp đã khảo sát ở trên cơ bản khác nhau như sau:

1.Hệ thống dựa trên chứng chỉ lưu giữ khóa công khai ở dạng hiện, với hệ dựa trên danh tính thì giá trị này không ở dạng tường minh; còn trong hệ xác thực ẩn giá trị này có thể tái dựng. Khóa công khai trong hệ mã khóa công khai được thay bằng:

a. bộ ba (DA, IDA, PT) trong hệ dựa trên danh tính, trong đó IDA là danh tính của A, DA là các thông tin công khai bổ trợ (do T xác lập liên quan đến IDA và khóa bí mật của A), PT là khóa công khai (hay tham số hệ thống) của uỷ quyền T.

b. bộ ba (RA, IDA, PT) trong hệ xác thực ẩn. Khóa PA được tái dựng từ những tham số này, RAđóng vai trò tương tự như DAở trên.

2.Tính xác thực của khóa công khai có thể (hay phải) được kiểm thử rõ ràng trong hệ dựa trên chứng chỉ, nhưng không cần trong hệ dựa trên ID hay hệ xác thực ẩn.

3.Cơ quan uỷ quyền (TA) không cần biết khóa bí mật của người dùng trong hệ dựa trên chứng chỉ hay hệ xác thực ẩn với khóa tự xác thực, nhưng trong hệ dựa trên ID thì ngược lại TA cần phải biết giá trịđó.

4.Giống như hệ dựa trên ID, khóa công khai xác thực ẩn (của cả hai lớp) phụ thuộc vào những thông tin xác định danh tính thực thể, theo nghĩa này thì nó cũng được gọi là “dựa trên danh tính”. Tuy nhiên hệ dựa trên ID không cho phép phơi bày toàn bộ khóa công khai.

5.Có hai lớp khóa công khai xác thực ẩn khác với quan hệ giữa dữ liệu công khai và khóa bí mật như sau:

a. Lớp 1: khóa bí mật của thành viên là hàm của dữ liệu công khai, và do bên thứ ba tin cậy tính toán.

b. Lớp 2: dữ liệu công khai là hàm của khóa công khai, và khóa bí mật tương ứng chỉ do bên sở hữu tính toán.

6.Trong cả ba cách tiếp cận trên, có thể ở một giai đoạn nào đó bên thứ ba (có mức độ tin cậy nhất định) yêu cầu một đường truyền để chuyển sự tin cậy giữa những người dùng trước đó chưa từng gặp nhau, cũng như không có gì chung ngoài các tham số hệ thống (hoặc có thể là những hiểu biết về danh tính của bên kia).

Chú ý:

- So với hệ dựa trên chứng chỉ, khóa công khai xác thực ẩn có ưu điểm là không gian yêu cầu ít hơn (chứng chỉ cần lưu chữ ký); tiết kiệm chi phí tính toán (không phải kiểm thử chữ ký), và chi phí truyền thông (thông tin về danh tính có thể biết trước). Tuy nhiên nó lại yêu cầu tính toán trong quá trình tái dựng giá trị công khai; và các dữ liệu khác.

- Việc thu hồi (loại bỏ) các giá trị công khai được giải quyết trong sơ đồ dựa trên ID và hệ sử dụng khóa công khai xác thực ẩn bằng cách kết hợp các giá trịđó với khoảng thời gian khóa còn hợp lệ hoặc số seri.

Một phần của tài liệu vai trò của chìa khóa trong các giải pháp bảo mật và an toàn thông tin (Trang 50)