PolicyMaker là một hệ thống quản lý tin cậy dựa vào chứng thực, phát triển ở phòng nghiên cứu AT&T. Hệ thống này cung cấp một nền tảng linh hoạt sử dụng một ngôn ngữ lập trình “an toàn” để thống nhất mô tả các chính sách, các chứng thực và các mối quan hệ tin cậy thay vì xử lý chúng một cách riêng biệt như trong các hệ thống khác. Trong hệ thống này, mỗi người dùng có thể đưa ra quyết định một cách linh hoạt: hoặc nội bộ hoặc thông qua một bên thứ ba. Hơn nữa, PolicyMaker tách từ cơ chế chính sách và do đó làm cho các ứng dụng không phụ thuộc vào nền tảng.
3.3.1.1. Kiến trúc hệ thống
Hệ thống PolicyMaker hoạt động như một công cụ truy vấn cơ sở dữ liệu, mà có thể tích hợp vào các ứng dụng thông qua một thư viện liên kết hoặc chạy như một dịch vụ độc lập. Nó cho phép các người dùng trong hệ thống xác định chính sách cục bộ và các chứng thực như nâng cao niềm tin của các truy vấn về các hành động. Tùy thuộc vào các chứng thực và chính sách, hệ thống có thể trả lại “yes” cho hành động được cho phép hoặc “no” cho hành động bị cấm. Tuy nhiên, trong một số trường hợp khi hành động không thể biện minh, hệ thống sẽ trả về thêm các hạn chế - một sự chấp nhận có điều kiện. Các người dùng dẫn xuất sau đó được coi là đáng tin cậy và được phép tiến hành chỉ dựa trên sự hài lòng của những yêu cầu bổ sung. Kiến trúc của hệ thống PolicyMaker được miêu tả trong hình 3.2.
Hình 3.2: Kiến trúc hệ thống PolicyMaker
3.3.1.2. Ngôn ngữ trong hệ thống PolicyMaker
Hệ thống PolicyMaker sử dụng ngôn ngữ riêng của nó để chỉ định các chính sách cục bộ, các chứng thực và các truy vấn. Chính sách và chứng thực được mô tả như là sự xác nhận với cú pháp sau:
Source ASSERTS AuthorityStruct WHERE Filter
Trong đó:
- Source xác định nguồn gốc của chính sách hoặc là có chính sách cục bộ hay khóa công khai của bên thứ ba.
- AuthorityStruct đại diện cho khóa công khai để người xác nhận áp dụng.
- Filter mô tả hành động được tin cậy bởi các khóa công khai tương ứng ở nguồn gốc của xác nhận.
Khi một người dùng muốn xác minh một hành động của người dùng khác, nó sẽ gửi một truy vấn đến PolicyMaker. Truy vấn xuất hiện trong các dạng sau:
key1, key2, …, key,n REQUESTS ActionString
Trong đó ActionString đại diện cho các thông điệp mô tả một hành động đáng tin cậy được yêu cầu bởi một chuỗi các khóa công khai.
3.3.1.3. Quá trình truy vấn
Chúng ta hãy xem điều khẳng định như là một đồ thị có hướng G, trong đó các nút là các nguồn sách hoặc các khóa, và các cạnh là các bộ lọc. Ví dụ, nếu chúng ta có một sự khẳng định mà có nguồn là s, quyền hạn là a và bộ lọc là f, chúng có thể được hiển thị bằng hai núts và a, và a hướng cạnh có nhãn f từ s đến a: s a. Bằng cách này, Một truy vấn có chứa các khóa k1, k2, .., kn và hành động t, quá trình tìm câu trả lời cho một truy vấn tin cậy chỉ là một quá trình tìm kiếm một đường đi trong đồ thị từ nút nguồn s là một chính sách cục bộ đến nút đích d có đầu vào là k1, k2, …, kn và chứa hành động t.
Chú ý rằng hệ thống PolicyMaker không xác minh tính chính xác của các thông tin chứng thực bằng cách kiểm tra chữ ký của người dùng. Bước này được xử lý bên ngoài hệ thống bằng cách áp dụng vào chúng trước khi đưa vào hệ thống. Tuy nhiên, điểm yếu này đã được giải quyết trong các hệ thống REFEREE, KeyNode và các phiên bản tiếp theo của hệ thống PolicyMaker.