Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
1,7 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN XUÂN VINH PHUƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ PHÂN TÍCH THIẾT KẾ AN NINH HỆ THỐNG LUẬN VĂN THẠC SĨ Hà Nội - 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN XUÂN VINH PHUƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ PHÂN TÍCH THIẾT KẾ AN NINH HỆ THỐNG Ngành : Công nghệ thông tin Chuyên ngành : Công nghệ phần mềm Mã số : 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Trương Ninh Thuận Hà Nội - 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN XUÂN VINH PHUƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ PHÂN TÍCH THIẾT KẾ AN NINH HỆ THỐNG LUẬN VĂN THẠC SĨ Hà Nội - 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN XUÂN VINH PHUƠNG PHÁP HƯỚNG ĐỐI TƯỢNG VÀ PHÂN TÍCH THIẾT KẾ AN NINH HỆ THỐNG Ngành : Công nghệ thông tin Chuyên ngành : Công nghệ phần mềm Mã số : 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Trương Ninh Thuận Hà Nội - 2011 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục DANH SÁCH HÌNH VẼ DANH SÁCH BẢNG DANH SÁCH VÍ DỤ MÃ Chương MỞ ĐẦU 1.1.Lý chọn đề tài tên đề tài 1.1.1 Mục đích nhiệm vụ 1.1.2 Đối tượng phạm vi nghiên cứu 1.1.3 Phương pháp nghiên cứu 1.2.Ý nghĩa khoa học thực tiễn luận văn 1.3.Bố cục luận văn 10 Chương KIẾN THỨC TỔNG QUAN 13 2.1.Phương pháp phân tích thiết kế hệ thống 13 2.1.1 Phương pháp hướng chức 13 2.1.2 Phương pháp hướng đối tượng 14 2.2.Phân tích an ninh hệ thống 20 2.2.1 Đặc điểm an ninh hệ thống cung cấp thông tin Internet 23 2.2.2 Một số mối quan tâm an ninh 24 2.2.3 UMLSec 25 Chương GIỚI THIỆU BÀI TOÁN 27 3.1.Lý lựa chọn nội dung toán 27 3.1.1 Lý lựa chọn 27 3.1.2 Nội dung toán 27 3.2.Mơ hình hóa nghiệp vụ hệ thống 28 3.2.1 Các tác nhân tham gia hệ thống 28 3.2.2 Các khối nghiệp vụ hệ thống 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 3.2.3 Biểu đồ trường hợp sử dụng biểu đồ hoạt động 31 3.3.Biểu đồ triển khai hệ thống 34 3.4.Phân tích vấn đề an ninh hệ thống 34 Chương GIẢI PHÁP PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT AN NINH HỆ THỐNG 45 4.1.Xác định phạm vi mối quan tâm an ninh 45 4.1.1 Danh sách mối quan tâm an ninh 46 4.1.2 Đề xuất biểu diễn mối quan tâm an ninh 47 4.2.Biểu diễn mối quan tâm an ninh biểu đồ UML 47 4.2.1 Đưa dấu đặc trưng an ninh vào biểu đồ trường hợp sử dụng 48 4.2.2 Đưa dấu đặc trưng an ninh vào biểu đồ hoạt động 48 4.2.3 Định nghĩa sách an ninh 48 4.2.4 Thiết kế lớp diễn đạt mối quan tâm an ninh 56 4.3.Giải pháp cài đặt mối quan tâm an ninh 56 4.3.1 Giới thiệu công nghệ AOP Java annotation 56 4.3.2 Sử dụng AOP mối quan tâm an ninh 60 4.4.Một số chi tiết cài đặt chương trình 62 Chương KẾT LUẬN 65 5.1.Những đóng góp luận văn 65 5.2.So sánh với số cơng trình liên quan 66 5.3.Những hạn chế luận văn 67 5.4.Các hướng nghiên cứu 68 Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh sách hình vẽ 2.1 Phân rã chức hệ thống 14 2.2 Các đối tượng tham gia tạo nên chức 15 2.3 Biểu đồ hoạt động 17 2.4 Biểu đồ trường hợp sử dụng 19 2.5 Biểu đồ lớp mức phân tích 20 2.6 Biểu đồ lớp mức thiết kế 22 2.7 Một ví dụ UMLsec 26 3.1 Sơ lược hoạt động nghiệp vụ hệ thống 29 3.2 Biểu đồ trường hợp sử dụng cho khối MS 35 3.3 Biểu đồ trường hợp sử dụng cho khối LI 36 3.4 Biểu đồ trường hợp sử dụng cho khối LP 37 3.5 Biểu đồ trường hợp sử dụng cho khối RE 38 3.6 Biểu đồ hoạt động trường hợp sử dụng MS01_01 39 3.7 Biểu đồ hoạt động trường hợp sử dụng MS01_02 40 3.8 Biểu đồ hoạt động trường hợp sử dụng MS01_03 41 3.9 Biểu đồ hoạt động trường hợp sử dụng MS01_04 42 3.10 Biểu đồ hoạt động trường hợp sử dụng MS01_05 43 3.11 Biểu đồ triển khai hệ thống 44 4.1 Biểu đồ trường hợp sử dụng cho khối MS thêm dấu đặc trưng an ninh 49 4.2 Biểu đồ trường hợp sử dụng cho khối LI thêm dấu đặc trưng an ninh 50 4.3 Biểu đồ trường hợp sử dụng cho khối LP thêm dấu đặc trưng an ninh 51 4.4 Biểu đồ trường hợp sử dụng cho khối RE thêm dấu đặc trưng an ninh 52 4.5 Biểu đồ hoạt động MS01_03 thêm dấu đặc trưng an ninh 53 4.6 Biểu đồ hoạt động MS01_04 thêm dấu đặc trưng an ninh 54 4.7 Biểu đồ hoạt động MS01_05 thêm dấu đặc trưng an ninh 55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 4.8 Biểu đồ lớp biểu diễn quan tâm an ninh 57 4.9 Ví dụ kế hoạch vận chuyển 63 4.10 Ví dụ xem hóa đơn cơng ty khác 63 4.11 Ví dụ xem hóa đơn bị từ chối 64 Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh sách bảng 1.1 Bảng đối chiếu thuật ngữ Anh-Việt 11 1.2 Bảng từ viết tắt 12 2.1 Một số ký hiệu biểu đồ hoạt động 18 2.2 Một số ký hiệu biểu đồ trường hợp sử dụng 18 2.3 Một số ký hiệu biểu đồ lớp 21 2.4 Một số dấu đặc trưng UMLsec 25 2.5 Mơ hình đối phương 25 3.1 Bảng tác nhân hệ thống 30 3.2 Các khối nghiệp vụ 3.3 Bảng chia nhỏ khối nghiệp vụ 32 3.4 Danh sách trường hợp sử dụng 32 3.4 Danh sách trường hợp sử dụng 33 3.4 Danh sách trường hợp sử dụng 34 4.1 Bảng mối quan tâm an ninh 47 4.2 Bảng dấu đặc trưng diễn đạt mối quan tâm an ninh 48 4.3 Định nghĩa sách an ninh 52 4.4 Định nghĩa bảng CSDL mối quan tâm an ninh 62 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh sách ví dụ mã 4.1 Thực chuyển khoản 58 4.2 Thực chuyển khoản có quản lý giao dịch 58 4.3 Định nghĩa lớp trừu tượng khai báo giao dịch 59 4.4 Thực chuyển khoản quản lý giao dịch qua AOP 60 4.5 Định nghĩa mối quan tâm điểm cắt 61 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 57 Hình 4.8: Biểu đồ lớp biểu diễn quan tâm an ninh Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 58 lập trình đại Cơng nghệ AOP cho phép xen xử lý đơn thể (aspect module) vào luồng xử lý đơn thể khác Việc trình bày đầy đủ AOP nằm phạm vi luận văn này, nên xem xét qua ví dụ Trong hệ thống ngân hàng, luồng xử lý đơn thể chuyển tiền là: kiểm tra số tồn thực trừ số tài khoản nguồn; thực cộng số tài khoản đích Một ví dụ mã chương trình 4.1: Ví dụ mã 4.1: Thực chuyển khoản void t r a n s f e r ( Account fromAcc , Account toAcc , throws Ex cep ti on { i f ( fromAcc g e t B a l a n c e ( ) < amount ) { throw new I n s u f f i c i e n t F u n d s E x c e p t i o n ( ) ; } fromAcc withdraw ( amount ) ; toAcc d e p o s i t ( amount ) ; int amount ) } Tuy nhiên, bên cạnh luồng xử lý trên, có nhiều thao tác khác phải thực hiện, ví dụ đơn giản ghi nhật ký, đảm bảo giao dịch khơng bị ngắt qng Ví dụ: sau thực kiểm tra trừ tài khoản nguồn thành công, hệ thống bị lỗi, cộng tài khoản đích, kết số tiền bị tài khoản nguồn mà không thấy tài khoản đích Nếu sử dụng kỹ thuật lập trình bình thường, phải xen vào đoạn mã thực giao dịch, quản lý giao dịch, phục hồi giao dịch gặp lỗi, ví dụ 4.2 Ví dụ mã 4.2: Thực chuyển khoản có quản lý giao dịch void t r a n s f e r ( Account fromAcc , Account toAcc , int amount ) throws Ex cep ti on { transactionManager begin ( ) ; i f ( fromAcc g e t B a l a n c e ( ) < amount ) { Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống throw new I n s u f f i c i e n t F u n d s E x c e p t i o n ( ) ; } try { fromAcc withdraw ( amount ) ; toAcc d e p o s i t ( amount ) ; } catch ( Exc ep tio n e ) { 10 transactionManager r o l l b a c k ( ) ; 11 12 } 13 t r a n s a c t i o n M a n a g e r commit ( ) ; 14 59 } Trong ví dụ mã 4.2, người lập trình phải tự lo việc thêm đoạn quản lý giao dịch, người lập trình quên việc kiểm thử khó để phát lỗi Ngồi ra, người lập trình thêm mã quản lý giao dịch vào chương trình, mức phân tích mức thiết kế, người phân tích, thiết kế phải đề cập khía cạnh kỹ thuật vào phân tích, thiết kế Lập trình hướng khía cạnh (AOP) cho phép ta giải toán quản lý giao dịch toán tương tự, cách tồn cục, mà khơng phải thêm vào đoạn mã rải rác chương trình Xét mặt nghiệp vụ chương trình chuyển tiền, việc đảm bảo giao dịch thành công nhiệm vụ hệ thống tảng (framework), chương trình Để giải việc quản lý giao dịch trên, ta sử dụng cơng nghệ AOP đóng gói tất lớp xử lý nghiệp vụ thành giao dịch (transaction) Các lớp thể nghiệp vụ kế thừa từ lớp AbstractBLogic (business logic) lớp khai báo giao dịch annotation, ví dụ mã 4.3 Ví dụ mã 4.3: Định nghĩa lớp trừu tượng khai báo giao dịch @ T r a n s a c t i o n a l ( r o l l b a c k F o r=j a v a l a n g E xce pti on c l a s s } abstract c l a s s Abst ractBLogi c { } Như vậy, lớp kế thừa từ lớp AbstractBLogic đối tượng lớp đặt vào bên giao dịch Và có ngoại lệ (exception) xảy tảng quản Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 60 lý giao dịch tự động hủy giao dịch (rollback) Cụ thể ta có ví dụ mã 4.4 Trong ví dụ mã 4.4, nội dung mã khơng có thay đổi, việc kế thừa lớp xử lý giao dịch từ AbstractBLogic để giúp cho tảng AOP xen vào mã xen vào mã quản lý giao dịch Ví dụ mã 4.4: Thực chuyển khoản quản lý giao dịch qua AOP c l a s s BankTransferBLogic extends Abst ractBLogi c { public void e x e c u t e ( Account fromAcc , Account toAcc , int amount ) throws Ex cep ti on { i f ( fromAcc g e t B a l a n c e ( ) < amount ) { throw new I n s u f f i c i e n t F u n d s E x c e p t i o n ( ) ; } fromAcc withdraw ( amount ) ; toAcc d e p o s i t ( amount ) ; } 10 } Với việc sử dụng kỹ thuật AOP, ta xen mối quan tâm an ninh vào mã chương trình cách nhẹ nhàng có hệ thống 4.3.2 Sử dụng AOP mối quan tâm an ninh Việc đưa mối quan tâm an ninh vào chương trình thơng qua AOP giải pháp nhiều tác giả nghiên cứu [4] [5] Trong toán chúng ta, từ biểu đồ hoạt động trường hợp sử dụng, ta xác định điểm cắt (pointcut) mà mối quan tâm an ninh xen vào Chúng ta xây dựng quy ước đặt tên lớp sau: • Mỗi nghiệp vụ người dùng thường gồm số bước bước xuất yêu cầu (vật lý) gửi tới máy chủ Ví dụ, với trường hợp MS01_01 yêu cầu là: Hiển thị hình (MS01_01_01) Gửi liệu lên (MS01_01_02) Hiển thị lại hình sau sửa liệu (MS01_01_01) Luận văn thạc sĩ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương pháp hướng đối tượng phân tích thiết kế anh ninh hệ thống 61 Để rõ u cầu ta nhìn vào bảng mơ tả trường hợp sử dụng Mỗi mũi tên vẽ từ tác nhân sang hệ thống yêu cầu Tuy nhiên, ta quy ước yêu cầu hiển thị hình trứoc sau số, u cầu hiển thị hình • Các lớp thực nghiệp vụ người sử dụng đặt tên UC_*BLogic, yêu cầu lớp • Trong lớp có phương thức tên execute Ví dụ cụ thể ta có MS01_01_01BLogic tên lớp execute tên phương thức Với quy ước vậy, ta định nghĩa điểm cắt ví dụ mã 4.5 Ví dụ mã 4.5: Định nghĩa mối quan tâm điểm cắt @Aspect abstract c l a s s S e c u r i t y A s p e c t { @Before ( " bean (∗ BLogic ) " public void check ( J o i n P o i n t j p ) { Object t a r g e t = j p g e t T a r g e t ( ) ; Class