Cài Đặt Và Thực Nghiệm SQLcipher Trên Hệ Điều Hành Android (Luận Văn Thạc Sĩ)

54 12 0
Cài Đặt Và Thực Nghiệm SQLcipher Trên Hệ Điều Hành Android (Luận Văn Thạc Sĩ)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Cài Đặt Và Thực Nghiệm SQLcipher Trên Hệ Điều Hành Android (Luận Văn Thạc Sĩ) Mục tiêu nghiên cứu Tìm hiểu về SQLite EnCryption Extension và khả năng ứng dụng của SQLCipher vào bảo mật CSDL SQLite trên thiết bị di động. 3. Đối tượng và phạm vi nghiên cứu - Đối tượng nghiên cứu: SEE, SQLCipher. - Phạm vi nghiên cứu: Đồ án tốt nghiệp nghiên cứu các đặc trưng của CSDL SQLite và tìm hiểu về phần mở rộng mã hóa SQLite trên thiết bị di động. 4. Phương pháp nghiên cứu - Nghiên cứu, tài liệu liên quan để thu thập thông tin về cơ sở lý thuyết từ nhiều nguồn (tài liệu, Internet...). - Tổng hợp các kết quả nghiên cứu để lựa chọn cách tiếp cận phù hợp với nội dung nghiên cứu. 5. Những đóng góp của đồ án - Về lý thuyết: Đồ án tình bày tổng quan về bảo mật cơ sở dữ liệu trên thiết bị di động. Trình bày tổng quan về CDSL SQLite; giới thiệu, cách thức hoạt động, API trong SEE, biên dịch và sử dụng SEE. Đồng thời giới thiệu, tìm hiểu về đặc điểm, hướng tiếp cận, tính năng bảo mật và SQLCipher API của SQLCipher. - Về tính ứng dụng: Đồ án trình bày quá trình cài đặt và thực nghiệm SQLCipher để mã hóa CSDL SQLite. 6. Bố cục của đồ án tốt nghiệp Đồ án gồm 3 chương: Chương 1: Tổng quan về bảo mật CSDL Chương đầu tiên này tìm hiểu về các khái niệm chung của CSDL, các yêu cầu bảo mật, mô hình tổng quát, các lớp bảo mật, các cơ chế bảo mật CSDL, một số tấn công lên CSDL và giải pháp hiện có để bảo vệ CSDL. Chương 2: Tìm hiểu về SQLite EnCryption Extension Chương này trình bày tổng quan về CSDL SQLite; đặc điểm, cách thức hoạt động, biên dịch và sử dụng SEE. Đồng thời tìm hiểu về đặc điểm, tính năng bảo mật và cách thức hoạt động của SQLCipher. Chương 3: Cài đặt và thử nghiệm SQLCipher Chương này cài đặt và thử nghiệm SQLCipher trên hệ điều hành Android. (Luận Văn Thạc Sĩ) Cài Đặt SQLcipher Trên Hệ Điều Hành Android, Cài Đặt SQLcipher , Cài Đặt SQLcipher Trên Android, Sqlcipher Android, SQLCipher encryption, Open sqlcipher database, Install sqlcipher Windows, Pysqlcipher3, SQLite, Sqlcipher pragma key

Viện Công Nghệ Thông Tin Và Truyền Thông ĐẠI HỌC BÁCH KHOA HÀ NỘI Luận Văn Thạc Sĩ CÀI ĐẶT VÀ THỰC NGHIỆM SQLCIPHER TRÊN HỆ ĐIỀU HÀNH ANDROID Nguyen Thanh Long Ha Noi, 2023 LỜI MỞ ĐẦU Tính cấp thiết đề tài Ngày nay, cách mạng khoa học công nghệ thúc đẩy phát triển ngành công nghiệp sản xuất, đặc biệt sản xuất thiết bị di động Cùng với phát triển mạnh mẽ nhu cầu sử dụng phần mềm ứng dụng thiết bị di động tăng lên, kéo theo nhu cầu lưu trữ liệu ngày lớn Vấn đề lựa chọn CSDL để tối ưu hóa việc lưu trữ tầm quan trọng bảo mật liệu thiết bị di động vấn đề nhà phát triển cân nhắc nghiên cứu Việc lựa chọn CSDL để đáp ứng yêu cầu lưu trữ bảo mật thông tin cần thỏa mãn đầy đủ nhu cầu : CSDL nhúng, dung lượng nhỏ, thiết kế cài đặt đơn giản, dễ thao tác thiết bị di động Và SQLite ví dụ điển hình xuất sắc, đáp ứng đầy đủ nhu cầu để trở thành CSDL tối ưu để lưu trữ liệu ứng dụng di động Song song với đó, bên cạnh lưu trữ bảo mật liệu vấn đề quan trọng Dữ liệu nằm CSDL quý giá CSDL cần có mức độ bảo mật cao, để bảo vệ bảo đảm an toàn liệu có CSDL thiết bị di động Vì vấn đề bảo mật CSDL trở nên cấp bách cần thiết cho tất người quan lưu trữ liệu mật thơng tin quan trọng Mã hóa phương pháp bảo mật CSDL có độ an toàn đảm bảo Mục tiêu nghiên cứu Tìm hiểu SQLite EnCryption Extension khả ứng dụng SQLCipher vào bảo mật CSDL SQLite thiết bị di động Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu: SEE, SQLCipher - Phạm vi nghiên cứu: Đồ án tốt nghiệp nghiên cứu đặc trưng CSDL SQLite tìm hiểu phần mở rộng mã hóa SQLite thiết bị di động Phương pháp nghiên cứu - Nghiên cứu, tài liệu liên quan để thu thập thông tin sở lý thuyết từ nhiều nguồn (tài liệu, Internet ) - Tổng hợp kết nghiên cứu để lựa chọn cách tiếp cận phù hợp với nội dung nghiên cứu Những đóng góp đồ án - Về lý thuyết: Đồ án tình bày tổng quan bảo mật sở liệu thiết bị di động Trình bày tổng quan CDSL SQLite; giới thiệu, cách thức hoạt động, API SEE, biên dịch sử dụng SEE Đồng thời giới thiệu, tìm hiểu đặc điểm, hướng tiếp cận, tính bảo mật SQLCipher API SQLCipher - Về tính ứng dụng: Đồ án trình bày trình cài đặt thực nghiệm SQLCipher để mã hóa CSDL SQLite Bố cục đồ án tốt nghiệp Đồ án gồm chương: Chương 1: Tổng quan bảo mật CSDL Chương tìm hiểu khái niệm chung CSDL, u cầu bảo mật, mơ hình tổng qt, lớp bảo mật, chế bảo mật CSDL, số cơng lên CSDL giải pháp có để bảo vệ CSDL Chương 2: Tìm hiểu SQLite EnCryption Extension Chương trình bày tổng quan CSDL SQLite; đặc điểm, cách thức hoạt động, biên dịch sử dụng SEE Đồng thời tìm hiểu đặc điểm, tính bảo mật cách thức hoạt động SQLCipher Chương 3: Cài đặt thử nghiệm SQLCipher Chương cài đặt thử nghiệm SQLCipher hệ điều hành Android Chương TỔNG QUAN VỀ BẢO MẬT CƠ SỞ DỮ LIỆU TRÊN THIẾT BỊ DI DỘNG 1.1 Cơ sở liệu hệ quản trị sở liệu thiết bị di động Dữ liệu thơng tin liên quan đến đối tượng (ví dụ người, vật, việc, ) Dữ liệu mô tả nhiều dạng khác (như ký tự, ký hiệu, hình ảnh, âm ) Dữ liệu đối tượng khác tùy thuộc vào mục đích quản lý Ví dụ: Cùng liệu đối tượng sinh viên với mục đích quản lý khác khác nhau, cụ thể sau: - Với mục đích quản lý điểm, liệu đối tượng sinh viên bao gồm: Tên, Mã sinh viên, Điểm môn 1, Điểm môn 2, Điểm môn - Với mục đích quản lý thơng tin cá nhân, liệu đối tượng sinh viên bao gồm: Tên, Địa chỉ, Ngày Sinh, Quê Quán, Lớp Cơ sở liệu thiết bị di động tâp hợp liệu tổ chức cách có cấu trúc liên quan với lưu trữ thiết bị Cơ sở liệu thiết kế, xây dựng cho phép người dùng lưu trữ liệu, truy xuất thông tin cập nhật liệu Tất sở liệu Android lưu trữ thư mục /data/data//databases thiết bị máy ảo Hệ quản trị sở liệu tập chương trình cho phép người dùng tạo lập trì sở liệu Các thao tác sở liệu hỗ trợ thực gồm: - Định nghĩa: Khai báo kiểu, cấu trúc ràng buộc liệu - Xây dựng: Liên quan đến việc lưu trữ liệu phương tiện lưu trữ hệ quản trị sở liệu quản lý; - Xử lý: Cho phép thực thao tác truy vấn, thêm, sửa, xóa liệu; - Chia sẻ: Cho phép nhiều người dùng truy nhập, chia sẻ liệu 1.2 Mơ hình tổng qt lớp bảo mật sở liệu 1.2.1 Bảo mật sở liệu yếu tố liên quan An toàn, hay bảo mật sở liệu (Database security) liên quan đến ba yếu tố: Con người (people), Phần mềm (Software) Dữ liệu (Data) Hình 1.1 Bảo mật sở liệu yếu tố liên quan Đồng thời, nhân tố liên quan đến bảo mật sở liệu mơ hình bao gồm: Các mối đe dọa (Threats), Các rủi ro (Risks) Các lỗ hổng (Vulnerabilities) Hình 1.2 Các mối đe dọa bảo mật sở liệu Các mối đe dọa bảo mật sở liệu bao gồm loại: Các đe dọa đến từ người (People), từ mã độc (Malicious code), từ tai họa công nghệ (Technological disasters) từ tai họa tự nhiên (Natural disasters) Trong số mối đe dọa kể trên, mối đe dọa đến từ người dùng ác tính, tin tặc mã độc có mức độ nguy hiểm cao Điều với thống kê Top 10 mối đe dọa bảo mật sở liệu theo hãng Imperva thực năm 2015: Excessive and Unused Privileges (Đặc quyền mức không sử dụng) Privilege Abuse (Lạm dụng đặc quyền) Input Injection (Chèn mã đầu vào) Malware (Mã độc) Weak Audit Trail (Log kiểm toán yếu) Storage Media Exposure (Rò rỉ liệu từ phương tiện lưu trữ) Exploitation of Vulnerabilities and Misconfigured Databases (Khai thác lỗi hổng cấu hình sở liệu sai) Unmanaged Sensitive Data (Các liệu nhạy cảm không quản lý) Denial of Service (Tấn công từ chối dịch vụ) 10 Limited Security Expertise and Education (Kiến thức chuyên gia đào tạo bảo mật hạn chế) Hình 1.3 Các rủi ro bảo mật sở liệu Hình 1.4 Các lỗ hổng bảo mật sở liệu Hình 1.3 cung cấp nguồn rủi ro bảo mật sở liệu, bao gồm rủi ro đến từ người (People), từ liệu (Data), từ phần cứng (Hardware) từ tín nhiệm Hình 1.4 nêu loại lỗ hổng bảo mật sở liệu, bao gồm lỗ hổng lỗi người dùng, lỗ hổng thiết kế lập trình, lỗ hổng phần mềm lỗ hổng cài đặt cấu hình Trong loại lỗ hổng kể trên, lỗ hổng lỗi người dùng lỗ hổng cài đặt cấu hình loại thường xuyên xảy có mức rủi ro cao 1.2.2 Mơ hình bảo mật sở liệu tổng qt Hình 1.5 Mơ hình bảo mật sở liệu tổng quát Trên nguyên tắc giảm thiểu yếu tố truy nhập trực tiếp liệu bề mặt công sở liệu, Hình 1.5 mơ tả mơ hình bảo mật sở liệu tổng qt Theo đó, mơ hình bảo mật sở liệu gồm lớp: Lớp người (People), lớp ứng dụng (Applications), lớp mạng (Network), lớp hệ điều hành (Operating system), lớp hệ quản trị sở liệu (DBMS), lớp file liệu (Data files) lớp liệu (Data) Hình 1.6 Phương pháp thực bảo mật sở liệu Dựa mơ hình bảo mật sở liệu tổng qt, Hình 1.12 mơ tả phương pháp thực bảo mật sở liệu Theo đó, khâu thực bảo mật sở liệu đưa tương ứng với khâu quy trình phát triển phần mềm Các khâu thực bảo mật sở liệu gồm: Identification (Nhận dạng rủi ro), Assessment (Đánh giá rủi ro), Design (Thiết kế kiểm soát), Implementation (Áp dụng kiểm soát), Evaluation (Đánh giá hiệu áp dụng) Auditing (Kiểm toán) Kết khâu kiểm toán sử dụng làm phản hồi để thực điều chỉnh phù hợp với khâu trước 1.2.3 Các lớp bảo mật sở liệu Mục mô tả chi tiết biện pháp cần thực với lớp bảo mật sở liệu theo mơ hình tổng qt trình bày mục 1.3.2 Lớp bảo mật Con người - Hạn chế truy nhập vật lý đến phần cứng hệ thống tài liệu; - Sử dụng biện pháp nhận dạng xác thực thông tin nhận dạng người dùng, thẻ nhận dạng (ID card), PIN, mật khẩu, đặc điểm sinh trắc học, vân tay, tròng mắt; - Đào tạo người quản trị, người dùng tầm quan trọng bảo mật biện pháp bảo vệ tài sản; - Thiết lập sách thủ tục kiểm soát an ninh Lớp bảo mật Ứng dụng - Xác thực người dùng truy nhập ứng dụng; - Áp dụng xác quy trình xử lý công việc; - Sử dụng chế đăng nhập lần (Single Sing On) cho máy chủ sở liệu, ứng dụng, website có liên kết Lớp bảo mật Mạng - Sử dụng tường lửa để ngăn chặn xâm nhập trái phép; - Sử dụng VPN để bảo mật thông tin liệu đường truyền; - Sử dụng biện pháp xác thực Lớp bảo mật Hệ điều hành - Xác thực người dùng; - Phát xâm nhập; - Áp dụng sách quản lý mật chặt chẽ; - Vấn đề tài khoản người dùng Lớp bảo mật File liệu - Quyền truy nhập file; - Giám sát truy nhập file Lớp bảo mật Dữ liệu - Kiểm tra liệu; - Các ràng buộc liệu; - Mã hóa liệu 1.3 Các chế bảo mật sở liệu 1.3.1 Xác thực trao quyền sở liệu 1.3.1.1 Xác thực trao quyền sở liệu Xác thực sử dụng tên người dùng (username) mật (password) phương pháp chủ yếu xác thực người dùng sở liệu Xác thực thành phần sở mơ hình bảo mật tổng qt Hình 1.7 Mơ hình bảo mật ứng dụng tổng quát Hầu hết hệ quản trị sở liệu hỗ trợ lựa chọn phương pháp xác thực phù hợp số phương pháp xác thực sẵn có: - Khơng xác thực (No authentication) - Xác thực dựa hệ điều hành - Xác thực dựa hệ quản trị sở liệu - Xác thực hỗn hợp (hệ điều hành hệ quản trị sở liệu) Nhìn chung, khơng nên sử dụng phương pháp khơng xác thực chúng có độ rủi ro cao Nên sử dụng phương pháp xác thực dựa hệ điều hành hệ điều hành có chế quản lý thông tin người dùng tương đối tốt chế xác thực mạnh 1.3.1.2 Bảo mật mật sở liệu Mặc dù có nhiều công nghệ xác thực, xác thực dựa mật phương pháp sử dụng phổ biến xác thực người dùng sở liệu Lý cho phổ biến việc sử dụng mật xác thực người dùng sở liệu đảm bảo mức an toàn tối thiểu, đơn giản, dễ sử dụng, chi phí cài đặt, quản lý vận hành thấp Tính bảo mật kỹ thuật điều khiển truy nhập sử dụng mật dựa yếu tố: độ khó đốn mật tuổi thọ mật Độ khó đốn mật lại phụ thuộc vào số loại ký tự sử dụng độ dài mật Một mật tốt, khó đốn cho truy nhập sở liệu từ ứng dụng nên đảm bảo có đủ loại ký tự (chữ thường, hoa, chữ số, ký tự đặc biệt) độ dài từ 10 ký tự trở lên Tuổi thọ mật khoảng thời gian - Mỗi trang bao gồm Mã xác thực thông báo (HMAC-SHA512) mã vectơ khởi tạo cuối trang MAC kiểm tra trang đọc lại từ nhớ Nếu mã IV bị giả mạo bị hỏng, việc kiểm tra HMAC để SQLCipher báo cáo cố với sở liệu - Khi khởi tạo với mật SQLCipher lấy liệu khóa PBKDF2-HMAC-SHA512 Mỗi sở liệu khởi tạo với salt ngẫu nhiên 16 bytes tệp Salt sử dụng cho dẫn xuất khóa đảm bảo hai sở liệu tạo mật khẩu, chúng khơng có khóa mã hóa Cấu hình mặc định sử dụng 256.000 lần lặp cho dẫn xuất khóa (điều thay đổi chạy PRAGMA kdf_iter) - Khóa sử dụng để tính tốn trang HMAC khác với khóa mã hóa Nó lấy từ khóa mã hóa sử dụng PBKDF2 với lần lặp biến thể salt sở liệu ngẫu nhiên - Nếu việc sử dụng mật khơng mong muốn, ứng dụng cung cấp liệu khóa nhị phân thơ (ví dụ để hỗ trợ khóa bị lỗi sử dụng trao đổi khóa dựa PKI) - Khi mã hóa, tồn tệp sở liệu dường chứa liệu ngẫu nhiên - Bộ nhớ cấp phát SQLCipher bị khóa (thơng qua mlock / VirtualLock) bị xóa trước giải phóng - SQLCipher khơng thực mã hóa riêng Thay vào đó, sử dụng thư viện mã hóa có sẵn rộng rãi OpenSSL libcrypto, LibTomCrypt CommonCrypto cho tất hàm mã hóa Nhà cung cấp mật mã sử dụng phụ thuộc vào tùy chọn tảng cấu hình 2.4.5 SQLCipher API SQLCipher dựa SQLite đó, phần lớn API truy cập giống hệt với giao diện C / C ++ cho SQLite Tuy nhiên, SQLCipher có thêm số phần mở rộng bảo mật dạng PRAGMA, Hàm SQL Hàm C Một số câu lệnh SQLCipher API: Bảng 2.2 Các câu lệnh SQLCipher API Câu lệnh PRAGMA key Chức Đặt khóa để sử dụng với database PRAGMA kdf_iter Thay đổi số lần lặp sử dụng với dẫn xuất khóa PBKDF2 PRAGMA cipher_default_kdf_iter Thay đổi số lần lặp mặc định sử dụng với dẫn xuất khóa PBKDF2 PRAGMA cipher_page_size Thay đổi kích thước trang sử dụng cho sở liệu từ mặc định 4096 byte để cải thiện hiệu suất cho số loại truy vấn PRAGMA cipher_default_page_size Đặt kích thước trang khơng mặc định để sử dụng đính kèm sở liệu PRAGMA cipher_use_hmac Vơ hiệu hóa việc sử dụng kiểm tra HMAC trang để tương thích ngược với SQLCipher 1.1.x sở liệu cụ thể PRAGMA cipher_default_use_hmac Thay đổi hành vi mặc định cho HMAC trang sử dụng vào lần sở liệu SQLCipher mở PRAGMA rekey Thay đổi khóa mã hóa cho sở liệu SQLCodes ATTACH Đính kèm sở liệu có vào sở liệu khóa cụ thể sqlcipher_export() Chức tiện lợi chép nội dung sở liệu vào sở liệu đính kèm với cài đặt khác PRAGMA cipher_migrate Chức tiện lợi để thực nâng cấp chỗ từ sở liệu SQLCipher 1.x 2.x sang cài đặt mặc định SQLCipher Phiên PRAGMA cipher_profile Hồ sơ truy vấn thời gian thực chúng gỡ lỗi vấn đề hiệu suất Hàm C thay cho PRAGMA rekey sqlite3_key() Kết luận chương: Chương trình bày tổng quan CSDL SQLite Giới thiệu, cách thức hoạt động, biên dịch sử dụng SEE Đồng thời giới thiệu SQLCipher, trình bày đặc điểm, tính bảo mật cách thực hoạt động SQLCipher Do SEE phần mềm phí [7] từ em chọn SQLCipher để bảo mật CSDL thiết bị di động Chương Chương CÀI ĐẶT VÀ THỰC NGHIỆM SQLCIPHER TRÊN HỆ ĐIỀU HÀNH ANDROID 3.1 Lựa chọn cơng cụ lập trình Để thực việc bảo mật sở liệu SQLCipher Trong đồ án này, ngơn ngữ lập trình Java, mơi trường biên dịch Android Studio phần mềm quản lý CSDL DB Browser SQLCipher lựa chọn 3.2 Mô tả sở liệu Trong chương đồ án trình bày thực nghiệm nhằm triển khai giải pháp bảo mật an tồn thơng tin cho sở liệu SQLite cách cài đặt SQLCipher Cơ sở liệu bao gồm bảng "Student" gồm trường: Bảng 3.1 Mô tả liệu bảng Student Tên trường Kiểu liệu Ràng buộc Id Varchar (50) Primary key name Varchar (50) birth Text 3.3 Phân tích toán Xây dựng ứng dụng quản lý sinh viên thiết bị di động chạy hệ điều hành Android sử dụng SQLCipher để bảo mật ứng dụng file CSDL lưu ứng dụng Ứng dụng có chức sau đây: • Thêm sinh viên: Id, name, birth • Sửa thơng tin sinh viên • Xóa sinh viên 3.4 Cài đặt thực nghiệm SQLCipher Android 3.4.1 Cài đặt SQLCipher Android • Bước 1: Tạo project có tên “MyApplication” Hình 3.1 Tạo project • Bước 2: Tích hợp phiên cộng đồng Phiên cộng đồng SQLCipher cho Android phân phối thơng qua định dạng gói AAR Tích hợp Gradle thực cách thêm mục sau vào khối dependencies app/build.gradle : implementation 'net.zetetic:android-database-sqlcipher:4.2.0@aar' Hình 3.2 Cài đặt thư viện SQLCipher • Bước 3: Trỏ vào thư mục “java” chọn “com.android.myapplication” tạo class có tên “DatabaseAsset” mở rộng từ SQLiteOpenHelper Trong class DatabaseAsset khởi tạo CSDL có tên “sql_cipher”, tên bảng “student” gồm trường id, name, birth khai báo kiểu liệu cho trường: - Tạo hàm truy vấn public List getStudent(Activity activity) { SQLiteDatabase db = getInstance(activity).getWritableDatabase(getPassword()); List list = new ArrayList(); Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); while (cursor.moveToNext()) { list.add(new Student(cursor.getString(0), cursor.getString(1), cursor.getString(2))); } cursor.close(); db.close(); return list; } - Tạo hàm thêm sinh viên: public void addStudent(Activity activity, Student student) { SQLiteDatabase db = getInstance(activity).getWritableDatabase(getPassword()); ContentValues contentValues = new ContentValues(); contentValues.put(ID, student.getId()); contentValues.put(NAME, student.getName()); contentValues.put(BIRTH, student.getBirth()); db.insert(TABLE_NAME, null, contentValues); db.close(); - Tạo hàm xóa sinh viên: public void removeStudent(Activity activity, String id) { SQLiteDatabase db = getInstance(activity).getWritableDatabase(getPassword()); db.delete(TABLE_NAME, ID + " = '" + id+"'", null); db.close(); } - Tạo hàm sửa sinh viên: public void updateStudent(Activity activity, String id, Student student) { SQLiteDatabase db = getInstance(activity).getWritableDatabase(getPassword()); ContentValues values = new ContentValues(); values.put(ID, student.getId()); values.put(NAME, student.getName()); values.put(BIRTH, student.getBirth()); db.update(TABLE_NAME, values, ID + " = '" + id+"'", null); db.close(); } • Bước 4: Khởi tạo password lưu password vào SharePreferences để truy cập vào ứng dụng file CSDL - Khởi tạo password: public String getPassword(){ return "password_12345"; } - Lưu password vào SharePreferences: public static void setPassword(Context context, String password) { SharedPreferences preferences = context.getSharedPreferences(MYSETTING, Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putString("password", password); editor.apply(); - Băm mật khởi tạo SHA-256 public static String SHA256(String text) { try { MessageDigest md = MessageDigest.getInstance("SHA256"); md.update(text.getBytes()); byte[] digest = md.digest(); return Base64.encodeToString(digest, Base64.DEFAULT); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return ""; } } 3.4.2 Thực nghiệm Mục đích việc cài đặt SQLCipher vào ứng dụng quản lý sinh viên để đảm bảo an toàn cho liệu cá nhân sinh viên lớp học Sau cài đặt giải pháp vào ứng dụng ban đầu, người dùng cần có thêm bước nhập mật để tương tác với liệu lưu Password: Là mật ứng với tên Database khởi tạo ứng dụng, password nhập sở liệu ứng dụng giải mã mã hóa suốt trình sử dụng với password hợp lệ • Trên giao diện đăng nhập vào ứng dụng: Bảng 3.2 Xác nhận thông tin cán quản lý • Sau nhập password “password_12345” xuất giao diện quản lý sinh viên hình đây: Hình 3.3 Ứng dụng quản lý danh sách sinh viên • Trong hình trịn cộng màu đỏ bên phải hình dùng để thêm ghi với thuộc tính ID, NAME, BIRTH Hình 3.4 Giao diện insert ID, NAME, BIRTH • Ký hiệu hình bút chì bên phải hình dùng để sửa xóa ghi Hình 3.5 Giao diện sửa xóa ghi • Giao diện ứng dụng sau xóa ghi có “id=4” Hình 3.6 Giao diện sau xóa ghi • Giao diện sau sửa lại ghi id = với name = thiết birth= 20/11/1996 thành ghi có id = với name = béo birth = 27/04/1996 Hình 3.7 Giao diện sau sửa ghi • File CSDL lưu data/data/com.android.myapplication/databases mục Hình 3.8 File sở liệu • Sau cài đặt SQLCipher, sở liệu người dùng bị lộ lọt ngồi kẻ xấu khơng thể đọc thơng tin sở liệu bị mã hóa Hình 3.9 CSDL mã hóa SQLCipher • Muốn xuất file CSDL “sql_cipher” từ máy ảo Nox desktop PC để mở phần mềm quản lý CSDL DBrowser for SQLite Hình 3.10 Xuất file CSDL từ máy ảo PC • Nếu mở file CSDL vừa xuất từ máy ảo PC DB Browser for SQLite nhận thơng báo “Could not open database file Reason: file is not a database” Hình 3.11 Mở CSDL DB Browser for SQLite • Trong trường hợp mở file CSDL vừa xuất từ máy ảo PC DB Browser for SQLCipher nhận bảng thông báo yêu cầu nhập key để mở CSDL mã hóa Và key là: password_12345 Hình 3.12 Mở CSDL DB Browser for SQLCipher • Sau nhập key xem CSDL mã hóa Hình 3.13 Xem CSDL mã hóa Kết luận chương: Chương cài đặt thực nghiệm SQLCipher Có viết ứng dụng Android đơn giản để bảo mật thông tin sở liệu quản lý thông tin như: Thêm , cập nhập, sửa, xóa với sở liệu có bảo mật sở liệu SQLCipher KẾT LUẬN * Một số nội dung đạt đồ án: - Giới thiệu tổng quan bảo mật CSDL gồm: Các khái niệm chung CSDL; Tìm hiểu bảo mật CSDL bao gồm: Mơ hình tổng quát, lớp bảo mật, chế bảo mật CSDL, số cơng cách phịng chống lên CSDL - Trình bày tổng quan CSDL SQLite Đã giới thiệu SEE, cách thức hoạt động, API SEE, cách biên dịch sử dụng SEE Đồng thời trình bày đặc điểm, hướng tiếp cận, tính bảo mật SQLCipher API SQLCipher - Cài đặt thực nghiệm SQLCipher Có viết ứng dụng Android đơn giản để bảo mật thông tin sở liệu quản lý thông tin như: Thêm, cập nhập, sửa, xóa với sở liệu có bảo mật sở liệu SQLCipher Tuy nhiên thời gian thực đồ án chưa nhiều, kiến thức cịn có phần hạn chế nên đồ án em không tránh khỏi thiếu sót định * Hướng phát triển đề tài: Trong thời gian tới, có thời gian nghiên cứu nội dung liên quan đến đồ án em thực theo hướng: - Nghiên cứu tài liệu công bố để đánh giá hiệu suất, độ an toàn SEE SQLCipher - Nếu cấp phép mã nguồn SEE tìm hiểu, cài đặt thực nghiệm SEE

Ngày đăng: 24/06/2023, 15:33

Tài liệu cùng người dùng

Tài liệu liên quan