Các ứng dụng phải có khả năng xử lý phân tán: Các ứng dụng ngày nay cần phải có khả năng trao đổi, liên lạc với các thành phần xử lý khác được phân bố trên nhiều máy có cấu hình khác nh
Trang 1ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 3LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc ai công
bố trong bất kỳ công trình nào khác
Tác giả luận văn
Nguyễn Thị Hải An
Trang 4Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN
Er ror! Bookmark not defined
MỤC LỤC 4
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 7
DANH MỤC CÁC HÌNH 8
MỞ ĐẦU 9
CHƯƠNG 1 : TỔNG QUAN VỀ MOBILE AGENT 10
1.1 KHÁI NIỆM VỀ MOBILE AGENT 10
1.1.1 Giới thiệu chung 10
1.1.2 Mobile Agent là gì 10
1.1.3 Phát triển từ các mô hình ứng dụng phân tán 11
1.1.4 Mục đích thiết kế mô hình Mobile Agent 14
1.2 CÁC ĐẶC TRƯNG KỸ THUẬT CỦA MOBILE AGENT 16
1.2.1 Kiến trúc hệ thống Mobile Agent 16
1.2.2 Các đặc tính của Mobile Agent 18
1.2.3 Các thành phần của một Mobile Agent 19
1.2.4 Các nền tàng một Mobile Agent 21
1.3 NGUYÊN LÝ HOẠT ĐỘNG CỦA MOBILE AGENT 22
1.3.1 Kỹ thuật pull code 22
1.3.2 Kỹ thuật push code 22
1.4 MOBILE AGENT TRONG THIẾT KẾ ỨNG DỤNG PHÂN TÁN 24
1.4.1 Vòng đời của một Mobile Agent 24
1.4.2 Tạo Agent 25
1.4.3 Huỷ Agent 26
1.4.4 Di chuyển Agent 26
1.4.5 Liên lạc 29
1.5 CÔNG CỤ PHÁT TRIỂN MOBILE AGENT 30
1.5.1 Java – ngôn ngữ hiệu quả dùng để phát triển tác tử 30
1.5.2 Công cụ phát triển Aglets Workbench 31
1.6 LỢI ÍCH MOBILE AGENT 32
1.6.1 Giảm lưu lượng tải trên mạng 33
1.6.2 Khắc phục độ trễ mạng 33
1.6.3 Đóng gói các giao thức 33
1.6.4 Thi hành một cách không đồng bộ và tự trị 33
1.6.5 Thích ứng nhanh 34
1.6.6 Khắc phục tình trạng không đồng nhất 34
1.6.7 Mạnh mẽ và có khả năng tự sửa lỗi 34
1.7 MỘT SỐ ỨNG DỤNG MOBILE AGENT 34
Trang 51.7.1 Thu thập thông tin phân tán 34
1.7.2 Tìm kiếm và lọc dữ liệu 35
1.7.3 Kiểm tra dữ liệu ( Monitoring) 35
1.7.4 Đàm phán 35
1.7.5 Đặt hàng 36
1.7.6 Giải trí 36
1.7.7 Thương mại điện tử 36
1.7.8 Hỗ trợ các thiết bị di động 36
Kết luận chương: 37
CHƯƠNG 2: NHỮNG VẤN ĐỀ BẢO MẬT TRONG MOBILE AGENT 38
2.1 Đặt vấn đề 38
2.2 Các phương thức tấn công trong mobile agent 38
2.2.1 Các dạng tấn công tiêu cực 38
2.2.2 Các dạng tấn công tích cực 39
2.3 Những trường hợp có thể gây lỗi 42
2.3.1 Sự bảo vệ agent 42
2.3.2 Sự bảo vệ máy phục vụ 42
2.3.3 Sự bảo vệ hệ thống mạng 43
2.4 Các dịch vụ an toàn 43
2.4.1 Xác nhận 43
2.4.2 Tính toàn vẹn 43
2.4.3 Bảo mật 44
2.4.4 Cấp phép 44
2.4.5 Không chối bỏ 44
2.4.6 Kiểm toán 44
2.5 Các vấn đề liên quan đến sự bảo vệ agent 44
2.5.1 Sự thi hành agent 45
2.5.2 Các thông tin agent cần bảo mật đối với server 45
2.5.3 Các thông tin của agent cần được bảo mật với các agent khác 45
2.6 Các vấn đề liên quan đến sự bảo vệ máy chủ 46
2.6.1 Agent giả dạng như là một người dùng được tin tưởng 46
2.6.2 Agent bị can thiệp, xâm phạm 46
2.6.3 Agent vượt quá quyền hạn của nó và làm hại đến server 47
2.7 Mô hình an toàn của Aglet 47
2.7.1 Các chủ sở hữu 47
2.7.2 Sự cấp phép 49
2.7.3 Các biện pháp bảo vệ 50
2.7.4 Chính sách an toàn và thi hành 50
2.8 Các giải pháp an toàn trong Internet Banking 52
2.8.1 Xây dựng hệ thống xác thực mạnh 52
Trang 6Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.8.2 Cơ bản về tường lửa 55
2.8.3 Xây dựng hệ thống phòng chống xâm nhập 60
2.8.4 Xây dựng lửa ứng dụng web (Web Application Firewall WAF) 64
2.8.5 Triển khai hệ thống phòng chống mã độc 66
2.8.6 Triển khai chữ ký số và chứng thực số 70
2.8.7 Mã hóa thông tin 71
2.8.8 Triển khai các phương pháp bảo vệ dữ liệu ở người dùng cuối 73
2.8.9 Triển khai mạng riêng ảo VPN 75
Kết luận chương 76
CHƯƠNG 3 : THƯƠNG MẠI ĐIỆN TỬ VÀ ỨNG DỤNG MOBILE AGENT TRONG THANH TOÁN ĐIỆN TỬ 78
3.1 Thanh toán điện tử và các mô hình thanh toán điện tử 78
3.1.1 Giới thiệu về thanh toán và các vấn đề đặt ra đối với thanh toán điện tử 78
3.1.2 Các hệ thống thanh toán trực tuyến 78
3.2 Mobile agent trong thương mại điện tử 79
3.2.1 Bảo mật trong giao dịch mua bán trực tuyến 79
3.2.2 Bảo mật trong giao dịch đấu giá trực tuyến 83
3.3 Bảo mật trong giao dịch thanh toán qua mạng 85
3.3.1 Một mô hình thanh toán điện tử dựa trên Agent - The Secure Agent Fabrication, Evolution & Roaming (SAFER) 86
3.3.2 Hệ thống thanh toán hóa đơn nhà hàng dựa trên Mobile Agent 86
3.3.3 Giao thức thanh toán sử dụng Mobile Agent 86
3.4 Sử dụng Aglet cài đặt ví dụ thanh toán điện tử 87
Kết luận chương 89
KẾT LUẬN 91
TÀI LIỆU THAM KHẢO 93
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Trang 8Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC HÌNH
Số hiệu
Hình 1.13 Thông báo kiểu one - way 30
Hình 3.7 b Giao diện : Nhập mã bảo mật cho giao dịch thanh toán 68 Hình 3.8 Giao diện : Thông báo Giao dịch thanh toán thành công 69
Trang 9MỞ ĐẦU
Sự phát triển nhanh chóng của các kỹ thuật tiên tiến về máy tính, đặc biệt là các giải pháp mạng, cùng với sự bùng nổ mạnh mẽ các dịch vụ và nguồn thông tin trên mạng đã làm gia tăng số người sử dụng Internet đến con số hàng trăm triệu người Dựa vào nền tảng đó, lĩnh vực thương mại điện tử đã phát triển nhanh chóng để phục vụ tốt hơn cho người mua và người bán trong giao dịch hàng hóa
Tuy nhiên, các giao dịch này cần được bảo mật để đảm bảo lợi ích cho người bán hàng và người mua hàng Việc bảo mật này nhằm ngăn chặn bên thứ 3 tác động vào giao dịch và đảm bảo giao dịch được hoàn thành một cách chính xác Từ đó tránh được thiệt hại về kinh tế cho họ
Để hiểu thêm về vấn đề này, em chọn đề tài “Bảo mật trong mobile agent và ứng dụng trong các giao dịch điện tử_ Mobile agent security and electronic transactions applications” nhằm nắm được những khái niệm cơ bản về mobile agent
đồng thời đề cập đến vấn đề bảo mật trong mobile agent và đi vào chi tiết ứng dụng của bảo mật mobile agent trong các giao dịch điện tử
Trang 10Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 1 : TỔNG QUAN VỀ MOBILE AGENT 1.1 KHÁI NIỆM VỀ MOBILE AGENT
1.1.1 Giới thiệu chung
Với sự phát triển của Internet, đứng trước sự bùng nổ về thông tin, người dùng có thể tiếp cận và khai thác nguồn thông tin khổng lồ, phong phú, đa dạng và phân tán khắp nơi trên mạng Tuy nhiên, để có thể khai thác một cách có hiệu quả nguồn tài nguyên này, người dùng cần phải biết thông tin mình cần nằm ở đâu và làm thế nào để tìm ra nó Do đó các phần mềm hỗ trợ người dùng ngày nay phải có khả năng hoạt động độc lập không cần sự can thiệp thường xuyên của con người và duy trì hoạt động liên tục cho đến khi đạt được kết quả
Các ứng dụng phải có khả năng xử lý phân tán: Các ứng dụng ngày nay cần phải
có khả năng trao đổi, liên lạc với các thành phần xử lý khác được phân bố trên nhiều máy có cấu hình khác nhau trong mạng để có thể tận dụng được toàn bộ tài nguyên của hệ thông Ví dụ, một chương trình xử lý văn bản có thể sử dụng một thành phần xử
lý trên máy A để phục vụ cho chức năng soạn thảo, trong khi lại sử dụng một thành phần xử lý khác trên máy B cho chức năng kiểm lỗi chính tả
Môi trường làm việc không đồng nhất : Internet kết nối hàng triệu triệu máy tính
lại với nhau, mỗi máy tính có các cấu hình khác nhau về phần cứng cũng như hệ điều hành và các phần mềm ứng dụng Do đó thật không đơn giản khi một chương trình có thể chạy trên một máy bất kỳ trên mạng
Sự đa dạng của các kết nối mạng : Các mạng cục bộ kết nối băng thông rộng,
nhanh và tin cậy Trong khi các máy di động có các kết nối chậm hơn , không thường xuyên, thiếu tin cậy Một ứng dụng có thể làm việc được trên các kết nối mạng như vậy phải chiếm ít đường truyền mạng và có khả năng làm việc không đồng bộ (off-line)
Vấn đề an toàn: Thông tin lưu truyền trên mạng rất dễ bị đánh cắp, cũng như bị
sửa đổi, giả mạo, Do đó cần phải các cơ chế an toàn để có thể tăng tính tin cậy của các ứng dụng trên mạng
1.1.2 Mobile Agent là gì
Mobile Agent là mô hình tiến hóa tiên tiến nhất so với các mô hình trước đó Mobile Agent là danh từ ghép giữa Agent (tác tử) và Mobile (di động) Một Mobile Agent là một phần mềm, bao gồm mã chương trình, dữ liệu và trạng thái hoạt động có
Trang 11khả năng di chuyển một cách tự trị từ nút mạng này sang nút mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục tiêu được giao Khi di chuyển, Mobile Agent đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, nhờ vậy Mobile Agent có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác
và khôi phục lại sự thi hành tại máy đích Mobile Agent chính là một dạng của mã di động (mã di động là những chương trình chuyển mã đến Client và thực thi ở đó)
1.1.3 Phát triển từ các mô hình ứng dụng phân tán
Mobile Agent có thể được xem như là sản phẩm kết hợp của kỹ thuật SoftwareAgent và kỹ thuật xử lý phân tán Mobile Agent khác với mô hình xử lý mạng truyền thống Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình Client/Server sẽ thực hiện việc giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm từ xa RPCs (Remote Procedure Call), RMI (Remote Method Invocation) và CORBA (Common Object Request Broker Architecture) Trong các mô hình này, các thành phần chức năng của ứng dụng được phân chia trong
số các thành viên tham gia Các thành viên khác sử dụng cơ chế truyền thông điệp để phối hợp các thao tác tính toán phân tán Các mô hình giao tiếp này thường phải đồng
bộ, nghĩa là phía Client tạm ngưng hoạt động trong thời gian gửi yêu cầu đến Server
và đợi đến khi nhận được kết quả trả về từ Server Một kiến trúc khác tiến bộ hơn là Remote Evaluation(REV) do Stamos và Gifford đưa ra vào năm 1990 Thay vì yêu cầu thực hiện các hàm từ xa thì Client chỉ việc gửi mã nguồn các hàm của nó đến Server
và yêu cầu Server thực hiện rồi trả về kết quả Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông điệp chủ động (Active Messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của chương trình để thực thi tại những vị trí này
COD_ Code on demand là một cách tiếp cận đảo ngược của phương pháp REV Các mã nguồn và dữ liệu được lưu trữ tại máy tính A và thực hiện được thực hiện tại máy tính B Máy tính A nạp mã và dữ liệu từ máy tính B và sau đó thực thi mã với dữ liệu địa phương như cũng như các dữ liệu nhập từ B Một ví dụ của COD là Java applet , đó là mã Java web trình duyệt tải về từ máy chủ HTTP từ xa để thực hiện địa phương
Ngoài những ưu điểm nổi bật, các mô hình này vẫn còn một số hạn chế như: thiếu mềm dẻo khi cần tùy biến các dịch vụ, đòi hỏi cao về kết nối mạng và băng thông, không hỗ trợ các thao tác không đồng bộ,
Trang 12Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mobile Agent s là mô hình tiến hóa tiên tiến nhất so với các mô hình trước đó Mobile Agent là danh từ ghép giữa Agent (trợ lý) và Mobile (di động) Một Mobile Agent là một chương trình có khả năng di chuyển một cách tự trị từ node mạng này sang node mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục tiêu được giao phó Khi di chuyển, các Mobile Agent đóng gói mã nguồn, dữ liệu và
cả trạng thái thi hành, nhờ vậy Mobile Agent có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác và khôi phục lại sự thi hành tại máy đích Mobile Agent đưa ra khái niệm mã thi hành di chuyển được, nghĩa là một chương trình có thể tự dừng tiến trình đang thực hiện tại máy này, tự mình di chuyển đến một máy khác để tiếp tục thực hiện tiến trình tại đó Bằng cách này một chương trình có thể hoàn thành tác vụ của mình sau khi lưu hành qua tất cả các máy trong mạng theo một lộ trình đã định trước Tại mỗi máy nó ghé đến, nó sẽ sử dụng các tài nguyên của máy đó để hoàn thành một phần tác vụ của mình
Hình 1.2 cho thấy sự khác biệt giữa mô hình Client/Server với Mobile Agent Dữ liệu trong mô hình Client/Server luôn được trao đổi trực tiếp giữa máy Client và
Client
Tham số (dữ liệu) Kết quả (dữ liệu)
RPC Client
Client
Hàm (mã nguồn) Kết quả (dữ liệu)
REV Client
Server_2 Server_1
(2) Agent di chuyển
(1) Agent gửi lên Server
Server_3 Client
Trang 13Server Khi Client gửi yêu cầu tới mày chủ thì việc xử lý sẽ diễn ra máy chủ lại trả kết quả về cho Client, việc trao đổi diễn ra liên tục đòi hỏi kết nối mạng ổn định và mất thời gian hơn Còn trong Mobile Agent Client sẽ gủi yêu cầu thông qua các Agent rồi Agent sẽ di chuyển tới các máy chủ, việc xử lý sẽ diễn ra trên các Agent với máy chủ, sau đó các Agent sẽ trả lại lại kết quả cho Client.Việc trao đổi không đòi hỏi kết nối mạng liên tục mà vẫn có thể làm được, nhờ các Agent
Jini là phần mềm mạng của công ty Sun Microsystems có chức năng mở rộng ngôn ngữ lập trình đa hệ thống Java Mục đích của Jini là giúp người dùng tạo ra mạng đơn giản và linh hoạt hơn Nó cho phép các thiết bị bắt đầu làm việc ngay lập tức sau khi được gắn trực tiếp vào mạng, Một khi các thiết bị này được kết nối, Jini sẽ cung cấp một phương thức để máy tính, ứng dụng hay thiết bị tự động "phát hiện" và chia sẻ tài nguyên, được gọi là "services"
Phương thức làm việc
1 Máy tính xách tay hay những thiết bị khác được gắn vào mạng và mã Jini trong máy ảo Java có trên thiết bị này sẽ thông báo về sự hiện diện của nó Người dùng có thể yêu cầu những dịch vụ có sẵn và những biểu tượng này xuất hiện trên màn hình của họ
2 Jini Server và Lookup Service phát hiện máy tính xách tay mới và đăng ký nó trên mạng
3 Giả sử người dùng cần in ấn Người đó sẽ chọn phần in, việc này khởi động một yêu cầu truy vấn đối với Lookup Service trên Jini Server Server sẽ gửi
Trang 14Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ngay mã Proxy về cho thiết bị Máy in đời trước vốn không có mã Java hay Jini
sẽ nhận lệnh in thông qua mã proxy và thực hiện việc in tài liệu
4 Tiếp theo, nếu quyết định lưu nội dung trình diễn của mình trên mạng, người dùng chỉ cần chọn "save" trên trình đơn file Máy tính xách tay của người này
sẽ truy vấn vào Lookup Service, định ra ổ đĩa có khả năng Jini cho máy tính này và nội dung trình diễn sẽ được lưu vào đĩa
5 Cuối cùng, nếu muốn trình diễn công việc của mình trên máy chiếu, loại đã được nhúng mã Jini, chỉ cần chọn biểu tượng máy chiếu trên màn hình của mình, máy sẽ hiển thị giao diện cần thiết để dùng loại dịch vụ này
Hình 1.3 cho thấy việc chuyển thông tin tới thiết bị của Jini phải thực hiện qua Proxy đòi hỏi kết nối mạng liên tục, nếu kết nối mạng bị mất đột ngột thì thông tin có thể bị mất đi còn trong Mobile Agent thông tin sẽ được lưu lại Agent và trao đổi trục tiếp với thiết bị ngay khi bị mất kết nối
1.1.4 Mục đích thiết kế mô hình Mobile Agent
Các thiết bị di động ngày càng phổ biến, tuy nhiên việc sử dụng hiệu quả các tài nguyên trên mạng gặp phải một số khó khăn.Trước hết, các thiết bị di động không có kết nối thường trực vào mạng và thường mất kết nối trong một khoảng thời gian dài Thứ hai, khi máy tính được kết nối sự kết nối thường có băng thông thấp và độ trễ cao
và hay bị hỏng đột ngột, chẳng hạn như một tắc nghẽn về tín hiệu từ Modem Thứ ba,
do máy tính có thể sử dụng các kênh truyền khác nhau phụ thuộc vào vị trí vật lý của
nó Sự thực hiện kết nối mạng có thể rất đa dạng Cuối cùng, phụ thuộc vào bản chất của kênh truyền, máy tính có thể được gán một địa chỉ mạng khác nhau mỗi lần nó được kết nối
Hình 1.3 So sánh Jini với Mobile Agent
nhập từ xa
Client
Device
Client Client
Trang 15Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Mobile Agent là một mô hình hiệu quả cho các ứng dụng phân bố, và đặc biệt thích hợp cho các máy tính kết nối cục bộ Các máy tính kết nối cục bộ như laptop, máy tính tại nhà, máy tính cơ quan … thường kết nối với mạng qua SLIP hay PPP Các thiết bị này thường mất kết nối trong một khoảng thời gian dài, băng thông trễ, không tin cậy thường thay đổi địa chỉ qua mạng mỗi lần kết nối
Một Mobile Agent có thể ra khỏi một máy tính, di chuyển trên Internet và thu thập thông tin cho người sử dụng nó Nó truy xuất tài nguyên một cách có hiệu quả, xử lý
và trả kết quả về qua một laptop băng thông thấp Vì nó không tiếp tục liên lạc với laptop, Agent không chịu ảnh hưởng bời sự mất kết nối đột ngột, và có thể tiếp tục công việc của nó, thậm chí ngay cả khi người sử dụng nó tắt máy hay ngắt kết nối mạng Khi người sử dụng kết nối lại , Agent sẽ tự trả về laptop kết quả sau quá trình
di chuyển trên mạng Ngược lại, một ứng dụng sống trên mạng cũng có thể gửi một Mobile Agnet cho laptop Agent này hoạt động như người đại diện cho ứng dụng, tương tác với người sử dụng một cách có hiệu quả
Mobile Agnet dễ phát triển, dễ kiểm tra và triển khai các ứng dụng phân tán Chúng loại trừ nhu cầu phát hiện và quản lý các hỏng hóc trên mạng Chúng không đòi hỏi cài đặt lại các phần mềm ở mỗi site (mặc dù hệ thống Agent phải có) Mobile Agent đưa người lập trình ra khỏi mô hình Client/Server đến mô hình Peer-Peer uyển chuyển, trong dó các node nào là Clinet và nút nào là Server là phụ thuộc và nhu cầu hiện tại Mobile Agent dễ dẫn đến ứng dụng Scalable vì công việc có thể di chuyển dễ dàng tới vị trí mạng thích hợp
Hình 1.4 Mô tả sự khác biệt Mobile Agent s với các mô hình truy nhập truyền thống như RPC, REV, COD…
b) Remote Evalution (REV)
Data Code
Data
Trang 16Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.2 CÁC ĐẶC TRƯNG KỸ THUẬT CỦA MOBILE AGENT
1.2.1 Kiến trúc hệ thống Mobile Agent
Mobile Agent khác với các xử lý phân tán, vì các xử lý phân tán không quyết định địa điểm và khi nào thì nó di chuyển còn Mobile Agent có thể di chuyển tới bất kỳ nơi đâu và bất kỳ khi nào Mobile Agent cũng khác với Java Applet, Applet chỉ có thể di chuyển một chiều từ Server đến Client, trong khi Mobile Agent thì có thể di chuyển giữa Client và Server và có thể tự định hướng Thậm chí ngay trong kiến trúc của hệ thống Mobile Agent cũng có sự khác biệt, hầu hết tất cả hệ thống Mobile Agent đều chứa một Mobile Agent (MA) và một MobileAgent Environment (MAE) Như hình 1.4
MAE tạo ra một môi trường thực thi chắc chắn và thích hợp cho MA Cung cấp cho MA các dịch vụ cơ bản bao gồm tạo (Creation), vận chuyển (Transportation) và thực thi (Execution) Nó cũng bao gồm các cơ chế như: chiến lược chịu lỗi, điều khiển
Data
Code
Data
Code Data
Trang 17bảo mật và các kỹ thuật kết nối Khả năng giải quyết vấn đề của các MA phụ thuộc vào các dịch vụ được MAE cấp Một cách tổng quát thì MAE có các dịch vụ cơ bản sau:
- Business service: các dịch vụ tạo, di chuyển, khả năng chịu lỗi và thực thi trên môi trường phân tán
- Event service: cung cấp các giao thức truyền, kết nối và hỗ trợ các tương tác giữa các Agent
- Directory service: duy trì các thông tin về trạng thái về sự cục bộ của mộtMobile Agent , và một thông điệp định tuyến dùng để phân phát các thông định tớiMobile Agent
- Security service: cung cấp môi trường thực thi an toàn
- Application sevice: cung cấp các dịch vụ giao tiếp cho các tác vụ
Thông thường, một MAE chỉ có trên một máy tính trên mạng, nhưng nếu các máytính được kết nối bằng đường truyền có tốc độ cao, một MAE có thể phân tán trên mạng theo cách không đồng nhất của các máy tính mà không ảnh hưởng đến năng suất làm việc của toàn hệ thống Trong MAE, ATP ( Agent Transfer Protocol) thực hiện việc vận chuyển các MA qua các máy tính và cung cấp môi trường thực thi và các dịch
vụ giao tiếp Agent Communication Language (ACL) kết nối với các dịch vụ khác nhau được MAE cung cấp để cho MA khai thác
Hình 1.5: Tổng quát kiến trúc Mobile Agent
User Agent – UA Service Agent – SA
Di trú (Migration) Local Communication Remote Communication
Trang 18Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Kiến trúc của Mobile Agent (MA) bao gồm User Agent (UA) và Service Agent (SA) UA có thể di chuyển từ MAE này đến MAE khác, thực thi trong MAE và kết nối với những MA khác hay các dịch vụ được cung cấp bởi MAE xuyên suốt trong ACL Chức năng chính của UA là hoàn tất nhiệm vụ được giao bởi người dùng và còn
có vai trò di chuyển, điều khiển bảo mật và liên lạc với bên ngoài SA không có tính di động, chức năng chính của nó là cung cấp những dịch vụ cho các MA cục bộ và các
MA di chuyển đến Thông thường có nhiều SA tron gmột MAE, và chúng cung cấp các dịch vụ khác nhau Vì vậy SA không có tính di động và chỉ được khởi động (Start up) và quản lý (Manage) bởi Admin của MAE nơi nó cư trú Điều này làm cho SA không nguy hiểm UA không thể truy cập trực tiếp vào tài nguyên hệ thống Nó chỉ có thể truy cập vào tài nguyên được điều khiển thông qua các Interface được cung cấp bởi
SA Theo cách đó sự tấn công từ các Agent nguy hiểm có thể được tránh Đây là cũng
là một chính sách bảo mật mà hầu hết các hệ thống Mobile Agent chấp nhận
1.2.2 Các đặc tính của Mobile Agent
Các đặc tính chính của Mobile Agent bao gồm :
Tính tự trị (Autonomous): Là khả năng tự kiểm soát bản thân của Agent sau khi
được giao việc mà không cần sự can thiệp nào của người dùng hoặc của Agent khác
Có nhiều hướng đánh giá về sự tự trị của Agent Hai đặc tính hướng đích Oriented) và tính chủ động (Pro-Activeness) thường được dùng để đánh giá mức độ tự trị của Agent Khả năng tự trị của Agent chủ yếu được quyết định bởi tri thức trang bị cho Agent
(Goal-Tính di động (Mobility): Là khả năng di chuyển từ môi trường thi hành này sang
môi trường khác khác của một Agent Khả năng di động của một Agent được phân thành hai loại Di động mạnh (Strong Mobility) là khả năng mà hệ thống có thể di chuyển cả mã chương trình và trạng thái thi hành của Agent đến một môi trường khác
Di động yếu (Weak Mobility) là khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi trường thi hành với nhau Mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhưng trạng thái thi hành thì không thể di chuyển
Tính thích ứng (Reactiveness): Là khả năng của Agent có thể thực thi trên những
môi trường lạ, và cảm nhận được sự thay đổi của môi trường Khả năng cộng tác (Collaboration) là khả năng liên lạc, phối hợp hoạt động của các Agent với các Agent
Trang 19trong cùng môi trường khác hay với các loại đối tượng khác trong những môi trường khác
1.2.3 Các thành phần của một Mobile Agent
Hai thành phần cơ bản của một mô hình Mobile Agent là :
- Agent
- Môi trường thực hiện nó - Place
1 Agent : Một Mobile Agent là một thực thể có 5 thuộc tính: trạng thái, sự cài đặt,
giao tiếp, định danh và người ủy nhiệm Khi một Agent di chuyển trên mạng nó mang theo các thuộc tính đi cùng với nó
- Trạng thái: Khi một Agent di chuyển nó mang theo trạng thái hiện tại đi cùng và trạng thái này được dùng để tiếp tục thực hiện chương trình tại Host đến Đối với hầu hết các ngôn ngữ lập trình có thể chia trạng thái của Mobile Agent ra làm 2: trạng thái thực hiên và trạng thái của đối tượng (chứa giá trị các biến trong đối tượng)
- Cài đặt: Cũng như mọi ngôn ngữ lập trình khác Mobile Agent cần mã để thực hiện Khi nó di chuyển sẽ mang một tùy chọn để cho Host đến biết là nó mang theo
mã cài đặt hay là kiểm tra xem mã đó có chưa và tìm kiếm nếu thiếu
- Giao tiếp: các Agent giao tiếp qua một tập phương thức kết nối là Knownledge Query and Manipulation Language (KQML) KQML là ngôn ngữ thiết kế để liên lạc giữa các Agent KQML đưa ra các kiểu thông báo đa dạng để diễn đạt nội dung trao đổi
- Định danh: Cần thiết để nhận dạng và định vị các Agent Mỗi Agent có một định danh duy nhất trong suốt thời gian hoạt động Định danh này có thể là sự kết hợp
Giao tiêp Cài đặt Trạng thái
Người uỷ quyền
Định danh Hình 1.6: Các thành phần của một hệ thống Mobile Agent
Trang 20Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
định danh của người ủy nhiệm và một Serial Number Vì định danh của Agent là duy nhất và không thể thay đổi được, nó dùng như một khóa trong các thao tác tham chiếu đến định danh của một Agent khác
- Người ủy nhiệm: Là một thực thể mà định danh của người đó được các hệ thống chấp nhận Định danh của một cá nhân , một tổ chức hay một công ty Agent có 2 người ủy nhiệm chính:
Nhà chế tạo: nhà cung cấp cài đặt của Agent
Người chủ : người có trách nhiệm về các hành vi của Agent Ví dụ như người tạo ra Aglet
2 Place:
- Là môi trường mà Agent hoạt động Place cung cấp các dịch vụ mà Agent có thể dựa vào đó mà hoạt động bất châp vị trí hiện tại Có thể xem Place là hệ điều hành cho Agent
- Trong Place có 4 nội dung đóng vai trò quan trọng
Bộ xử lý: Máy ảo cho các Places Bản thân Place không thể thi hành các Agent Để thực hiện điều đó các Agent phải có trong bộ xử lý Bộ xử lý phục vụ như một máy ảo cho các Places và các Agent các kết nối mạng Trong hệ thông Mobile Agent dựa trên Java, bộ xử lý tương đương như máy ảo của Java và hệ điều hành Mỗi bộ xử lý có nhiều Places và mỗi Place có nhiều Agent
Tài nguyên: Bộ vi xử lý và Place cung cấp việc điều khiển truy suất đến các tài nguyên và dịch vụ cục bộ như mạng, cơ sở dữ liệu, các vi xử lý và bộ nhớ, đĩa, các phần cứng cũng như dịch vụ phần mềm
Vị trí: Địa chỉ mạng của Place Vị trí đóng một vai trò quan trọng cho các Mobile Agent Vị trí của một Agent đang thực hiện là sự kết hợp giữa tên của Place ( mà nó đang thực thi trong đó ) và địa chỉ mạng cảu bộ vi xử lý (
mà Place dang tồn tại trong đó) Vị trí được viết như một địa chỉ IP và cổng của bộ vi xử lý
Sự ủy nhiệm : Quản lý các thao tác trên một Place
Hình 1.7: Place và Bộ vi xử lý
Trang 211.2.4 Các nền tàng một Mobile Agent
Kiến trúc cơ bản của nền tảng Mobile Agent :
- Agent execution : Một nền tảng MA(Mobile Agent ) cần phải cung cấp các tính năng cơ bản để đưa các MA vào thực hiện , trong đó có cả việc tính đến yêu cầu
MA có thể liên quan đến môi trường đang chạy ví dụ: MA liên kết với các tài nguyên địa phương (tài nguyên tài môi trường đang chạy) MA đóng gói mã nguồn, dữ liệu, trạng thái thi hành để di chuyển sang môi trường khác
- Transport :Nền tảng cung cấp một hỗ trợ đặc biệt , Đó là tạo thuận lợi cho việc di chuyển của MA,mã chương trình và trạng thái thi hành của Agent từ môi trường này sang môi trường khác Nhưng nền tảng cũng cho phép các quản trị viên hệ thống Mobile Agent cũng có thể chỉ huy thực hiện từ xa các MA
- Agent execution và Transport có mối liên kết chặt chẽ và được sự hỗ trợ của Security Service
- Unique identification (nhận dạng duy nhất) : Các MA cũng như hệ thống Agent phải được nhân dạng duy nhất trong môi trường Internet , do vậy chúng cần được định danh (ID generator)
- Communication : Các MA có thể giao tiếp với nhau cũng như với các dịch vụ Việc giao tiếp đươc thưc hiện bằng một số cơ chế như : thông điệp (messages), phương pháp gọi (method invocation) , chia sẻ đối tượng ( object sharing), bộ dữ liệu - khoảng trống (tuple-spaces) Các cơ chế có những mức khác nhau với độ mạnh cũng như thời gian/không gian kết nối khác nhau.Ví dụ : Cơ chế messages thực hiện điểm tới điểm , hoặc kĩ thuật multicasting (cách truyền dữ liệu một - nhiều), hoặc bằng broadcasting (một - 1 nhóm )
- Security : Các vấn đề về xác thực định danh của một MA hoặc một hệ thống MA, kiểm soát truy cập tài nguyên/dịch vụ Để đảm bảo tính bảo mật và toàn vẹn thì những thông tin quan trọng như mã, trạng thái của MA cần sử dụng Public-key trước khi di chuyển trong một mạng không tin cậy
Trang 22Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Management : Được quản trị viện sử dụng để có thể theo dõi và kiểm soát các MA
và các dịch vụ được cung cấp dựa trên MA Bao gồm việc ngắt tạm thời một nhiệm
vụ của MA, kết thúc sớm 1 MA, sửa đổi danh sách nhiệm vụ của MA Điều này có thể giúp nhận ra và tránh các cuộc tấn công từ chối dịch vụ
- Enhanced Services : Các dịch vụ nâng cao
- Heterogeneous Network Components : Thành phần Mạng không đồng nhất
1.3 NGUYÊN LÝ HOẠT ĐỘNG CỦA MOBILE AGENT
Có 3 cách thực thi code trong môi trường mạng:
1.3.1 Kỹ thuật pull code
Áp dụng mô hình Client/Server, khi bắt đầu Client gửi yêu cầu đến Server, Server gửi code về Client và code thực thi cho kết quả trên Client Thao tác gồm 3 bước:
Bước 1 : Client gửi yêu cầu đến server
Bước 2 : Server gửi code cho client
Bước 3 : Code được thực thi ở client
Ví dụ : Các Java applet được thực thi theo phương pháp này
Chú ý : Trong mô hình này, 1 bản sao của code sẽ được Server gửi tới Clientvà thực thi ở client, Server vẫn lưu trữ code
1.3.2 Kỹ thuật push code
Khi có yêu cầu từ người dùng, một node trong mạng sẽ gửi code đến một node khác trong cùng môi trường mạng và thực thi trên máy đó Thao tác này gồm 2 bước:
Trang 23Bước 1: Khi có yêu cầu người sử dụng, máy A tự động gửi code đến máy máy
B mà không có yêu cầu từ phía máy B Máy A và B là các node mạng, có thể không phải là Servers
Bước 2 : Code được thực thi trên máy B
Chú ý : Trên A vẫn lưu trữ một bản sao của code Như vậy, trong 2 mô hình trên, nơi gửi code đi vẫn giữ lại một bản sao của code
1.3.3 Kỹ thuật autonomous code
Code tự quyết định sẽ đi và thực thi ở đâu
Bước 1: Code sau khi thực thi ở máy A sẽ tự đóng gói và di trú tới máy B
Bước 2: Code di chuyển sang B và thực thi trên máy B, lúc này code hoàn
toàn không còn ở A nữa
Ví dụ : Mobile Agent hoạt động theo phương pháp này Tự quyết định đóng gói, không để lại bản sao và di trú đến node khác, Sự khác biệt của Mobile Agent so với các phương pháp ở trên
Trang 24Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.4 MOBILE AGENT TRONG THIẾT KẾ ỨNG DỤNG PHÂN TÁN
1.4.1 Vòng đời của một Mobile Agent
- Creation : Khởi tạo Agent , phát sinh ID cho Agent , tuỳ biến cấu hình cho Agent
- Serialize: Lưu lại trạng thái Agent trước khi di trú đến Agent OS khác
- Migrate: Di trú Agent kèm tình trạng của nó đến node khác
- Deserialize: Khôi phục lại trạng thái của Agent
- Execute: Truy cập vào các dịch vụ của Node, liên lạc với các Agent khác, hoàn thành nhiệm vụ của Agent
- Migrate Request: Yêu cầu được di trú đến node khác
- Destroy or sleep: Khi nhiệm vụ đã hoàn thành hoặc gặp trở ngại không thể tiếp tục hoạt động thì Agent sẽ tự hủy hoặc tự đưa nó vào trạng thái ngủ đông (sleep)
Serialize Serialize Creation
Migrate
Yêu cầu di trú từ nguồn
Deserialize
Execute Destroy or sleep
Migrate Request Serialize
Hình 1.8: Vòng đời của một Mobile Agent
Migrate
Trang 25Mọi Agent đều thực hiện các công việc của nó tuần tự theo logic: Trước tiên Agent được tạo ra, di chuyển từ node này sang node khác và tự huỷ sau khi hoàn thành nhiệm vụ
Tóm tắt quy trình hoạt động của một Mobile Agent như sau:
Vòng đời Agent bắt đầu khi Agent được tạo ra trên Host Khi đó, Agent sẽ được cấp một định danh duy nhất Tình trạng ban đầu cũng có thể được khởi tạo theo
Khi đã sẵn sàng nhận được lệnh để di trú đến một Host khác nằm trong đường đi của Agent, Agent sẽ lưu lại trạng thái hiện hành của mình và tiến hành quá trình di trú Nếu quá trình di trú thất bại, Agent sẽ tự ngừng hoạt động (deactivate) để rồi nó sẽ tự kích hoạt lại chính mình sau một khoảng thời gian định trước hay được kích hoạt và sẽ tiến hành lại quá trình di trú đến Host khác Khi đã di trú đến Host mới thành công, Agent sẽ phục hồi lại trạng thái Lúc này Agent bắt đầu thực thi nhiệm vụ Nó sử dụng các dịch vụ trên Host liên lạc với các Agent khác để thực hiện nhiệm vụ
Sau khi Agent đã hoàn tất nhiệm vụ, nó có thể bị huỷ hoặc chuyển sang trạng thái ngủ cho đến khi có yêu cầu từ bộ đếm trong chính bản thân nó Khi đó Agent sẽ lưu trạng thái của nó và di trú sang Host tiếp theo Vòng đời của nó được lặp lại như hình 1.8
- Mỗi một Mobile Agent có một định danh duy nhất
- Xác định được những Agent khác đang thực thi trong cùng Host
- Có khả năng nhận và gửi thông điệp cho những Agent khác
Trang 26Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Gán danh hiệu: Lớp cài đặt được nạp vào, thực hiện, và đối tượng Agent được tạo Lớp Agent chỉ ra cả phần giao tiếp và phần cài đặt của Agent Place gán một danh hiệu duy nhất cho Agent
- Khởi tạo: Agent khởi tạo bằng các tham số khởi tạo do người tạo cung cấp Chỉ khi nào việc khởi tạo hoàn thành thì Agent mới được gọi là tạo xong trong Place
- Tự thực hiện: Sau khi được tạo trong Place, Agent bắt đầu thực thi Giờ đây,
nó có khả năng thực hiện độc lập và có thể tương tác với cá Agent khác
trong cùng Place
1.4.3 Huỷ Agent
Vậy Agent sẽ kết thúc như thế nào? Sự hủy bỏ một Agent có thể do bản thân thực hiện hoặc bởi một Agent khác cùng trong Place, hoặc bởi một Agent không cùng trong một Place Một Agent có thể được hủy bởi hệ thống do một trong các lý do sau:
- Hết thời gian tồn tại
- Không một ai tham khảo hay sử dụng Agent này nữa
- Agent vi phạm một số quy tắc an toàn
- Hệ thống bị shut down
Quá trình hủy bỏ một Agent gồm 2 bước:
- Chuẩn bị hủy: Agent có một khoảng thời gian để kết thúc công việc hiện tại trước khi bị hủy
- Tạm dừng công việc: Place dừng việc thực thi của Agent
1.4.4 Di chuyển Agent
Quá trình di chuyển có thể được khởi tạo bởi chính Agent hoặc bởi một Agent khác trong cùng Place hoặc bởi một Agent đang tồn tại ngoài Place Sau
đó Agent được gửi đi từ Place hiện tại và đượ nhận bởi Agent đến
Cả hai Place hiện tại và Place đến đều quản lý tiến trình gửi Khi Place gửi kết nối được với Place đến, thì Place đến hoặc hoàn thành tiến trình hoặc trả về
Trang 27thông báo lỗi cho Place gửi Nếu Place gửi không kết nối được với Place đến thì
nó sẽ gửi một thông báo lỗi đến Agent
a) Gửi Agent: Khi Agent chuẩn bị di chuyển, nó phải nhận biết được nơi đến
của nó Khi vị trí của nơi đến đã xác định, Mobile Agent thông báo cho hệ thống Agent cục bộ: nó muốn di chuyển đến hệ thống Agent đến Thông báo này được gửi qua một lệnh API bên trong giữa Agent và hệ thống Agent ( lệnh go()) Khi
hệ thống Agent nhận được yêu cầu di chuyển của Agent nó sẽ thực hiện các việc sau:
- Tạm dừng Agent: Agent được cảnh báo về việc di chuyển sắp xảy ra, và được cho phép chuẩn bị khởi hành
- Phát hành ( Serialize) Agent: Agent - trạng thái và lớp của nó – được phát hành bời bộ xử lý Phát hành là tiến trình tạo một đại diện của đối tượng Agent để di chuyển trên mạng Sự phát hành Agent bao gồm cả trạng thái thực hiện của nó (khung stack)
- Mã hóa Agent phát hành: Lúc này, bộ xử lý sẽ mã hóa Agent phát hành cho 1 giao thức di chuyển đã chọn
- Gửi Agent đi: bộ xử lý thiết lập 1 kết nối mạng với host đến và chuyển Agent phát hành đã mã hóa đến đó
b) Tiếp nhận Agent: Trước khi một bộ xử lý nhận Agent, nó phải xác định nó
có chấp nhận một Agent đến từ Host gửi hay không Chỉ sau khi người gửi xác nhận với bộ xử lý nơi nhận, thì tiến trình nhận Agent xảy ra như sau:
- Nhận Agent: khi bộ xử lý nơi nhận đồng ý cuộc di chuyển, Agent đã mã hóa được tiếp nhận
- Giải mã: bộ xử lý sẽ giải mã Agent đến
- Deserialize Agent: đại diện của Agent được tạo Lớp Agent được khởi tạo
và trạng thái của Agent chuyển đên được phục hồi
- Tiếp tục thực hiện Agent: Agent tiếp tục thực hiện công việc đang thực hiện tại nơi đến
Trang 28Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.9 Di chuyển Agent trên mạng
c) Di chuyển lớp Agent: Agent không thể tiếp tục thực hiện trong bộ xử lý của
nơi đến mà không có lớp của nó Có một số phương pháp để lớp Agent hiện diện tại bộ xử lý của nó, phụ thuộc vào vị trí của lớp:
- Lớp đã có ở nơi đến: trong trường hợp này thì không cần di chuyển lớp (hình 1.10a) Agent được chuyển đến chỉ cần chứa thông tin để nhận diện lớp, chẳng hạn như tên lớp Nó cũng có thể chứa thêm thông tin
mô tả vị trí của định nghĩa lớp
Server Code của Class
Hình 1.10 Di chuyển lớp của Agent
(a)Class ở nơi đến, (b) class ở nơi gốc, (c)Class ở Server
(a
Trang 29- Lớp ở nơi gửi: Nếu lớp có ở nơi gửi – và thường là trong trường hợp này – nó được di chuyển đi 1 cách dễ dàng cùng với trạng thái của Agent đến bộ xử lý của nơi đến (hình 1.10b)
- Mã theo nhu cầu: trường hợp này lớp có tại server và bộ xử lý của nới đến phải lấy lớp tại server (hình 1.10c) Trong trường hợp này, bộ xử lý của nơi đến phải thực hiện thêm một kết nối mạng để lấy lớp Agent
Sau khi Agent được khởi tạo, nó thường tạo ra các đối tượng khác Dĩ nhiên, lớp của các đối tượng này cần cho việc tạo đối tượng và cần để tiếp tục việc thực thi Nếu bất kỳ lớp nào không tồn tại cho bộ xử lý, nó phải được chuyển đến từ nơi gửi hay từ người gửi Agent
1.4.5 Liên lạc
Agent có thể liên lạc với các Agent khác trong cùng một Place (IntraPlace) hoặc với các Agent trong khác Place khác Một Agent có thể cần đến một phương thức của Agent khác hoặc gửi đến Agent khác thông báo Tồng quát, sự thông báo của Agent có thể là Peer- to – Peer hay Broadcast Broadcast là cơ chế thông báo từ một Agent đến nhiều Agent khác cùng một lúc Nó cho phép Agent gửi một thông báo đến một nhóm các Agent và rất hữu ích trong các hệ thống nhiều Agent
Sự liên lạc giữa các Agent diễn ra theo 3 cách sau:
a) Thông báo kiểu Now: Đây là dạng thông báo phổ biến nhất Loại thông báo
này đồng bộ và ngăn chặn sự thực thi của Agent cho đến khi người nhận thông báo đã hoàn thành việc nhận thông báo và trả lời nó
Hình 1.11: Thông báo kiểu Now
Trang 30Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
b) Thông báo kiểu Future:Loại thông báo này không đồng bộ và không ngăn
cản sự thực thi hiện tại cảu Agent Người gửi giữ lại Handle để có thể dùng lưu kết quả Vì người gửi không cần phải đợi người nhận trả lời, loại thông báo này linh động và hữu ích khi nhiều Agent liên lạc với nhau
c) Thông báo kiểu one – way
Loại thông báo này không đồng bộ và không ngăn cản sự thực thi hiện tại của Agent Người gửi không cần giữ lại một Handle cho thông báo này, và người nhận không cần phải trả lời nó
1.5 CÔNG CỤ PHÁT TRIỂN MOBILE AGENT
Hiện nay có nhiều hệ thống Mobile Agent đã được các công ty, tổ chức danh tiếng xây dựng như Aglets của IBM, Voyager của Object Space, Mole của Đại học Stuttgart (Đức), Telescript của General Magic, JADE của Telecom Italia Lab, Concordia của Mitsubishi Electric Lab, …
Mỗi hệ thống đều được sử dụng cho các mục đích riêng, trong các lĩnh vực ứng dụng khác nhau Đa số các hệ Mobile Agent sử dụng Java để hỗ trợ phát triển ứng dụng nhưng mỗi hệ thống có đặc thù riêng của nó
1.5.1 Java – ngôn ngữ hiệu quả dùng để phát triển tác tử
Có nhiều yêu cầu về công nghệ để cài đặt các hệ tác tử di động Cơ bản bao gồm các yêu cầu về cấu trúc của phương tiện tính toán, môi trường mà các tác tử đó hoạt động Các host phải được thiết kế, cài đặt và triển khai không chỉ cho phép các tác tử thực hiện mà còn phải thực hiện một cách an toàn Hiện nay, chưa có một hệ thống nào có thể đáp ứng được hoàn toàn các yêu cầu đề ra cho một hệ tác tử di động Java
do Sun Microsystem phát triển được xem là môi trường tốt nhất hiện nay chứa những đặc tính cần thiết cho việc xây dựng các hệ thống tác tử di động Java là một ngôn ngữ
Hình 1.12 Thông báo kiểu Future
Hình 1.13: Thông báo kiểu one - way
Trang 31lập trình hướng đối tượng cho mạng hay được gọi là ngôn ngữ của Internet Một số đặc điểm (như độc lập với môi trường, nạp lớp động, lập trình đa luồng, hỗ trợ đối tượng phân tán, tuần tự hoá đối tượng, thi hành an toàn, …) cho thấy Java là một ngôn ngữ hiệu quả dùng cho lập trình các tác tử
1.5.2 Công cụ phát triển Aglets Workbench
Aglets Workbench được xây dựng và phát triển bởi D.B.Lange và IBM Tokyo Research Laboratory Aglets Workbench bao gồm: bộ công cụ phát triển Aglets (ASDK) và platform để các Aglet thi hành trên đó Hiện nay bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1beta3 trên nền JDK1.1 Phiên bản mới nhất của ASDK là 2.0.2 do SourceForge phát triển trên nền JDK1.3
a) Các thành phần cơ bản của Aglets
- Aglet: là một đối tượng Java, có khả năng di chuyển đến các host trên mạng
- Proxy: Là đối tượng đại diện cho Aglet Có nhiệm vụ bảo vệ Aglet tránh khỏi các truy cập trực tiếp đến các phương thức public Ngoài ra, nó có thể ẩn đi
b) Các hoạt động cơ bản của Aglet
Lớp ibm.com.Aglet.Aglet cung cấp các chức năng cơ bản cho một đối tượng Mobile và mọi Aglet phải là thể hiện hoặc lớp con của nó Để sử dụng một Aglet, trước hết phải tạo ra thể hiện (Instantiated) của nó Có hai cách để làm điều này:
Cách 1: Tạo một Aglet hoàn toàn mới từ định nghĩa lớp bằng cách gọi hàm:
AgletContext.createAglet(URL Codebase, String name, Object init)
Hàm này tạo ra một thể hiện mới trong context và khởi động nó nếu cần thiết
Cách 2: Tạo ra một bản sao của một Aglet đã tồn tại bằng cách dùng hàm:
Aglet.Clone()
Trang 32Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Aglets được sao chép ra có cùng trạng thái như Aglets gốc nhưng có Aglets
- Địa chỉ của host, thường là địa chỉ IP
- Port mà server dùng để nghe
- Tên context trong server
Ví dụ: atp://Aglets.ibm.com:1434/context_name
Aglet có bộ thư viện các hàm API, bao gồm các hàm chuyên biệt dành cho việc phát triển các tác tử Khi Aglet được tạo ra, nó sẽ chạy trên mọi máy có hỗ trợ Aglet API mà không quan tâm đến nguồn gốc của hệ điều hành và phần cứng bên dưới
1.6 LỢI ÍCH MOBILE AGENT
Mặc dù công nghệ Mobile Agent áp dụng vào trong nhiều lĩnh vực Tuy nhiên sự quan tâm chỉ tập trung vào lợi ích cho các hệ thống phân tán
Tính tự trị : Khả năng tự kiểm soát của các Agent sau khi được giao việc mà
không cần sự can thiệp nào của người dùng hoặc của các Agent khác
Tính di động: Khả năng di chuyển từ môi trường thi hành này sang môi trường
HuỷContex A
Aglet
Contex B Aglet
Class file
Tạo
Bộ nhớ Thứ cấp
Ngừn
g kích hoạt
Kích hoạt
Trang 33Tính thích ứng: Khả năng của Agent có thể thực thi trên những môi trường lạ là
khả năng cảm nhận sự thay đổi của môi trường
Khả năng cộng tác : Khả năng liên lạc, phối hợp hoạt động của các Agent với các
Agent của cùng môi trường khác hay với các loại đối tượng khác trong nhưng môi trường khác
1.6.1 Giảm lưu lượng tải trên mạng
Các hệ thống phân tán thường dựa vào các giao thức liên lạc tương tác lẫn nhau để hoàn thành công việc Việc này dẫn đến có nhìu dữ liệu chuyển tải trên mạng Mobile Agent giải quyết vấn đề băng thông mạng của Client/Server Băng thông mạng trong các ứng dụng là tài nguyên rất có giá trị Một giao tác hay vấn tin giữa Client và Server có thể đòi hỏi nhìều lần di chuyển để hoàn thành Mỗi cuộc di chuyển trên mạng sẽ cần băng thông Trong một hệ thống với nhìêu Clients và nhiều giao tác, tổng băng thông đòi hỏi có thể vượt quá băng thông hiện có
Mobile Agent cũng hữu ích khi nó giảm lượng dữ liệu thô lưu chuyển trên mạng Khi dữ liệu thô được lưu trữ ở các Host từ xa các dữ liệu này sẽ được xử lý ở đó Phương châm rất đơn giản: chuyển chương trình xử lý đến dữ liệu thay vì kéo dữ liệu
về xử lý
1.6.2 Khắc phục độ trễ mạng
Các hệ thống thời gian thực, như robot trong các tiến trình sản xuất, cần đáp ứng ngay với tác động của môi trường bên ngoài Điều khiển các hệ thống thời gian thực như vậy qua mạng sẽ có một độ trễ nhất định Đối với các hệ thống thời gian thực, đỗ trễ như vậy là không chấp nhận được Mobile Agent đưa ra một giải pháp, chúng được gởi đi từ một trung tâm điều khiển hoạt động cục bộ và thực hiện trực tiếp theo chỉ dẫn của trung tâm điều khiển đó
1.6.3 Đóng gói các giao thức
Khi dữ liệu được trao đổi trong hệ thống phân tán mỗi Host sẽ có mã cài đặt các giao thức cần để mã hóa dữ liệu ra và mã biên dịch dữ liệu đến một cách tương ứng Tuy nhiên, các giao thức lại chứa các yêu cầu mới về tính hiệu quả và an toàn, do đó
nó sẽ cồng kềnh và nặng nề Kết quả là các giao thức lại trở thành một vấn đề độ trễ Ngược lại Mobile Agent có thể di chuyển tới một Host ở xa để thiết lập một kênh dựa trên các giao thức riêng
1.6.4 Thi hành một cách không đồng bộ và tự trị
Trang 34Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Thông thường, các thiết bị Mobile phải dựa vào kết nối mạng thường xuyên chậm hay mất kết nối đột ngột Công việc đòi hỏi một kết nối liên tục giữa các thiết bị Mobile và một mạng cố định sẽ không kinh tế Để giải quyết vấn đề này, công việc đó
sẽ được nhúng vào trong các Mobile Agent , và chúng được gửi đi trên mạng Sau khi được gửi đi các Mobile Agent trở thành độc lập và có thể thực hiện một cách không đồng bộ và tự trị Sau đó thiết bị di động có thể kết nối lại và nhận lại Agent
1.6.5 Thích ứng nhanh
Mobile Agent có khả năng cảm nhận môi trường thực hiện và tự phản ứng lại để thay đồi thích nghi với môi trường đó Chẳng hạn như Agent có thể hoạt động tốt trong các hệ điều hành khác nhau
1.6.6 Khắc phục tình trạng không đồng nhất
Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng về phần cứng và phần mềm được sử dụng Do Mobile Agent độc lập với máy tính và tầng vận chuyển, chỉ phụ thuộc vào môi trường thi hành, nên chúng cung cấp một điều kiện tối
ưu cho việc liên kết các hệ thống không liên quan gì lại với nhau
1.6.7 Mạnh mẽ và có khả năng tự sửa lỗi
Khả năng phản ứng lại của Mobile Agent đối với các tình huống và sự kiện không thuận lợi và vì vậy làm cho nó dễ xây dựng các hệ thống phân tán tự sửa sai Nếu một Host bị Shutdown , tất cẩ các Agent đang thực hiện trên máy đó sẽ được cảnh báo và
có một khoảng thời gian để di chuyển qua các Host khác và tiếp tục thực hiện cho các phép toán trên Host khác
1.7 MỘT SỐ ỨNG DỤNG MOBILE AGENT
Phần này chỉ giới thiệu khái quát một số ứng dụng thông qua lợi ích của Mobile Agent mang lại Chi tiết sẽ được tìm hiểu kỹ hơn ở các phần sau Hiện nay, theo các nghiên cứu về Agent, chưa có một ứng dụng nào có thể được xem như là ứng dụng đặc trưng dành cho công nghệ Mobile Agent Tuy nhiên, trong một vài trường hợp, Mobile Agent có thể là giải pháp tối ưu Mobile Agent có thể được áp dụng trong nhiều lĩnh vực như sau:
1.7.1 Thu thập thông tin phân tán
Tìm dữ liệu từ cơ sở dữ liệu phân tán là là một trong các ứng dụng phổ biến của Mobile Agent Thay vì di chuyển một lượng lớn dữ liệu đến bộ xử lý tìm kiếm (Search
Trang 35Engine) để tạo chỉ mục tìm kiếm, Agent được gửi đến nguồn thông tin từ xa, nơi mà chỉ mục tìm kiếm sẽ được tạo
Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt và liên quan đến nhiều nguồn dữ liệu phân tán, không đồng nhất, Mobile Agent di chuyển đến các nguồn tin để khai thác tại chỗ và cuối cùng là quay về với những thông tin cần thiết sẽ cho phép giảm tải mạng và giải quyết tốt hơn bài toán tương thích
Một trong các khác biệt chính giữa Mobile Code - như Applets - và Mobile Agent là lộ trình Trong khi Mobile Code luôn di chuyển từ điểm A đến điểm B, thì Mobile Agent có một lộ trình và có thể lần lượt di chuyển qua nhiều Site Do đó, một ứng dụng rõ ràng của Mobile Agent là thu thập thông tin trên mạng
1.7.2 Tìm kiếm và lọc dữ liệu
Lượng thông tin trên mạng Internet ngày càng nhiều, do đó việc tìm kiếm thông tin cần thiết trên mạng sẽ tốn nhiều thời gian Vì vậy, việc lọc bớt một số thông tin không thích hợp là một vấn đề quan trọng
1.7.3 Kiểm tra dữ liệu ( Monitoring)
Một số thông tin không trải ra theo không gian mà theo thời gian Các thông tin mới không ngừng xuất hiện và công bố trên mạng Các Agent gửi đi có thể đợi cho tới khi lấy được thông tin mới nhất
Chẳng hạn một Agent có thể đến một thị trường chứng khoản, đợi cho tới khi thị trường chứng khoản đạt tới một giá chắc chắn, và sau đó đặt mua nhân danh User của
nó Loại ứng dụng này nêu bật bản chất không đồng bộ của Mobile Agent Nếu gửi đi một Agent, không cần ngồi đợi kết quả, có thể lập trình cho Agent để nó đợi lấy được thông tin mới nhất Ngoài ra, cũng không cần kết nối vào mạng cho tới khi Agent gửi
về kết quả Một Agent có thể đợi cho tới lúc nào kết nối lại
Ứng dụng này làm nổi bật bản chất không đồng bộ của các Mobile Agent Các Agent có thể được gửi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn tin ngay
cả khi người dùng ngắt kết nối Sau đó, khi nguồn tin có sự thay đổi , Agent sẽ quay
về báo cho chủ nhân
1.7.4 Đàm phán
Bên canh việc tìm kiếm cơ sở dữ liệu và file, các Agent còn thu thập thông tin bằng cách tương tác với các Agent khác Ví dụ nếu muốn lập kế hoạch gặp gỡ một số
Trang 36Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
người, chỉ cần gửi một Agent tương tác với các Agent đại diện muốn gặp Các Agent
để tìm ra chuyến bay có giá rẻ nhất và thời gian thích hợp, đặt chỗ và thanh toán với số Credit Card của User
Đàm phán trong các giao dịch Thương mại điện tử cũng có thể ứng dụng công nghệ Mobile Agent Ví dụ có một User muốn mua một chiếc xe, sở thích của chủ nhân – giá cả và cách thức trả giá, phương thức thanh toán, … được chuyển vào Agent và Agent được chuyển đến đến Host sàn giao dịch mua, bán xe ô tô Ở đó, Agent sẽ mặc
cả với Agent của Host để tìm mua chiếc xe theo yêu cầu của chủ nhân
1.7.6 Giải trí
Trong kịch bản, các Agent đại diện cho người chơi Các Agent đua tranh với nhau nhân danh các người chơi Mỗi người chơi sẽ lập một chiến lược Agent, sau đó gửi Agent đến Host game Nếu Host game đang thực hiện trên một máy tính ở LasVegas thì các Agent cũng có thể chơi tiền thật
1.7.7 Thương mại điện tử
Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao dịch trong kinh doanh trên mạng Một giao dịch có thể bao gồm sự thương lượng với các thực thể
ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi Vì thế công nghệ Mobile Agent là một giải pháp rất hấp dẫn cho lĩnh vực này
1.7.8 Hỗ trợ các thiết bị di động
Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên Mobile Agent với khả năng di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin ) rồi trả kết quả về sẽ là một giải pháp tốt cho người dùng các thiết bị di động
Trang 37Kết luận chương:
Chương này đã đề cập đến các khái niệm cơ sở của mobile agent, đó là các agent có thêm đặc tính di động Điều này làm cho các mobile agent có khả năng di chuyển khắp nơi trong mạng để thực hiện các tác vụ của mình Mobile agent là đối tượng phần mềm có các đặc tính dùng để phần biệt với các đối tượng khác đó là: tự trị, hướng đích, đối ứng và duy trì liên tục
Qua phân tích và so sánh mô hình mobile agent và mô hình clien/server khi xây dựng các ứng dụng phân tán, chúng ta có thể thấy được vai trò rất lớn của mô hình mobile agent trong việc cách mạng hóa trong việc thiết kế và phát triển các hệ thống phân tán Mobile agent vượt qua hai rào cản cố hữu của mô hình client /server đó là tăng cường tính mềm dẻo của các dịch vụ, hỗ trợ các thao tác có kết nối hay bị ngắt Chính vì vậy mà mobile agent mang đến nhiều lợi ích như: giảm tải mạng, khắc phục
độ trễ, thi hành tự trị và không đồng bộ
Các lợi ích này càng được khẳng định qua các ứng dụng dựa trên mobile agent như:
- Thu thập thông tin phân tán
- Thương mại điện tử
- Quản trị hệ thống mạng
- Tìm kiếm, lọc, kiểm tra dữ liệu
- Đàm phán, đặt hàng
- Hỗ trợ các thiết bị di động
Trang 38Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 2: NHỮNG VẤN ĐỀ BẢO MẬT TRONG MOBILE AGENT 2.1 Đặt vấn đề
Vấn đề bảo mật là một trong những nhân tố quan trọng của công nghệ mobile agent Giống như các chương trình được tải về từ mạng, mobile agent là mối đe dọa tiềm tàng cho bất kỳ hệ thống nào Không những thế, chúng còn được trưng ra bởi các
hệ thống chứa chúng, một tính huống chưa được giải quyết bởi các hệ thống an toàn truyền thống Sự thiếu vắng một cơ chế an toàn đơn giản nhưng toàn diện sẽ làm người dùng không mặn mà cho việc sử dụng các agent cũng như cho các agent thi hành trên các máy tính của họ Từ đó việc triển khai các ứng dụng của mobile agent sẽ không được mở rộng Phần này, sẽ trình bày về vấn đề bảo mật trong mobile agent
2.2 Các phương thức tấn công trong mobile agent
Nói chung, chúng ta có thể chia các dạng tấn công đối với agent và các máy chứa chúng thành hai loại chính:
- Tấn công tiêu cực
- Tấn công tích cực
Tấn công tiêu cực không làm thay đổi các agent và các thông tin khác Trong khi đó tấn công tích cực tác động vào agent Với tấn công tích cực, chúng ta có thể dò ra những gì xảy ra cho agent Trong khi không thể làm như vậy đối với dạng tấn công tiêu cực
2.2.1 Các dạng tấn công tiêu cực
Các dạng tấn công tiêu cực thường tấn công vào sự liên lạc giữa các hệ agent và các agent đang được di chuyển trên mạng Bởi vì không có sự thay đổi nào đối với các agent nên các dạng tấn công này thường khó dò ra manh mối Để tự bảo vệ mình, người sử dụng phải sử dụng mật mã Ta hãy xem xét hai dạng tấn công tiêu cực sau:
Nghe trộm: Loại tấn công này thường sử dụng một chương trình gọi là máy dò
liên lạc Một máy dò sẽ theo dõi các thông tin được trao đổi giữa các hệ agent
và bằng cách đó đoạt các agent và các thông điệp có thể chứa các thông tin quan trọng Trong trường hợp này chúng ta nói rằng thông tin đã bị khám phá
qua việc theo dõi sự liên lạc
Trang 39Chuyến bay đi
Hình 2.1: Dạng nghe trộm
Phân tích sự chuyển động: Có thể chúng ta sẽ nghĩ rằng thật dễ để đề phòng
sự nghe trộm bằng cách sử dụng agent đã được mã hóa Dù kỹ thuật này có thể
đủ dùng cho hầu hết các trường hợp, các dạng tấn công tiêu cực vẫn còn rất hiệu quả Phân tích sự chuyển động là một biến thể thông mình của nghe trộm, cho phép các kẻ phá hoại phân tích các mẫu của các agent được trao đổi giữa các hệ agent (ví dụ như những thay đổi trong số lượng sự luân chuyển, hay những thay đổi về tần suất của các agent đến và đi), có thể cho phép xây dựng những giả thiết nào đó dựa trên các mẫu này Loại tấn công này hiệu quả thậm
chí ngay cả với nội dung đã được mã hóa
2.2.2 Các dạng tấn công tích cực
Các dạng tấn công tích cực chứa đựng nhiều nguy cơ đe dọa sự an toàn trải từ những thay đổi đơn giản dữ liệu của agent tới việc đưa các agent phá hoại vào các server Sau đây là một số kiểu tấn công tích cực:
Truy cập bất hợp pháp: Đây là trường hợp một agent truy cập các thông tin
không được cho phép Điều này có thể xảy ra nếu agent giả dạng như là người dùng được tin tưởng hay nó được thi hành trên một môi trường không an toàn
Ví dự: Một agent được viết bằng ngôn ngữ lập trình C, nó có thể sử dụng các phép toán số học trên có trỏ để truy cập bất kỳ vị trí bộ nhớ nào Agent không chỉ lấy các dữ liệu riêng tư từ máy đó và các agent trên máy đó mà còn can thiệp vào dữ liệu đó nữa
Giả mạo: Đây là trường hợp một thực thể giả vờ là một thực thể khác
Một ví dụ điển hình đó là: agent thâm nhập vào một server giả mạo danh nghĩa một cá nhân hay một tổ chức tin tưởng Nếu nó thành công trong việc đánh lừ
Trang 40Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
được server này nó có thể sử dụng các dịch vụ miễn phí và ăn cắp các thông tin
bí mật dành riêng cho các thông tin thực thể được tin tưởng
Chuyến bay đi tp
Hồ Chí Minh
Kẻ phá hoại giả danh bạn
Chuyến bay đi tp
Hồ Chí Minh
Hình 2.2: Dạng giả mạo
Trojan: Trojan là một agent mà được thi hành bởi một người dùng hợp pháp
nhưng lại làm những việc khác với những gì người dùng dự định Thủ phạm có thể đơn giản tạo và có thể tấn công vào một agent vô tội trong thực tế gây hại
cho người dùng của nó
Chuyến bay đi
Agent đặt chỗ với kẻ xâm
nhập Tạo ra Kẻ phá hoại
Hình 2.3: Dạng Trojan
Sự sửa đổi: Đây là trường hợp một agent hay một thông điệp giữa hai hệ agent
được xóa hay bị thay đổi trong khi di chuyển Đặc biệt, bất kỳ máy ghé trên lộ trình bị thay đổi trong khi di chuyển Đặc biệt, bất kỳ máy nào ghé trên lộ trình của agent có thể tước dữ liệu được thêm vào bởi máy trước đó Bất kỳ thông tin nào bị thay đổi trong những tình huống không được mong đợi như vậy có thể biến đổi một agent tốt thành một agent gây hại, hay đơn giản hơn là có thể trả
về kết quả sai lệch