Luận văn Xây dựng và bảo mật hệ thống tích hợp

Tài liệu Luận văn Xây dựng và bảo mật hệ thống tích hợp: Luận văn tốt nghiệp Đề tài: Xây dựng và bảo mật hệ thống tích hợp ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 3 - SVTT: Lê QuangTuyến LỜI CẢM ƠN  Em xin chân thành cảm ơn khoa Tin học Quản lý, trường Đại học Tài chính – Marketing đã tạo điều kiện cho em thực hiện đề tài tốt nghiệp này. Em xin nói lên lòng biết ơn sâu sắc với ThS. Trần Minh Tùng. Xin cảm ơn Thầy đã luôn quan tâm, tận tình hướng dẫn trong quá trình học tập, nghiên cứu và thực hiện đề tài. Em xin chân thành cảm ơn Công ty cổ phần phần mềm BRAVO, anh Nguyễn Lê Quốc Huy đã giúp đỡ em trong quá trình thực tập để thực hiện đề tài tại công ty. Em xin chân thành cảm ơn quý Thầy Cô trong khoa Tin học Quản lý đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu, đã truyền thụ cho em những kiến thức, kinh nghiệm, đã quan tâm dìu dắt và giúp đỡ em trong quá trình học tập cũng như trong thực hiện đề tài này. Con luôn nhớ mãi công ơn của Ông Bà...

pdf154 trang | Chia sẻ: haohao | Lượt xem: 1141 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Xây dựng và bảo mật hệ thống tích hợp, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Luận văn tốt nghiệp Đề tài: Xây dựng và bảo mật hệ thống tích hợp ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 3 - SVTT: Lê QuangTuyến LỜI CẢM ƠN  Em xin chân thành cảm ơn khoa Tin học Quản lý, trường Đại học Tài chính – Marketing đã tạo điều kiện cho em thực hiện đề tài tốt nghiệp này. Em xin nói lên lòng biết ơn sâu sắc với ThS. Trần Minh Tùng. Xin cảm ơn Thầy đã luôn quan tâm, tận tình hướng dẫn trong quá trình học tập, nghiên cứu và thực hiện đề tài. Em xin chân thành cảm ơn Công ty cổ phần phần mềm BRAVO, anh Nguyễn Lê Quốc Huy đã giúp đỡ em trong quá trình thực tập để thực hiện đề tài tại công ty. Em xin chân thành cảm ơn quý Thầy Cô trong khoa Tin học Quản lý đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu, đã truyền thụ cho em những kiến thức, kinh nghiệm, đã quan tâm dìu dắt và giúp đỡ em trong quá trình học tập cũng như trong thực hiện đề tài này. Con luôn nhớ mãi công ơn của Ông Bà, Ba Mẹ đã luôn yêu thương, lo lắng, chăm sóc và nuôi dạy con thành người. Cuối cùng em xin gửi lời cảm ơn đến các anh chị, các bạn đã quan tâm động viên và giúp đỡ em trong quá trình thực hiện đề tài. Mặc dù đã cố gắng hoàn thành trong phạm vi khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự tận tình chỉ bảo của quý Thầy Cô và các bạn. Một lần nữa, em xin chân thành cảm ơn và mong luôn nhận được những tình cảm chân thành nhất của mọi người. TP. Hồ Chí Minh ngày 19 tháng 05 năm 2010 Lê Quang Tuyến ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 4 - SVTT: Lê QuangTuyến NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP  ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... TP.Hồ Chí Minh, ngày tháng 5 năm 2010 Đại diện doanh nghiệp (Ký tên và ghi rõ họ tên, chức vụ) ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 5 - SVTT: Lê QuangTuyến NHẬN XÉT CỦA GIẢNG VIÊN  ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................  Kết quả chấm điểm:………………….  Ghi bằng chữ:………………………... TP. Hồ Chí Minh, ngày tháng 05 năm 2010 ThS. Trần Minh Tùng ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 6 - SVTT: Lê QuangTuyến LỜI MỞ ĐẦU  Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng rộng rãi trong đời sống. Công nghệ thông tin mang lại cho con người rất nhiều hữu ích, đặc biệt là trong lĩnh vực quản lý dữ liệu, truy cập thông tin, tra cứu thông tin… Đối với các tổ chức, doanh nghiệp thì công tác quản lý đòi hỏi ngày càng gọn nhẹ nhưng phải đảm bảo được việc tra cứu, tìm kiếm, lưu trữ thông tin phải được thực hiện một cách nhanh chóng, tiện lợi và phải mang tính chính xác cao nhất. Đứng trước những yêu cầu trên, các tổ chức, doanh nghiệp ngày càng thấy được tầm quan trọng của việc tin học hóa các quy trình, nghiệp vụ liên quan đến hoạt động của mình. Để đáp ứng được nhu cầu thực tế của các tổ chức, doanh nghiệp nhiều công ty đã xây dựng những phần mềm phục vụ cho việc quản lý, kinh doanh cho các tổ chức, doanh nghiệp. Không ngoài mục đích này, chương trình “Xây dựng và bảo mật hệ thống tích hợp” là chương trình được xây dựng nhằm để liên kết các phân hệ con: phân hệ quản lý khách hàng (CRMS), phân hệ quản lý bán hàng (SMS), phân hệ quản lý lương – nhân sự (HMS), phân hệ quản lý kho (StMS), phân hệ quản lý tài sản cố định (FMS) thành một chương trình lớn, thống nhất về dữ liệu, giúp cho các cấp quản lý của các tổ chức, công ty truy xuất, kiểm tra các thông tin một cách nhanh chóng và chính xác. Các thao tác tìm kiếm thông tin, xuất báo cáo thực hiện rất nhanh chóng theo từng yêu cầu của người dùng. Chương trình còn được xây dựng cơ chế bảo mật và phân quyền dữ liệu rất chi tiết, cụ thể, giúp cho nhà quản trị có thể quản lý được người sử dụng theo nhóm người dùng, quản lý dữ liệu thông qua việc cấp quyền cho từng người dùng, từng đối tượng dữ liệu. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 7 - SVTT: Lê QuangTuyến MỤC LỤC  CHƢƠNG I: GIỚI THIỆU ........................................................................................ 14 1. Lý do hình thành đề tài ..................................................................................... 14 2. Mục tiêu của đề tài ........................................................................................... 15 3. Nội dung đề tài ................................................................................................. 16 4. Phạm vi đề tài ................................................................................................... 16 5. Kết quả đạt được .............................................................................................. 18 CHƢƠNG II: CƠ SỞ LÝ THUYẾT ........................................................................ 19 I. Tổng quan về cơ sở dữ liệu SQL Server 2008 ................................................. 19 A. Giới thiệu chung ............................................................................................... 19 B. Một số công cụ mở rộng của SQL SERVER ..................................................... 24 1.View ............................................................................................................... 25 2.Store procedure ............................................................................................. 28 3.Extended store procedure .............................................................................. 30 4.Trigger ........................................................................................................... 31 II. Tìm hiểu về .Net Framework ......................................................................... 32 III. Tổng quan về ngôn ngữ lập trình VB.NET .................................................. 33 IV. Tìm hiểu cơ chế bảo mật và mã hóa dữ liệu................................................. 43 A. Cơ chế bảo mật ................................................................................................. 43 B. Mã hóa dữ liệu .................................................................................................. 45 C. Các thuật toán đề xuất ...................................................................................... 51 1. Thuật toán SHA-1 ......................................................................................... 52 2. Các thuật toán SHA-224, SHA-256, SHA-384 và SHA-512 ......................... 55 3. Thuật toán Tiger ........................................................................................... 59 4. Thuật toán Whirlpool ................................................................................... 63 5. So sánh SHA-1, Tiger, Whirlpool ................................................................. 72 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 8 - SVTT: Lê QuangTuyến V. Tìm hiểu về XML ............................................................................................... 74 A. Giới thiệu .......................................................................................................... 74 B. Những thành phần của một tài liệu XML ......................................................... 75 C. Lược đồ XML (Schema XML) ........................................................................... 76 VI. Tìm hiểu về Power Designer 12.5 .................................................................. 77 A. Giới thiệu chung ............................................................................................... 77 B. Các mô hình dữ liệu trong Power Designer 12.5 ............................................. 78 CHƢƠNG III: PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CƠ SỞ DỮ LIỆU .......... 81 I. Giới thiệu về công ty cổ phần phần mềm BRAVO ......................................... 81 A. Giới thiệu chung ............................................................................................... 81 B. Trụ sở và các chi nhánh ................................................................................... 82 II. KHẢO SÁT HIỆN TRẠNG VÀ NHU CẦU ................................................ 82 A. KHẢO SÁT HIỆN TRẠNG ................................................................................ 82 1. Phần cứng ..................................................................................................... 83 2. Phần mềm ..................................................................................................... 83 3. Mạng ............................................................................................................. 83 4. Dữ liệu .......................................................................................................... 84 5. Nhân sự ......................................................................................................... 84 6. Các quy trình nghiệp vụ ............................................................................... 84 7. Cơ cấu tổ chức .............................................................................................. 86 B. KHẢO SÁT NHU CẦU ..................................................................................... 88 C. PHÂN TÍCH .................................................................................................... 100 1. Các thực thể và thuộc tính liên quan cần lưu trữ ....................................... 100 2. Phân tích ..................................................................................................... 100 3. Ràng buộc toàn vẹn .................................................................................... 102 III. THIẾT KẾ ..................................................................................................... 103 A. Thiết kế mô hình mức quan niệm .................................................................... 103 B. Thiết kế mô hình mức logic ............................................................................ 104 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 9 - SVTT: Lê QuangTuyến C. Thiết kế mô hình mức vật lý ............................................................................ 104 D. CÀI ĐẶT ......................................................................................................... 109 1.Các bước cài đặt dữ liệu chi tiết mô hình vật lý xuống SQL Server ........... 109 2.Cài đặt ràng buộc toàn vẹn ......................................................................... 110 E. TỪ ĐIỂN DỮ LIỆU ........................................................................................ 112 F. MÔ HÌNH CHỨC NĂNG (BFD – Bussiness Flow Diagram) ....................... 114 G. MÔ HÌNH DÒNG DỮ LIỆU (DFD – Data Flow Diagram) ........................ 115 CHƢƠNG IV: KẾT QUẢ VÀ KẾT LUẬN ............................................................ 118 A. KẾT QUẢ .......................................................................................................... 118 B. KẾT LUẬN ....................................................................................................... 147 PHỤ LỤC ....................................................................................................................................... 150 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 10 - SVTT: Lê QuangTuyến DANH SÁCH HÌNH  Hình 1: Toàn cảnh nền tảng dữ liệu SQL Server 2008 .................................................. 19 Hình 2: Sơ đồ các thành phần cơ bản của Microsoft SQL SERVER ............................. 21 Hình 3: Giao diện SQL Server 2008 .............................................................................. 24 Hình 4: Mô hình view trong Microsoft SQL SERVER .................................................. 26 Hình 5: Giao diện SQL Server với các thủ tục được cài đặt ......................................... 30 Hình 6: Các ứng dụng xoay quanh công nghệ .NetFramework .................................... 33 Hình 7: Chương trình được thiết kế bằng Visual Studio 2010 ...................................... 42 Hình 8: Mô hình Secret key Crytography ...................................................................... 45 Hình 9: Mô hình Public key Crytography ...................................................................... 48 Hình 10: Các thông tin trước và sau khi mã hóa bởi hàm băm ..................................... 50 Hình 11: Ví dụ lược đồ XML .......................................................................................... 77 Hình 12: Giao diện tạo mô hình mức ý niệm (CDM) .................................................... 78 Hình 13: Thuộc tính của thực thể trong mô hình CDM ................................................. 78 Hình 14: Bước 1 chuyển từ CDM sang PDM ................................................................ 79 Hình 15: Bước 2 chuyển từ CDM sang PDM ................................................................ 80 Hình 16: Bước 3 chuyển từ CDM sang PDM ............................................................... 80 Hình 17: Trụ sở và các chi nhánh của công ty BRAVO ................................................ 82 Hình 18: Quy trình đăng ký tài khoản người dùng ........................................................ 84 Hình 19: Quy trình đăng nhập hệ thống ........................................................................ 85 Hình 20: Quy trình đăng xuất khỏi hệ thống ................................................................. 86 Hình 21: Sơ đồ tổ chức công ty BRAVO ........................................................................ 87 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 11 - SVTT: Lê QuangTuyến Hình 22: Mô hình mức quan niệm ............................................................................... 103 Hình 23: Mô hình mức vật lý ....................................................................................... 105 Hình 24: Các bảng trong cơ sở dữ liệu SQL Server 2008 ........................................... 110 Hình 25: Mô hình chức năng ....................................................................................... 114 Hình 26: Mô hình dòng dữ liệu mức ngữ cảnh ........................................................... 115 Hình 27: Phân rã chức năng quản lý hệ thống ............................................................ 116 Hình 28: Phân rã chức năng quản lý người dùng ....................................................... 116 Hình 29: Phân rã chức năng đăng nhập hệ thống ....................................................... 117 Hình 30: Phân rã chức năng đăng xuất hệ thống ........................................................ 117 Hình 31: Giao diện menu hệ thống .............................................................................. 121 Hình 32: Giao diện menu dữ liệu ................................................................................. 122 Hình 33: Menu phân hệ................................................................................................ 122 Hình 34: Menu danh mục chung .................................................................................. 123 Hình 35: Menu danh mục báo cáo ............................................................................... 124 Hình 36: Menu tìm kiếm ............................................................................................... 124 Hình 37: Menu về chương trình ................................................................................... 124 Hình 38: Giao diện đăng nhập hệ thống ...................................................................... 125 Hình 39: Giao diện báo lỗi đăng nhập ........................................................................ 125 Hình 40: Giao diện quản lý người dùng ...................................................................... 126 Hình 41: Giao diện nhóm người dùng ......................................................................... 128 Hình 42: Giao diện báo lỗi nhóm người dùng ............................................................. 129 Hình 43: Giao diện đổi mật khẩu người dùng ............................................................. 129 Hình 44: Giao diện quản lý nhóm và quyền hạn mức dữ liệu ..................................... 131 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 12 - SVTT: Lê QuangTuyến Hình 45: Quản lý nhóm và quyền hạn trên menu ........................................................ 136 Hình 46: Giao diện sao lưu dữ liệu ............................................................................. 138 Hình 47: Giao diện phục hồi dữ liệu ........................................................................... 138 Hình 48: Giao diện tìm kiếm tài khoản người dùng .................................................... 139 Hình 49: Giao diên in báo cáo tài khoản nhân viên .................................................... 141 Hình 50: Giao diện báo cáo in sang MS.Word ............................................................ 142 Hình 51: Giao diện báo cáo in sang MS.Excel ............................................................ 142 Hình 52: Giao diện báo cáo in sang PDF ................................................................... 143 Hình 53: Giao diện xem nhật ký đăng nhập ................................................................ 143 Hình 54: Giao diện xem nhật ký lỗi ............................................................................. 144 Hình 55: Giao diện tìm kiếm thông tin phân quyền ..................................................... 144 Hình 56: Giao diện in báo cáo quyền được cấp .......................................................... 146 Hình 57: Hộp thoại PDM Generation Options ............................................................ 150 Hình 58: Hộp thoại PDM Generation Options ............................................................ 151 Hình 59: Danh sách bảng sau khi ánh xạ từ Power Designer 12.5 xuống SQL Server 2008 .............................................................................................................................. 152 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 13 - SVTT: Lê QuangTuyến DANH SÁCH BẢNG  Bảng 1: Các chức năng của tập Collection ................................................................... 37 Bảng 2: Sự khác nhau giữa VB6 và VB.Net trong cách viết toán tử số học .................. 38 Bảng 3: Sự khác biệt giữa VB6 và VB.Net ..................................................................... 41 Bảng 4 : Bảng mã hàm mũ ............................................................................................. 47 Bảng 5: Kích thước khóa giữa mã hóa quy ước và mã hóa công khai với cùng mức độ bảo mật ........................................................................................................................... 49 Bảng 6: Các tính chất của các thuật toán băm an toàn ................................................. 56 Bảng 7: So sánh các thuật toán SHA-1, Tiger, Whirlpool ............................................. 73 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 14 - SVTT: Lê QuangTuyến CHƢƠNG I GIỚI THIỆU 1. Lý do hình thành đề tài  Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng rộng rãi trong đời sống. Công nghệ thông tin mang lại cho con người rất nhiều hữu ích, đặc biệt là trong lĩnh vực quản lý dữ liệu, truy cập thông tin, tra cứu thông tin… Đối với các tổ chức, doanh nghiệp thì công tác quản lý đòi hỏi ngày càng gọn nhẹ nhưng phải đảm bảo được việc tra cứu, tìm kiếm, lưu trữ thông tin phải được thực hiện một cách nhanh chóng, tiện lợi và phải mang tính chính xác cao nhất. Đứng trước những yêu cầu trên, các tổ chức, doanh nghiệp ngày càng thấy được tầm quan trọng của việc tin học hóa các quy trình, nghiệp vụ liên quan đến hoạt động của mình. Để đáp ứng được nhu cầu thực tế của các tổ chức, doanh nghiệp nhiều công ty đã xây dựng những phần mềm phục vụ cho việc quản lý, kinh doanh cho các tổ chức, doanh nghiệp. Không ngoài mục đích này, chương trình “Xây dựng và bảo mật hệ thống tích hợp” là chương trình được xây dựng nhằm để liên kết các phân hệ con: phân hệ quản lý khách hàng (CRMS), phân hệ quản lý bán hàng (SMS), phân hệ quản lý lương – nhân sự (HMS), phân hệ quản lý kho (StMS), phân hệ quản lý tài sản cố định (FMS) thành một chương trình lớn, thống nhất về dữ liệu, giúp cho các cấp quản lý của các tổ chức, công ty truy xuất, kiểm tra các thông tin một cách nhanh chóng và chính xác. Nếu như mỗi phòng ban, mỗi bộ phận của các tổ chức, công ty sử dụng các phân hệ riêng thì khi đó việc truy xuất, kiểm tra dữ liệu có liên quan giữa các bên với nhau thì sẽ rất chậm và đôi khi thiếu chính ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 15 - SVTT: Lê QuangTuyến xác. Bên cạnh đó, việc xây dựng cơ chế bảo mật giúp cho dữ liệu của công ty được đảm bảo an toàn một cách tuyệt đối, việc truy cập vào dữ liệu của công ty sẽ được phân quyền theo từng cấp độ tương ứng với từng chức vụ của nhân viên và quyền hạn của phòng ban nơi nhân viên làm việc.  Thông qua chương trình “Xây dựng và bảo mật hệ thống tích hợp” giúp công ty cổ phần phần mềm Bravo tiết kiệm được thời gian và chi phí quản lý doanh nghiệp, bảo mật được dữ liệu kinh doanh của công ty. 2. Mục tiêu của đề tài  Chương trình “Xây dựng và bảo mật hệ thống tích hợp” thường được áp dụng vào các phần mềm có nhiều phân hệ con. Trong đó chương trình đóng vai trò như là một chương trình chính, liên kết các phân hệ con khác lại với nhau thông qua đường đi của dữ liệu, tạo thành một dữ liệu tổng hợp.  Chương trình có những điểm tương đương giống như hệ thống quản trị nguồn lực doanh nghiệp (ERP).  Đảm bảo đường đi của dữ liệu của các phân hệ con phải được thông suốt:  Phân hệ quản lý bán hàng kết nối với phân hệ quản lý khách hàng để lấy thông tin về số lượng hàng cần bán.  Phân hệ quản lý khách hàng liên kết với phân hệ quản lý lương – nhân sự để lấy thông tin về nhân viên quản lý khách hàng.  Phân hệ quản lý bán hàng liên kết với phân hệ quản lý kho để lấy thông tin về số lượng hàng.  Phân hệ quản lý bán hàng liên kết với phân hệ quản lý lương – nhân sự để lấy thông tin về nhân viên bán hàng. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 16 - SVTT: Lê QuangTuyến  Chương trình có những tính năng như: truy cập phân hệ con trên menu hệ thống, xuất báo cáo tùy theo nhu cầu của từng phân hệ, tra cứu, tìm kiếm thông tin, phân quyền hệ thống, mã hóa dữ liệu.  Chương trình xây dựng các tiện ích hỗ trợ người dùng như: máy tính điện tử, thay đổi giao diện người dùng…  Phân quyền truy cập cơ sở dữ liệu theo bằng việc cấp tài khoản đăng nhập cho nhân viên với các quyền hạn khác nhau tùy theo vị trí, phòng ban mà nhân viên đó làm việc. 3. Nội dung đề tài (1) Khảo sát hiện trạng, nhu cầu tại Công ty cổ phần phần mềm Bravo. (2) Phân tích, thiết kế và cài đặt cơ sở dữ liệu. (3) Thiết kế giao diện người dùng. (4) Phân quyền sử dụng người dùng. (5) Cài đặt các thủ tục, hàm, trigger và các chương trình ứng dụng. 4. Phạm vi đề tài  Đề tài được xây dựng dựa trên các phân hệ:  Phân hệ quản lý bán hàng:  Phân hệ phục vụ cho việc quản lý bán hàng của công ty, giúp theo dõi được thông tin về hàng hóa, thông tin khách hàng, thông tin hợp đồng… một cách chính xác và kịp thời.  Phân hệ hỗ trợ việc thống kê báo cáo bán hàng một cách chính xác và nhanh chóng.  Phân hệ quản lý khách hàng: ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 17 - SVTT: Lê QuangTuyến  Xây dựng chương trình quản lý khách hàng cho công ty nhằm giám sát các hoạt động với khách hàng, ghi nhận và nhắc nhở chính xác các hoạt động với khách hàng của công ty.  Quản lý hợp đồng của khách hàng với công ty, các điều khoản giao dịch thanh toán của khách hàng với công ty. Ghi nhận lại các hoạt động thanh toán, đặt hàng, giao hàng của khách hàng và chính sách bảo hành các sản phẩm của công ty giành cho khách hàng.  Quản lý các kênh bán hàng của công ty để đặt ra những phương án kinh doanh cho từng kênh bán hàng khác nhau. Ngoài ra còn xuất ra những báo cáo tổng kết những hoạt động của công ty theo thời gian và theo từng đối tượng.  Phân hệ quản lý kho:  Quản lý số lượng tồn kho.  Quản lý số lượng nhập, xuất kho.  Phân hệ quản lý lương – nhân sự:  Quản lý thông tin nhân sự một cách đầy đủ và chi tiết.  Theo dõi cập nhật thường xuyên thông tin nhân sự, phòng ban, tổ đội trong doanh nghiệp.  Tính lương cho nhân viên thay đổi theo công thức.  Trích xuất các báo cáo đa dạng, phong phú đáp ứng yêu cầu trong công tác quản trị nhân sự tiền lương.  Lưu trữ thông tin an toàn, truy xuất và tìm kiếm thông tin dễ dàng nhanh chóng. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 18 - SVTT: Lê QuangTuyến  Phân hệ quản lý tài sản:  Theo dõi nguyên giá, khấu hao, khấu hao lũy kế và giá trị còn lại của từng tài sản.  Phân bổ tài sản theo tháng và năm tài sản. 5. Kết quả đạt đƣợc (1) Tập báo cáo kết quả khảo sát hiện trạng (khảo sát phần cứng, phần mềm, nhân sự, khảo sát yêu cầu, quy trình, nghiệp vụ…) của công ty cổ phần phần mềm Bravo. (2) Tập báo cáo kết quả phân tích, thiết kế và cài đặt cơ sở dữ liệu. (3) Tập báo cáo kết quả thiết kế giao diện người dùng. (4) Tập báo cáo kết quả phân quyền sử dụng người dùng. (5) Chương trình ứng dụng. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 19 - SVTT: Lê QuangTuyến CHƢƠNG II CƠ SỞ LÝ THUYẾT I. Tổng quan về cơ sở dữ liệu SQL Server 2008 A. Giới thiệu chung Hình 1: Toàn cảnh nền tảng dữ liệu SQL Server 2008  SQL Server 2008 là hệ quản trị cơ sở dữ liệu quan hệ theo mô hình client/server của Microsoft được ứng dụng phổ biến và rộng rãi hiện nay với những đặc điểm ưu việt cho phép xây dựng, phát triển và quản trị các ứng dụng thương mại điện tử và quản lý.  Phát triển từ phiên bản SQL Server 2005, phiên bản SQL Server 2008 bổ sung thêm những tính năng ưu việt mà một hệ quản trị cơ sở dữ liệu mạnh cần phải có.  SQL Server 2008 tổ chức và lưu trữ dữ liệu trong Table, có thể định nghĩa các Table với nhau, cho phép người dùng truy cập dữ liệu thông qua ứng dụng Management Studio truy cập trực ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 20 - SVTT: Lê QuangTuyến tiếp đến server để thực hiện các tác vụ như : cấu hình, quản trị, bảo trì, bảo mật cơ sở dữ liệu.  SQL Server 2008 là hệ quản trị cơ sở dữ liệu cho phép bạn lưu trữ dữ liệu với số lượng lớn, hỗ trợ hệ thống ra quyết định, hỗ trợ các công cụ khác nhau giúp bạn xây dựng và triển khai ứng dụng một cách hiệu quả và có tính bảo mật cao trong môi trường đa người dùng.  SQL Server 2008 là một hệ thống quản lý cơ sở dữ liệu (Relational Management System (RDBMS)) sử dụng T–SQL (Transact SQL) để trao đổi cơ sở dữ liệu giữa Client computer và Server computer. Một RDBMS bao gồm : Database, Database Engine và các ứng dụng dùng để quản lý dữ và các bộ phận khác nhau trong RDBMS.  SQL Server 2008 được thiết kế tối ưu có thể chạy trên môi trường cơ sở dữ liệu lớn (very large database environment) lên đến Tetra Byte, có thể phục vụ cùng lúc cho hàng ngàn User. SQL Server 2008 có thể kết hợp “ăn ý” với các Server khác như Microsoft Internet Information Service (IIS), Proxy Server, E – commerce Server… ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 21 - SVTT: Lê QuangTuyến 2. S SQL Server bao gồm các tiện ích :  Book Online: Tiện ích này cho phép chúng ta có thể tra cứu trực tuyến tất cả các thông tin liên quan đến SQL Server 2008 một cách đầy đủ với các tính năng tìm kiếm dễ dàng và một giao diện dễ sử dụng. Nội dung giúp đỡ được trình bày theo từng phần dễ dàng xem trong các trang Contents. Ngoài ra các trang Index và Search cho phép tra cứu nhanh theo chỉ mục đã được sắp xếp trước đó hoặc gõ vào các từ khóa cần tìm. Khi cần tham khảo cú pháp của các lệnh, hàm, biến hệ thống… của SQL Server 2008 một Hình 2: Sơ đồ các thành phần cơ bản của Microsoft SQL SERVER ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 22 - SVTT: Lê QuangTuyến cách đầy đủ nhất thì chúng ta vào đây xem là hoàn toàn chính xác. Tuy nhiên, nội dung trình bày là hoàn toàn bằng tiếng Anh.  SQL Native Client Configuration: Tiện ích này cho phép chúng ta thay đổi, tạo mới và lưu lại các nghi thức nối kết mạng (network protocol) mặc định của máy trạm khi thực hiện kết nối vào SQL Server 2008 tại các máy chủ.  SQL Server Management Studio: Tiện ích này giúp chúng ta quản trị một hoặc nhiều SQL Server khác nhau, với giao diện đồ họa thân thiện (user friendly). Tiện ích này sẽ giúp có các bạn có thể tạo lập cơ sở dữ liệu và các thành phần bên trong SQL Server một cách dễ dàng hơn. Tuy nhiên, muốn quản trị SQL Server thì chúng ta phải đăng ký (register) máy chủ vào tiện ích này.  Import and Export: Tiện ích này cho phép chúng ta thực hiện các chức năng trong việc nhập (import), xuất (export) và chuyển đổi dữ liệu qua lại giữa SQL Server 2008 và những loại cơ sở dữ liệu khác thường dùng như: Access, Visual Foxpro, Microsoft Excel, tập tin văn bản ASCII…  Performance Monitor: Tiện ích này cho phép chúng ta quan sát (monitor) các tài nguyên trên máy chủ trong khi SQL Server 2008 đang hoạt động theo dạng biểu đồ. Chúng ta có thể biết được hiện giờ việc sử dụng bộ nhớ máy tính của SQL Server nhiều hay ít.  Profiler: Tiện ích này cho phép chúng ta phát hiện những biến cố đã xảy ra của SQL Server khi đang thực hiện một xử lý nào đó trên máy chủ. Các biến cố này có thể ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 23 - SVTT: Lê QuangTuyến được ghi lại trong một tập tin lưu vết (trace file) để sau này sử dụng lại cho việc phân tích nhằm phát hiện những vấn đề khi thực hiện các câu lệnh truy vấn trong xử lý đó. Hoạt động của tiện ích này gần giống công cụ tìm lỗi trong các ngôn ngữ lập trình, có nghĩa là chúng ta sẽ thực hiện tuần tự các câu lệnh trong một xử lý lô (batch) để phát hiện ra lỗi của một câu lệnh nào đó (nếu có).  Query Editor: Tiện ích này cho phép chúng ta soạn thảo các tập tin kịch bản (script file) – là tập tin văn bản ASCII chứa các câu lệnh SQL giao tác trên cơ sở dữ liệu SQL Server 2008 hoặc có thể thực hiện các truy vấn trực tiếp trên cơ sở dữ liệu SQL Server và nhận kết quả trực tiếp ngay sau khi thực hiện truy vấn đó. Tuy nhiên để thực hiện được tính năng trên thì hệ thống SQL Server 2008 sẽ yêu cầu chúng ta đăng nhập vào hệ thống với tài khoản hợp lệ bởi vì SQL Server là một hệ quản trị cơ sở dữ liệu mạng máy tính. Trong đó, tài khoản đăng nhập sẽ do người quản trị SQL Server 2008 tạo ra trước đó.  Server 2008 Network Configuration: Tiện ích này cho phép chúng ta quản lý các thư viện nghi thức kết nối mạng của máy chủ dùng để lắng nghe các yêu cầu từ các máy trạm, có nghĩa là các nghi thức kết nối mạng giữa máy chủ và máy trạm phải ăn khớp nhau để chúng có thể giao tiếp qua lại. Tuy nhiên, hầu hết các nghi thức kết nối mạng chuẩn của máy chủ sẽ được định nghĩa trong quá trình cài đặt.  Server 2008 Network Services: Tiện ích này cho phép chúng ta quản lý dịch vụ liên quan đến SQL Server 2008. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 24 - SVTT: Lê QuangTuyến Có thể thực hiện việc: khởi động (start), tạm dừng (pause), và ngưng lại (stop) các dịch vụ đó. Các dịch vụ (service) này được xem như là các ứng dụng chạy ngầm định bên dưới hệ thống trong môi trường Windows. B. Một số công cụ mở rộng của SQL SERVER Microsoft SERVER cung cấp một bộ các công cụ mở rộng nhằm giúp những người phát triển ứng dụng giải quyết các bài toán cụ thể mà độ phức tạp của nó đòi hỏi những tính năng mà bản thân Microsoft SERVER không có những chức năng đáp ứng được. Để thực hiện được bài toán liên kết và mã hóa cơ sở dữ liệu, chúng ta tìm hiểu một số công cụ mở rộng sau của Microsoft SERVER: Hình 3: Giao diện SQL Server 2008 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 25 - SVTT: Lê QuangTuyến  View.  Store procedure và Extended store procedure.  Trigger.  Use-defined function. Các công cụ trên cũng được sử dụng trong bài toán liên kết và mã hóa cơ sở dữ liệu của các sản phẩm phần mềm. 1. View  View là một loại bảng ảo mà nội dung của nó được định nghĩa bởi câu truy vấn. Giống như bảng thực tế, view cũng chứa một tập hợp các cột và dòng của dữ liệu. Mặc dù vậy view không tồn tại như một tập hợp các giá trị của dữ liệu được lưu trữ trong cơ sở dữ liệu. Các dòng và cột dữ liệu trong bảng được tham chiếu trong câu truy vấn (định nghĩa view) được sinh ra một cách động (dynamically) khi mà view được tham chiếu tới.  View thực hiện như một bộ lọc trên các bảng được tham chiếu trong view. Câu truy vấn định nghĩa view có thể tham chiếu tới một hoặc nhiều bảng hoặc tham chiếu tới view khác trong cơ sở dữ liệu hiện thời hoặc trên cơ sở dữ liệu khác. Các câu truy vấn phân tán (distributed) cũng có thể được sử dụng để định nghĩa view mà sử dụng dữ liệu từ những tài nguyên khác nhau (không đồng nhất). Nó rất tiện lợi trong trường hợp chúng ta muốn kết hợp các dữ liệu tương tự nhau trên những SERVER khác nhau lại, mà dữ liệu trên các SERVER này được lưu trữ trên các vùng khác nhau.  Không có sự hạn chế nào đối với các câu truy vấn trên view nhưng có một vài hạn chế trong việc sửa đổi dữ liệu thông qua chúng. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 26 - SVTT: Lê QuangTuyến Tạo view  Trước khi tạo view, cần hãy xem xét các nguyên tắc sau:  Chỉ có thể tạo view trên cơ sở dữ liệu hiện thời.  Các tên view cần phải tuân theo các nguyên tắc đối với các định danh và cần phải là duy nhất đối với mỗi người sử dụng, không được giống với bất kỳ tên của bảng nào mà người sử dụng này sở hữu.  Chúng ta có thể xây dựng các view trên các view khác và trên các thủ tục (procedures) mà tham chiếu các view (có thể lên tới 32 mức).  Không thể kết hợp các rules hoặc các định nghĩa DEFAULT cùng với các view.  Không thể kết hợp các trigger AFTER với view, mà chỉ kết hợp được các trigger INSTEAD OF. Hình 4: Mô hình view trong Microsoft SQL SERVER ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 27 - SVTT: Lê QuangTuyến  Truy vấn định nghĩa view không được chứa các điều khoản ORDER BY, COMPUTE, COMPUTE BY hoặc từ khoá INTO.  Không được định nghĩa chỉ số full-text trên view.  Không thể tạo các view tạm, và không thể tạo các view trên bảng tạm.  Các view hoặc các bảng tham gia trong view được tạo với điều khoản SCHEMABINDING không thể bị huỷ, trừ khi view bị huỷ hoặc bị thay đổi mà nó không còn có sơ đồ liên kết. Hơn nữa, các câu lệnh ALTER TABLE trên các bảng tham gia trong view có sơ đồ liên kết sẽ bị lỗi nếu các câu lệnh này ảnh hưởng đến định nghĩa view.  Không thể thực hiện được các truy vấn full-text đối với view, mặc dù định nghĩa view có thể bao gồm truy vấn full-text nếu truy vấn tham chiếu bảng được cấu hình cho việc đánh chỉ số full-text.  Cần phải chỉ rõ tên của từng cột trong view nếu:  Mọi cột trong view nhận được từ biểu thức toán học, hàm built-in, hoặc hằng số.  Hai hoặc nhiều hơn các cột trong view có cùng tên.  Ta muốn cho mọi cột trong view một cái tên khác với tên cột mà nó bắt nguồn từ đó ra.  Để tạo view ta cần được gán quyền như người sở hữu cơ sở dữ liệu và cần phải có các quyền hạn thích hợp trên mọi bảng hoặc view được tham chiếu trong định nghĩa view.  Định nghĩa của các view có tính chất nhạy cảm có thể được mã hoá để đảm bảo rằng định nghĩa của nó không ai có thể lấy được, kể cả chủ sở hữu của view. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 28 - SVTT: Lê QuangTuyến 2. Store procedure  Khi tạo ứng dụng với Microsoft SQL SERVER, ngôn ngữ lập trình Transact-SQL là giao diện lập trình chính giữa các ứng dụng và cơ sở dữ liệu SQL SERVER. Khi sử dụng các chương trình Transact-SQL, có hai giải pháp để lưu trữ và thực thi chương trình. Có thể lưu trữ các chương trình cục bộ và tạo các ứng dụng để gửi các câu lệnh tới SQL SERVER và xử lý các kết quả, hoặc có thể lưu trữ các chương trình như các thủ tục lưu trữ trong SQL SERVER và tạo các ứng dụng thực hiện các thủ tục lưu trữ và xử lý kết quả.  Các thủ tục lưu trữ trong SQL SERVER tương tự như các thủ tục trong các ngôn ngữ lập trình khác đối với những khả năng:  Chấp nhận các tham số đầu vào và trả về các dữ liệu ở dạng các tham số đầu ra.  Chứa các câu lệnh lập trình thực hiện các thao tác trong cơ sở dữ liệu, bao gồm cả việc gọi các thủ tục khác.  Trả về giá trị trạng thái đối với việc gọi thủ tục để xác định kết quả là thành công hay đã xảy ra lỗi.  Có thể sử dụng câu lệnh Transact-SQL là EXECUTE để chạy thủ tục lưu trữ. Các thủ tục lưu trữ khác với các hàm là chúng không trả về các giá trị trong vị trí tên của chúng và không sử dụng trực tiếp trong các biểu thức.  Hiệu quả của việc sử dụng các thủ tục lưu trữ trong SQL SERVER khác với các chương trình Transact-SQL được lưu trữ cục bộ trên các máy client là:  Chúng cho phép lập trình khối (modular) ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 29 - SVTT: Lê QuangTuyến  Có thể tạo thủ tục chỉ một lần, lưu chúng trong cơ sở dữ liệu, và gọi chúng nhiều lần trong chương trình. Các thủ tục lưu trữ có thể được tạo bởi người chuyên phụ trách việc lập trình cơ sở dữ liệu, và có thể sửa đổi độc lập với mã nguồn của chương trình.  Thực thi nhanh  Nếu thao tác yêu cầu một số lượng mã Transact- SQL hoặc được thực hiện lặp lại nhiều lần, các thủ tục lưu trữ có thể thực hiện nhanh hơn các gói mã Transact-SQL. Chúng được phân tích và tối ưu khi chúng được tạo, và phiên bản trong bộ nhớ (in- memory) của thủ tục có thể được sử dụng sau khi thủ tục được thực hiện lần đầu tiên. Các câu lệnh Transact-SQL tuần tự gửi tới từ client mỗi lần chúng chạy được biên dịch và tối ưu mỗi một lần chúng được thực hiện bởi SQL SERVER.  Giảm thiểu việc truyền tin trên mạng  Thao tác đòi hỏi hàng trăm dòng lệnh Transact-SQL có thể được thực hiện chỉ bởi một câu lệnh thực hiện mã lệnh trong thủ tục sẽ lợi hơn việc gửi hàng trăm câu lệnh trên mạng.  Sử dụng như một kỹ thuật an toàn  Người sử dụng có thể được gán quyền thực thi các thủ tục lưu trữ kể cả khi họ không có quyền trực tiếp thực hiện các câu lệnh cụ thể trong thủ tục.  Thủ tục lưu trữ SQL SERVER được tạo bởi câu lệnh Transact-SQL là CREATE PROCEDURE và có thể được sửa đổi ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 30 - SVTT: Lê QuangTuyến Hình 5: Giao diện SQL Server với các thủ tục được cài đặt với câu lệnh ALTER PROCEDURE. Định nghĩa thủ tục lưu trữ có chứa hai thành phần chính: thành phần xác định tên của thủ tục và các tham số của nó, và thành phần thân của thủ tục có chứa các câu lệnh Transact-SQL thực hiện các thao tác của thủ tục. 3. Extended store procedure  Các thủ tục lưu trữ mở rộng cho phép chúng ta tạo các thủ tục riêng bên ngoài bằng các ngôn ngữ lập trình như C. Đối với người sử dụng các thủ tục lưu trữ mở rộng cũng giống như các thủ tục lưu trữ và thực thi cùng một phương pháp. Các tham số có thể được truyền tới các thủ tục lưu trữ mở rộng và chúng có thể trả về kết quả và trạng thái trả về. Các thủ tục lưu trữ mở rộng có thể được sử dụng để mở rộng các khả năng của Microsoft® SQL SERVER™ . ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 31 - SVTT: Lê QuangTuyến  Các thủ tục lưu trữ mở rộng là các thư viện liên kết động (DLL) mà SQL SERVER có thể tải và thực thi động. Các thủ tục lưu trữ động chạy trực tiếp trong địa chỉ không gian của SQL SERVER và được lập trình sử dụng SQL SERVER Open Data Services API.  Sau khi thủ tục lưu trữ mở rộng được viết, các thành viên của sysadmin fixed SERVER role có thể đăng ký thủ tục lưu trữ mở rộng với SQL SERVER và sau đó gán quyền cho người sử dụng khác để thực hiện thủ tục. Các thủ tục lưu trữ mở rộng chỉ có thể đặt vào cơ sở dữ liệu master. 4. Trigger  Microsoft® SQL SERVER™ cung cấp hai kỹ thuật chính đối với các nguyên tắc bắt buộc và toàn vẹn dữ liệu: các ràng buộc và các trigger. Trigger là dạng đặc biệt của thủ tục lưu trữ mà tự động có hiệu lực khi dữ liệu trong bảng chỉ định bị thay đổi. Các trigger được gọi đến trong sự trả lời cho các câu lệnh INSERT, UPDATE hoặc DELETE. Trigger có thể truy vấn các bảng khác và có thể chứa các câu lệnh Transact-SQL phức tạp.  Trigger có ích trong các trường hợp sau:  Trigger có thể tạo một dòng các thay đổi thông qua các bảng quan hệ trong cơ sở dữ liệu; mặc dù vậy các thay đổi có thể được thực hiện một cách hiệu quả hơn bằng cách sử dụng các ràng buộc toàn vẹn.  Trigger có thể bắt buộc phải tuân thủ những sự hạn chế phức tạp hơn những sự hạn chế được định nghĩa với các ràng buộc CHECK. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 32 - SVTT: Lê QuangTuyến  Không giống như các ràng buộc CHECK, các trigger có thể tham chiếu các cột trong các bảng khác. Ví dụ, trigger có thể sử dụng SELECT từ bảng khác để so sánh với dữ liệu được chèn hoặc cập nhật và thực hiện các hành động phụ, như sửa đổi dữ liệu hoặc hiển thị các thông báo lỗi do người sử dụng định nghĩa.  Các trigger cũng có thể đánh giá trạng thái của bảng trước sau việc sửa đổi dữ liệu và thực hiện các tác vụ dựa trên sự khác nhau này.  Các trigger multiple của cùng một kiểu (INSERT, UPDATE hoặc DELETE) trên bảng cho phép các tác vụ multiple, khác nhau có vị trí trong sự trả lời cùng một câu lệnh sửa đổi. II. Tìm hiểu về .Net Framework  .NET là tầng trung gian giữa các ứng dụng (applications) và hệ điều hành (OS). Tầng .NET cung cấp mọi dịch vụ cơ bản giúp ta tạo các công dụng mà ứng dụng đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive),... Tầng này bao gồm 1 bộ các ứng dụng và hệ điều hành gọi là .NET Servers. Như vậy, .NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn đề liên quan đến thương nghiệp của ta.  Trong đó:  Tập hợp các đối tượng (objects) được gọi là .NET Framework  Tập hợp các dịch vụ yểm trợ mọi ngôn ngữ lập trình .NET gọi là Common Laguage Runtime (CLR). ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 33 - SVTT: Lê QuangTuyến III. Tổng quan về ngôn ngữ lập trình VB.NET  Visual Basic.Net là ngôn ngữ lập trình hướng đối tượng (Object Oriented Programming Language - OOP), một trong những ngôn ngữ được tạo ra để hướng đến mục tiêu tạo ra ứng dụng phân tán trên môi trường .Net dựa trên nền Microsoft‟s Net Framework.  Visual Basic.Net chuyển sang hướng đi hoàn toàn mới đó là tập trung vào phát triển các ứng dụng cho môi trường đa tầng, các ứng dụng phân tán,… Đặc biệt là trong lĩnh vực công nghệ Internet, lập trình ứng dụng mạng, xây dựng ứng dụng Web,…  Visual Basic.Net hỗ trợ đầy đủ bốn tính chất của ngôn ngữ lập trình hướng đối tượng :  Tính thừa kế (Inheritance).  Trừu tượng hóa dữ liệu (Abstraction).  Tính đa hình (Polymorphism).  Tính đóng gói (Encapsulation). Hình 6: Các ứng dụng xoay quanh công nghệ .NetFramework ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 34 - SVTT: Lê QuangTuyến  Visual Basic.Net bổ sung thêm các tính năng hướng đối tượng như :  iao tiếp (Interface).  Nạp chồng (Overloading).  Hàm tạo và hàm hủy.  Xử lý ngoại lệ có cấu trúc  Xử lý đa luồng.  Những ứng dụng ngôn ngữ Visual Basic.Net có thể viết:  Tạo ứng dụng trò chơi trên Windows.  Tạo các ứng dụng quản lý cho doanh nghiệp.  Tạo báo cáo, tập tin văn bản.  Xử lý đồ họa.  Tương tác với hệ thống tập tin của Window.  Truy xuất cơ sở dữ liệu.  Tạo các dịch vụ Windows.  Tạo các thư viện liên kết động (DLL).  Tạo các ứng dụng cho PDA, Mobie (Pocket PC).  Điểm nổi bật khi bạn để ý thấy chữ “.Net” trong Visual Basic.Net, bạn sẽ thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng của môi trường .Net như :  Lập trình ứng dụng mạng (Network Application Programming).  Tạo ứng dụng Web / Internet (ASP.Net).  Tạo các dịch vụ Web (Web Services).  .v...v. Những thay đổi trong ngôn ngữ Visual Basic.Net :  Thay đổi về kỹ thuật cải thiện hiệu suất ứng dụng ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 35 - SVTT: Lê QuangTuyến  Để Visual asic.Net thống nhất về mặt kỹ thuật với C .Net, C .Net,… Microsoft đã phát triển Common Language Runtime (CLR) thành nền tảng chung. Visual asic.Net không còn là công cụ sinh mã giả nữa, CLR làm cho nó trở thành ngôn ngữ hướng đối tượng thực sự và đặt nó ngang cấp với C .Net và C .Net. Về mặt kỹ thuật, một ứng dụng được tạo bởi Visual asic.Net không có gì khác biệt so với ứng dụng tạo bằng C .Net hay C .Net.  Thay đổi về cú pháp và cấu trúc lập trình:  Sử dụng các module (đơn thể) :Các module theo kiểu chuẩn của VB6 vẫn được hỗ trợ, tuy nhiên giờ đây bạn được cung cấp thêm hai từ khóa mới là Module và End Module dùng để định nghĩa khối module ngay trong cửa sổ Code Editor.  Visual Basic.Net tiếp tục hỗ trợ từ khóa Function và Sub cho phép bạn tự tạo các hàm và thủ tục cho riêng mình. Tuy nhiên cú pháp để khai báo và gọi hàm, thủ tục có thay đổi chút ít.  Thủ tục (Procedure) :  Khi bạn gọi một thủ tục trong Visual Basic.Net, bắt buộc bạn phải có dấu ngoặc đơn bao quanh danh sách đối số (tương tự cách gọi hàm). Ngay cả khi thủ tục không có đối số thì dấu ngoặc đơn vẫn yêu cầu phải có. Ví dụ: ProcessData() X=New Customer()  Bạn có tùy chọn sử dụng thêm phát biểu Return để trả về kết quả ở cuối hàm cho nơi gọi.  Kiểu dữ liệu (Data Type) : Thay đổi khá nhiều ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 36 - SVTT: Lê QuangTuyến  Trong Visual Basic.Net, kiểu dữ liệu Integer có bốn loại: yte, Short, Integer (tương đương với Long trong VB6) và Long (lớn gấp đôi Long trong V 6).  Visual Basic.Net dùng kiểu Decimal với 128 bit để thay thế kiểu Currency trong VB6.  Kiểu Char được dùng để chứa một Unicode (16 bit) ký tự.  Thay thế kiểu Variant bằng Object.  Visual asic.Net dùng kiểu ate để lưu dữ liệu ngày, thay vì bên V 6 dùng kiểu ouble.  Cách tuyên bố biến số (Variables) và hằng số (Constant):  Bạn có thể khai báo được nhiều biến số trên cùng một hàng.  Khai báo trị số khởi đầu một cách rút gọn, dễ hiểu. Ví dụ : Dim X As Integer = 12  Khai báo hằng số (Constant) phải khai rõ kiểu dữ liệu của nó là String, Integer, Boolean .v...v.  Giá trị True, alse : Visual asic.Net ấn định 1 cho giá trị luận lý TRUE (đúng) thay vì bên V 6 ấn định cho giá trị TRUE là -1.  Thay đổi sử dụng mảng (array):  Mảng trong Visual Basic.Net giờ đây cho phép lấy chỉ số cơ sở bắt đầu từ 0 (zero-base). Có nghĩa là phần tử thấp nhất trong mảng được đánh số 0.  Mảng có thể được khai báo và gán giá trị theo cách cũ. Ví dụ cú pháp để khai báo mảng MyArray() và thêm 4 phần tử vào mảng như sau : Ví dụ : Dim MyArray() As Integer = { 1, 2, 3, 4} ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 37 - SVTT: Lê QuangTuyến  Phát biểu ReDim vẫn còn hiệu lực trong Visual Basic.Net mặc dù nó không dùng để thay đổi kích thước của mảng đang có dữ liệu. Không thể dùng ReDim trong phần khai báo khởi tạo giá trị ban đầu cho mảng.  Thay đổi trong tập Collection:  Bạn không còn phải sử dụng một lớp tập hợp Collection đơn duy nhất như trước đây nữa. Thay vào đó, Visual Basic.Net sử dụng lớp System.Collections để xử lý tập hợp. Với việc sử dụng lớp System.Collections, bạn có thể truy cập rất nhiều tập hợp hữu dụng khác như Stack, Queue, ictionary và Hastable,… Bảng 1: Các chức năng của tập Collection Collection Chức năng ArrayList ynamic Array tự động lớn lên khi elements được bỏ vào. BitArray Array chứa trị số oolean (True/ alse). HashTable Collection chứa những cặp key-value data, cho ta dùng làm tự điển. Queue Chứa một I O ( irst In, irst Out) structure. Element có thể là bất cứ Object loại nào. Stack Chứa một LI O (Last In, irst Out) structure. SortedList Chứa một danh sách những cặp key-value data được sắp theo thứ tự.  Bẫy lỗi và sử dụng cấu trúc xử lý lỗi :  Khối Try…Catch là cơ chế xử lý lỗi mới trong Visual Basic.Net. Mặc dù bạn vẫn còn có thể sử dụng các cú pháp ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 38 - SVTT: Lê QuangTuyến cũ trong V 6 như On Error oto, Resume, Resume Next nhưng Try…Catch đơn giản và hợp logic hơn cú pháp oto trước đây.  Ngoài ra, Visual Basic.Net còn bổ sung thêm một số phát biểu mới như : Catch When, Exit Try,…; các đối tượng Err và thuộc tính Err.Number, Err. escription để xác định mã lỗi. Thêm vào đó bạn có thể sử dụng thêm phương thức mới là Err. etException để trả về thông tin của lỗi ngoại lệ phát sinh .  Sử dụng phát biểu lặp và các phát biểu cấu trúc ra quyết định :  Visual Basic.Net bổ sung thêm vào hai toán tử logic mới là AndAlso và OrElse. Trong các phát biểu điều kiện chứa nhiều điều kiện như cấu trúc If…Then, không cần thiết lúc nào cũng phải ước lượng toàn bộ hay tất cả các điều kiện. Bỏ qua một số biểu thức khi ước lượng điều kiện được gọi là ước lượng tắt và có thể sử dụng bởi toán tử AndAlso và OrElse .  Trong VB6, cú pháp lặp While được xây dựng như sau While…Wend. Trong Visual asic.Net bạn phải viết lệnh While rõ ràng hơn là While…EndWhile.  Thay đổi trong cách viết toán tử số học (Arithmetic Operators) Bảng 2: Sự khác nhau giữa VB6 và VB.Net trong cách viết toán tử số học Arithmetic Operation Trong VB6 Có thể viết trong VB.Net Cộng X = X +5 X += 5 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 39 - SVTT: Lê QuangTuyến Trừ X = X – 10 X -= 10 Nhân X = X * 7 X *= 7 Chia X = X / 19 X /= 19 Chia Integer X = X \ 13 X \= 13 Lũy thừa X = X ^ 3 X ^= 3 Ghép Strings X = X & "more text" X &= "more text"  Không phải cần dùng chữ Set khi nói đến Object:  Trong VB6 ta có thể viết : Set x=New Product Set a=x  Trong VB.Net sẽ được viết lại : x=New Product() a=x  Thay đổi trong cách viết thuộc tính mặc định (Default Property):  Visual asic.Net không còn hỗ trợ các thuộc tính mặc định cho các đối tượng không có tham số, nhưng vẫn hỗ trợ đối với các đối tượng có tham số.  Visual Basic.Net bắt buộc phải có ít nhất một tham số (parameter) cho thuộc tính mặc định. Phải dùng từ khóa mặc định ( efault Keyword) để tạo ra thuộc tính mặc định, như ví dụ sau: Default Public Property Item(ByVal Index As Integer) As String  Dùng từ dành riêng (từ khóa) làm tên thủ tục (Procedure Name) : ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 40 - SVTT: Lê QuangTuyến  Trong Visual Basic.Net ta có thể dùng Reserved Word làm Procedure Name bằng cách để nó giữa ngoặc vuông. Giả sử muốn dùng chữ Compare làm tên một Function, ta sẽ viết như sau : Public Function [Compare] (ByVal v1 As Integer, ByVal v2 As Integer) As Boolean  Tham Số Byval Và Byref:  Mặc định trong V 6, các biến được truyền đến một hàm hay thủ tục mà không xác định cụ thể là yRef hay yVal thì được gán tự động dựa trên kiểu tham số của chúng. Tất cả kiểu dữ liệu cơ bản như Integer, String, oolean và Variant đều được gán là yRef. Các kiểu dữ liệu tham chiếu đối tượng và do người dùng định nghĩa được ấn định là yVal. Riêng với Visual asic.Net, mặc định gán tất cả các tham số là yVal trừ khi chúng được khai báo rõ ràng là yRef.  Truy cập dữ liệu :  Đối tượng R O và A O trong V 6 đã được thay thế chung bằng mô hình ADO.Net - là mô hình lập trình truy xuất dữ liệu chung cho tất cả ngôn ngữ và chương trình Windows (cụ thể là các ngôn ngữ trong Visual Studio như : C#, C++, VB.Net).  Định dạng dữ liệu bên trong của ADO.Net tuân theo chuẩn XML, do đó bạn có thể dễ dàng tích hợp dữ liệu của ADO.Net với các ứng dụng Web hiện có trên Internet.  Trong Visual Basic.Net, thông tin về cơ sở dữ liệu chứa trong bảng bây giờ được biểu diễn thông qua đối tượng là dataset và không kết nối trực tiếp thường xuyên với dữ liệu, ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 41 - SVTT: Lê QuangTuyến thông tin trong dataset là thông tin sao chép và chỉ là ảnh của dữ liệu thật.  Visual Basic.Net còn hỗ trợ thêm các đối tượng mới như ataset, ataAdapter, ataTable,…  Kế thừa Form và tạo các lớp cơ sở:  Khả năng thừa kế Form sử dụng công cụ Inheritance Picker. Lớp giờ đây được định nghĩa từ khóa Public Class và End Class. Bạn có thể tạo ra các lớp con kế thừa lớp cha thông qua từ khóa Inherits. Bảng 3: Sự khác biệt giữa VB6 và VB.Net TÍNH NĂN VB6 VB.Net Tính thừa kế Không cung cấp tính thừa kế. Thực hiện kế thừa đầy đủ cho phép lớp con riêng dẫn xuất các thuộc tính và phương thức từ lớp cơ bản được viết bằng ngôn ngữ .Net C++ hay C#. Khả năng tương tác - ùng các kiểu biến khác với C và Java, làm cho các ứng dụng viết bằng ngôn ngữ V và C khó tương tác với nhau. - Không có khả năng kết hợp tính năng từ những Các kiểu biến nhất quán với C và C trên nền CLR. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 42 - SVTT: Lê QuangTuyến lớp khác. Tạo ứng dụng Tạo tập tin .EXE nhưng lệ thuộc vào các thư viện LL hỗ trợ. Việc triển khai khó khăn vì phải phân phối không chỉ tập tin .EXE mà cả các thư viện LL. Tạo tập tin .EXE có thể chạy không cần đến các thư viện LL hỗ trợ. Phân luồng Không thể tận dụng hết tính năng phân luồng có trong COM. Cho phép phân luồng linh động tăng tính khả năng mở cho ứng dụng. Hình 7: Chương trình được thiết kế bằng Visual Studio 2010 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 43 - SVTT: Lê QuangTuyến IV. Tìm hiểu cơ chế bảo mật và mã hóa dữ liệu A. Cơ chế bảo mật  Bảo mật thông tin ảnh hưởng rất lớn đến sự tồn tại và phát triển của tổ chức hoặc doanh nghiệp. o đó việc bảo mật thông tin hết sức quan trọng. Một cơ chế bảo mật bao gồm những vấn đề sau:  Mã hóa dữ liệu.  Cách thức trao đổi thông tin.  Cách thức lưu trữ thông tin.  Các phương pháp chứng thực người dùng.  Cách thức nhận biết quyền hợp pháp của user đối với thông tin dữ liệu.  Ngày nay, dữ liệu của công ty hay tổ chức thường được tổ chức thành một cơ sở dữ liệu. Cơ sở dữ liệu sẽ được quản lý bằng một hệ quản trị cơ sở dữ liệu. Việc bảo mật cơ sở dữ liệu gồm có các tiêu chuẩn sau:  Bí mật  Hệ thống chỉ cho phép mỗi user khi đăng nhập thành công chỉ được thực hiện các thao tác mà user đó các đủ các quyền để thực thi thao tác đó.  Toàn vẹn  Dữ liệu phải được bảo toàn, không bị lỗi.  Sẵn sàng  Dữ liệu phải luôn luôn sẵn sàng để phục vụ, không được chậm trễ.  Bảo mật cơ sở dữ liệu là chỉ ra ai là người được truy cập vào dữ liệu, người dùng được thấy những dữ liệu nào của cơ sở dữ ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 44 - SVTT: Lê QuangTuyến liệu? người dùng có thể thực hiện được các thao tác nào trên cơ sở dữ liệu? người dùng có thể xem được các dữ liệu nhạy cảm khi cần thiết hay không?  Dữ liệu trong cơ sở dữ liệu trên server luôn cần được bảo mật và chỉ có một số người có chức năng mới được phép truy cập và sử dụng. Để chứng thực một user thì phương pháp thường thấy nhất là dùng một định danh người dùng và mật khẩu.  Trong cơ sở dữ liệu thì không phải bất kỳ một người dùng nào cũng có quyền truy cập và thực hiện các thao tác như nhau. Tùy theo mỗi chức vụ, công việc, phạm vi thực hiện của mỗi user mà họ có quyền và có thể thực hiện một số thao tác khác nhau trên cơ sở dữ liệu. Đó chính là việc phân quyền cho người dùng.  Uỷ quyền là việc trao cho người dùng, chương trình (program) hay tiến hành(process) quyền được truy cập thực thể hoặc tập các thực thể. Các quyền này có thể chỉ là đọc(read) hoặc đọc( read)/ghi(write).  Quyền hạn là sự cho phép truy cập mang tính thi hành, ví dụ như quyền được truy vấn trên table. Quyền hạn được cấp cho user theo quyết định của user cấp cao hơn (thường là quản trị viên Administrator). Quyền hạn được cấp cho người dùng hợp lệ để kết nối đến cơ sơ dữ liệu, thao tác trên cơ sở dữ liệu. Có hai mảng quyền chính:  Quyền hệ thống  Đây là quyền cấp cao. Thường thì các quyền này chỉ cấp cho quản trị viên và các người phát triển ứng ụng. Quyền này cho phép người dùng được phép ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 45 - SVTT: Lê QuangTuyến thao tác trên toàn bộ cơ sở dữ liệu và được phép cấp quyền cho các người dùng khác.  Quyền đối tượng  Đây là các quyền thao tác trên các đối tượng của cơ sở dữ liệu như database, table, row, column. Các quyền này bao gồm các thao tác SELECT, INSERT, UP ATE, ELETE, CREATE… B. Mã hóa dữ liệu Thuật toán mã hóa hiện nay được phân loại theo số khóa dùng để mã hóa và giải mã. Có 3 loại sau:  Secret key Crytography (SKC): sử dụng một khóa chung cho quá trình mã hóa và giải mã.  Public key Crytography (PKC): sử dụng một khóa cho phần mã hóa và một khóa khác để giải mã.  Hash Functions: sử dụng một phép biến đổi mã hóa thông tin một chiều. Điều này có nghĩa là một khi thông tin được mã hóa thì không thể có cách nào để lấy lại thông tin ban đầu. 1. Secret key Crytography (Hệ mã hóa quy ước):  Các thuật toán mã hóa quy ước (hay mã khóa bí mật hay mã hệ đối xứng) dùng một khóa bí mật đơn để mã hóa và giải mã dữ Hình 8: Mô hình Secret key Crytography ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 46 - SVTT: Lê QuangTuyến liệu. Dữ liệu nguồn x được người gửi A mã hóa bằng thuật toán mã hóa quy ước với khóa mật k được thống nhất trước giữa người gửi A và người nhận B. Dữ liệu sau khi mã hóa y sẽ được truyền cho người nhận B. Sau khi nhận, B sẽ dùng khóa k giải mã y để có được thông điệp x ban đầu. Nếu một người C có được khóa mật k thì C sẽ có khả năng giải mã được tất cả dữ liệu của A bằng khóa k rồi thay đổi dữ liệu và mã hóa lại bằng khóa k và sau đó gửi cho . o đó vấn đề bảo mật thông tin được mã hóa phụ thuộc vào việc giữ bí mật nội dung mã khóa k.  Mã hóa khóa mật cũng được gọi là mã hóa đối xứng vì chỉ dùng một khóa cho mã hóa và giải mã. Thuật toán mã hóa này có tốc độ cực nhanh và thích hợp với việc mã hóa khối lượng dữ liệu lớn.  Các loại của thuật toán SKC bao gồm:  Mã hóa theo chuỗi bít  Trong hệ mã hóa theo chuỗi bít, thông điệp là các bít và khóa được phát sinh bởi một bộ phát sinh ngẫu nhiên. Bản rõ mã hóa theo từng bước để được bảng mã.  Mã hóa theo chữ  Các hệ mã ban đầu dựa trên phép biến đổi một chữ cái trong bảng rõ thành một chữ cái khác trong bảng mã. Kỹ thuật mã hóa này còn gọi là kỹ thuật mã hóa thay thế. Để thực hiện phương pháp này, trước tiên cần định nghĩa một bảng mã (như bảng mã ASCII) để số hóa bản rõ, vì các phép toán sẽ làm việc trên các số thay vì các ký tự.  Mã hóa theo khối ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 47 - SVTT: Lê QuangTuyến  Ta thấy hệ mã hóa theo chữ có độ an toàn không cao vì một chữ cái luôn được mã hóa thành một chữ cái khác trong bảng mã.Với khả năng của máy tính hiện đại không khó để giải mã một bảng mã theo chữ như thế. Để tăng độ an toàn ta có thể mã hóa theo khối. Trong mã hóa theo khối, bản rõ và bảng mã được chia thành từng khối ký tự trước khi thi hành mã hóa và giải mã.  Mã mũ  Do Pohlig và Hellman giới thiệu năm 1976. Có thể mô tả như sau: chọn p là số nguyên tố, M là một số tương ứng của bản rõ với mọi ký tự trong bản rõ được thay thế bằng mã tương ứng như trong bảng: Bảng 4 : Bảng mã hàm mũ „‟ A B C D E F G H I J K 00 01 02 03 04 05 06 07 08 09 10 11  Một vài thuật toán SKC được sử dụng ngày nay: Data Encryption Standard (DES), Triple – DES (3DES), DEXS, RC1, RC2, RC3, RC4, RC5, RC6, Blowfish, Twofish, Camellia, MISTY1, SAFER, KASUMI, SkipJack.  Đánh giá phƣơng pháp mã hóa quy ƣớc: mặc dù hệ thống mã hóa quy ước cung cấp rất nhiều thuật toán mã hóa có độ bảo mật rất cao nhưng có những hạn chế sau:  Hạn chế khả năng quản lý khóa: đối với từng người cần liên lạc và với từng nội dung thông tin cần phải có một khóa quy ước để mã hóa và giải mã. o đó trên một mạng ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 48 - SVTT: Lê QuangTuyến liên lạc lớn, số lượng khóa cần phải lưu trữ rất nhiều nên nảy sinh vấn đề quản lý khóa quy ước và bảo mật thiết bị khóa quy ước. 2. Public key Crytography (mã hóa công khai):  Người gửi A sử dụng khóa công khai (hệ mã không đối xứng) pk của người nhận để mã hóa dữ liệu gốc x. Dữ liệu sau khi mã hóa y được truyền cho người . Người nhận B sau khi nhận được y sẽ sử dụng khóa riêng sk của mình để giải mã dữ liệu và nhận lại dữ liệu nguồn x ban đầu.  Nếu một người C đã có dữ liệu mã hóa y và khóa công khai pk thì C vẫn không thể giải mã được y. o khóa riêng sk được giữ bí mật hoàn toàn, chỉ có người B biết được sk và sk không được giao dịch hay truyền đi nên rủi ro dẫn đến việc khóa sk bị mất cắp là rất ít.  Giới thiệu một số thuật toán: EEC, RSA  Đánh giá phƣơng pháp mã hóa công khai:  Hệ thống mã hóa công khai ra đời đã giải quyết được những hạn chế của mã hoá quy ước. Mã khóa công khai sử Hình 9: Mô hình Public key Crytography ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 49 - SVTT: Lê QuangTuyến dụng một cặp khóa: 1 khóa (thông thường là khóa riêng) dùng để mã hóa và một khóa (khóa riêng) dùng để giải mã. Mã hóa công khai giúp tránh bị tấn công khi trao đổi do khóa để giải mã (khóa riêng) không cần phải truyền hoặc chia sẻ với người khác. Ngoài ra, mỗi người cần sở hữu một cặp khóa công khai – khóa riêng và người gửi thông tin chỉ cần giữ khóa công khai của người nhận do đó số lượng khóa cần phải quản lý giảm khá nhiều. Mỗi người chỉ cần lưu trữ bảo mật một khóa riêng của chính mình.  Tuy nhiên do nhu cầu mã hóa và giải mã bằng hai khóa khác nhau trong cùng một cặp khóa nên để đảm bảo bảo mật, kích thước khóa công khai – khóa riêng lớn hơn rất nhiều so với khóa công khai. o đó tốc độ mã hóa khóa công khai chậm hơn tốc độ mã hóa khóa quy ước. Tốc độ mã hóa bằng phần mềm của thuật toán ES nhanh hơn khoảng 100 so với thuật toán RSA với cùng mức độ bảo mật. Bảng 5: Kích thước khóa giữa mã hóa quy ước và mã hóa công khai với cùng mức độ bảo mật Kích thước khóa (tính bằng bit) Khóa công khai 56 80 112 128 192 256 RAS/DSA 512 1K 2K 3K 7.5K 15K EEC 160 224 256 384 512 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 50 - SVTT: Lê QuangTuyến 3. Hash unction (hàm băm):  Hàm băm mật mã là hàm toán học chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có độ dài cố định (tùy thuộc vào thuật toán băm). ãy bit này được gọi là thông điệp rút gọn (message digest) hay giá trị băm (hash value), đại diện cho thông điệp ban đầu.  Dễ dàng nhận thấy hàm băm h không phải là một song ánh. o đó với thông điệp x bất kỳ, tồn tại thông điệp x‟≠ x và h(x)=h(x‟). Lúc này ta nói rằng “có sự đụng độ xảy ra”.  Một hàm băm h được gọi là an toàn (hay “ít bị đụng độ”) khi không thể xác định được (bằng cách tính toán) cặp thông điệp x và x‟ thỏa mãn x ≠ x‟ và h(x)=h(x‟). Trên thực tế, các thuật toán băm là hàm một chiều nên rất khó để xây dựng lại thông điệp ban đầu từ thông điệp rút gọn.  Hàm băm giúp xác định được tính toàn vẹn dữ liệu của thông tin: mọi thay đổi dù là rất nhỏ trên thông điệp cho trước (ví dụ Hình 10: Các thông tin trước và sau khi mã hóa bởi hàm băm ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 51 - SVTT: Lê QuangTuyến như đổi giá trị 1 bít) đều làm thay đổi thông điệp rút gọn tương ứng. Tính chất này hữu ý trong việc phát sinh, kiểm tra chữ ký điện tử, các đoạn mã chứng thực thông điệp, phát sinh số ngẫu nhiên, tạo ra khóa cho quá trình mã hóa…  Hàm băm được dùng trong chữ ký điện tử. Một đặc tính cơ bản của hàm băm là việc tạo ra mã khóa thông điệp rất dễ nhưng việc phá mã để chuyển ngược mã thông điệp thành bản rõ ban đầu rất khó nếu không muốn nói là không thể.  Các tính chất của hàm băm  Tính một chiều.  Tính an toàn của hàm băm đối với hiện tượng đụng độ.  Cấu trúc của hàm băm: hầu hết các hàm băm mật mã đều có cấu trúc giải thuật như sau:  Cho trước một thông điệp M có độ dài bất kỳ. Tùy theo thuật toán được sử dụng, chúng ta có thể cần bổ sung một số bit vào thông điệp này để nhận được thông điệp có độ dài là bội số của một hằng số cho trước. Chia nhỏ thông điệp thành từng khối có kích thước bằng nhau: M1, M2,…,MS.  Gọi H là trạng thái có n bit, f là “hàm nén” thực hiện thao tác trộn khối dữ liệu với trạng thái hiện hành  Khởi gán H0 bằng một véc tơ khởi tạo nào đó  Hi=f(Hi-1,Mi) với i=1,2,3,…,s Hs chính là thông điệp rút gọn của thông điệp M ban đầu  Giới thiệu một số hàm băm: SHA-1, MD5, SHA-256,SHA- 384, SHA-512, SHA-224, Tiger, Whirlpoor… C. Các thuật toán đề xuất ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 52 - SVTT: Lê QuangTuyến 1. Thuật toán SHA-1 a. Giới thiệu  SHA-1 dựa trên các nguyên lý tương tự với những nguyên lý mà giáo sư Ronald L.Rivest của MIT khi thiết kế thuật toán băm MD4, SHA-1 được đề xuất vào tháng 4 năm 1995.  Khi nhập vào một thông điệp có chiều dài bất kỳ nhỏ hơn 264 bit, SHA-1 cho ra kết quả là một thông điệp rút gọn (hay giá trị băm) dài 160 bits.  Trước đây, SHA-1 được gọi là an toàn vì không thể tìm ra thông điệp liên quan đến thông điệp rút gọn hay tìm ra hai thông điệp khác nhau nhưng có cùng thông điệp rút gọn. Bất kỳ thay đổi nào của thông điệp, với xác suất cao, kết quả vẫn cho ra các thông điệp rút gọn khác nhau. b. Thao tác tiền xử lý  Các hàm và các hằng số được dùng trong thuật toán SHA-1  Mở rộng thông điệp  Thông điệp M được mở rộng trước khi thực hiện băm. Mục đích của việc mở rộng này là để đảm bảo thông điệp mở rộng có độ dài là bội số của 512 bit .  Giả sử độ dài của thông điệp M là l bit. Thêm bit 1 vào cuối thông điệp, theo sau là k bit 0 (k là số không âm nhỏ nhất sao cho l+1+k=448(mod512)). Sau đó thêm khối 64 bit là biểu diễn nhị phân của l.  Ví dụ, thông điệp (8-bit ASCII) "abc" có độ dài 8x3=24, do đó điệp được mở rộng bằng 1 bit "1", 448-(24+1) = 423 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 53 - SVTT: Lê QuangTuyến bit "0" và chiều dài thông điệp trở thành thông điệp mở rộng 512 bit. c. Phân tích công việc đã mở rộng  Sau khi thông điệp đã mở rộng, thông điệp cần được phân tích thành N khối m-bit trước khi thực hiện băm. Thông điệp mở rộng được phân tích thành N khối 512-bit M(1), M(2),..., M(N). Do đó 512 bit của khối dữ liệu đầu vào có thể được thể hiện bằng 16 từ 32-bit, M0(i) chứa 32 bit đầu của khối thông điệp i, M0(i) chứa 32 bit kế tiếp... d. Khởi tạo giá trị băm  Giá trị băm là một chuỗi bit có kích thước bằng kích thước message digest (trừ SHA-384) gồm các words ghép lại. Trong đó Hj(i) là word j trong giá trị hàm băm ở lần lặp i, với 0 ≤ j ≤ N (số block có được sau khi chia văn bản được đệm) 0 ≤ j ≤ word trong giá trị băm -1. Trước khi thực hiện băm, với mỗi thuật toán băm an toàn, giá trị băm ban đầu H(0) phải được thiết lập. Kích thước và số lượng từ trong H(0) tùy thuộc vào kích thước thông điệp rút gọn. e. Thuật toán của bƣớc tính toán giá trị băm SHA-1  SHA-1 được sử dụng để băm thông điệp M dài l bit 0 ≤ l ≤ 264. Thuật toán sử dụng:  Một bảng phân bố thông điệp gồm 80 từ 32-bit.  5 biến 32 bit.  Một giá trị băm gồm 5 từ 32-bit. Kết quả của SHA-1 là thông điệp rút gọn 160-bit.  Các từ của bảng phân bố thông điệp được ký hiệu W0, W1, ..., W79. 5 biến ký hiệu a, b, c, d, và e. Các từ của giá trị băm ký ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 54 - SVTT: Lê QuangTuyến hiệu H0(i), H1(i), …, H4(i), H(0) giữ giá trị băm ban đầu, được thay thế bằng các giá trị băm thành công.  H(i) sau khi mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N). f. Đánh giá ƣu khuyết điểm  Ƣu điểm:  Cùng với MD5, SHA-1 được xem là 2 thuật toán ĂM phổ biến nhất hiện nay.  SHA-1 được xem là an toàn đối với hiện tượng đụng độ vì rất khó tìm được hai thông điệp có cùng giá trị băm.  Chuẩn SHA-1 được chứng nhận bởi Viện Công nghệ và Tiêu chuẩn quốc gia (NIST) Mỹ, và là phương pháp mã hoá duy nhất được chấp nhận trong nội bộ chính phủ Mỹ.  Được coi là chuẩn của việc bảo vệ các kênh liên lạc trực tuyến tồn tại 9 năm qua.  Khuyết điểm:  SHA-1 được thiết kế trên các bộ vi xử lý 32-bit, thế hệ sắp tới của các bộ vi xử lý có dùng các từ 64-bit (word), mà SHA-1 không xử ký hiệu quả trên bộ vi xử lý này.  Tháng 2 năm 2005, SHA-1 đã bị tấn công bởi một nhóm 3 chuyên gia Xiaoyun Wang, Yiqun Lisa Yin, và Hongbo Yu, một nhóm các nhà nghiên cứu của trường Đại học Quảng Đông, Viện Khoa học Trung Quốc và Trường Đại học Shanghai Jiaotong. Thuật toán này đã bị giải mã thông qua phương pháp tính toán phân bổ.  Việc tìm kiếm giá trị đụng độ của SHA thường đòi hỏi một sức mạnh tính toán rất lớn. Các nhà nghiên cứu Trung Quốc khi tấn công SHA-1 đã không có nhiều siêu ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 55 - SVTT: Lê QuangTuyến máy tính trong tay, nên thay vào đó, họ sử dụng một chương trình điện toán phân tán để khai thác sức mạnh nhàn rỗi của hàng nghìn máy tính trên thế giới và hoàn tất công việc. Phá SHA-1, khó hơn gấp 16 lần tấn công MD5, cần 300.000 máy tính nhưng phải mất xấp xỉ 74 năm. Tuy nhiên, với việc tận dụng được sức mạnh liên kết của nhiều máy tính gia đình như các nhà khoa học Trung Quốc đã làm nói trên, thời gian thực hiện điều này đã được rút ngắn rất nhiều. 2. Các thuật toán SHA-224, SHA-256, SHA-384 và SHA-512 a. Giới thiệu  Chuẩn SHS đặc tả 5 thuật toán băm an toàn SHA-1, SHA- 224, SHA-256, SHA-384 và SHA-512.  Sự khác biệt chính của các thuật toán là số lượng bit bảo mật của dữ liệu được băm – điều này có ảnh hưởng trực tiếp đến chiều dài của thông điệp rút gọn. Khi một thuật toán băm được sử dụng kết hợp với thuật toán khác đòi hỏi phải cho kết quả số lượng bit tương ứng. Ví dụ, nếu một thông điệp được ký với thuật toán chữ ký điện tử cung cấp 128 bit thì thuật toán chữ ký đó có thể đòi hỏi sử dụng một thuật toán băm an toàn cung cấp 128 bit như SHA-256.  Ngoài ra, các thuật toán khác nhau về kích thước khối và kích thước từ dữ liệu (word size) được sử dụng thể hiện các tính chất cơ bản của bốn thuật toán băm an toàn. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 56 - SVTT: Lê QuangTuyến Bảng 6: Các tính chất của các thuật toán băm an toàn Thuật toán Kích thƣớc (đơn vị bit) Độ an toàn (đơn vị bit) Thông điệp Khối Từ Thông điệp rút gọn SHA-1 <224 512 32 160 80 SHA-224 <224 512 32 224 112 SHA-256 <224 512 32 256 128 SHA-384 <2128 1024 64 384 192 SHA-512 <2128 1024 64 512 256 b. Các thao tác tiền xử lý  Các hàm và các hằng số được dùng trong thuật toán SHA- 2244, SHA-256, SHA-384 và SHA-512  Mở rộng thông điệp  SHA-224 và SHA-256 : giống SHA-1  SHA-384 và SHA-512  Giả sử độ dài của thông điệp M là l bit. Thêm bit 1 vào cuối thông điệp, theo sau là k bit 0 (k là số không âm nhỏ nhất sao cho l 1 k ≡ 896 (mod 1024). Sau đó thêm khối 128 bit là biểu diễn nhị phân của l. Ví dụ, thông điệp (8-bit ASCII) "abc" có độ dài 8x3=24, do đó thông điệp được mở rộng bằng 1 bit "1", 896-(24+1) = 871 bit "0" và chiều dài thông điệp trở thành thông điệp mở rộng 104 bit.  Chiều dài của thông điệp mở rộng đã trở thành một bội số của 1024 bit. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 57 - SVTT: Lê QuangTuyến c. Phân tích thông điệp đã mở rộng  Đối với SHA-256, giống SHA-1.  Đối với SHA-384 và SHA-512, thông điệp mở rộng được phân tích thành N khối 1024-bit M(1), M(2),..., M(N). o đó 1024 bit của khối dữ liệu đầu vào có thể được thể hiện bằng 16 từ 64-bit, M0(i) chứa 64 bit đầu của khối thông điệp i, M0(i) chứa 64 bit kế tiếp... d. Khởi tạo giá trị băm  Hằng số của SHA-224 và SHA-256  SHA-224 và SHA-256 sử dụng dãy 64 từ 32 bit là hằng số K0{256}, K1{256},…, K63{256}. Những từ này biểu diễn 32 bit đầu tiên của phần phân số của căn bậc ba của 64 số nguyên tố đầu tiên.  Hằng số của SHA-384 và SHA-512  SHA-384 và SHA-512 sử dụng cùng dãy 80 từ 64 bit là hằng số K0{512}, K1{512}, …, K79{512}. Những từ này biểu diễn 64 bit đầu tiên của phần phân số của căn bậc ba của 80 số nguyên tố đầu tiên. e. Thuật toán của bƣớc tính toán giá trị băm SHA-224, SHA-256, SHA-384, SHA-512  SHA–224 SHA-224 được sử dụng để băm thông điệp M dài l bit 0 ≤ l < 264. Thuật toán sử dụng :  Một bảng phân bố thông điệp gồm 64 từ 32-bit.  8 biến 32 bit.  Một giá trị băm gồm 8 từ 32-bit.  Kết quả của SHA-224 là thông điệp rút gọn 224-bit. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 58 - SVTT: Lê QuangTuyến 1  Các từ của bảng phân bố thông điệp được ký hiệu W0, W1, ..., W63. 8 biến ký hiệu a, b, c, d, e, f, g và h. Các từ của giá trị băm ký hiệu H0(i), H1(i), …, H7(i), H(0) giữ giá trị băm ban đầu, được thay thế bằng các giá trị băm thành công H(i) sau khi mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N).  SHA-256 SHA-256 được sử dụng để băm thông điệp M dài l bit 0 ≤ l < 264. Thuật toán sử dụng:  Một bảng phân bố thông điệp gồm 64 từ 32-bit.  8 biến 32 bit.  Một giá trị băm gồm 8 từ 32-bit. Kết quả của SHA-256 là thông điệp rút gọn 256-bit.  Các từ của bảng phân bố thông điệp được ký hiệu W0, W1, ..., W63. 8 biến ký hiệu a, b, c, d, e, f, g và h. Các từ của giá trị băm ký hiệu H0(i), H1(i), …, H7(i), H(0) giữ giá trị băm ban đầu, được thay thế bằng các giá trị băm thành công H(i). Sau khi mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N).  SHA-384 SHA-384 được sử dụng để băm thông điệp M dài l bit 0 ≤ l < 2128. Thuật toán sử dụng:  Một bảng phân bố thông điệp gồm 80 từ 64-bit.  8 biến 64 bit.  Một giá trị băm gồm 8 từ 64-bit. Kết quả của SHA-384 là thông điệp rút gọn 384-bit.  Các từ của bảng phân bố thông điệp được ký hiệu W0, W1, ..., W79. 8 biến ký hiệu a, b, c, d, e, f, g và h. Các từ ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 59 - SVTT: Lê QuangTuyến của giá trị băm ký hiệu H0(i), H1(i), …, H7(i), H(0) giữ giá trị băm ban đầu, được thay thế bằng các giá trị băm thành công H(i) sau khi mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N).  SHA-512 SHA-512 được sử dụng để băm thông điệp M dài l bit 0 ≤ l < 2128. Thuật toán sử dụng:  Một bảng phân bố thông điệp gồm 80 từ 64-bit  8 biến 64 bit.  Một giá trị băm gồm 8 từ 64-bit. Kết quả của SHA-512 là thông điệp rút gọn 512-bit.  Các từ của bảng phân bố thông điệp được ký hiệu W0, W1, ..., W79. 8 biến ký(i) hiệu a, b, c, d, e, f, g và h. Các từ của giá trị băm ký hiệu H0(i), H1(i), …, H7(i), H(0) giữ giá trị băm ban đầu, được thay thế bằng các giá trị băm thành công H(i) sau khi mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N). 3. Thuật toán Tiger a. Giới thiệu  Hiện nay các dòng họ thuật toán băm như gia đình M , Sneru và SHA-1 đã bị tìm ra các collision hoặc có khả năng bị khám phá ra collision nhờ vào các collision của các thuật toán “hàng xóm”.  Thêm vào đó các thuật toán này làm việc kém hiệu quả trên dòng máy tính  64 bits do nó chỉ được thiết kế trên các bộ vi xử lý 32 bits. Mặt khác, thế hệ sắp tới của các bộ vi xử lý có dùng các từ 64-bit (word), và bao gồm luôn cả một loạt các máy EC Alpha cũng ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 60 - SVTT: Lê QuangTuyến như các bộ vi xử lý thế hệ kế tiếp từ Intel, HP, và I M. ường như sẽ hợp lý nếu giả sử việc dùng các vi xử lý trong các ứng dụng nhúng (đa số các hệ thống sẽ dùng các bộ vi xử lý 64-bit trong vòng 5 năm tới).  o đó, nhằm mục đích cải tiến hiệu suất trên các bộ vi xử lý mới và tạo ra hệ thống băm bảo mật hơn, Ross Anderson và Eli iham đề xuất thuật toán Tiger, “A ast New Hash unction” vào năm 1996.  Tiger được đề xuất để cải tiến tốc độ hoặc ít nhất là phải bằng với SHA-1 và gia đình M . Nó nhanh như SHA-1 trên bộ vi xử lý 32-bit và nhanh hơn khoảng 3 lần trên vi xử lý 64-bit ( EC Alpha), và được cho là nhanh hơn SHA-1 trên các bộ vi xử lý 16-bit vì SHA-1 được thiết kế để chạy trên các máy 32-bit.  Tiger tương thích với các bộ vi xử lý 64 bits và 32 bits, tránh được vấn đề xung đột, vấn đề bội số(chống lại các kiểu tấn công dùng bội số hay các hệ số của các giá trị băm để tìm ra được khoá dùng trong việc băm thông điệp).  Để cải tiến bảo mật, Tiger được thiết kế có chiều dài băm 192 bits. Tuy nhiên để cho tương thích với các ứng dụng hiện tại (sử dụng các thuật toán có chiều dài 128bits, 160 bits), Tiger được cải tiến thành các loại sau :  Tiger/160 có chiều dài là 160 bits. Thuật toán này tương thích với SHA-1. Tiger/128 có chiều dài là 128 bits. Thuật toán này tương thích với MD4, M 5, RIPE_M , các hàm băm thuộc họ Snefru và các hàm băm khác.  Các giá trị trên có được bằng cách cắt giảm chiều dài 192 bits của nó. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 61 - SVTT: Lê QuangTuyến b. Các bƣớc xử lý trong thuật toán  Message được chia thành các block 512 bits. Nếu block cuối cùng không đủ chiều dài thì bit 1 sẽ được thêm vào cuối.  Mỗi block được mã hóa riêng biệt với nhau bằng cùng hàm mã hóa. Hàm mã hóa:  Giá trị hash key ban đầu được chia thành 3 phần (a, b, c).  Việc tính toán hash key bao gồm 3 lần thông qua hàm pass, và schedule theo thứ tự như sau : pass(a, b, c, 5) key_schedule pass(c, a, b, 7) key_schedule pass(b, c, a, 9)  Việc tính toán của các hàm được trình bày cụ thể ở phần phụ lục B  Hàm pass thực hiện 8 lần hàm round. Hàm round sử dụng four S-boxes và các phép hoán vị để bảo đảm rằng các giá trị trả ra sẽ khác nhau trong bất kỳ trường hợp nào khác.  Trong hàm schedule, các giá trị a, b, c sẽ được biến đổi dạng dữ liệu để ngăn cản kẻ tấn công lợi dụng tính thưa của dữ liệu trong 3 vòng lặp qua hàm pass trên.  Tất cả các thuật toán được sử dụng có thể chạy song song c. Đánh giá thuật toán  Thuật toán này chỉ cần một vùng nhớ rất nhỏ chỉ khoảng 8 Kbyte do S- boxes thật sự không cần lưu trữ. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 62 - SVTT: Lê QuangTuyến  Nhờ vào việc tính toán hoán đổi liên tục mà hàm băm Tiger rất bảo mật. Nó chống được các phương pháp tấn công “meet-in- the-middle”, “birthday”.  Tính chất phi tuyến từ các S_box từ 8 bit thành 64 bit (đầu vào 8 bit, đầu ra 64 bit). Điều này tốt hơn nhiều so với việc chỉ kết hợp phép tính cộng với phép XOR (dùng các bit mang theo _ carry bit), và nó ảnh hưởng đến các bit xuất, không chỉ các bit lân cận.  Có một sự lan truyền mạnh, trong mỗi bit thông điệp ảnh hưởng đến tất cả 3 thanh ghi sau 3 vòng _ nhanh hơn những hàm băm khác. Việc lan truyền trong các từ 64 bit (và các S_box 64 bit) thì nhanh hơn nhiều khi các từ ngắn hơn được dùng.  Như ghi chú ở trên, tất cả các biện pháp tấn công đều tấn công trên kết quả của MDx hay Snefru ở một trong các khối trung gian. Tăng giá trị của kết quả trung gian lên 192 bit giúp ngăn chặn các cuộc tấn công này.  Các bảng khoá bảo đảm rằng việc thay đổi một số lượng nhỏ bit trong thông điệp ảnh hưởng đến nhiều bit trong suốt quá trình thông qua hàm pass.  Cùng với việc lan truyền mạnh, nó giúp cho Tiger chống lại các tấn công tương đương với các tấn công khác nhau của obbertin trên M 4 (đó việc thay đổi một số bit nào đó trong thông điệp ảnh hưởng đến đa số các bit trong nhiều vòng, và kế đó sự khác biệt nhỏ nào có thể được thực hiện để hủy bỏ trong hàm pass trước đó).  Phép nhân của thanh ghi b trong mỗi vòng cũng góp phần cho việc chống lại các tấn công như vậy, do nó bảo đảm rằng các ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 63 - SVTT: Lê QuangTuyến bit được dùng như đầu vào đến các S_box trong các vòng trước được trộn với những S_box khác, và với cùng S_box với một đầu vào khác. Phép nhân này cũng chống lại các tấn công trên các hàm băm, bởi vì các hằng số là khác nhau ở mỗi vòng.  Hàm feedforward ngăn cản các tấn công “meet-in-the- middle”, “birthday” tìm ra các ảnh trước đó của hàm băm (mặc dù sự phức tạp sẽ là 296). 4. Thuật toán Whirlpool a. Giới thiệu  Hàm băm Whirlpool được công nhận cùng với phương pháp mã hoá AES là những nền tảng bảo mật mạnh mẽ tại Hội thảo về Bảo Mật NESSIE _ New European Schemes for Signatures, Integrity, and Encryption (các kế hoạch Châu Âu mới cho chữ ký, tính toàn vẹn, và mã hoá) tại Lund, Thụy Điển vào ngày 26/2/2003. Mục đích của dự án là nêu ra những thuật toán bảo mật mới cho thị trường Châu Âu. Vincent Rijmen, trưởng nhóm bảo mật ở văn phòng Cryptomathic.s elgian ở Leuven, là một trong hai tác giả của thuật toán AES và hàm băm Whirlpool. Nếu AES được chọn vào danh sách mã hoá theo khối 128-bit thì Whirlpool được chọn trong danh sách các hàm băm chống xung đột. Whirlpool được xếp vào chuẩn ISO ISO/IEC 10118-3 cho các hàm băm.  Whirlpool là hàm băm 512-bit được thiết kế dựa trên nguyên lý hoạt động của AES và có thể là một lựa chọn thay cho thuật toán SHA-1, có tính một chiều, chống xung đột thực hiện trên thông điệp có chiều dài ít hơn 2256 bit do Paulo S.L.M arreto và Vincent Rijmen đề xuất năm 2001. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 64 - SVTT: Lê QuangTuyến  Whirlpool bao gồm việc áp dụng hàm nén nhiều lần, trên nền tảng mã hoá toàn bộ khối 512 bit thông điệp chạy bên dưới, dùng khoá 512 bit. Hàm round và key schedule được thiết kế theo chiến lược Wide Trail. Whirlpool thực thi trên bộ vi xử lý 8-bit và 64-bit thuận lợi đặc biệt do cấu trúc hàm; tuy nhiên, lại không hướng tới bất kỳ nền phần cứng cụ thể nào b. Các cơ sở lý thuyết  Các ký hiệu toán học  Trƣờng Galois (sự biểu diễn nhị phân)  Ký hiệu trường Galois GF(24) là GF(2)[x] / p4(x) với p4(x) = x4 x 1 và trường (28) như (2)[x] / p8x với p8(x) = x8 + x4 + x3 + x2 + 1.  Đa thức p4(x) và p8(x) là các đa thức chính đầu tiên ở bậc 4 và 8, và được chọn sao cho g(x) = x là phần tử sinh của GF(24) / {0} và GF(28) /{0} tương ứng. Các phần tử thuộc trường alois được biểu diễn dưới dạng một đa thức u= ui.xi Є (2)[x], trong đó ui Є (2) với mọi i =0,…, m-1 sẽ được ghi chú giá trị số ui 2i hay được viết dưới dạng thập lục phân, ví dụ 13x để ký hiệu cho p4(x).  Các lớp ma trận  Mmxn [GF(28)] ký hiệu cho tập các ma trận mxn dựa trên trường Galois ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 65 - SVTT: Lê QuangTuyến  GF(28). Cir(a0, a1, …, am-1) ký hiệu cho ma trận xoay vòng mxm mà dòng đầu tiên bao gồm a0, a1, …, am-1, tức là:  Đơn giản Cir(a0, a1, …, am-1) = c ⇔ cij = a(j-i) mod m, 0 ≤ i, j ≤ m-1  Mã MDS (MDS code - Maximal Distance Separable code)  Khoảng cách Hamming : giữa hai vectơ u và v từ không gian vectơ n chiều GF(2p)n bằng số tọa độ mà u và v khác nhau.  Trọng lượng Hamming wh(a) : của phần tử a Є (2p)n là khoảng cách Hamming giữa a và vectơ không trong trường GF(2p)n tức là số thành phần khác không của a.  Mã tuyến tính [n,k,d] : trên trường GF(2p)n là không gian con k chiều của không gian vectơ ( (2p))n trong đó khoảng cách Hamming giữa 2 vectơ không gian con phân biệt bất kỳ ít nhất là d (và d là số lớn nhất với đặc tính này).  Ma trận sinh G : cho mã [n,k,d] tuyến tính C là ma trận kxn mà các dòng của ma trận này hình thành nên nền tảng cho C. Một ma trận phát sinh ở dạng chuẩn hay phân cấp bậc, nếu nó có dạng G = [Ikxk Akx(n-k)] trong đó Ikxk là ma trận định vị bậc k. Viết đơn giản là G = [IA] bỏ đi các chỉ mục khi các chiều của ma trận không liên quan đến thảo luận hay đã rõ trong ngữ cảnh đã cho. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 66 - SVTT: Lê QuangTuyến  Mã tuyến tính [n,k,d] tuân theo ràng buộc một đầu là d ≤ n – k + 1. Mã gặp giới hạn này tức là d = n-k+1 gọi là mã có thể phân rã khoảng cách lớn nhất. Mã [n,k,d] tuyến tính C với ma trận phát sinh G = [Ikxk Akx(n- k)] là MDS khi và chỉ khi mọi ma trận con vuông hình thành từ các dòng và các cột của A thì không kỳ dị.  Các thuộc tính mật mã  Tích của m biến Bool phân biệt được gọi là tích bậc m của các biến. Mỗi hàm Bool f : GF(2n) GF(2) có thể được viết như một tổng trên trường GF(2) của các tích bậc m phân biệt của các đối số của nó, 0≤ m ≤n, và được gọi là dạng chuẩn đại số của f.  Bậc dạng chuẩn đại số của f, kí hiệu là v(f) là bậc lớn nhất của các số hạng xuất hiện trong dạng chuẩn đại số của f. Một hàm Bool tuyến tính là hàm Bool có bậc bằng 1, tức là dạng chuẩn đại số của nó chỉ bao gồm các đối số đơn. Cho trước α Є (2)n, ký hiệu hàm Bool tuyến tính là lα:  Một ánh xạ S: (2n) (2 n), x S[x] được gọi là S- box. Một S-box cũng có thể được xem như là một ánh xạ S : GF(2n)  (2 n), do đó được mô tả dưới dạng các hàm Bool thành phần của nó si : GF(2n)  (2), 0 ≤ i ≤ n-1 tức là S[x] = (s0(x),…,sn-1(x)). ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 67 - SVTT: Lê QuangTuyến  Bậc của một S-box S, ký hiệu là vS là bậc nhỏ nhất trên tất cả các phép hợp các thành phần của S:  Tham số δ của một S-box S được định nghĩa như sau:  Giá trị 2n. δ được gọi là hệ số đồng dạng phân biệt của S.  Hệ số tương quan (correlation) c(f,g) giữa 2 hàm Bool f và g được định nghĩa như sau:  Cực trị (the extreme value) của hệ số tương quan giữa các hàm tuyến tính của các bit đầu vào và các hàm tuyến tính của các bit đầu ra được gọi là độ dốc của S (the bias of S).  Tham số λ của S-box S được định nghĩa là giá trị tuyệt đối của độ dốc:  Số nhánh B (the branch number B) của ánh xạ tuyến tính : GF(2n)k  GF(2 n)m  Cho mã tuyến tính a[k m,k,d] trên trường GF(2p) với ma trận phát sinh (generator matrix) G = [IkxkMkxm], ánh ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 68 - SVTT: Lê QuangTuyến xạ tuyến tính : GF(2n)k  (2 n)m được định nghĩa bởi θ(a) = a.M có nhánh (θ) = d; nếu mã là MDS, một ánh xạ như vậy được gọi là ánh xạ lan truyền tối ưu (optimal Diffusion mapping).  Ký hiệu khác  Cho một dãy các hàm fm, fm 1,…, fn-1, fn, nếu m x ≤ n, chúng ta dùng ký hiệu: và nếu m > n cả hai biểu thức thay thế cho ánh xạ đơn vị.  Các ánh xạ và hằng số thành phần tạo nên Whirlpoo Whirlpool nguyên thủy chính là hàm băm Merkle dựa trên mã hoá toàn bộ khối (dedicated block cipher), W, hoạt động trên một trạng thái băm (state hash) 512 bit dùng một trạng thái khoá mắc xích (chained key state), cả hai đều xuất phát từ dữ liệu nhập. Sau đây là các ánh xạ và các hằng số thành phần thiết lập nên Whirlpool và đặc tả hàm băm Whirpool.  Nhập và xuất  Trạng thái băm (state hash) bên trong được xem như là một ma trận M8x8[GF(28)]. o đó, các khối dữ liệu 512 bit (được mô tả bên ngoài như các mảng byte bằng cách nhóm các bit lần lượt thành những đoạn 8 bit) phải được ánh xạ đến hay từ định dạng ma trận. Việc này được thực hiện bởi hàm µ : GF(28)64  M8x8[GF(28)] và nghịch đảo của nó là : µ(a) = b ⇔ bij = a8i j, 0 ≤ i, j ≤ 7 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 69 - SVTT: Lê QuangTuyến  Lớp phi tuyến γ  Hàm γ: M8x8[ (28)]  M8x8[GF(28)] bao gồm việc áp dụng song song của S-box S : GF(28)  GF(28), x S[x] cho tất cả các byte của từng đối số : γ (a) = b ⇔ bij = S[aij], 0 ≤ i, j ≤ 7  Hoán vị theo chu kỳ π  Hàm hoán vị π­: M8x8[ (28)] M8x8[ (28)] xoay theo chu kỳ mỗicột của đối số (argument) của nó một cách độc lập, để các phần tử thuộc cột j được xoay j vị trí trên cột j (xoay theo dòng): π(a) = π ⇔ bij = a(i-j) mod 8 ,j, 0 ≤ i, j ≤ 7  Mục đích của π là phát tán các byte của mỗi dòng giữa các dòng với nhau.  Lớp lan truyền tuyến tính θ  Lớp lan truyền tuyến tính θ: M8x8[ (28)] M8x8[GF(28)] là một ánh xạ tuyến tính dựa trên mã MDS [n,k,d] với n = 16, k = 8, d = 9 với ma trận sinh GC = [IC] trong đó C = Cir(01x, 01x, 04x, 01x, 08x, 05x, 02x,09x) tức là : để θ(a) = b ⇔ b = a. C. Kết quả của θ là trộn các byte trong mỗi dòng trạng thái. ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 70 - SVTT: Lê QuangTuyến  Phép cộng khoá σ[k]  Phép cộng khoá quan hệ σ[k] : M8x8[ (28)] M8x8[GF(28)] bao gồm phép XOR của ma trận khoá k Є M8x8[GF(28)] : σ[k](a) = b ⇔ bij = aij⊕ kij, 0 ≤ i, j ≤ 7 Ánh xạ này cũng cho biết các hằng số vòng trong bảng xếp lịch khoá.  Hằng số vòng cr  Hằng số vòng cho vòng thứ r, r>0, là một ma trận cr Є M8x8[ (28)], được định nghĩa như sau:  Hàm vòng p[k]  Hàm vòng thứ r là ánh xạ hợp (composite mapping) p[k] : M8x8[GF(28)] M8x8[GF(28)]  tham số hoá bởi ma trận khoá k Є M8x8[ (28)] và được cho bởi: p[k] ≡ σ[k] ° θ ° π ° γ  Bảng xếp lịch khoá  Bảng xếp lịch khoá được mở rộng khoá mật mã 512 bit K Є M8x8[ (28)] thành các khoá vòng K0,…, KR : K0 = K, Kr = ρ[cr]( Kr-1 ), r > 0.  Mật mã khối nội W ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 71 - SVTT: Lê QuangTuyến  Mật mã toàn bộ khối 512 bit W[K] : M8x8[GF(28)] M8x8[GF(28)], tham số hoá bởi khoá mật mã nội 512 bit K, được định nghĩa như sau: ở đó các khoá vòng K0,…, KR dẫn xuất từ K bởi bảng xếp lịch khóa. Số vòng ngẫu nhiên là R = 10. c. Các bƣớc xử lý trong thuật toán Đầu vào : dữ liệu cần băm M Đầu ra : giá trị băm (512 bit) Thuật toán Whirlpool gồm 3 bước:  Bƣớc 1  Thêm bit: thêm vào bit 0 và 1 để chiều dài của M (tính bằng bit) là bội số của 256, ta được M‟  Bƣớc 2  Chia M‟ thành t khối : m1, m2,…, mt  ăm các khối mi (1 ≤ i ≤ t) dùng mật mã toàn bộ khối 512-bit W như sau :  ηi = µ(mi),  H0 = µ(IV),  Hi = W[Hi - 1](ηi)  Hi – 1  ηi, 1 ≤ i ≤ t  Trong đó:  IV (Initialisation Vector) là một chuỗi 512-bit „0‟  µ: là một ánh xạ GF(28)64 M8x8[GF(28)] và nghịch đảo của nó là : µ(a) = b ⇔ bij = a8i j, 0 ≤ i, j ≤ 7  Bƣớc 3: ánh xạ giá trị băm ngƣợc lại chuỗi bit ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 72 - SVTT: Lê QuangTuyến  WHIRLPOOL(M) ≡ µ−1(Ht).  Mật mã toàn bộ khối 512-bit W là ánh xạ W[K]: W[K]: M8x8[GF(28)]  M8x8[GF(28)] d. Đánh giá hàm băm Whirpool  Ƣu điểm:  Có khả năng mở rộng phạm vi sử dụng hơn đa số các hàm băm khác.  Hiệu quả trên đa số phần cứng (hỗ trợ các bộ xử lý 8 bit, 32 bit, 64 bit).  Không yêu cầu không gian lưu trữ quá mức cho cả mã lẫn các S-box.  Được cài đặt hiệu quả trên môi trường có những ràng buộc như các thẻ.  thông minh, các thiết bị cầm tay, …; và hoạt động với hiệu suất rất cao khi hoạt động trên các bộ nhớ cache lớn hơn của các bộ xử lý hiện đại.  Chỉ sử dụng những lệnh đơn giản được hỗ trợ sẵn trong bộ xử lý máy tính.  Không dùng những lệnh không thông thường hay từ các tiện ích .  Chiều dài giá trị băm dài làm tăng khả năng chống lại các tấn công.  Khuyết điểm  Thuật toán phức tạp. 5. So sánh SHA-1, Tiger, Whirlpool ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 73 - SVTT: Lê QuangTuyến Bảng 7: So sánh các thuật toán SHA-1, Tiger, Whirlpool SHA-1 Tiger Whirlpool SHA-1 được đề xuất vào tháng 4 /2005 Ross Anderson và Eli Biham đề xuất thuật toán Tiger, “A Fash New Hash unction” vào năm 1996 Paulo S.L.M Barreto và Vincent Rijmen đề xuất năm 2001 Được chứng nhận bởi Viện Công nghệ và Tiêu chuẩn quốc gia (NIST) Mỹ Được công nhận là nền tảng bảo mật mạnh mẽ tại hội thảo về ảo mật NESSIE – New European Schemes for Signatures, Integrity, and Encryption tại Lund, Thụy Điển vào ngày 26/2/2003 Chiều dài băm 160 bits Chiều dài băm 192 bits Chiều dài băm 512 bits Có thể bị tấn công bằng phương pháp “meet – in – the – middle”, “ birthday” Không bị tấn công bằng phương pháp “meet – in – the – middle”, “ birthday” Làm hàm băm chống xung đột Hiện nay đã bị tấn công bởi 3 nhà nghiên cứu Trung Quốc. Hiện nay chưa bị tấn công. Hiện nay chưa bị tấn công. Kém hiệu quả trên dòng máy 64 bits Nó nhanh như SHA-1 trên bộ vi xử lý 32 bits và nhanh hơn Whirlpool thực thi trên bộ vi xử lý 8 bits và 64 ĐỀ TÀI XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG TÍCH HỢP GVHD: ThS. Trần Minh Tùng - Trang 74 - SVTT: Lê QuangTuyến khoảng 3 lần trên vi xử lý 64 bits (DEC Alpha), và được cho là nhanh hơn SHA-1 trên các bộ vi xử lý

Các file đính kèm theo tài liệu này:

  • pdfLuận văn tốt nghiệp- Xây dựng và bảo mật hệ thống tích hợp.pdf