Có nhiều mô hình hiện có cho việc mô tả hệ thống Agent, tuy nhiên đối với vấn đề an toàn bảo mật này ta chỉ dùng một mô hình đơn giản bao gồm chỉ hai thành phần chính: Agent và Agent Platform. Ở đây, một Agent gồm có mã nguồn (code) và thông tin trạng thái (state information) cần thiết để tiến hành một vài sự tính toán. Tính di động cho phép một Agent có thể di chuyển giữa các Agent Platform. Agent Platform cung cấp môi trường xử lý cho Agent hoạt động. Agent Platform mà ở đó một Agent được hình thành được xem như là Home Platform và thông thường Home Platform được xem như là môi trường tin cậy nhất cho một Agent mà nó tạo ra. Một hoặc nhiều
hơn các host có thể bao gồm một Agent Platform và một Agent Platform có thể hổ trợ nhiều môi trường xử lý nơi mà các Agent có thể tác động lẫn nhau.
Bốn loại đe dọa được định nghĩa: đe dọa xuất phát từ sự tấn công của một Agent đến một Agent Platform, một Agent Platform tấn công một Agent, một Agent tấn công một Agent khác trong một Agent Platform và những thực thể khác tấn công vào hệ thống Agent. Trong đó loại cuối cùng bao gồm các trường hợp một Agent tấn công một Agent trên một Agent Platform khác và một Agent Platform tấn công vào các Agent Platform khác. Những sự tấn công này tập trung trước hết vào khả năng liên lạc của các Agent Platform để lợi dụng những tiềm năng không được bảo vệ. Loại đe dọa cuối cùng cũng bao gồm nhiều sự tấn công theo tập quán chống lại hệ điều hành bên dưới của AgentPlatform.
2.10.1.1. Sự tấn công từ một Agent đến Agent Platform (Agent-to-Platform)
Agent-to-Platform mô tả sự nguy hiểm khi các Agent khai thác vấn đề bảo mậtyếu ớt của một Agent nền (Agent Platform) hoặc có một sự tấn công chống lại mộtAgent Platform. Vấn đề này bao gồm: mạo danh (masquerading), từ chối dịch vụ (denialof service) và truy xuất bất hợp pháp (unauthorized access).
2.10.1.2. Sự tấn công từ một Agent đến một Agent khác trong cùng một Platform (Agent to Agent)
Agent to Agent mô tả sự nguy hiểm khi các Agent khai thác vấn đề bảo mật yếu ớt của các Agent khác và tấn công chống lại các Agent khác. Vấn đề này bao gồm: Mạo danh (masquerading), tấn công từ chối dịch vụ (denial of service), truy xuất bất hợp pháp (unauthorized access), và từ chối quan hệ giao tiếp (repudiation).
2.10.1.3. Sự tấn công từ Platform đối với Agent (Platform-to-Agent)
Loại tấn công này diễn tả một bộ các mối đe dọa mà trong đó các Agent
Platform làm tổn thương đến sự an toàn của Agent. Phần này bao gồm các vấn đề: mạo danh (masquerading), tấn công từ chối dịch vụ (denial of service), nghe trộm
(eavesdropping),và sửa đổi (alteration).
2.10.1.4. Những thực thể khác tấn công vào hệ thống Agent Platform (Other-to- Agent Platform)
Sự tấn công này diễn tả một bộ các mối đe dọa mà trong đó các thực thể bên ngoài bao gồm các Agent và Agent Platform đe dọa đến sự bảo mật của Agent Platform. Các mối đe dọa là: Mạo danh (masquerading), từ chối dịch vụ (denial of service), truy xuất bất hợp pháp (unauthorized access), và sao chép và truyền lại (copy
and replay).
2.10.2. Những yêu cầu về an toàn, an ninh (Security Requirements)
Các người dùng trong hệ thống mạng máy tính có bốn yêu cầu bảo mật chính sau: sự cẩn mật (confidentiality), tính toàn vẹn (integrity), tính sẵn sàng (availability), và trách nhiệm giải trình (accountability). Các người dùng của Agent và Mobile Agent cũng có các yêu cầu bảo mật giống như vậy.
2.10.2.1. Sự cẩn mật (Confidentiality)
Mọi dữ liệu được chứa trên Agent Platform hay được mang theo bởi một Agent phải được giữ nguyên tính cẩn mật. Agent Frameworks phải bảo đảm rằng sự liên lạc bên trong hoặc ngoài Agent Platform phải giữ nguyên tính cẩn mật. Những kẻ nghe trộm có thể lấy thông tin về các hoạt động của một Agent không chỉ từ nội dung của thông điệp (message) được trao đổi mà còn từ các luồng tin nhắn (message flow) từ một Agent đến một hay nhiều Agent khác. Việc giám sát các luồng tin nhắn có thể suy luận ra được các thông tin có ích mà không cần phải truy xuất vào nội dụng các tin nhắn thực đó. Một Agent nghe trộm có hay một thực thể ngoài (external entity) có thể dùng các thông tin này để kiếm lợi bất chính. Các Agent có thể dò tìm ra ngôn ngữ kết nối Agent (Agent Communication Language-ACL) trong cuộc đàm thoại giao dịch giữa các Agent khác, từ đó có thể suy ra ý nghĩa xa hơn từ cuộc đàm thoại đó.
Các Agent di động (Mobile Agent) cũng muốn giữa kín vị trí của chúng. Các Mobile Agent có thể kết nối thông qua một proxy của nó nếu nó muốn che giấu sự hiện diện trên Agent Platform. Các Agent phải được phép quyết định nếu sự hiện diện của chúng được công khai một cách sẵn sàng thông qua sự chỉ dẫn của Agent
Platform, và Agent Platform có thể buộc Agent phải tuân theo các chính sách bảo mật khác nhau.
2.10.2.2. Tính toàn vẹn (Integrity)
Agent Platform phải bảo vệ các Agent không được phép sửa đổi mã (code), trạng thái (state) và dữ liệu (data) của Agent. Agent tự nó không thể ngăn cản các Agent Platform nguy hiểm can thiệp vào mã (code), trạng thái (state) hay dữ liệu (data), nhưng Agent có thể theo dõi được sự xâm hại này. Sự hoạt động an toàn của hệ thống Mobile Agent cũng phụ thuộc vào tính toàn vẹn của chính các Agent Platform cục bộ và từ xa.
Một host nguy hiểm có thể dễ dàng làm hại đến tính toàn vẹn của Mobile Agent trong khi nó đến một Agent Platform ở xa. Một Agent Platform nguy hiểm có thể làm thay đổi nhỏ trong luồng thực thi mã (code) của Agent, và làm thay đổi đến kết quả tính toán mà điều này thì rất khó phát hiện.
Một Agent Platform nguy hiểm cũng có thể gây trở ngại cho các Agent trong việc liên lạc trao đổi thông tin.
Các hệ thống điều khiển truy xuất phải được đưa ra để bảo vệ tính toàn
vẹn(integrity) của Agent Platform tránh các user truy cập bất hợp pháp. Các việc cố ý sửa đổi hay xâm hại đến Agent Platform bởi các user hợp pháp hay bất hợp pháp đều làm tăng khó khăn cho Mobile Agent có thể được phát hiện và loại bỏ.
2.10.2.3. Trách nhiệm giải trình (Accountability)
Mỗi xử lý (process), người dùng, hay Agent trên Agent Platform phải có trách nhiệm cho các hoạt động của mình. Để giữ trách nhiệm đó thì mỗi xử lý, người dùng, hay Agent phải có ID duy nhất, được xác thực, và được kiểm tra. Thí dụ, các hoạt động mà chúng phải có trách nhiệm bao gồm: truy xuất tới một đối tượng, như là một tập tin, hay làm một sự thay đổi thuộc quyền quản trị đến cơ cấu bảo mật của Agent Platform
Trách nhiệm giải trình (accountability) yêu cầu giữ một sổ nhật ký kiểm tra (audit log) của các sự kiện bảo mật có liên quan mà các sự kiện đó đã xảy ra, và lắng nghe mỗi sựkiện và Agent hay xử lý (process) chịu trách nhiệm cho sự kiện đó. Các sự kiện có liên quan đến bảo mật được định nghĩa trong chính sách bảo mật của Agent Platform, ví dụ như: tên user/Agent (user/Agent name), thời gian của sự kiện (time of event), loại của sự kiện (type of event) và thành công hay thất bại của sự kiện (success or failure of theevent).
Sổ theo dõi (audit log) phải được bảo vệ tránh việc truy xuất bất hợp pháp và sửa chữa. Kích thước của audit log cũng phải được chú ý đến tránh để bị mất khi thiết bị lưu trữ đầy. (Audit logs) giữ cho những người dùng (user) hay xử lý (process) chịu trách nhiệm trước các hành động của họ. Mobile Agent tạo sổ kiểm tra (audit) kéo dọc trên nhiều Agent Platform, với mỗi Platform nhật ký (logging) các sự kiện riêng, và sổ nhật ký sẽ khác nhau cho các sự kiện giống nhau. Trong một trường hợp nào đó một Agent phải truy xuất đến thông tin phân tán trên các Agent Platform khác nhau thì có khó khăn để dựng lại chuỗi nối tiếp của các sự kiện. Các Agent Platform mà nó giữ các sổ nhật ký phân tán (distributed audit log) thì phải duy trì được một khái niệm thuộc thời gian chung (globlal time) hoặc thứ tự của các sự kiện (ordering of events).
Sổ nhật ký ghi các hành động của Agent (audit log Agent actions) thì rất quan trọng xem như một trách nhiệm pháp lý. Sổ ghi nhật ký (audit log) cũng rất cần thiết và có giá trị khi AgentPlatform phải phục hồi (recover) từ một lỗi bảo mật, hay một phần mềm (software) hay phần cứng (hardware) bị lỗi. Audit log thì cũng cần thiết trong trường hợp các Agent chối bỏ nhiệm vụ cho các hành động của mình và cho trách nhiệm pháp lý sau này. Các cơ chế xác nhận đúng (Authentication mechanisms) cung cấp trách nhiệm cho các hành động của người dùng. Các Agent phải có thể xác thực đúng ID của chúng với các Agent Platform và với các Agent khác, trong khi đó
các Agent Platform phải xác thực đúng ID của chúng đến các Agent và các Agent Platform khác.
2.10.2.4. Tính sẵn sàng (Availability)
Agent Platform phải bảo đảm tính sẵn sàng cả về dữ liệu (data) và dịch vụ (service) cho các Agent cục bộ và Agent ở xa. Agent Platform phải có thể cung cấp các điều khiển đồng thời, hỗ trợ các truy xuất đồng thời, quản lý sự đình trệ (deadblock) ...
Dữ liệu chia sẽ cũng phải được sẵn sàng để sử dụng, sức chứa (capacity) cũng sẵn sàng cho các dịch vụ khi cần, và các chuẩn bị về tài nguyên hợp lý và các dịch vụ đúng lúc cũng phải được thực hiện. Agent Platform phải có thể phát hiện và phục hồi được từ các hỏng hóc của phần mềm và phần cứng. Trong khi Agent Platform có thể cung cấp một số khả năng chịu đựng lỗi và khả năng phục hồi thiếu (fault-tolerance and fault-recovery), thì các Agent phải được yêu cầu chịu trách nhiệm cho các fault- recovery của chính nó. Agent Platform phải có thể tiếp nhận được các yêu cầu của hàng trăm hay hàng ngàn các Agent đến hay Agent ở xa.
2.10.3. Biện pháp đối phó (Countermeasures)
Nhiều kỹ thuật bảo mật thường dùng trong các ứng dụng phân tán đương thời, cũng có ứng dụng trong phạm vi mô hình Mobile Agent. Ngoài ra, có một số mở rộng của kỹ thuật thông thường và kỹ thuật được phát minh (devised) đặc biệt cho việc điều khiển mã di động (mobile code) và nội dung có thể thực thi (executable content) mà có thể ứng dụng cho việc bảo mật của hệ thống Mobile Agent. Chúng ta xem lại các biện pháp đối phó và xem như các kỹ thuật đó có thể được dùng để bảo vệ Agent Platform.
2.10.3.1. Việc bảo vệ Agent Platform (Protecting the Agent Platform)
Một trong những vấn đề chính liên quan đến việc thực thi một hệ thống Agent là việc đảm bảo rằng các Agent không thể gây trở ngại đến một Agent khác hoặc với AgentPlatform. Một sự thăm dò chung để hoàn thiện điều này là thiết lập các phạm vi cô lập cho mỗi Agent và mỗi Agent Platform và quản lý tất cả các truy xuất trong phạm vi đó.
Những kỹ thuật được phát triển gần đây nhằm vào mã lệnh di chuyển (mobile code) và bảo mật trên Mobile Agent, được phát minh cho việc bảo vệ các Agent Platform, bao gồm:
Phần mềm dựa trên sự cô lập khuyết điểm (Software-Based Fault Isolation)
Sự trình diễn mã lệnh an toàn (Safe Code Interpretation) Đánh dấu mã lệnh (Signed Code)
Sự đánh giá trạng thái (State Appraisal) Lịch sử đường đi (Path Histories)
Sự kiểm chứng mang theo mã lệnh (Proof Carrying Code)
2.10.3.2. Việc bảo vệ các Agent (Protecting Agents)
Một số kỹ thuật để bảo vệ Agent bao gồm:
Tóm lược kết quả từng phần (Partial Result Encapsulation) Ghi lại hành trình chung (Mutual Itinerary Recording)
Ghi lại hành trình bằng việc tạo bảng sao và biểu quyết (Itinerary Recording with Replication and Voting)
Lần theo dấu vết của sự thực thi (Execution Tracing)
Sự phát sinh khóa môi trường (Environmental Key Generation) Xử lý chức năng mã hóa (Computing with Encrypted Functions) Mã lệnh khó hiểu (Obfuscated Code)
2.10.3.2.1. Tóm lược kết quả từng phần
Phương pháp này dùng để phát hiện sự can thiệp vào bởi các host nguy hiểm (malicious hosts), mà nó được tóm lược trong các kết quả của các hành động của Agent.Việc tóm lược này có thể được làm cho các mục đích khác với các cơ chế khác nhau,như là cung cấp sự cẩn mật dùng cho mã hó, hay cho tính toàn vẹn và trách nhiệm giải trình, dùng chữ ký số. Thông tin đã tóm lược phụ thuộc vào những gì trên các đích của Agent (goals of Agent). Có ba phương pháp để tóm lược các kết quả:
Cung cấp cho Agent một cách cho việc tóm lược thông tin, Dựa vào bảng tóm lược của Agent Platform,
Dựa vào một sản phẩm thứ ba (third-party) để lấy bảng kết quả. Phương pháp khác cho một Agent tóm lược kết quả thông tin là dùng
PartialResult Authentication Codes (PRAC), nó bằng mật mã, sử dụng khóa mật mã kín (secretkey cryptography).
Kỹ thuật này yêu cầu Agent và nơi khởi tạo (originator) duy trì hoặc tăng thêm một danh sách các khóa kín (a list of secret keys) được dùng trong sự tính toán
PRAC. Một khi một khóa (key) thì được ứng dụng để tóm lược thông tin thu thập được,Agent hủy nó (key) trước khi di chuyển đến Agent Platform kế tiếp để chắc chắn tính toàn vẹn về sau. Tính toàn vẹn về sau bảo đảm rằng nếu có một trong các server đến gặp nguy hiểm thì các kết quả tóm lược đó vẫn còn đúng. Tuy nhiên chỉ có nơi khởi tạo (originator) mới có thể kiểm tra những kết quả,vì không có ai khác giữ khóa kín.
2.10.3.2.2. Ghi lại hành trình chung
Một sự thay đổi đáng chú ý của “Path Hietories” là một sự sắp xếp có hệ thống tổng quát cho phép hành trình của Agent (Intierary of Agent) được ghi lại và theo dõi bởi Agent hợp tác khác, trong một sự sắp xếp hỗ trợ lẫn nhau. Khi di chuyển giữa các Agent Platform, một Agent chuyển thông tin của Agent Platform cũ, Agent Platform hiện hành và Agent Platform mới đến Agent hỗ trợ cùng cấp (ngang hàng) thông qua một kênh xác thực. Agent ngang hàng đó duy trì một bảng ghi (record) của hành trình và giữ lấy hành động thích hợp khi sự mâu thuẫn được thông báo. Một thông báo được đáp lại bởi Agent ngang hàng với nó, vì thế Agent tránh các Agent Plaform đã đi qua rồi. Điều này thì được xây dựng trên sự thừa nhận rằng chỉ có một vài Agent Platform là nguy hiểm, và thậm chí nếu một Agent gặp một Agent Platform mà Agent Platform này không thích có thể nó hợp tác với một Agent Platform nguy hiểm khác đã được đến bởi Agent ngang hàng.
Vì vậy, phân chia theo hoạt động và ứng dụng giữa hai Agent, chắc chắn hành vi nguy hiểm của Agent Platform đã được phát hiện. Sự sắp xếp theo hệ thống có thể được tổng quát hóa cho nhiều hơn hai Agent hợp tác. Kỹ thuật này có thể được đưa vào trong một ứng dụng thích hợp nào đó.
2.10.3.2.3. Ghi lại hành trình bằng việc tạo bảng sao và biểu quyết
Một Agent Platform mắc lỗi có thể đối xử giống như một Agent Platform nguy hiểm. Vì vậy, cho phép khả năng chịu đựng lỗi trong môi trường nên tính đến các ảnh hưởng của các Platform nguy hiểm. Như một kỹ thuật bảo đảm cho Mobile Agent đến đích an toàn là thông qua sự tái tạo và chọn (Replication and Voting). Ý kiến này thì tốt hơn một bảo sao của một Agent thực thi sự tính toán, nhiều bảng sao của Agent thì được dùng.
Mặc dù một Agent Platform nguy hiểm có thể làm hư hỏng một vài bản sao của Agent, đủ tái tạo để tránh đụng độ để hoàn thành trọn vẹn việc tính toán. Mỗi lần tính toán, Agent Platform bảo đảm rằng các Agent đến thì không bị ảnh hưởng, kèm theo các thông tin hợp lý.
2.10.3.2.4. Lần theo dấu vết của sự thực thi
Execution Tracing là một kỹ thuật phát hiện các sự sửa đổi bất hợp pháp củamột Agent trên một các ghi chép đúng các hành vi của Agent trong suốt quá trình thực thi của nó trên mỗi Agent Platform.
Kỹ thuật này yêu cầu mỗi Agent Platform bao gồm việc tạo ra và giữ lại một nhật ký hay dấu vết của các hoạt động thực thi bằng một Agent nội trú ở đó, và trình về (submit) một mật mã của các dấu vết trên sự kết thúc.
hợp các thông tin có liên quan với nhau giữa các thành phần liên quan, có thể bao gồm của một thành phần thứ ba được tin cậy (a trusted third party) để giữ lại các bảng tóm tắt dấu vết liên tiếp của toàn bộ hành trình của Agent. Nếu bất kỳ kết quả nghi ngờ nào xảy ra, thì các dấu vết riêng và các dấu vết trong bảng tóm tắt có thể được lấy lại và kiểm tra, và một host nguy hiểm được nhận ra.
2.10.3.2.5. Sự phát sinh khóa môi trường
Kỹ thuật này mô tả một sự sắp xếp có hệ thống cho phép một agent giữ hành động được định nghĩa trước khi điều kiện môi trường đúng.
Kỹ thuật này bảo đảm rằng Agent Platform hay một người theo dõi Agent không thể phát hiện các tin nhắn (message) xảy ra hay các phản ứng hành động bằng cách đọc trực tiếp trên code của Agent. Thủ tục này gần giống như “password” trong hệ điều hành.
2.10.3.2.6. Xử lý chức năng mã hóa
Mục đích của việc xử lý chức năng mã hóa là xác định một phương pháp nào cho mã di động (mobile code) có thể an toàn tính toán mật mã, như là một chữ ký số (digital signature), thậm chí thông qua mã đã được thực thi trong môi trường tính toán