Tải bản đầy đủ (.pdf) (93 trang)

bảo mật trong mobile agent và ứng dụng trong các giao dịch điện tử

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 93 trang )

1

Số hóa bởi Trung tâm Học liệu


ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG





NGUYỄN THỊ HẢI AN







BẢO MẬT TRONG MOBILE AGENT VÀ
ỨNG DỤNG TRONG CÁC GIAO DỊCH ĐIỆN TỬ










LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
















THÁI NGUYÊN – 2014
2

Số hóa bởi Trung tâm Học liệu


ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG






NGUYỄN THỊ HẢI AN







BẢO MẬT TRONG MOBILE AGENT VÀ
ỨNG DỤNG TRONG CÁC GIAO DỊCH ĐIỆN TỬ





Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 60 48 01



LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
NGƢỜI HƢỚNG DẪN KHOA HỌC : TS. PHẠM THẾ QUẾ














THÁI NGUYÊN – 2014
3

Số hóa bởi Trung tâm Học liệu


LỜ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

4

Số hóa bởi Trung tâm Học liệu


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
5

Số hóa bởi Trung tâm Học liệu


1.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
6

Số hóa bởi Trung tâm Học liệu


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
7

Số hóa bởi Trung tâm Học liệu


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT


STT
Chữ viết tắt
Tiếng Anh
1
ACL
Agent Communication Language
2
ASDK
Aglets Software Development Kit
3
ATP
Agent Transfer Protocol
4
CORBA
Common Object Request Broker Architecture
5
DES
Data Encryption Standard
6
KQML
Knownledge Query and Manipulation Language
7
MA
Mobile Agent
8
MAE
Mobile Agent Environment
9
REV

Remote Evaluation
10
RMI
Remote Method Invocation
11
RPC
Remote Procedure Call
12
SA
Service Agent
13
SSL
Secure Socket Layer
14
TTP
Trusted Third Party
15
US
User Agent

8

Số hóa bởi Trung tâm Học liệu


DANH MỤC CÁC HÌNH

Số hiệu
hình vẽ
Tên hình vẽ

Trang
Hình
1.1.
Sự khác phát triển các phƣơng thức truy nhập từ xa
11
Hình
1.2.
So sánh Client/Server với Mobile Agent
12
Hình
1.3.
So sánh Jini với Mobile Agent
13
Hình
1.4.
Sự khác biệt của Mobile Agents so với RPC, REV,COD
15
Hình
1.5.
Tổng quát kiến trúc Mobile Agent
17
Hình
1.6.
Các thành phần của một hệ thống Mobile Agent
19
Hình
1.7.
Place và Bộ vi xử lý
21
Hình

1.8.
Vòng đời của một Mobile Agent
25
Hình
1.9.
Di chuyển Agent trên mạng
28
Hình
1.10.
Di chuyển lớp của Agent
29
Hình
1.11.
Thông báo kiểu Now
30
Hình
1.12.
Thông báo kiểu Future
30
Hình
1.13.
Thông báo kiểu one - way
30
Hình
1.14.
Mô hình vòng đời và hoạt động
33
Hình
2.1.
Dạng nghe trộm

41
Hình
2.2.
Dạng giả mạo
42
Hình
2.3.
Dạng Trojan
42
Hình
2.4.
Dạng sửa đổi
43
Hình
2.5.
Dạng làm lại
43
Hình
3.1.
Mô hình thƣơng mại điện tử sử dụng mobile agent
59
Hình
3.2.
Sơ đồ hoạt động của hệ thống
61
Hình
3.3.
Tổng quan về hệ thống đấu giá
62
Hình

3.4.
Các dịch vụ bảo mật nền tảng
63
Hình
3.5.
Lớp bảo mật mobile agent
64
Hình
3.6 a.
Giao diện : Chức năng Đặt vé
67
Hình
3.6 b
Giao diện : Chức năng chọn Điểm đi – Điểm đến
67
Hình
3.7 a.
Giao diện : Chức năng Thanh toán
68
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

9


Số hóa bởi Trung tâm Học liệu


MỞ ĐẦ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ử.
10

Số hóa bởi Trung tâm Học liệu


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ó
11

Số hóa bởi Trung tâm Học liệu



khả 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ộ,
12

Số hóa bởi Trung tâm Học liệu


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
(4) Agent di chuyển
(3) Agent di chuyển
Agent
(Mã, dữ liệu,
Hình 1.1 Sự khác phát triển các phƣơng thức truy nhập từ xa

13

Số hóa bởi Trung tâm Học liệu


Server. 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
Client
Server
Agent
Client
Server
Agent
Client
Server
Agent
Thông thƣờng
Client
Server
Mô hình Mobile Agent cơ bản
Hình 1.2 So sánh Client/Server với Mobile Agent
nhập từ xa


14

Số hóa bởi Trung tâm Học liệu


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
Proxy
t
Device
Client
Device
Client
Agent
Device
Agent
Device
15

Số hóa bởi Trung tâm Học liệu



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…









Tower System

Computer A


Internet
Tower System

Computer B
a) Client/Server
Data
Data
Data
Code
Data
Tower System



Internet
Tower System

b) Remote Evalution (REV)
Code
Code
Data
Code
Data
16


Số hóa bởi Trung tâm Học liệu




















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
Tower System

Computer A


Internet
Tower System

Computer B
c) Code On Demand (COD)
Code
Code
Data
Data
Code
Hình 1.4: Sự khác biệt của Mobile Agents so với RPC, REV,COD

Tower System

Computer A


Internet
Tower System


Computer B
d) Mobile Agent (MA)
Data
Code
Data
Code
Data
Code
Data
17

Số hóa bởi Trung tâm Học liệu


bả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
18

Số hóa bởi Trung tâm Học liệu


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 (Goal-
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 .
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
19

Số hóa bởi Trung tâm Học liệu


trong 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
20

Số hóa bởi Trung tâm Học liệu


đị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ý

21

Số hóa bởi Trung tâm Học liệu






1.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.
22

Số hóa bởi Trung tâm Học liệu


- 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:
23

Số hóa bởi Trung tâm Học liệu


Bƣớ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.
24

Số hóa bởi Trung tâm Học liệu


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)



















Host
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
25

Số hóa bởi Trung tâm Học liệu



Mọ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
1.4.2 Tạo Agent
Một Agent đƣợc tạo trong một Place. Việc tạo có thể từ một Agent khác
trong cùng một Place hoặc bởi một Agent ở ngoài Place. Ngƣời tạo Agent phải
có quyền trên Place, thiết lập quyền và ủy nhiệm quyền cho Agent. Ngƣời tạo
Agent cũng cung cấp các tham số ban đầu cho Agent. Lớp định nghĩa cần để
khởi tạo Agent có thể nằm ở Host cục bộ hay Host từ xa, hoặc có thể đƣợc cung
cấp bởi ngƣời tạo. Việc tạo Agent gồm 3 bƣớc:

×