ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NG N Đ T R T

KHOÁ LUẬN TỐT NGHIỆ ĐẠI HỌC HỆ CHÍNH QUY

Ngành: thông tin

HÀ NỘI - 2010

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NG N Đ T R T

KHOÁ LUẬN TỐT NGHIỆ ĐẠI HỌC HỆ CHÍNH QUY

Ngành: thông tin

Cán bộ ướng dẫ T T ư N T ậ

NỘ -2010

C

C 5 a C

thông tin ,

Sinh viên

P

p

(MDS) nh mô hình thi t k h th ng cùng v i các yêu c u an ninh c

các công c t ng t o ra các ki n trúc ki m soát truy c p.

t -

.

................................................................................................. 1

2 ................................................................................. 5

2.1. ..................................................................................................... 5

2.2. ....................................................................... 5

2.3. Model Driven Architecture ........................................................................... 8

2.4. Role-Based Access Control .......................................................................... 9

2.5. ................................................................................. 10

2.5.1. Enterprise JavaBeans ............................................................................. 10

2.5.2. Enterprise Services for .Net .................................................................. 12

3 : ...................... 13

3.1. ..................................................................................... 14

3.2. ............................................................................................ 16

4 .................. 20

4.1. ........................................................................................ 21

4.1.1. ........................................... 21

4.1.2. .............................................. 26

4.2. .................................................................................................. 29

4.3. ........................................................................................ 30

4.3.1. ........................................... 30

4.3.2. ............................................... 31

4.3.3. .................................................. 32

4.4. ............................................................................................ 33

4.4.1. .............................................................................................. 33

4.4.2. ........................................................................................... 33

4.4.3. ................................................................................... 34

4.4.4. ..................................................................................... 35

4.5. ....................................................................................... 37

4.5.1. .......................................................................................... 37

4.5.2. : .................................................................................. 37

4.5.3. : .................................................................................... 38

4.6. ......................................................................................... 38

4.6.1. .................................................................................. 38

4.6.2. ................................................................................... 39

4.6.3. ............................................. 40

4.6.4. ......................................... 41

4.6.5. ................................................... 42

4.6.6. .................................................................................................... 45

4.6.7. Test ........................................................................................................ 56

4.7. ....................................................................................................... 62

...................................................................................................................... 63

........................................................................................................ 64

..................................................................................................... 65

Vi t Vi Gi ĩ

tắt

UML Unifiel Modeling Language Ngôn ng

MDA Model Driven Architecture

MDS Model Driven Security

RBAC Role-Based Access Control

EJB Enterprise JavaBeans M

trong Java

OCL Object constraint language

MOF Meta-Object Facilty

ư 1 G ớ

Xây

.

Xâ . Tuy nhiên, v t

ph

-hoc

ôi ắ

-

. H 3 :

-

- -

1

: (Model Driven Architecture)

(Model driven security - MDS).

.

2 3

(access control)

nh

công khai

dialect), .

truy nh

2

2:

Ta cho

-

2

dialects( ph )

ki

se JavaBeans (EJB) .NET cho ĩ

3

t

Th hai, b ng cách tích h p an ninh và các mô hình thi t k h th

― ‖ ch xu t hi n tùy ch i s d ng phù h p v i các chính

sách b o m c hóa.

ĩ c

4

ư 2

:

Unifiled Modeling Language (ngôn

-

2.1. Đ

C

:

-

-

-

2.2. N

UML h tr các mô t v c u trúc và hành vi c a các h th ng s d ng các lo i mô hình ph n t khác nhau và các lo i bi

5

Các khía c nh c u trúc c a h th c b ng cách s d ng các l p

Các hành vi c a m t l p có th

3:

3 này cho th y c u trúc c a

ng d ng l p 3 : M t

cu c h p có các thu ngày bắ u (start: date) và th i gian d ki n

(duration: time). Ch s h i tham gia, và v trí c a cu c h c nh b ng

cách s d : :

:

Các hình ch nh i di i di n cho quá trình chuy i. Quá trình chuy i có th c dán nhãn v i tên c a các s ki n gây lên và tên c ng ( c hi n trong quá trình chuy

6

4 Trong ListMeetings, m i

s d ng có th duy t các cu c h p theo l ch trình và có th ắ

4:

p m t ngôn ng c t

-

3 :

Context Meeting inv:

seft.participants-> includes(seft.owner)

7

―seft‖

u ― ‖

―->‖

ĩ

Stereotypes tagged values

ĩ

2.3. Model Driven Architecture

xu p c nh và phát tri n nh ng ng d

ĩ

ngôn ng mô hình hóa có kh th c hóa ĩ

c kh e), các khía c nh h th ng (ch ng h o m t), ho c các công ngh

c th có ba l a ch n

thay th nh ngôn ng ĩ

stereotypes and

tagged values -

ng . 3

ĩ

8

ĩ

n a, các giao di n cho truy v n và thao tác các siêu d

li u gi th c a các ngôn ng c quy nh b ng cách s d ng m t c u hình UML.

p nh ng l i th xây d ng các công c MDA

b ng cách tách bi t các cú pháp tr ng c a ngôn ng mô hình hóa t

cú pháp c th c a trên UML, ta có th m t cách súc tích, c ti p s d xây d ng mô hình.

2.4. Role-Based Access Control

:

AC  Users x Permissions

p (u, p) ∈ AC.

Role-Based Access Control (RBAC)

2 : user assignment - Permissions assignment -PA):

UA ⊆ Users × Roles, PA ⊆ Roles × Permissions

M i quan h ki m soát truy c h c a các m i

quan h :

= ◦

9

―◦‖

:

AC = {(u, p) ∈ Users × Permissions|∃ role ∈ Roles. (u, role) ∈ UA ∧ (role, p) ∈ PA}

―≥‖ ĩ

= ◦ ≥ ◦

―≥‖

ĩ

ĩ

Vi t h th ng c p b c, gi ng

phân chia các m i quan h ĩ

n hóa vi c qu n lý ki m

soát truy c p khi cung c p m t thu n ti n và tr c quan tr ng

có th g ng v u t ch c th c t c a công ty.

2.5. ậ

hai Enterprise Services for

.NET

2.5.1. Enterprise JavaBeans

.

10

Thông tin c n khai là nh ng tài li

3 :

M t thành ph n th c th có

th n b n giao di n, có th c phân lo i theo hai chi u.

n ĩ

u khi n truy c p c c d

cung c p m cho kha m soát truy c p, các chính sách ki m soát truy c p

c c tri t thành ph n EJB. Các h th ng b o m t

con c a máy ch ng d u trách nhi m th c thi chính sách này thay m t cho

các thành ph ĩ

:

Supervisor

Meeting

Remote

cancel

ĩ method-permission l role-name

11

method.

(ejb-name) method-intf method-

name method-params).

2.5.2. Enterprise Services for .Net

Microsoft Enterprise Services for .NET h tr s phát tri n c a các thành ph n phía

máy ch d a trên n n t ng .NET. B ng cách cung c p các d ch v qu i, và

The Enterprise Services

Supervisor

:

[SecurityRole("Supervisor")]

public void cancel(){...}

12

ư 3 ộ

SecureUML

5

3 :

- - -

.

RBAC

Information flow

5:

13

3.1. C ư

6 ng c

supertype Subject chung.

6: SecureUML metamodel

ĩ : i di n cho m t th c th h th ng, gi t i ho c m t Group là m t t p h SubjectGroup

14

SubjectAssignment.

Permission

ActionAssignment

PermissionAssignment ắ

RoleHierarchy

AuthorizationConstraint là m t v ng ắn li n v i m

(permisssion)

Tài nguyên (resource) là l c a t t c các y u t mô hình trong các ngôn ng

th

i ngu n tài

nguyên cung c p m t ho c nhi

ResourceAction

(aciton subtypes) : AtomicAction và CompositeAction.

ng c p th p có th c tr c ti p ánh x t ng c a

n n t ng m c l

i tác tr c ti p

trên n n t ng m c tiêu. c sắp x ctionHierarchy và c s d ng c a nhóm.

ĩ n u này mang l i m ng ĩ nh các

ng c ― ‖

15

atomicactions.

i tài nguyên c th , nh ng c a , và h

th ng c p b t ph n c a m SecureUML.

3.2.

p p

: cureUML

UML metamodel type and stereotype SecureUML metamodel type

Class «User» User

Class «Group» Group

Dependency «SubjectGroup» Dependency

SubjectGroup «SubjectAssignment» SubjectAssignment

Class «Role» Role

Generalization between «Role» RoleHierarchy

classes with stereotype

AssociationClass «Permission» Permission, PermissionAssignment,

ActionAssignment, AuthorizationConstraint, and ConstraintAssignment

16

B ng 1 tóm tắt c a các ánh x gi a các y u t c a metamodel SecureUML và UML.

ĩ

Bây gi chúng ta minh h a cú pháp c th ng t i ví d

hình 7 o m t: ch có ch s h u c a m t cu c h p có

th i d li u cu c h p và h y b ho c xóa các cu c h p .

<> và m i quan h th a k gi nh b ng cách s d ng m t

m i quan h t ng quát UML.

7: eUML

V ĩ ĩ ĩ

ĩ >> >>

17

7

c

stereotype <>

(Permissi

>>

Nh t s cho phép có th ch ng

trên tài nguyên g c ho i nguyên con c

c

― ‖

i

18

u này a trong mô hình và không nh

ắ ― ‖

ĩ thu

(update) >> tên ―Meeting‖

i

Hai thu nh s c p nh t (bao g m h y b ) và

xóa m t cu c h p.

n:

caller.name = self.owner.name

ĩ

19

ư 4.

:

- admin :

+

- (CourseManager):

+ X

.

+ X t, xo

ra.

- :

.

20

4.1.

4.1.1. ư

Hình 8: c use case cho admin và gi ng viên

- : :

Hình 9: Usecase qu n lý i dùng

21

:

 :

Tên ca s d ng:

M :

:

: 2:

3:

A1: Ad

:

2: 2

 :

Tên ca s d ng:

M :

:

: 2: :

3: : : 2:

22

 :

Tên ca s d ng:

M :

:

: 2:

: 3:

4:

5:

:

:

:

2:

2:

:

2: 4

 :

Tên ca s d ng:

M :

: 2: : 3: 4:

23

:

:

2: ng

-

:

Hình 10: Use case qu n lý khóa h c

- :

 :

Tên ca s d ng:

M :

:

: 2: 3: A1: Admin : : c

24

2: 2

 :

Tên ca s d ng:

M :

: :

2: :

3:

:

1:

A1: K

2:

2:

:

2: :

 Useca :

Tên ca s d ng:

M :

: : 2: : 3:

25

:

4: 5:

C1:

: :

2:

2: B1: anager nh

2: :

3:

C1:

2: 4

 :

Tên ca s d ng:

M :

:

2: : 3:

4:

:

: 2:

4.1.2. ư case cho ườ - :

26

Hình : c Use cas i dùng chung

-

 :

Tên ca s d ng:

M :

:

:

:

2:

3:

:

:

2:

27

 :

Tên ca s d ng:

M :

:

:

:

2: vi

3:

:

A1:

A2:

 :

Tên ca s d ng:

M :

:

:

A1:

28

2:

:

:

A1:

A2:

4.2. ớ

:

- : - : -

Hình 12: Bi u l p

29

4.3.

4.3.1. ườ

3:

Trong tr ng m i s d ng có th duy

và có th ắ

trong List

User

User

30

4.3.2.

Hình 14: Bi u tr ng thái cho qu n lý khóa h c

Trong tr ng , m i s d ng có th duy

th ắ

EditCourse

CreateCourse

Course

.

31

4.3.3.

5:

Trong tr ng m i s d ng có th và có th ắ

Post

Post

32

4.4.

4.4.1. Đ ậ

6:

4.4.2. user

- :

7:

33

-

8: thông tin

4.4.3.

-

9:

34

-

2 : thông tin

4.4.4. t

- :

2 :

-

35

22:

36

4.5. ộ

4.5.1.

23:

4.5.2.

24:

37

4.5.3.

25:

4.6. T ậ

4.6.1.

3 :

- :

- :

- :

:

38

26:

4.6.2.

3

- :

- Course :

- SinhVien:

ĩ

27:

39

4.6.3. ư

- :

28: chung

-

29:

-

3 :

-

40

3 :

4.6.4. ộ

- :

+) Xem thông tin user: ViewUser

:

:

:

-

+) Xem thông tin : ViewCourse

: CreateCourse

: DeleteCourse

: Course

:

- :

:

: DeletePost

:

:

41

4.6.5. T er

- Per

32:

- Permission cho Admin:

42

33:

: (Caller)

43

- Permission cho CourseManager:

34:

:

:

- Premission cho SinhVien

35:

44

4.6.6.

public class CourseController : Controller {

public ActionResult Create()

{ if (HttpContext.User.Identity.Name.Equals("")) return View("DenyCreateCousre"); else{ int roleID = repo.GetUser(HttpContext.User.Identity.Name).RoleID; if (repo.GetRole(roleID).CreateCourse==0) return View("DenyCreateCousre"); else return View(); } } }

CourseManager

36:

45

5 : 2 7 9

3 3 CourseManager 2

37:

38:

39:

46

4 :

public ActionResult Edit(int id) { if(isOwnerCourse(id)) return View(repo.GetCourse(id)); else return View("DenyEditCourse"); }

:

4 :

47

42:

43:

nh 44:

:

k

:

48

public ActionResult Create()

public class AccountController : Controller { { if (HttpContext.User.Identity.Name.Equals("")) return View("DenyUser"); else { int roleID = repo.GetUser(HttpContext.User.Identity.Name).RoleID; if (repo.GetRole(roleID).CreateUser == 0) return View("DenyUser"); else return View(); } }

45:

46:

49

47:

public ActionResult Edit(string UserID) { if (!HttpContext.User.Identity.Name.Equals("")) {

int roleID = repo.GetUser(HttpContext.User.Identity.Name).RoleID; if (repo.GetRole(roleID).isEditUser()) return View(repo.GetUser(UserID)); else return View("DenyEditUser"); } else return View("DenyEditUser"); }

:

48:

49:

50

50:

CourseManager

public ActionResult createPost(int id){ if (isPost(id)) { return View(); } else{ TempData["Deny"] = ; return RedirectToAction("Details/" + id); } }

:

51

51:

52:

53:

không tham gia

52

public ActionResult EditPost(int id) { if(isEditPost(id)) return View(repo.GetPost(id)); else{ TempData["Deny"] = ; return RedirectToAction("Details/" + repo.GetPost(id).CourseID); } }

54:

55:

53

56:

57:

54

58:

repo.GetRole(repo.GetUser(User.Identity.Name).RoleID).JoinCourse==1)

public ActionResult Join(int id) { if (!User.Identity.Name.Equals("")&& { user currentUser = repo.GetUser(User.Identity.Name); repo.JoinCourse(currentUser.IDD, id); return RedirectToAction("Details/" + id); } else return View("DenyJoin"); }

?

59:

55

4.6.7. Test

:

viên

CourseManager

:

viên

thông tin

:

56

H :

viên

:

CourseManager

:

viên

:

CourseManager

:

viên

:

57

CourseManager

a admin

:

:

viên n

CourseManager

:

Course

:

58

ng

:

: S

CourseManag

59

:

Admin

:

:

CourseManager

60

:

Admin

:

61

4.7. ậ

tôi

62

n –

MDS :

ĩ

ĩ

ĩ c

,

tôi

secureUML

63

ướ

,

? ắ

ban

64

T

[1] David Akehurs fi transformations in a metamodel. In UML 2002 — fi

Language. Model Engineering, Languages, Concepts, and Tools. 5th International

Conference, Dresden, Germany, September/October 2002, Proceedings, volume

2460 of LNCS, pages 243–258. Springer Verlag, 2002.

[2] Gail-Joon Ahn and Ravi S. Sandhu. The RSL99 language for role-based separation of duty constraints. In Proceedings of the 4th ACM Workshop on Role-

based Access Control, pages 43–54. ACM Press, 1999.

[3] Gail-Joon Ahn and Ravi S. Sandhu. Role-based authorization constraints

fi -tion. ACM Transactions on Information and System Security, 3(4):207226,

November 2000.

[4] Gail-Joon Ahn and Michael Eonsuk Shin. UML-based representation of role-

based access control. In 9th IEEE International Workshop on Enabling

Technologies: Infrastructure for Collaborative Enterprises (WETICE 2000), pages

195–200. IEEE Computer Society, June 2000.

[5] Gail-Joon Ahn and Michael Eonsuk Shin. Role-based authorization constraints

fi I I I W

on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE

2001), pages 157–162. IEEE Computer Society, June 2001.

[6] Derek Beyer. C# COM+ Programming. John Wiley & Sons, book and cd-rom

(october 15, 2001) edition, 2001.

[7] Bernhard Beckert, Uwe Keller, and Peter H. Schmitt. Translating the Object

fi -order predicate logic. In Serve Autexier and Heiko fi W : I Y’ 2 volume 02-07 of DIKU technical reports, pages 113–123, 2002.

[9] D. Brewer and M. Nash. The chinese wall security policy. In Proceedings of the

1989 IEEE Symposium on Security and Privacy, pages 206–214. IEEE Computer Society Press, May 1989.

65

[10] Fang Chen and Ravi S. Sandhu. Constraints for role-based access control. In

Proceedings of the 1st ACM Workshop on Role-based Access Control, pages 39–46.

ACM Press, 1996.

[11] Joseph A. Goguen and Jos´e Meseguer. Order-sorted algebra I: equational

deduction for multiple inheritance, overloading, exceptions and partial operations.

Theoretical Computer Science, 105(2):217–273, November 1992.

[12] Richard Hubert. Convergent Architecture: Building Model Driven J2EE Systems with UML. John Wiley & Sons, 2001.

[13] 2 ’ &

2001.

[14] Torsten Lodderstedt, David Basin, and Jürgen Doser, SecureUML: A UML-

Based Modeling Language for Model-Driven Security. Institute for Computer

Science, University of Freiburg, Germany

[15] Richard Monson- 3 ’ &

Associates, 2001.

[16] fi W , and John M. Boone.

Integrity in automated information systems. Technical Report 79-91, National

Computer Security Center, September 1991.

[17] Object Management Group. Meta-Object Facility (MOF ), version 1.4,

2002. http://www.omg.org/technology/documents/formal/mof.htm.

[18] I fi

Language Reference Manual. Addison-Wesley, 1998.

[19] M. von der Beeck. A comparison of statechart variants. In Hans Langmaack,

Willem Paul de Roever, and Jan Vytopil, editors, Formal Techniques in Real- Time and Fault-Tolerant Systems, volume 863 of LNCS, pages 128–148. Springer Verlag, 1994.

66