4 QUÁ TRÌNH XÂY DỰNG HỆ THỐNG
4.2.7.5. Yêu cầu và cấp thẻ xác nhận ngang hàng giữa các CA
Những đặc điểm của quá trình cấp thẻ xác nhận ngang hàng Thông điệp CCR được chấp nhận Y N Chuẩn bị các
thông tin cần thiết về CA cấp thẻ Hệ thống lưu trữ Lưu lại thông tin về CC vừa tạo Bắt đầu Tạo và gửi thông điệp CCR Nhận và xử lý các thông tin của CCR Tạo CC và thông điệp CCP Tạo CCP báo ltương ứng ỗi Gửi CCP về cho CA yêu cầu Nhận và xử lý các thông tin của CCP Kết thúc
Quá trình xây dựng hệ thống HẠ TẦNG KHOÁ CÔNG KHAI
62
Quá trình cấp thẻ xác nhận ngang hàng giữa các CA được thực hiện với nguyên tắc giống với việc cấp thẻ xác nhận của một đối tượng sử dụng. Như đã mô tả trong phần trước, một thẻ xác nhận được tạo ra giữa 2 CA chỉ có ý nghĩa theo một chiều. Khi muốn có được sự xác nhận theo hai chiều, mỗi CA phải cấp cho CA còn lại một thẻ xác nhận.
Điểm khác biệt rõ nét trong quá trình cấp thẻ xác nhận ngang hàng là các CA phải có khả
năng kiểm định chữ ký số của nhau, đồng thời, các CA muốn có thẻ xác nhận do CA khác cấp thì nó phải có được một mã xác thực do chính CA đó cấp. Mã xác thực này nhằm
đảm bảo tính toàn vẹn dữ liệu cũng như xác thực đối tượng. Trong tài liệu đặc tả, việc phân phát thông tin về mã xác thực thường được thực hiện qua các kênh truyền thông riêng, đây là biện pháp cần thiết để đảm bảo tính bí mật của quá trình khởi tạo. Tuy vậy, trong quá trình thực thi, ta sẽ không sử dụng phương thức này. Mã xác thực sẽ được truyền ngay cho các CA khi chúng liên lạc với nhau. Như vậy, trong quá trình khởi tạo liên lạc giữa các CA, ta sẽ truyền 3 loại thông tin cơ bản sau: Định danh của CA, thông tin về
khoá công khai của CA dưới dạng fingerprint, mã xác thực.
Việc truyền mã xác thực như trên sẽ không đảm bảo về tính an toàn của hệ thống nhưng nó làm đơn giản hoá quá trình tổ chức truyền thông trong hệ thống và vẫn đảm bảo thể
hiện được bản chất của chức năng cần thực hiện. Đây cũng chính là những mục tiêu
được đề ra ởđầu phần phân tích thiết kế chức năng này. Mặc dù vậy, việc truyền thông tin xác thực qua mạng là một kẽ hở lớn cho các đối tượng tấn công lợi dụng. Kẻ tấn công có thể đứng ra làm bên thứ 3 trung gian và thu được mọi thông tin truyền qua. Đây là hình thức tấn công theo kiểu man-in-the-middle. Ta có thể hạn chế khả năng này bằng cách sử dụng mã xác thực thông điệp (MAC). Tuy nhiên, đó chỉ là một đề xuất cho việc triển khai một hệ thống hoàn chỉnh. Trong phần lập trình thực thi ta sẽ không đề cập đến vấn đề này.
Mặt khác, đểđảm bảo việc xác thực đối tượng cho CA yêu cầu thẻ xác nhận, ta cũng cần có những dãy số ngẫu nhiên của cả hai đối tượng nhưđã mô tả. Theo nhưđặc tả, trong các thông điệp được gửi đi ở chức năng này, ta đều phải sử dụng một trường để chỉ số
hiệu của phiên giao dịch. Tuy nhiên, với sự có mặt của các số ngẫu nhiên thì việc sử
dụng trường này là không hiệu quả. Trong lập trình thực thi, ta sẽ không dùng trường này. Tính năng bảo mật sẽ không bị ảnh hưởng đáng kể và các thủ tục vẫn được thực hiện bình thường. Trong trường hợp có một số khó khăn, ta có thể sử dụng phương thức cấp phát thẻ cho các đối tượng sử dụng. Điều này có thể chấp nhận được vì ta chưa có nhiều chính sách về các mối quan hệ giữa các CA và mô hình danh sách tin cậy.
Giải pháp thực hiện quá trình cấp thẻ xác nhận ngang hàng
Nếu xét một cách toàn thể thì quá trình này được tính từ khi một CA gửi cho các CA khác những mã xác thực. Tuy nhiên, mã này sẽđược lưu lại và chỉđược sử dụng khi cần yêu cầu thẻ xác nhận. Quá trình hoạt động thực sự bắt đầu khi CA yêu cầu gửi một yêu cầu về thẻ xác nhận ngang hàng đến cho CA trả lời (chính là CA đã cấp mã xác thực). Các thủ tục lập trình sẽđược thực hiện theo các bước hoạt động của hai CA như sau:
1. Một CA sẽ tạo một thông điệp yêu cầu thẻ xác nhận ngang hàng với các thông tin
tin chính là một cấu trúc yêu cầu thẻ xác nhận. Hai trường phụ trợ cần lưu ý là mã xác thực và dãy số ngẫu nhiên.
2. CA này gửi thông điệp yêu cầu vừa tạo được đến cho CA trả lời.
3. CA trả lời sau khi nhận được thông điệp yêu cầu sẽ dựa trên những thông tin mà thông điệp này cung cấp cùng với những thông tin về chính sách đã được thiết lập
để quyết định có chấp nhận yêu cầu hay không. Nếu chấp nhận thì CA này sẽ
phải tạo một thẻ xác nhận ngang hàng cho đối tượng yêu cầu, sau đó, gửi thẻ này cùng với dãy số ngẫu nhiên nhận được và dãy số của chính mình trở về cho CA yêu cầu. CA này cũng có thể lưu lại thẻ xác nhận vừa tạo ra để phục vụ cho các mục đích sau này. Trong phạm vi chương trình, ta không thực hiện thao tác các thẻ xác nhận. Nếu không chấp nhận, thông điệp gửi về sẽ cho biết trạng thái và các thông tin gây lỗi của thông điệp yêu cầu.
4. CA này gửi thông điệp vừa tạo được về cho CA yêu cầu.
5. Khi CA yêu cầu nhận được thông điệp gửi về, nó sẽ kiểm tra dãy số ngẫu nhiên của mình, nếu đúng thì thực hiện tiếp việc phân tích. Nếu thông điệp báo lỗi thì nó sẽ bỏ qua nội dung còn lại. Trong trường hợp thành công, nó sẽ lưu lại thẻ xác nhận được cấp, tạo một thông điệp xác nhận có chứa dãy số ngẫu nhiên của CA trả lời và gửi đến cho CA đó. Thông điệp có vai trò như một biên bản báo nhận. 6. CA này gửi thông điệp đến cho CA trả lời.
7. CA trả lời nhận được thông điệp báo nhận từ CA yêu cầu, nó sẽ kiểm tra lại số
ngẫu nhiên của mình. Nếu đúng thì nó biết là CA yêu cầu đã nhận được thẻ. Trong trường hợp ngược lại, nó sẽ không lưu lại thẻ này mà đưa thẻ xác nhận vừa cấp vào danh sách những thẻ bị huỷ bỏ và công bố cho các đối tượng trong hệ thống. Quá trình kết thúc.
Lưu đồ thuật toán thực hiện chức năng
Hình 4-7: Lưu đồ thuật toán yêu cầu và cấp thẻ xác nhận ngang hàng
Thông điệp CCR
được chấp nhận Y
N Chuẩn bị các
thông tin cần thiết về CA cấp thẻ Hệ thống lưu trữ Lưu lại thông tin về CC vừa tạo Bắt đầu Tạo và gửi thông điệp CCR Nhthông tin cận và xửủa CCR lý các Tạo CC và thông điệp CCP Tạo CCP báo ltương ứng ỗi Gửi CCP về cho CA yêu cầu Nhận và xử lý các thông tin của CCP Kết thúc
Quá trình xây dựng hệ thống HẠ TẦNG KHOÁ CÔNG KHAI
64