BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH NGUYỄN XUÂN DUY NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HÓA Chuyên ngành KHOA HỌC MÁY TÍNH Mã chuyên ngành 60480101 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2O17 2 TÓM TẮT LUẬN VĂN THẠC SĨ Dữ liệu lưu trữ trong cơ sở dữ liệu (CSDL) cần được bảo vệ trước mọi tấn công và truy cập trái phép nhằm đảm bảo tính bí mật và tính riêng tư dữ liệu, đặc biệt là dữ.
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH NGUYỄN XUÂN DUY NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HĨA Chun ngành: KHOA HỌC MÁY TÍNH Mã chuyên ngành: 60480101 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2O17 TĨM TẮT LUẬN VĂN THẠC SĨ Dữ liệu lưu trữ sở liệu (CSDL) cần bảo vệ trước công truy cập trái phép nhằm đảm bảo tính bí mật tính riêng tư liệu, đặc biệt liệu nhạy cảm Để giải vấn đề này, luận văn đề xuất phương pháp kết hợp hệ mật mã RSA-AES để mã hóa liệu CSDL đưa mơ hình, giải pháp cụ thể cho tốn Bên cạnh đó, nghiên cứu quan tâm đến giải pháp nhằm nâng cao tính tiện ích giải vấn đề phát sinh liệu bị mã hóa: giải pháp dự phịng để giải mã liệu, giải pháp thay đổi khóa bí mật liệu mã hóa, xác thực thơng tin đăng nhập thay đổi khóa bí mật cách ứng dụng chữ ký số sử dụng hệ mã RSA,… Giải pháp đề xuất triển khai ứng dụng Web kết nối với hệ quản trị CSDL Oracle 12c áp dụng thử nghiệm để bảo vệ tính bí mật vị trí kho hàng hóa vận chuyển đường hàng không Nghiên cứu bước đầu cho kết khả quan phát triển để áp dụng vào tốn khác như: bảo mật thơng tin lĩnh vực y tế, ngân hàng MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU DANH MỤC TỪ VIẾT TẮT MỞ ĐẦU 10 LÝ DO CHỌN ĐỀ TÀI 10 TỔNG QUAN TÌNH HÌNH THỰC TẾ VÀ TÌNH HÌNH NGHIÊN CỨU 11 MỤC TIÊU NGHIÊN CỨU 14 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 14 PHƯƠNG PHÁP NGHIÊN CỨU 14 CẤU TRÚC CỦA LUẬN VĂN 15 CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ BẢO MẬT CƠ SỞ DỮ LIỆU 16 1.1 Một số khái niệm sử dụng đề tài nghiên cứu 16 1.2 An tồn bảo mật thơng tin 18 1.3 Bảo mật sở liệu phương pháp mã hóa 20 1.3.1 Các mức mã hóa 21 1.3.2 Phương pháp mã hóa 23 1.4 Bảo mật phương pháp mã hóa hệ quản trị CSDL ORACLE 26 CHƯƠNG 2: GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HĨA 34 2.1 Mơ hình mã hóa liệu cách kết hợp hệ mật mã RSA AES 34 2.1.1 Định nghĩa hệ mật mã 34 2.1.2 Mơ hình mã hóa liệu RSA-AES 35 2.2 Kết hợp RSA-AES để mã hóa liệu CSDL 36 2.2.1 Mơ hình RSA-AES để mã hóa liệu CSDL 36 2.2.2 Giải pháp kết hợp RSA-AES để mã hóa liệu CSDL 39 2.3 Giải pháp thay đổi khóa bí mật liệu mã hóa 45 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM 51 3.1 Xây dựng chương trình 51 3.1.1 Bài toán thực nghiệm 51 3.1.2 Thiết kế chương trình 52 3.2 Thử nghiệm chương trình 57 3.2.1 Mơ tả chương trình 57 3.2.2 Kết thử nghiệm chương trình 59 3.3 Đánh giá kết thử nghiệm 66 KẾT LUẬN 74 TÀI LIỆU THAM KHẢO 79 PHỤ LỤC 82 LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN 87 DANH MỤC HÌNH ẢNH Hình 1.1 Mơ hình mã hóa liệu CSDL mức ứng dụng .17 Hình 1.2 Những yêu cầu bảo mật hệ thống thông tin 18 Hình 1.3 Mơ hình mã hóa mức lưu trữ .21 Hình 1.4 Mơ hình mã hóa mức hệ quản trị CSDL 22 Hình 1.5 Mơ hình mã hóa mức ứng dụng 23 Hình 1.6 Mơ hình mã hóa đối xứng 24 Hình 1.7 Mơ hình mã hóa khóa công khai 25 Hình 1.8 Mơ hình chức mã hóa ORACLE .26 Hình 1.9 Cơ chế hoạt động TDE .27 Hình 2.1 Mơ hình mã hóa RSA-AES 35 Hình 2.2 Mơ hình giải mã RSA-AES 36 Hình 2.3 Mơ hình RSA-AES để mã hóa liệu CSDL 37 Hình 2.4 Mơ hình RSA-AES để giải mã liệu CSDL 38 Hình 2.5 Mơ hình mã hóa RSA-AES User Backup 41 Hình 2.6 Mơ hình giải mã RSA-AES User Backup 41 Hình 2.7 Sơ đồ kiểm tra xác thực thông tin đăng nhập thay đổi khóa bí mật .49 Hình 3.1 Hệ điều hành: Oracle Linux Server release 6.4 53 Hình 3.2 Database Oracle 12C .54 Hình 3.3 Oracle SQL Developer: Cấu trúc bảng Location 54 Hình 3.4 Oracle SQL Developer: Dữ liêu bảng Location 55 Hình 3.5 Hệ quản trị CSDL MySQL: Bảng members 55 Hình 3.6 Hệ quản trị CSDL MySQL: Bảng user_kpr_history 56 Hình 3.7 Màn hình đăng nhập 56 Hình 3.8 Giao diện chương trình 57 DANH MỤC BẢNG BIỂU Bảng 2.1 Table USER-KPU-1 42 Bảng 2.2 Table USER-EAES-1 .42 Bảng 2.3 Table USER-KPU-2 43 Bảng 2.4 Table USER-EAES-2 .43 Bảng 2.5 Table USER-KPU-3 45 Bảng 2.6 Table USER-EAES-3 .45 Bảng 2.7 Table USER-KPR-HISTORY sau User1 thay đổi KPR-USR lần 46 Bảng 2.8 Table USER-KPR-HISTORY sau User1 thay đổi KPR-USR lần 47 DANH MỤC TỪ VIẾT TẮT AES Advanced Encryption Standard ANSI American National Standards Institute DAC Discretionary Access Control DBA Database Administrator DBMS Database Management System DCL Data Control Language DDL Data Definition Language DES Data Encryption Standard DML Data Manipulation Language FW Firewall HSM Hardware Security Module HTML HyperText Markup Language IDS Intrusion Detection System ISO International Organization for Standardization MAC Mandatory Access Control MD5 Message-Digest algorithm RMAN Recovery Manager RSA Rivest-Shamir-Adleman SA Security Administrator SHA Secure Hash Algorithm SMS Short Message Services SQL Structured Query Language SSL Secure Sockets Layer TDE Transparent Data Encryption WIFI Wireless Fidelity MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Trong hệ thống công nghệ thông tin, liệu thường lưu trữ cách có tổ chức hệ thống dạng sở liệu (CSDL- Database) CSDL lưu trữ thơng tin bí mật, thơng tin nhạy cảm cần bảo vệ Các thơng tin là: thông tin cá nhân, mật khẩu, hồ sơ điều tra, thơng tin tài ngân hàng, thơng tin cần xác minh,… Do đó, cần có giải pháp hiệu để đảm bảo vấn đề an toàn thơng tin CSDL nói chung bảo vệ tính bí mật liệu, tính riêng tư liệu CSDL nói riêng Chun trang Cơng nghệ thơng tin báo điện tử Infonet - quan ngôn luận Bộ Thơng tin Truyền thơng, có đăng bài: "Security World 2016 bàn bảo mật sở liệu" Hội thảo - Triển lãm Quốc gia An ninh Bảo mật Security World 2016 đưa vào thảo luận chủ đề “Giám sát An tồn thơng tin & Bảo mật liệu: Yêu cầu thiết kỷ nguyên số” Security World 2016 Bộ Công an chủ trì với phối hợp tổ chức Cục An ninh Văn hóa, Thơng tin, Truyền thơng - Tổng cục An ninh, Cục Công nghệ Thông tin - Tổng cục Hậu cần Kỹ thuật với IDG Việt Nam Bảo vệ an tồn liệu thực việc trang bị hệ thống tường lửa, hệ thống phát xâm nhập, kỹ thuật chống truy cập trái phép Việc bảo vệ đảm bảo hệ thống an tồn trước cơng xâm nhập trái phép từ bên Tuy nhiên, rủi ro, nguy từ bên khơng thể kiểm sốt Do đó, vấn đề đặt để đảm bảo an toàn liệu trước nguy cơng từ bên ngồi rủi ro từ bên cần thiết Dịch vụ quản lý CSDL th ngồi mang lại lợi ích kinh tế tính chuyên nghiệp quản lý liệu Với cách quản lý này, máy chủ thuộc tổ chức bên ngồi nên xem khơng đáng tin cậy nội dung sở 10 liệu Hơn nữa, trình thao tác liệu chủ sở hữu liệu hay người dùng thơng qua mạng diện rộng Chính mà thách thức đặt liên quan đến vấn đề bảo mật thông tin mật, thông tin nhạy cảm CSDL Từ thực tế trên, quan tổ chức tập trung xây dụng sách bảo mật kiểm sốt truy cập hay mã hóa liệu đường truyền vấn đề bảo vệ liệu nằm sở liệu chưa quan tâm mức Vì vậy, xảy tình trạng thơng tin liệu mật bị lộ, bị lấy cấp CSDL bị công, xâm nhập Bảo vệ liệu CSDL mức độ tập tin hình thức mã hóa để chống lại truy cập trái phép vào tập tin CSDL Giải pháp không cung cấp mức độ bảo mật truy cập đến CSDL, với quyền truy xuất CSDL truy cập vào tất liệu CSDL Với cách bảo mật này, sử dụng cơng cụ mã hóa sẵn có hệ quản trị CSDL SQL Server, Oracle Trong đó, hệ quản trị CSDL nguồn mở MySQL, MariaDB,…thì cơng cụ mã hóa để bảo vệ tính bí mật liệu cịn hạn chế Với cơng cụ mã hóa TDE (Transparent Data Encryption) Oracle, liệu mật mã hóa lưu tập tin CSDL không bị lộ (do khóa để giải mã) bị cơng vào CSDL Nhưng liệu mật mã hóa bị lộ thơng tin DBA (Database Administrator) họ có ý định xấu hay hợp tác với kẻ công Từ lý trên, nhận thấy việc nghiên cứu giải pháp để bảo vệ tính bí mật tính riêng tư liệu trước cơng từ bên ngồi hay từ nội bên trong, quản trị viên CSDL cần thiết, có ý nghĩa khoa học ứng dụng thực tiễn cao TỔNG QUAN TÌNH HÌNH THỰC TẾ VÀ TÌNH HÌNH NGHIÊN CỨU Năm 2010, Nguyễn Cửu Ánh Mai với luận văn Thạc sĩ chuyên ngành Khoa học máy tính “Nghiên cứu giải pháp bảo mật sở liệu SQL Server phương pháp mã hóa” [1], tác giả nghiên cứu tính mã hóa SQL Server 2008 xây dựng chương trình thực chức mã hóa CSDL dựa tính nghiên cứu 11 Cũng đề cập đến nội dung bảo mật CSDL, Phạm Thị Bạch Huệ hồn thành luận án Tiến sĩ Cơng nghệ thơng tin năm 2013: “Nghiên cứu phát triển số giải pháp bảo mật bảo vệ tính riêng tư sở liệu thuê (ODBS)” [2] Mục tiêu luận án liên quan đến vấn đề bảo mật bảo vệ tính riêng tư đặt dịch vụ quản lý sở liệu thuê ngồi Ngun nhân máy chủ thuộc tổ chức bên ngồi, xem khơng đáng tin cậy nội dung sở liệu Trong luận án tác giả có tổng hợp: "Theo thống kê năm 2011, có triệu hồ sơ y tế bị đánh cắp khoảng từ năm 2009 – 2011; có 77 triệu hồ sơ cá nhân, gồm thơng tin thẻ tín dụng, bị truy cập hệ thống cung cấp trò chơi trực tuyến Sony (Sony Playstation Network) Nguyên nhân chủ yếu việc cắp xuất phát từ vấn đề quản lý quyền truy cập, máy chủ bị công hay từ phía người quản trị CSDL khơng đáng tin cậy Ngồi ra, tại, tính riêng tư người sử dụng dịch vụ trực tuyến (ví dụ dịch vụ Google, Microsoft Corp., Facebook, Twitter) gần bị phơi bày hoàn toàn nhà cung cấp dịch vụ người sử dụng dịch vụ kiểm sốt thơng tin riêng tư họ có bảo vệ hay không" Liên quan đến vấn đề bảo vệ quyền bảo vệ tính tồn vẹn CSDL: Năm 2014, luận văn Thạc sĩ Khoa học máy tính Dương Thị Lan Hương với đề tài “Xác thực toàn vẹn sở liệu quan hệ kỹ thuật thủy vân số dựa vào hệ mật mã khóa cơng khai” [3] Một CSDL cơng khai sử dụng rộng rãi mạng Internet dễ dẫn đến việc CSDL dễ dàng bị chép, sửa đổi Để bảo vệ liệu không bị chép bất hợp pháp bảo vệ toàn vẹn liệu CSDL, tác giả trình bày chi tiết kỹ thuật thủy vân số kết hợp với chế xác thực công khai dựa vào hệ mật mã khóa cơng khai Bài báo “A New Design Of A Hybrid Encryption Algorithm” [4] Jan Mohammad Najar, Shahid Bashir Dar viết năm 2014 Mục đích báo đề xuất mơ hình để mã hóa liệu cách kết hợp thuật tốn mã hóa đối xứng mã hóa cơng khai (mã hóa bất đối xứng) Giải pháp đưa dùng phương pháp mã hoá đối xứng AES để mã hoá liệu, sau dùng khóa cơng khai hệ 12 Giải pháp kết hợp RSA-AES thực q trình mã hóa liệu CSDL: APPLICATION DBMS NETWORK Table USER-EAES USER-ID USER1 CP Plain Text (P) KAES CP =EAES (P, KAES) CKAES =ERSA(KAES, KPU) C1-USR C2-USR CKAES Cipher Text CP Cipher Text CKAES Table USER-KPU USER-ID KPU Public Key KPU Plain Text (P) KPU USER1 KPU-USR1 Cipher Text CP , CKAES Public Key KPU USER STORAGE LAYER Plain Text (P) Cipher Text CP Cipher Text CKAES Public Key KPU Hình 2.3 Mơ hình RSA-AES để mã hóa liệu CSDL 37 Giải pháp kết hợp RSA-AES thực trình giải mã liệu CSDL: APPLICATION NETWORK DBMS Table USER-EAES USER-ID Plain Text (P) DAES (CP , KAES) C1-USR USER1 CP C2-USR CKAES Cipher Text CP KAES DRSA ( CKAES , KPR) Cipher Text CKAES Table USER-KPU USER-ID KPR Plain Text (P) KPU USER1 KPU-USR1 Private Key KPR Cipher Text CP , CKAES Public Key KPU USER STORAGE LAYER Private Key KPR Plain Text (P) Cipher Text CP Cipher Text CKAES Public Key KPU Hình 2.4 Mơ hình RSA-AES để giải mã liệu CSDL 38 2.2.2 Giải pháp kết hợp RSA-AES để mã hóa liệu CSDL Phương pháp kết hợp hệ mã RSA AES mã hóa liệu bí mật riêng tư người dùng (hay chủ sở hữu liệu thuê dịch vụ CSDL bên ngoài) Với phương thức bảo vệ liệu mật, người quản trị CSDL Một vấn đề đặt liệu mật mã hóa giải mã khóa bí mật người dùng, trường hợp người dùng quên hay làm khóa bí mật liệu xử lý giải mã sao? Câu trả lời không giải mã Để giải trường hợp này, đề xuất giải pháp cụ thể sau: Đề xuất số nguyên tắt thực hiện: - Khóa đối xứng KAES sau mã hóa hệ mã AES mã hóa hệ mã RSA, hủy (không lưu) để bảo vệ liệu mật mã hóa AES - Trên nguyên tắc lần mã hóa liệu khác sinh cặp khóa RSA (KPU, KPR ) Trong nội dung đề tài này, đề xuất sử dụng cặp khóa (KPU, KPR ) tương ứng với User cho tất lần mã hóa - Xây dựng thêm khóa RSA dự phòng (backup) để backup tất người dùng (user) Bộ khóa RSA dự phịng (KPU-BKK, KPR-BKK ), khóa RSA cho user (KPU-USR, KPR-USR ) Khóa bí mật KPR-BKK lưu két sắt quản lý lãnh đạo quan, công ty nhằm bảo vệ liệu mật mã hóa, người quản trị CSDL (hay dịch vụ thuê CSDL bên ngồi) Khóa KPR-BKK sử dụng giải mã cần thiết, chẳng hạn trường hợp cần giải mã liệu khóa bí mật KPR-USR người dùng bị mất, Các thuật toán đề xuất thực sau: - Thuật toán 1: Sinh khóa KAES cho lần mã hóa P Như User mã hóa KAES Backup mã hóa KAES để dự phịng User mã hóa KAES : ERSA(KAES, KPU-USR ) Backup mã hóa KAES : ERSA(KAES, KPU-BKK ) 39 Q trình mã hóa giải mã: + Đối với User: Mã hóa: C1-USR1 = EAES (P, KAES) C2-USR1 = ERSA (KAES, KPU-USR1) Giải mã: KAES = DRSA (C2-USR1, KPR-USR1) P = DAES (C1-USR1, KAES) + Đối với Backup: Mã hóa: C2-BKK = ERSA (KAES, KPU-BKK) Giải mã: KAES = DRSA (C2-BKK, KPR-BKK) P = DAES (C1-USR1, KAES) * Mơ hình mã hóa RSA-AES, giải mã RSA-AES User Backup: 40 Plain Text (P) KAES AES Cipher Text: Encryption (P , KAES) C1-USR1 = EAES (P, KAES) User RSA Encryption (KAES , KPU-USR1) Cipher Text: C2-USR1 = ERSA (KAES, KPU-USR1) KPU-USR1 Backup RSA Encryption (KAES , KPU-BKK) Cipher Text: C2-BKK = ERSA (KAES, KPU-BKK) KPU-BKK Hình 2.5 Mơ hình mã hóa RSA-AES User Backup KPR-USR1 RSA Decryption (C2-USR1, KPR-USR1) C2-USR1 Cipher Text: C2-USR1 AES KAES Decryption (C1-USR1, KAES) C1-USR1 User Cipher Text: C1-USR1 Plain Text (P) Backup C1-USR1 AES Decryption (C1-USR1, KAES) Cipher Text: C2-BKK C2-BKK RSA KAES Decryption (C2-BKK, KPR-BKK) KPR-BKK Hình 2.6 Mơ hình giải mã RSA-AES User Backup 41 * Dữ liệu mô lưu bảng sau: Bảng 2.1 Table USER-KPU-1 USER-ID KPU BKK KPU-BKK USER1 KPU-USR1 USER2 KPU-USR2 Bảng 2.2 Table USER-EAES-1 USER-ID USER1 C1-USR C2-USR C1-USR1 C2-USR1 C2-BKK C2-BKK - Thuật tốn 2: Khi khóa RSA User sinh (KPU-USR, KPR-USR ) Backup sử dụng khóa cơng khai KPU-BKK mã hóa khóa bí mật KPR-USR User (việc mã hóa thực lần cho User sinh khóa KPU-USR,KPR-USR) Khi KPR-USR bị Backup sử dụng KPR-BKK để giải mã khóa KPR-USR Backup sử dụng khóa cơng khai KPU-BKK mã hóa khóa bí mật KPR-USR User: C KPR-USR = ERSA (KPR-USR , KPU-BKK) Quá trình mã hóa giải mã: + Đối với User: Mã hóa: C1-USR1 = EAES (P, KAES) 42 C2-USR1 = ERSA (KAES, KPU-USR1) Giải mã: KAES = DRSA (C2-USR1, KPR-USR1) P = DAES (C1-USR1, KAES) + Đối với Backup: Mã hóa: Không thực Giải mã: KPR-USR1 = DRSA ( C KPR-USR1, KPR-BKK) KAES = DRSA (C2-USR1, KPR-USR1) P = DAES (C1-USR1, KAES) * Dữ liệu mô lưu bảng sau: Bảng 2.3 Table USER-KPU-2 USER-ID KPU C-KPR-USR BKK KPU-BKK USER1 KPU-USR1 C KPR-USR1 USER2 KPU-USR2 C KPR-USR2 Bảng 2.4 Table USER-EAES-2 USER-ID USER1 C1-USR C1-USR1 C2-USR C2-USR1 43 - Thuật toán 3: Sử dụng KAES cho User để lần mã hóa P Khi sinh khóa RSA User (KPU-USR, KPR-USR ) sinh ln khóa KAES Sau User Backup sử dụng RSA mã hóa KAES khóa KPU-USR , KPU-BKK tương ứng Mã hóa KAES User: C KAES-USR = ERSA (KAES , KPU-USR) Mã hóa KAES Backup: C KAES-BKK = ERSA (KAES , KPU-BKK) Q trình mã hóa giải mã: + Đối với User: Mã hóa: KAES = DRSA ( C KAES-USR1 , KPR-USR1) C1-USR1 = EAES (P, KAES) Giải mã: KAES = DRSA ( C KAES-USR1 , KPR-USR1) P = DAES (C1-USR1, KAES) + Đối với Backup: Mã hóa: Khơng thực Giải mã: KAES = DRSA ( C KAES-BKK , KPR-BKK) P = DAES (C1-USR1, KAES) 44 * Dữ liệu mô lưu bảng sau: Bảng 2.5 Table USER-KPU-3 USER-ID KPU C-KAES-USR C-KAES-BKK BKK KPU-BKK USER1 KPU-USR1 C KAES-USR1 C KAES-BKK USER2 KPU-USR2 C KAES-USR2 C KAES-BKK Bảng 2.6 Table USER-EAES-3 USER-ID USER1 C1-USR C1-USR1 2.3 Giải pháp thay đổi khóa bí mật liệu mã hóa Trong trường hợp User muốn thay đổi khóa bí mật KPR-USR , khóa bị lộ hay nhu cầu cá nhân Hiện tất liệu mật mã hóa giải mã khóa bí mật KPR-USR (ngoại trừ Backup) Như vấn đề tiếp tục đặt giải KPR-USR thay đổi ? Chúng đưa giải pháp sau: - Giải pháp 1: Trước thay đổi khóa KPR-USR, User phải thực giải mã tất liệu mã hóa Sau thay đổi khóa KPR-USR thành cơng, User tiếp tục mã hóa lại liệu theo khóa bí mật KPR-USR - Giải pháp 2: Lưu lại lịch sử liệu cho lần thay đổi khóa KPR-USR theo User thực lấy liệu cho lần lưu sau (Input-time sau cùng) để lần tìm khóa KPR-USR gốc (cấp lần đầu, tương ứng với khóa KPU-USR mã hóa) Thuật tốn mô tả chi tiết sau: 45 Do tất liệu mã hóa khóa bí mật KPR-USR gốc (cấp lần đầu) nên bắt buộc hệ thống phải lưu lại KPR-USR (dạng mã hóa để bảo mật) có thay đổi KPR-USR + Khi thay đổi KPR-USR lần 1: ( KPR-USR-1 , KPU-USR-1 ) Thực mã hóa KPR-USR gốc lưu vào bảng USER-KPR-HISTORY CSDL: C KPR-USR = ERSA (KPR-USR , KPU-USR-1) Trong đó: o KPR-USR ( KPR-USR-i , KPU-USR-i ) tương ứng KPR-USR gốc (KPR-USR , KPU-USR) lần thay đổi thứ i (trường hợp i=1) Bảng 2.7 Table USER-KPR-HISTORY sau User1 thay đổi KPR-USR lần USER-ID USER1 C-KPR-USR C KPR-USR KPU-USR-I KPU-USR-1 INPUT-TIME 22-OCT-2016 19:00 * Input-time: Hệ thống ghi nhận ngày thực thay đổi khóa bí mật KPR Sau thay đổi khóa bí mật thành cơng, User đăng nhập vào hệ thống giải mã KPRUSR để sử dụng giải mã liệu theo bước: b1: KPR-USR = DRSA ( C KPR-USR, KPR-USR-1 ) b2: Sử dụng KPR-USR để giải mã liệu Trong đó: o KPR-USR KPR-USR gốc (giải mã tất liệu mã hóa) 46 o C KPR-USR , KPU-USR-1 lấy từ mẫu tin theo Input-time sau tương ứng với User bảng USER-KPR-HISTORY o KPR-USR-1 khóa bí mật hành (đã thay đổi thành công lần 1) + Khi thay đổi KPR-USR lần 2: ( KPR-USR-2 , KPU-USR-2 ) Thực giải mã mã hóa lại KPR-USR gốc KPU-USR-2 lưu vào bảng USER-KPR-HISTORY CSDL: KPR-USR = DRSA ( C KPR-USR, KPR-USR-1 ) C KPR-USR = ERSA (KPR-USR , KPU-USR-2) Trong đó: o KPR-USR ( KPR-USR-i , KPU-USR-i ) tương ứng KPR-USR gốc (KPR-USR , KPU-USR) lần thay đổi thứ i (trường hợp i=2) o C KPR-USR , KPU-USR-1 lấy từ mẫu tin theo Input-time sau tương ứng với User bảng USER-KPR-HISTORY o KPR-USR-1 khóa bí mật hành (cũ) trước thay đổi khóa (lần 2) Bảng 2.8 Table USER-KPR-HISTORY sau User1 thay đổi KPR-USR lần USER-ID C-KPR-USR KPU-USR-I INPUT-TIME USER1 C KPR-USR KPU-USR-1 22-OCT-2016 19:00 USER1 C KPR-USR KPU-USR-2 22-OCT-2016 20:30 Sau thay đổi khóa bí mật thành công, User đăng nhập vào hệ thống giải mã KPRUSR để sử dụng giải mã liệu theo bước: b1: KPR-USR = DRSA ( C KPR-USR, KPR-USR-2 ) b2: Sử dụng KPR-USR để giải mã liệu 47 Trong đó: o KPR-USR KPR-USR gốc (giải mã tất liệu mã hóa) o C KPR-USR , KPU-USR-2 lấy từ mẫu tin theo Input-time sau tương ứng với User bảng USER-KPR-HISTORY o KPR-USR-2 khóa bí mật hành (đã thay đổi thành cơng lần 2) + Tương tự thực thay đổi KPR-USR cho lần 3,4, thực tương tự cho User khác * Để xác thực thông tin người dùng (UserName, Password, PrivateKey) hợp lệ trước hệ thống chấp nhận cho thay đổi khóa bí mật, chữ ký số sử dụng hệ mã hóa RSA ứng dụng để giải vấn đề Do khóa bí mật hệ thống khơng lưu, giải pháp sử dụng kỹ thuật chữ ký số để xác nhận “Old PrivateKey” hay không theo bước sau: Chữ ký số = ERSA (MD5(Username) , KPR) Hệ thống kiểm tra: DRSA (Chữ ký số , KPU) = MD5(Username) Trong đó: - ERSA DRSA : Mã hóa, giải mã hệ mã RSA - MD5: Mã hóa hàm băm MD5 - KPR, KPU, Username Password: Khóa bí mật, khóa cơng khai, tên đăng nhập mật User đăng nhập 48 Sơ đồ kiểm tra xác thực thông tin người dùng (Username, Password, PrivateKey) trước hệ thống chấp nhận cho thay đổi khóa bí mật: User nhập: -Username -Password -PrivateKey PrivateKey (KPR) Username, Password Hệ thống kiểm tra: Username Password Username Đúng Băm: MD5(Username) Hợp lệ ? Sai Mã hóa: Thốt: Đăng nhập khơng thành công ERSA (MD5(Username) , KPR) Chữ ký số Hệ thống giải mã: DRSA (Chữ ký số , KPU) So sánh ? KPU Hệ thống: PublicKey Sai Đúng Kết thúc: Đăng nhập thành cơng Hình 2.7 Sơ đồ kiểm tra xác thực thơng tin đăng nhập thay đổi khóa bí mật Tiểu kết chương Kết hợp hệ mật mã khóa cơng khai (RSA) hệ mật mã khóa đối xứng (AES) để mã hóa liệu, ứng dụng để xây dựng giải pháp bảo vệ tính bí mật tính riêng tư liệu CSDL phương pháp mã hóa Chúng tơi xây dựng giải pháp kết hợp RSA-AES để mã hóa liệu CSDL đưa thuật toán theo giải pháp Giải pháp đề xuất đảm bảo tin cậy hiệu lý sau: 49 - Giải pháp kết hợp RSA-AES mang lại hiệu cao q trình mã hóa giải mã Do tốc độ thuật toán RSA chậm nhiều so với thuật tốn mã hóa khóa đối xứng AES, lý nên chúng tơi khơng sử dụng thuật tốn RSA để xử lý (mã hóa giải mã) trực tiếp liệu mà kết hợp với thuật tốn AES để mã hóa giải mã liệu Kết hợp RSA-AES đề xuất áp dụng [4], [13], [14], [15], [16] - Trong phạm vi nghiên cứu đề tài, tính bí mật tính riêng tư liệu lưu CSDL đảm bảo trước công: + Truy cập vào CSDL trái phép (từ bên ngoài, nội bên hay DBA): Do liệu lưu trữ bảng CSDL (thể “DBMS” hình 2.3, hình 2.4) bị mã hóa (ngoại trừ khóa cơng khai) + Lấy cấp tập tin CSDL: Do liệu mã hóa tập tin lưu trữ ổ đĩa (thể “STORAGE LAYER” hình 2.3, hình 2.4) - Khơng CSDL, tính bí mật tính riêng tư liệu bảo vệ đường truyền (dữ liệu mã hóa thể “NETWORK” hình 2.3, hình 2.4) Ở chương 2, giải pháp nhằm nâng cao tính tiện ích giải vấn đề liên quan trình bày: + Giải pháp dự phịng để giải mã liệu mã hóa trường hợp khóa bí mật bị + Giải pháp thay đổi khóa bí mật liệu mã hóa + Sơ đồ kiểm tra xác thực thơng tin đăng nhập thay đổi khóa bí mật cách ứng dụng chữ ký số sử dụng hệ mã RSA Trong chương tiếp theo, xây dựng chương trình thử nghiệm theo giải pháp thuật tốn đề xuất 50 CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM 3.1 Xây dựng chương trình 3.1.1 Bài tốn thực nghiệm Xây dựng chương trình thực nghiệm theo giải pháp đề xuất: bảo vệ tính bí mật liệu vị trí kho (Location) hàng hóa vận chuyển đường hàng khơng (khơng vận đơn-Airway Bill) Vị trí kho lơ hàng vận chuyển đường hàng không cần bảo mật thông tin trình khai thác Điều đặc biệt quan lô hàng cần bảo mật cao trình khai thác như: chống trộm hàng hóa q hiếm, tránh sai sót q trình khai thác nhân viên khơng giao nhiệm vụ, hàng hóa cần theo dõi nhằm mục đích điều tra, Như tốn đặt thơng tin vị trí lơ hàng có nhân viên giao nhiệm vụ khai thác lô hàng biết được, thông tin cần bảo mật người quản trị viên sở liệu Thơng tin vị trí kho lưu sở liệu chung với thông tin khác không vận đơn, thông tin bảo mật phương pháp mã hóa Đối với nhân viên giao nhiệm vụ liệu mã hóa theo khóa cơng khai nhân viên này, nhân viên khai thác lơ hàng sử dụng khóa cơng khai để mã hóa Do liệu vị trí trí kho mã hóa giải mã từ khóa bí mật tương ứng người dùng, chương trình cần phải có giải pháp dự phịng để giải mã liệu người dùng qn khóa bí mật hay quan có nhu cầu cần thiết giải mã Nâng cao tiện ích, chương trình cho phép người dùng thay đổi khóa bí mật cần mà đảm bảo giải mã liệu mã hóa trước hay tiếp tục mã hóa giải mã liệu 51 ... CHƯƠNG 2: GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HĨA Hệ mật mã khóa cơng khai (RSA) hệ mật mã khóa đối xứng (AES), tìm hiểu chương 1, sở khoa... hệ mật mã khóa cơng khai (RSA) hệ mật mã khóa đối xứng (AES) để mã hóa liệu, ứng dụng để xây dựng giải pháp bảo vệ tính bí mật tính riêng tư liệu CSDL phương pháp mã hóa Chúng tơi xây dựng giải. .. xây dựng giải pháp bảo mật liệu CSDL 13 Đó lý mà chúng tơi chọn thực đề tài: ? ?Nghiên cứu xây dựng giải pháp bảo vệ tính bí mật tính riêng tư liệu sở liệu phương pháp mã hóa? ?? MỤC TIÊU NGHIÊN CỨU