SQL SERVER 1.1 Giới thiệu hệ quản trị SQL Server 1.1.1 Khái niệm về hệ quản trị cơ sở dữ liệu SQL Server SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System RDBMS) sử dụng câu lệnh SQL (TransactSQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm các CSDL, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến TeraByte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), ECommerce Server, Proxy Server…. 1.1.2 Các ấn bản của SQL Server Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server. Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánh địa chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu). Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM. Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc…. Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng. Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng. Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở dữ liệu nhưng không có các dịch vụ đi kèm. Chú ý phiên bản này không còn tồn tại ở SQL Server 2012. Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản. Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai. SQL Server Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu. SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ. 1.1.3 Lịch sử ra đời SQL Server và các phiên bản Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngày nay. SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn. Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là MultipleInstance. Tức là có thể cài dặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng. Nghĩa là có thể chạy song song version 6.5 hoặc 7.0 với phiên bản 2000 trên cùng một máy (điều này không thể xảy ra với các phiên bản trước đây). Khi đó phiên bản cũ trên máy là Default Instance còn phiên bản 2000 mới vừa cài sẽ là Named Instance. Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ: SQL Server 2008 SQL Server 2008 là phiên bản miễn phí của SQL Server, là nền tảng dữ liệu lý tưởng để học và xây dựng các ứng dụng máy tính để bàn và máy chủ nhỏ và để phân phối lại bởi ISV. Về cơ bản, nó được thiết kế để dễ dàng triển khai và tạo mẫu nhanh. SQL Server 2008 Express có sẵn dưới dạng gói miễn phí và có thể tự do phân phối lại với các ứng dụng khác. Nó được thiết kế để tích hợp trơn tru với các khoản đầu tư cơ sở hạ tầng máy chủ khác. Nó được hỗ trợ trên Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Vista, Windows Vista Service Pack 1, Windows XP Service Pack 2 và Windows XP Service Pack 3. SQL Server 2012 Microsoft SQL Server 2012 là một hệ thống quản lý dữ liệu miễn phí mạnh mẽ và đáng tin cậy, cung cấp kho dữ liệu phong phú và đáng tin cậy cho các trang web và ứng dụng máy tính để bàn nhẹ. Liên kết đến tất cả các phiên bản của nó được cung cấp dưới đây. SQL Server 2014 Microsoft SQL Server 2014 là một hệ thống quản lý dữ liệu miễn phí mạnh mẽ và đáng tin cậy, cung cấp kho lưu trữ dữ liệu rộng rãi và đáng tin cậy cho các trang web và ứng dụng máy tính để bàn nhẹ. Nó miễn phí và có các phiên bản SQL Server giàu tính năng, lý tưởng cho việc học, phát triển, cung cấp năng lượng cho các ứng dụng máy tính để bàn, web và máy chủ nhỏ và để phân phối lại bởi các nhà cung cấp Phần mềm Độc lập (ISV). Nó được hỗ trợ trên Windows 10, Windows 7, Windows 7 Service Pack 1, Windows 8, Windows 8.1, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012 và Windows Server 2012 R2. SQL Server 2016 SQL Server 2016 là phiên bản của hệ thống quản lý cơ sở dữ liệu quan hệ ( RDBMS ) của Microsoft , lần đầu tiên có sẵn trong các bản phát hành xem trước trong năm 2015, có sẵn vào ngày 1 tháng 6 năm 2016. SQL Server 2016 là cơ sở dữ liệu dựa trên SQL được thiết kế để hỗ trợ kết hợp giao dịch xử lý, lưu trữ dữ liệu và các ứng dụng phân tích trong môi trường doanh nghiệp. Khi công bố kế hoạch phát hành SQL Server 2016 vào tháng 5 năm 2015, các quan chức của Microsoft cho biết cơ sở dữ liệu được cập nhật là một phần trong động thái của công ty hướng tới triển khai CNTT trước tiên trên nền tảng di động, trên nền tảng đám mây. Ví dụ: các tính năng mới được tích hợp trong SQL Server 2016 bao gồm một tính năng cho phép người dùng kéo dài cơ sở dữ liệu tại chỗ của họ vào đám mây. Ngoài ra, một số tính năng bổ sung đã được thử nghiệm và xác thực lần đầu tiên trong Cơ sở dữ liệu SQL Azure, chúng dựa trên đám mây của Microsoft với máy chủ SQL. SQL Server 2016 cũng hỗ trợ các ứng dụng kinh doanh thông minh trên thiết bị di động, một điểm khác biệt so với người tiền nhiệm trước đó là SQL Server 2014
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU VỀ Mà HÓA DỮ LIỆU TRONG SUỐT (TRANSPARENT DATA ENCRYPTION) TRONG SQL SERVER Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Đậu Quang Chúc Lớp: AT11A Người hướng dẫn: TS Trần Thị Lượng Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã Hà Nội, 2019 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU VỀ Mà HÓA DỮ LIỆU TRONG SUỐT (TRANSPARENT DATA ENCRYPTION) TRONG SQL SERVER Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh viên thực hiện: Đậu Quang Chúc Lớp: AT11A Người hướng dẫn: TS Trần Thị Lượng Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã Hà Nội, 2019 MỤC LỤC Từ viết tắt AES CSDL DBF DBMS DMV EKM MARS MS DTC PCI DSS RDBMS SAC Đầy đủ Advanced Encryption Standard (Thuật tốn mã hóa khối) Cơ Sở Dữ Liệu Tệp CSDL Hệ thống quản lý CSDL Chế độ xem quản lý động Quản lý khóa mã hóa Multiple Active Result Sets Điều phối viên giao dịch phân tán Payment Card Industry Data Security Standard Hệ Quản Trị CSDL Quan Hệ cấu hình bề mặt (Surface Area Configuration) OLE DB Cơ sở liệu nhúng liên kết đối tượng TDE 3DES Transparent Data Encreption (Mã hóa liệu suốt) Triple DES(Thuật tốn mã hóa liệu ba) DANH MỤC BẢNG DANH MỤC HÌNH VẼ LỜI MỞ ĐẦU Hiện Internet dần trở nên phổ biến giới, thông qua mạng Internet người trao đổi thơng tin với cách nhanh chóng thuận lợi Những cơng ty phát triển kinh doanh môi trường intranet/Internet họ phải đối diện với khó khăn lớn làm để bảo vệ liệu, ngăn chặn hình thức cơng, truy xuất liệu bất hợp pháp từ bên (intranet) lẫn bên (Internet) Khi người muốn trao đổi thông tin với người hay tổ chức thơng qua mạng máy tính u cầu quan trọng làm để đảm bảo thông tin không bị sai lệch bị lộ xâm nhập, đánh cắp thông tin trái phép kẻ thứ ba Trước yêu cầu cấp thiết đó, em chọn đề tài “Tìm hiểu mã hóa liệu suốt (Transparent Data Encreption-TDE) SQL Server” làm đồ án tốt nghiệp Mục tiêu việc nghiên cứu đề tài nhằm tìm hiểu thực mã hóa liệu suốt để đảm bảo an tồn cho thơng tin sở dũ liệu Nội dung đồ án trình bày ba chương: Chương 1: Tổng quan hệ quản trị SQL Server • Giới thiệu tổng quan hệ quản trị sở liệu SQL Server Chương 2: Mã hóa liệu suốt (Transparent Data Encreption – TDE) • Tìm hiểu mã hóa liệu suốt TDE Chương 3: Thực nghiệm mã hóa TDEcho sở liệu SQL Server • Triển khai giải thực mã hóa liệu TDE cho sở liệu Em xin chân thành cảm ơn giúp đỡ tận tình TS Trần Thị Lượng để báo cáo em hoàn thành Do thời gian có hạn nên báo cáo em chắn nhiều thiếu sót Em mong nhận góp ý, bảo q thầy để báo cáo em hoàn thiện Em xin chân thành cảm ơn ! Hà Nội, ngày10 tháng năm 2019 SINH VIÊN THỰC HIỆN Đậu Quang Chúc CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER 1.1 Giới thiệu hệ quản trị SQL Server 1.1.1 Khái niệm hệ quản trị sở liệu SQL Server SQL Server hệ quản trị sở liệu quan hệ (Relational Database Management System - RDBMS) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi liệu máy Client máy cài SQL Server Một RDBMS bao gồm CSDL, database engine ứng dụng dùng để quản lý liệu phận khác RDBMS SQL Server tối ưu để chạy mơi trường sở liệu lớn (Very Large Database Environment) lên đến Tera-Byte phục vụ lúc cho hàng ngàn user SQL Server kết hợp “ăn ý” với server khác Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server… 1.1.2 Các ấn SQL Server Enterprise : chứa tất cá đặc điểm bật SQL Server, bao gồm nhân máy sở liệu dịch vụ kèm với công cụ cho tạo quản lý phân cụm SQL Server Nó quản lý CSDL lớn tới 524 petabytes đánh địa 12 terabytes nhớ hỗ trợ tới 640 vi xử lý(các core cpu) Standard : Rất thích hợp cho cơng ty vừa nhỏ giá thành rẻ nhiều so với Enterprise Edition, lại bị giới hạn số chức cao cấp (advanced features) khác, edition chạy tốt hệ thống lên đến CPU GB RAM Developer : Có đầy đủ tính Enterprise Edition chế tạo đặc biệt giới hạn số lượng người kết nối vào Server lúc… Ðây phiên sử dụng cho phát triển kiểm tra ứng dụng Phiên phù hợp cho cá nhân, tổ chức xây dựng kiểm tra ứng dụng Workgroup: ấn SQL Server Workgroup bao gồm chức lõi sở liệu khơng có dịch vụ kèm Chú ý phiên không tồn SQL Server 2012 Express : SQL Server Express dễ sử dụng quản trị sở liệu đơn giản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển ứng dụng liệu, an toàn lưu trữ, nhanh chóng triển khai SQL Server Express phiên miễn phí, khơng giới hạn số liệu người sử dụng, dùng cho vi xử lý với GB nhớ 10 GB file sở liệu SQL Server Express lựa chọn tốt cho người dùng cần phiên SQL Server 2005 nhỏ gọn, dùng máy chủ có cấu hình thấp, nhà phát triển ứng dụng khơng chun hay người u thích xây dựng ứng dụng nhỏ 1.1.3 Lịch sử đời SQL Server phiên Phiên Microsoft SQL Server đời vào năm 1989 cho hệ điều hành chạy 16 bít với SQL Server phiên 1.0 tiếp tục phát triển ngày SQL Server Microsoft thị trường chấp nhận rộng rãi kể từ version 6.5 Sau Microsoft cải tiến viết lại engine cho SQL Server 7.0 Cho nên nói từ version 6.5 lên version 7.0 bước nhảy vọt Có số đặc tính SQL Server 7.0 khơng tương thích với version 6.5 Trong từ Version 7.0 lên version 8.0 (SQL Server 2000) cải tiến chủ yếu mở rộng tính web làm cho SQL Server 2000 đáng tin cậy Một điểm đặc biệt đáng lưu ý phiên 2000 Multiple-Instance Tức cài dặt phiên 2000 chung với phiên trước mà không cần phải gỡ chúng Nghĩa chạy song song version 6.5 7.0 với phiên 2000 máy (điều xảy với phiên trước đây) Khi phiên cũ máy Default Instance phiên 2000 vừa cài Named Instance Từ tháng 10 năm 2016, phiên sau Microsoft hỗ trợ: SQL Server 2008 SQL Server 2008 phiên miễn phí SQL Server, tảng liệu lý tưởng để học xây dựng ứng dụng máy tính để bàn máy chủ nhỏ để phân phối lại ISV Về bản, thiết kế để dễ dàng triển khai tạo mẫu nhanh SQL Server 2008 Express có sẵn dạng gói miễn phí tự phân phối lại với ứng dụng khác Nó thiết kế để tích hợp trơn tru với khoản đầu tư sở hạ tầng máy chủ khác Nó hỗ trợ Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Vista, Windows Vista Service Pack 1, Windows XP Service Pack Windows XP Service Pack SQL Server 2012 Microsoft SQL Server 2012 hệ thống quản lý liệu miễn phí mạnh mẽ đáng tin cậy, cung cấp kho liệu phong phú đáng tin cậy cho trang web ứng dụng máy tính để bàn nhẹ Liên kết đến tất phiên cung cấp SQL Server 2014 Microsoft SQL Server 2014 hệ thống quản lý liệu miễn phí mạnh mẽ đáng tin cậy, cung cấp kho lưu trữ liệu rộng rãi đáng tin cậy cho trang web ứng dụng máy tính để bàn nhẹ Nó miễn phí có phiên SQL Server giàu tính năng, lý tưởng cho việc học, phát triển, cung cấp lượng cho ứng dụng máy tính để bàn, web máy chủ nhỏ để phân phối lại nhà cung cấp Phần mềm Độc lập (ISV) Nó hỗ trợ Windows 10, Windows 7, Windows Service Pack 1, Windows 8, Windows 8.1, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012 Windows Server 2012 R2 SQL Server 2016 SQL Server 2016 phiên hệ thống quản lý sở liệu quan hệ ( RDBMS ) Microsoft , lần có sẵn phát hành xem trước năm 2015, có sẵn vào ngày tháng năm 2016 SQL Server 2016 sở liệu dựa SQL thiết kế để hỗ trợ kết hợp giao dịch xử lý, lưu trữ liệu ứng dụng phân tích môi trường doanh nghiệp Khi công bố kế hoạch phát hành SQL Server 2016 vào tháng năm 2015, quan chức Microsoft cho biết sở liệu cập nhật phần động thái công ty hướng tới triển khai CNTT "trước tiên tảng di động, tảng đám mây" Ví dụ: tính tích hợp SQL Server 2016 bao gồm tính cho phép người dùng "kéo dài" sở liệu chỗ họ vào đám mây Ngồi ra, số tính bổ sung thử nghiệm xác thực lần Cơ sở liệu SQL Azure, chúng dựa đám mây Microsoft với máy chủ SQL SQL Server 2016 hỗ trợ ứng dụng kinh doanh thông minh thiết bị di động, điểm khác biệt so với người tiền nhiệm trước SQL Server 2014 10 Ví dụ với bảng VITRI: CREATE TABLE VITRI ( MAVT int NOT NULL, TENKE int NOT NULL, PRIMARY KEY (MAVT), ); Bước 3: Tạo khóa liên kết bảng Dùng lệnh: ALTER TABLE Table_Ten ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID); Ví dụ: ALTER TABLE SACH ADD FOREIGN KEY (MAVT) REFERENCES VITRI(MAVT); Bước 4: Nhập Dữ liệu vào bảng Dùng lệnh: INSERT INTO Table_Ten VALUES (giatri1, giatri2, giatri3, giatriN); Ví dụ: INSERT INTO NHANVIEN VALUE (1, 'DAU QUANG A', 'Nam', 'HA TINH','123456789'); Bước 5: Sao lưu CSDL vừa tạo vào thư mục Backup Dùng lệnh USER master GO BACKUP DATABASE [Quanlysach] TO DISK = N’C:\Backup\QLSach.bak’ 3.3 Thực mã hóa liệuTDE cho sở liệu Trong phần thực tạo thủ tục để mã hóa CSDL tạo 56 Xây dựng thủ tục mã hóa liệu: Bước 1: Tạo Master Key với mật khẩu“Chuc@123”trong sở liệu Create Master Key USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Chuc@123'; GO Bước 2: Tạo chứng QLSach_Cert với tên chứng QLSach Certificate Create Certificate CREATE CERTIFICATE Certificate'; GO QLSach_Cert WITH SUBJECT = 'QLSach Bước 3: Tạo khóa mã hóa sở liệu (DEK) thuật toán AES_128 với chứng tương ứng Create Encryption Key, Encrypted by Server Certificate USE Quanlysach; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE QLSach_Cert; GO Khi thực truy vấn trên, Sẽ nhận thông báo cảnh báo định giữ lưu chứng khóa riêng tạo Vì vậy, điều quan trọng phải có lưu Chứng Khóa riêng khơng khơng thể khơi phục sở liệu Bước 4: Sao lưu chứng Theo cảnh báo đưa ra, trước tiên ta lưu truy vấn bên giữ chứng khóa nơi an toàn để sử dụng tương lai 57 Hình 3.2 Chứng khóa chủ Backup Certificate USE master GO BACKUP CERTIFICATE QLSach_Cert TO FILE = 'C:\Backup\QLSach_Cert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\QLSach_Cert_Key.pvk', ENCRYPTION BY PASSWORD = 'Chuc@123' ) GO Bước 5: Kích hoạt mã hóa CSDL QLSach Enable Encryption ALTER DATABASE QuanlySach SET ENCRYPTION ON; GO Bước 6: xác minh chi tiết chứng chi tiết khóa mã hóa sys.certert sys.dm_database_encoding_keys đưa 58 Hình 3.3 Xác minh chứng khóa chủ -Check Certificate Details USE master GO SELECT *FROM sys.certificates WHERE pvt_key_encryption_type 'NA' GO Check Encryption Key Details USE master GO SELECT encryptor_type, key_length, key_algorithm, encryption_state, create_date FROM sys.dm_database_encryption_keys Bước 7: Sao lưu toàn sở liệu QLSach Sao lưu sở liệu định dạng mã hóa bảo mật Full Database Backup with Recovery USE master GO BACKUP DATABASE [Quanlysach] TO DISK = N'C:\Backup\QLSach.bak' WITH NOFORMAT, NOINIT, NAME = N'QLSach-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 59 Bước 8: Hiển thị liệu tệp liệu (*.bak) để thấy khác biệt ý nghĩa việc áp dụng TDE Các tệp tin sở liệu có tên giống tên sở liệu phần mở rộng (*.bak), chúng lưu thư mục Backup Trước hết ta đóng dịch vụ SQL Server lại, sử dụng chương trình notepad.exe mở tệp tin lưu QLSach.bak trước mã hóa, mắt thường ta thấy liệu rõ tệp tin sở liệu Ví dụ hình 2.9 ta thấy tên nhân viên, giới tính, địa số điện thoại DAU QUANG A, giới tính NAM, quê HA TINH số điện thoại 1234567890 Hình 3.4 CSDL trước mã hóa Tiếp theo sử dụng chương trình notepad.exe mở tệp tin QLSach.bak sau mã hóa Tệp tin hồn tồn SQL Server mã hóa sử dụng cơng nghệ TDE, ví dụ hình 3.5 60 Hình 3.5 CSDL sau thực mã hóa TDE Thử tìm tên nhân viên “DAU QUANG A” thông tin tệp tin hồn tồn khơng thấy mã hóa Bước 9: Khơi phục sở liệu mã hóa mà khơng thơng qua Chứng khóa Khơi phục tệp lưu sở liệu quan sát thông báo Ta nhận thông báo lỗi cho biết để ta cung cấp chứng máy chủ lưu sở liệu mã hóa TDE để giải mã nó, ta cần chứng máy chủ khóa Hình 3.6 Khơi phục sở liệu mã hóa mà khơng thơng qua Chứng khóa 61 USE master GO RESTORE DATABASE [Quanlysach] FROM DISK = N'C:\Backup\QLSach.bak' Bước 10: Để khôi phục sở liệu, ta phải tạo khóa chủ mật chứng với giải mã mật gốc sau CSDL khơi phục Create Master Key on other Instance USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Chuc@1234' GO Create new certificate with reference to earlier private key and decrypt it by same password CREATE CERTIFICATE QLsach_Cert2 FROM FILE = 'C:\Backup\QLSach_Cert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\QLSach_Cert_Key.pvk', DECRYPTION BY PASSWORD = 'Chuc@123') ; GO Bước 11 khôi phục thành công sở liệu sau mã hóa Hình 3.7 Khơi phục thành công CSDL 62 USE master GO RESTORE DATABASE [Quanlysach] FROM DISK = N'C:\Backup\QLSach.bak' 3.4 Đánh giá kết Như cơng nghệ mã hóa sở liệu suốt TDE giúp bảo vệ tệp sở liệu Nếu kẻ công cách lấy trộm tệp tin hồn tồn khơng thể khai thác thơng tin, khơng thể giải mã khơng có khóa bí mật Việc truy xuất đến sở liệu người dùng hợp lệ hoàn toàn suốt, ứng dụng người dùng thay đổi phù hợp Ưu điểm: - Đảm bảo CSDL mã hóa lưu trữ vào sở liệu - Người dùng trái phép xem liệu - Q trình mã hóa/giải mã suốt với người dùng cuối Nhược điểm: - Hiệu suất giảm trình thao tác liệu phải thêm nhiệm vụ mã hóa/giải mã liệu - Kích thước liệu cần lưu trữ tăng lên nhiều dẫn đến tăng dung lượng nhớ cần thiết 63 KẾT LUẬN Ngày hầu hết thông tin tổ chức, cá nhân sở liệu Vấn đề đảm bảo an tồn liệu tính bí mật liệu cần thiết Các hệ quản trị sở liệu cung cấp khả giải pháp nhằm đảm bảo an toàn cho sở liệu Nếu đứng phương diện người phát triển ứng dụng sở liệu cần phải nắm rõ khả mà hệ quản trị cho phép để từ giúp cho việc thiết kế xây dựng phương pháp đảm bảo vấn đề an ninh, an toàn cho hệ thống cho liệu Sau khoảng thời gian không dài, em nghiên cứu tìm hiểu số vấn đề sau: • Tổng hợp giới thiệu hệ quản trị sở liệu SQL Server • Tìm hiểu chuyên sâu giải pháp phương pháp thực mã hóa TDE SQL Server nhằm đảm bảo mục tiêu an toàn cho hệ thống liệu lưu trữ Nhìn chung, đề tài hồn thành yêu cần đặt ban đầu giảng viên hướng dẫn Một số hạn chế tồn tại: • Vẫn thuật tốn mã hóa phương pháp mã hóa chưa • nghiên cứu cụ thể đề tài • Hiểubiết khả lập trình SQL Server hạn chế nên khókhăn q trình tìm hiểu giải phápvà thực thi • Hiện việc nghiên cứu dừng lạiở mức độ nghiên cứu tìm hiểu để phát triển chưa đưa ý tưởng riêng Hướng phát triển đề tài: Tiếp tục nghiên cứu, tìm hiểu giải pháp có hệ quản trị sở liệu khác, sản phẩm giới để từ nâng cao kiến thức hiểu biết hệ quản trị, khả lập trình sở liệu mã hóa Từ lựa chọn giải pháp an tồn bảo mật phù hợp để tự xây dựng phát triển ứng dụng Qua thử nghiệm, em nhận thức ý nghĩa vai trò vấn đề mã hóa sở liệu đặc biệt phương pháp mã hóa liệu suốt Vì thời gian kiến thức hạn chế nên khơng tránh khỏi sai sót, kính mong thầy cho ý kiến để em nhận sữa chữa Cuối em xin chân thành cảm ơn giúp đỡ giáo viên hướng dẫn TS.Trần Thị Lượng, thầy cô giáo bè giúp đỡ chúng em q trình hồn thành đề tài 64 Hà Nội, 6/2019 Sinh Viên Đậu Quang Chúc 65 TÀI LIỆU THAM KHẢO [1] TS Nguyễn Nam Hải, “Giáo trình An tồn sở liệu”, Học viện Kỹthuật mật mã, 2006 [2] GS.TS Nguyễn Bình, TS Trần Đức Sự, “Giáo trình Cơ sở lý thuyết mậtmã”, Học viện Kỹ thuật mật mã, 2006 [3] TS Trần Văn Trường, giáo trình “Mật mã học nâng cao”, Học viện Kỹthuật mật mã, 2006 [4] MaKhơnghaPunna/Mã hóa liệu suốt SQL/https://www.sqlservergeeks.com/sql-server-transparent-dataencryption [5].Alicekupkic/Mã hóa liệu suốt/https://azure.microsoft.com/enus/blog/transparent-data-encryption-or-always-encrypted [6] Oracle Corporation, Database Encryption in Oracle9i, technique whitepaper, 2001 [7] RSA Security company, Securing Data at Rest: Developing a DatabaseEncryption Strategy, whiter paper, 2002 [8] Luc Bouganim, Yanli GUO, Database Encryption [9] Erez Shmueli, Ronen Vaisenberg, Yuval Elovici, Chanan Glezer,Database Encryption – An Overview of Contemporary Challenges and Design Considerations 66 PHỤ LỤC Mã chương trình tạo CSDL: CREATE DATABASE Quanlysach CREATE TABLE VITRI ( MAVT int NOT NULL, TENKE varchar(10) NOT NULL, PRIMARY KEY (MAVT), ); CREATE TABLE NHANVIEN ( MANV int NOT NULL, TENNV varchar(50) NOT NULL, GIOITINH varchar(10) NOT NULL, DIACHI varchar(50) NOT NULL, DIENTHOAI varchar(11) NOT NULL, PRIMARY KEY (MANV), ); CREATE TABLE DOCGIA ( MADG int NOT NULL, TENDG varchar(50) NOT NULL, GIOITINH varchar(10) NOT NULL, NAMSINH varchar(20) NOT NULL, NGHENGIEP varchar(50) NOT NULL, NGAYCAPTHE varchar(11) NOT NULL, NGAYHETHAN varchar(11) NOT NULL, DIACHI varchar(50) NOT NULL, PRIMARY KEY (MADG), ); CREATE TABLE SACH ( MASACH int NOT NULL, MATL int NOT NULL, MAVT int NOT NULL, TENSACH varchar(50) NOT NULL, NOIDUNG varchar(100) NOT NULL, SOTRANG varchar(10) NOT NULL, TACGIA varchar(50) NOT NULL, NGONNGU varchar(11) NOT NULL, NHAXUATBAN varchar(50) NOT NULL, NGAYMUASACH varchar(10) NOT NULL, GIATHUE varchar(10) NOT NULL, TONTAI varchar(10) NOT NULL, PRIMARY KEY (MASACH), ); CREATE TABLE CHITIETMUON ( MAPM int NOT NULL, MASACH int NOT NULL, NGAYTHUE varchar(10) NOT NULL, NGAYTRA varchar(10) NOT NULL, GHICHU varchar(50) NULL, PRIMARY KEY (MAPM, MASACH), ); CREATE TABLE THELOAI ( MATL int NOT NULL, TENTL varchar(50) NOT NULL, PRIMARY KEY (MATL), ); CREATE TABLE HOADONMUON ( MAPM int NOT NULL, MADG int NOT NULL, MANV int NOT NULL, 67 TIENCOC varchar(10) NOT NULL, PRIMARY KEY (MAPM), ); ALTER TABLE SACH ADD FOREIGN KEY (MAVT) REFERENCES VITRI(MAVT); ALTER TABLE SACH ADD FOREIGN KEY (MATL) REFERENCES THELOAI(MATL); ALTER TABLE CHITIETMUON ADD FOREIGN KEY (MASACH) REFERENCES SACH(MASACH); ALTER TABLE CHITIETMUON ADD FOREIGN KEY (MAPM) REFERENCES HOADONMUON(MAPM); ALTER TABLE HOADONMUON ADD FOREIGN KEY (MANV) REFERENCES NHANVIEN(MANV); ALTER TABLE HOADONMUON ADD FOREIGN KEY (MADG) REFERENCES DOCGIA(MADG); INSERT INTO NHANVIEN VALUES (1, 'DAU QUANG A', 'Nam', 'HA TINH','123456789'); INSERT INTO NHANVIEN VALUES (2, 'DAU QUANG B', 'Nam', 'HA TAY','023456789'); INSERT INTO NHANVIEN VALUES (3, 'DAU THI C', 'Nu', 'HA NAM','12345678'); INSERT INTO DOCGIA VALUES (10, 'NGUYEN THI D', 'Nam','1995', 'SINH VIEN', '1/5/2018', '15/5/2018', 'HA NOI'); INSERT INTO DOCGIA VALUES (11, 'DAU QUANG E', 'Nam','1996', 'SINH VIEN','10/5/2018', '10/6/2018', 'LAO CAI'); INSERT INTO DOCGIA VALUES (12, 'NGUYEN QUANG F', 'Nam','1997','SINH VIEN' ,'5/5/2018','30/5/2018','YEN BAI'); INSERT INTO HOADONMUON VALUES (20, 10, 1, '50.000d'); INSERT INTO HOADONMUON VALUES (21, 10, 2, '100.000d'); INSERT INTO HOADONMUON VALUES (22, 11, 3, '200.000d'); INSERT INTO THELOAI VALUES (30, 'Truyen'); INSERT INTO THELOAI VALUES (31, 'van hoc'); INSERT INTO THELOAI VALUES (32, 'Toan'); INSERT INTO VITRI VALUES (41,'KE A'); INSERT INTO VITRI VALUES (42,'KE B'); INSERT INTO VITRI VALUES (43,'KE C'); INSERT INTO SACH VALUES (50,31,41,'THACH SANH','Truyen co tich','100','Không','Tieng Viet','NXB Kim Dong','1/1/2018','10.000d','10'); INSERT INTO SACH VALUES (51,32,42,'TAT DEN','Van hoc','100','Ngo Tat To','Tieng Viet','NXB Van Hoc','2/1/2018','20.000d','10'); INSERT INTO SACH VALUES (52,32,43,'DAI SO','Toan hoc','100','Không','Tieng Viet','NXB Giao Duc','3/1/2018','15.000d','10'); INSERT INTO CHITIETMUON VALUES (20,50,'1/5/2018', '15/5/2018','khong'); INSERT INTO CHITIETMUON VALUES (21,51,'1/5/2018', '15/5/2018','khong'); 68 INSERT INTO CHITIETMUON VALUES (22,52,'1/5/2018', '15/5/2018','khong'); USER master GO BACKUP DATABASE [Quanlysach] TO DISK = N’C:\Backup\QLSach.bak’ Mã mã hóa TDE cho CSDL Quanlysach: USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Chuc@123'; GO CREATE CERTIFICATE QLSach_Cert WITH SUBJECT = 'QLSach Certificate'; GO USE Quanlysach; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE QLSach_Cert; GO USE master GO BACKUP CERTIFICATE QLSach_Cert TO FILE = 'C:\Backup\QLSach_Cert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\QLSach_Cert_Key.pvk', ENCRYPTION BY PASSWORD = 'Chuc@123' ) GO ALTER DATABASE QuanlySach SET ENCRYPTION ON; GO USE master GO SELECT *FROM sys.certificates WHERE pvt_key_encryption_type 'NA' GO USE master GO SELECT encryptor_type, key_length, key_algorithm, encryption_state, create_date FROM sys.dm_database_encryption_keys GO USE master GO BACKUP DATABASE [Quanlysach] TO DISK = N'C:\Backup\QLSach.bak' WITH NOFORMAT, NOINIT, NAME = N'QLSach-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO USE master GO RESTORE DATABASE [Quanlysach] FROM DISK = N'C:\Backup\QLSach.bak' USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Chuc@1234' GO CREATE CERTIFICATE QLsach_Cert2 FROM FILE = 'C:\Backup\QLSach_Cert.cer' WITH PRIVATE KEY (FILE = 'C:\Backup\QLSach_Cert_Key.pvk', DECRYPTION BY PASSWORD = 'Chuc@123') ; GO USE master GO 69 RESTORE DATABASE [Quanlysach] FROM DISK = N'C:\Backup\QLSach.bak' 70 ... mở khóa Trong sở liệu SQL Oracle, người dùng không cần phải lo lắng cách liệu mã hóa; miễn họ có quyền truy cập vào sở liệu, tất mã hóa giải mã suốt với họ Sau liệu mã hóa, liệu giải mã suốt. .. HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU VỀ Mà HÓA DỮ LIỆU TRONG SUỐT (TRANSPARENT DATA ENCRYPTION) TRONG SQL SERVER Ngành: An tồn thơng tin Mã số: 7.48.02.02 Sinh... LIỆU TRONG SUỐT (TRANPARENT DATA ENCRYPTION – TDE) 2.1 Khái niệm mã hóa TDE Mã hóa liệu suốt (TDE) phương pháp Microsoft Oracle sử dụng để mã hóa tệp sở liệu TDE cung cấp mã hóa cấp độ tập tin