1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về mã hóa dữ liệu trong suốt ( transparent dât encryption ) trong SQL sever

70 1K 11

Đ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

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 1,36 MB
File đính kèm Tìm hiểu về mã hóa dữ liệu trong suốt.zip (1 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

Trang 2

BAN CƠ YẾU CHÍNH PHỦ

Trang 3

MỤC LỤC

Trang 4

EKM Quản lý khóa mã hóa

MARS Multiple Active Result Sets

MS DTC Điều phối viên giao dịch phân tán

PCI DSS Payment Card Industry Data Security Standard

RDBMS Hệ Quản Trị CSDL Quan Hệ

SAC cấu hình bề mặt (Surface Area Configuration)

OLE DB Cơ sở dữ liệu nhúng và liên kết đối tượng

TDE Transparent Data Encreption (Mã hóa dữ liệu trong suốt)3DES Triple DES(Thuật toán mã hóa dữ liệu ba)

Trang 5

DANH MỤC BẢNG

Trang 6

DANH MỤC HÌNH VẼ

Trang 7

LỜI MỞ ĐẦU

Hiện nay Internet đang dần trở nên phổ biến trên thế giới, thông qua mạngInternet mọi người có thể trao đổi thông tin với nhau một cách nhanh chóng vàthuận lợi Những công ty phát triển và kinh doanh trên môi trườngintranet/Internet họ phải đối diện với khó khăn lớn là làm thế nào để bảo vệ dữliệu, ngăn chặn những hình thức tấn công, truy xuất dữ liệu bất hợp pháp từ bêntrong (intranet) lẫn cả bên ngoài (Internet) Khi một người muốn trao đổi thôngtin với một người hay một tổ chức nào đó thông qua mạng máy tính thì yêu cầuquan trọng là làm thế nào để đảm bảo thông tin không bị sai lệch hoặc bị lộ do

sự xâm nhập, đánh cắp thông tin trái phép của kẻ thứ ba Trước các yêu cầu cấp

thiết đó, em đã chọn đề tài “Tìm hiểu về mã hóa dữ liệu trong suốt (Transparent Data Encreption-TDE) trong SQL Server” làm đồ án tốt nghiệp của mình.

Mục tiêu của việc nghiên cứu đề tài này là nhằm tìm hiểu và thực hiện mãhóa dữ liệu trong suốt để đảm bảo an toàn cho thông tin trong cơ sở dũ liệu

Nội dung đồ án được trình bày ba chương:

Chương 1: Tổng quan về hệ quản trị SQL Server

• Giới thiệu tổng quan hệ quản trị cơ sở dữ liệu SQL Server

Chương 2: Mã hóa dữ liệu trong suốt (Transparent Data Encreption – TDE)

• Tìm hiểu về mã hóa dữ liệu trong suốt TDE

Chương 3: Thực nghiệm mã hóa TDEcho cơ sở dữ liệu trên SQL Server

• Triển khai giải thực hiện mã hóa dữ liệu TDE cho cơ sở dữ liệu

Em xin chân thành cảm ơn sự giúp đỡ tận tình của cô TS Trần Thị Lượng

để báo cáo của em được hoàn thành

Do thời gian có hạn nên báo cáo của em chắc chắn còn nhiều thiếu sót Emrất mong nhận được sự góp ý, chỉ bảo của quý thầy cô để báo cáo của em đượchoàn thiện hơn

Em xin chân thành cảm ơn !

Hà Nội, ngày10 tháng 6 năm 2019

SINH VIÊN THỰC HIỆN

Đậu Quang Chúc

Trang 8

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 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 DatabaseManagement System - RDBMS) sử dụng câu lệnh SQL (Transact-SQL) để traođổi dữ liệu giữa máy Client và máy cài SQL Server Một RDBMS bao gồm cácCSDL, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phậnkhá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ấtlớn (Very Large Database Environment) lên đến Tera-Byte 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 serverkhác như Microsoft Internet Information Server (IIS), E-Commerce 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ồmnhâ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ơnnhiề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 4CPU và 2 GB RAM

Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng đượcchế 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àyphù 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ồntại ở SQL Server 2012

Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơngiản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các

Trang 9

ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai SQL ServerExpress 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ộtphiê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âydự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ụcphá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 choSQL Server 7.0 Cho nên có thể nói từ version 6.5 lên version 7.0 là một bướcnhảy vọt Có một số đặc tính của SQL Server 7.0 không tương thích với version6.5 Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cảitiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đángtin cậy hơn

Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance 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ầnphải gỡ chúng Nghĩa là có thể chạy song song version 6.5 hoặc 7.0 với phiênbả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ớivừ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 SQLServer 2008 Express có sẵn dưới dạng gói miễn phí và có thể tự do phân phốilạ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

Trang 10

Nó được hỗ trợ trên Windows Server 2003 Service Pack 2, WindowsServer 2008, Windows Vista, Windows Vista Service Pack 1, Windows XPService 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 chocá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ênbả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ậycho các trang web và ứng dụng máy tính để bàn nhẹ Nó miễn phí và có cácphiên bản SQL Server giàu tính năng, lý tưởng cho việc học, phát triển, cungcấ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 R2SP1, 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 xemtrướ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ầntrong độ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 trongSQL 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 đã đượcthử nghiệm và xác thực lần đầu tiên trong Cơ sở dữ liệu SQL Azure, chúng dựatrê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 sovới người tiền nhiệm trước đó là SQL Server 2014

Trang 11

1.2 Các thành phần của SQL Server

SQL Server được cấu tạo bởi nhiều thành phần như DatabaseEngine, Reporting Services, Notification Services, Integration Services, Full TextSearch Service… Các thành phần này khi phối hợp với nhau tạo thành một giảipháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng

Hình 1.1 : Các thành phần chính SQL Server Công cụ lưu trữ (Database Engine)

Ðây là một công cụ có khả năng chứa data ở các quy mô khác nhau dướidạng table và hỗ trợ tất cả các kiểu kết nối (Data Connection) thông dụng củaMicrosoft như: ActiveX Data Objects (ADO), OLE DB, và Open DatabaseConnectivity (ODBC)

Ngoài ra nó còn có khả năng tự điều chỉnh (Tune up) ví dụ như sử dụngthêm các tài nguyên (Resource) của máy khi cần và trả lại tài nguyên cho hệđiều hành khi một user log off

Replication

Cơ chế tạo bản sao (Replica):

Giả sử có một CSDL dùng để chứa dữ liệu được các ứng dụng thườngxuyên cập nhật Một ngày đẹp trời muốn có một CSDL giống y hệt như thế trênmột server khác để chạy báo cáo (report database) (cách làm này thường dùng

để tránh ảnh hưởng đến hiệu suất của máy chủ) Vấn đề báo cáo máy chủ cũngcần phải được cập nhật thường xuyên để đảm bảo tính chính xác Không thểdùng cơ chế Backup và Restore trong trường hợp này Vậy thì phải làm sao?Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữliệu ở 2 CSDL được đồng bộ (synchronized)

Trang 12

Analysis Services

Là một dịch vụ phân tích dữ liệu rất hay của Microsoft

Dữ liệu (Data) chứa trong CSDL sẽ chẳng có ý nghĩa gì nhiều nếu nhưkhông thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoftcung cấp cho một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễdàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining)

Notification Services

Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển vàtriển khai các ứng dụng tạo và gửi thông báo Notification Services có thể gửithông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết

bị khác nhau

Reporting Services

Reporting Services bao gồm các thành phần server và Client cho việc tạo,quản lý và triển khai các báo cáo Reporting Services cũng là nền tảng cho việcphát triển và xây dựng các ứng dụng báo cáo

Full Text Search Service

Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉmục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong cácCSDL SQL Server Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trênbất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụngtoán tử LIKE trong SQL với trường hợp tìm văn bản

Service Broker

Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việccác ứng dụng nhảy qua các Instance Service Broker giao tiếp qua giao thứcTCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau

Trang 13

theo hướng trao đổi các message Service Broker chạy như một phần của bộmáy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàngđợi cho các ứng dụng SQL Server.

1.3 Quản lý các dịch vụ của SQL Server

RDBMS là nền tảng cho SQL cũng như cho tất cả các hệ cơ sở dữ liệukhác như MS SQL Server, IBM DB2, Oracle, MýQL và Microsoft Access

Một hệ quản trị cơ sở dữ liệu quan hệ là hệ quản trị cơ sở dữ liệu (DBMS)dựa trên mô hình quan hệ được giới thiệu bởi E.F.Codd

Trong RDBMS, dữ liệu được biểu diễn bởi các hàng Relational Database

là cơ sở dữ liệu được sử dụng phổ biến nhất Nó chứa các bảng và mỗi bảng cóPrimary Key riêng Bởi vì các bảng này được tổ chức chặt chẽ nên việc truy cập

dữ liệu trở nên dễ dàng hơn trong RDBMS

Trang 14

Hình 1.2: Dịch vụ SQL Server Agent

Các thành phần của SQL Server Agent:

SQL Server Agent sử dụng các thành phần sau để xác định các tác vụ sẽđược thực hiện, khi nào thực hiện các tác vụ và cách báo cáo thành công haythất bại của các tác vụ

Công việc - Jobs

Trang 15

Một công việc là một chuỗi các hành động được chỉ định mà SQL ServerAgent thực hiện Sử dụng các công việc để xác định một nhiệm vụ quản trị cóthể được chạy một hoặc nhiều lần và được theo dõi thành công hay thất bại Mộtcông việc có thể chạy trên một máy chủ cục bộ hoặc trên nhiều máy chủ từ xa.

Có thể chạy công việc theo nhiều cách:

• Theo một hoặc nhiều lịch trình

• Đáp lại một hoặc nhiều cảnh báo

• Bằng cách thực hiện thủ tục lưu trữ sp_start_job

Mỗi hành động trong một công việc là một bước công việc Ví dụ: bướccông việc có thể bao gồm chạy câu lệnh Transact-SQL, thực thi gói SSIS hoặcban hành lệnh cho máy chủ Dịch vụ phân tích Các bước công việc được quản lýnhư một phần của công việc

Mỗi bước công việc chạy trong một bối cảnh bảo mật cụ thể Đối với cácbước công việc sử dụng Transact-SQL, hãy sử dụng câu lệnh EXECUTE AS đểđặt bối cảnh bảo mật cho bước công việc Đối với các loại bước công việc khác,hãy sử dụng tài khoản proxy để đặt bối cảnh bảo mật cho bước công việc

Lịch trình - Schedule

Một lịch trình chỉ định khi một công việc chạy Nhiều công việc có thểchạy trên cùng một lịch trình và nhiều hơn một lịch trình có thể áp dụng chocùng một công việc Một lịch trình có thể xác định các điều kiện sau đây chothời gian khi một công việc chạy:

• Bất cứ khi nào SQL Server Agent bắt đầu

• Bất cứ khi nào việc sử dụng CPU của máy tính ở mức đã xác định làkhông hoạt động

• Một lần, vào một ngày và thời gian cụ thể

• Trên một lịch trình định kỳ

Cảnh báo - Alert

Một cảnh báo là một phản ứng tự động cho một sự kiện cụ thể Ví dụ: một

sự kiện có thể là một công việc bắt đầu hoặc tài nguyên hệ thống đạt đến mộtngưỡng cụ thể xác định các điều kiện theo đó một cảnh báo xảy ra

Một cảnh báo có thể đáp ứng với một trong các điều kiện sau đây:

• Sự kiện máy chủ SQL

• Điều kiện hoạt động của SQL Server

• Các sự kiện của Microsoft Windows Management Instrumentation(WMI) trên máy tính nơi SQL Server Agent đang chạy

Trang 16

Một cảnh báo có thể thực hiện các hành động sau:

• Thông báo cho một hoặc nhiều nhà khai thác

• Điều hành một công việc

Người Điều hành - Operator

Một toán tử xác định thông tin liên hệ cho một cá nhân chịu trách nhiệmbảo trì một hoặc nhiều phiên bản của SQL Server Trong một số doanh nghiệp,trách nhiệm của nhà điều hành được giao cho một cá nhân Trong các doanhnghiệp có nhiều máy chủ, nhiều cá nhân có thể chia sẻ trách nhiệm của nhà điềuhành Một toán tử không chứa thông tin bảo mật và không xác định hiệu trưởngbảo mật

SQL Server có thể thông báo cho người vận hành cảnh báo thông qua mộthoặc nhiều điều sau:

cơ sở dữ liệu đảm bảo rằng mỗi bước công việc chạy với các quyền tối thiểu cầnthiết để thực hiện nhiệm vụ của mình

Các hệ thống con:

Một hệ thống con là một đối tượng được xác định trước đại diện cho chứcnăng có sẵn cho một bước công việc Mỗi proxy có quyền truy cập vào một hoặcnhiều hệ thống con Các hệ thống con cung cấp bảo mật vì chúng phân địnhquyền truy cập vào chức năng có sẵn cho proxy Mỗi bước công việc chạy trongngữ cảnh của proxy, ngoại trừ các bước công việc Transact-SQL Các bước công

Trang 17

việc Transact-SQL sử dụng lệnh EXECUTE AS để đặt bối cảnh bảo mật cho chủ

sở hữu của Công việc

SQL Server Agent thực thi các hạn chế hệ thống con ngay cả khi hiệutrưởng bảo mật cho proxy thường có quyền chạy tác vụ trong bước côngviệc Ví dụ: proxy cho người dùng là thành viên của vai trò máy chủ cố địnhsysadmin không thể chạy bước công việc SSIS trừ khi proxy có quyền truy cậpvào hệ thống con SSIS, mặc dù người dùng có thể chạy các gói SSIS

Proxy:

SQL Server Agent sử dụng proxy để quản lý bối cảnh bảo mật Một proxy

có thể được sử dụng trong nhiều bước công việc Các thành viên của vai trò máychủ cố định sysadmin có thể tạo proxy

Mỗi proxy tương ứng với một thông tin bảo mật Mỗi proxy có thể đượcliên kết với một tập hợp các hệ thống con và một tập hợp các thông tin đăngnhập Proxy chỉ có thể được sử dụng cho các bước công việc sử dụng hệ thốngcon được liên kết với proxy Để tạo một bước công việc sử dụng một proxy cụthể, chủ sở hữu công việc phải sử dụng thông tin đăng nhập được liên kết vớiproxy đó hoặc là thành viên của một vai trò có quyền truy cập không hạn chếvào proxy Các thành viên của vai trò máy chủ cố định sysadmin có quyền truycập không hạn chế vào proxy

Thành viên của SQL Agent User Role, SQL Agent Reader Role hoặcSQL Agent Operator Role chỉ có thể sử dụng proxy mà họ đã được cấp quyềntruy cập cụ thể Mỗi người dùng là thành viên của bất kỳ vai trò cơ sở dữ liệu cốđịnh nào của đại lý SQL Server phải được cấp quyền truy cập vào các proxy cụthể để người dùng có thể tạo các bước công việc sử dụng các proxy đó

1.3.3 Dịch vụ Microsoft Search.

Microsoft Search là một bổ trợ miễn phí cho SQL Server ManagementStudio và Visual Studio, cho phép nhanh chóng tìm kiếm SQL trên cơ sở dữ liệucủa mình

Cung cấp dịch vụ tìm kiếm và tìm kiếm văn bản với các phép toán cơ bảnsau:

+ Ký tự (chuỗi): =, >, >=, <, <= được so sánh với một chuỗi hằng

+ So sánh chuỗi nhỏ trong văn bảnhoặc chuỗi có kích thước lớn, văn bản

Trang 18

1.3.3.2

Hình 1.3: Dịch vụ Microsoft Search

Lợi ích của dịch vụ Microsoft Seach trong SQL Server:

• Tìm kiếm tên cột và tìm tất cả các thủ tục được lưu trữ nơi nó được

sử dụng

• Làm việc nhanh hơn

Ví dụ: Tìm bất cứ thứ gì trong Object Explorer đòi hỏi rất nhiều nhấpchuột Việc sử dụng Microsoft Search có thể nhấn tổ hợp phím tắt, bắt đầu nhậptên và trỏ ngay vào đó

Trang 19

Hình 1.4: Microsoft Search giúp làm việc nhanh hơn

• Tăng hiệu quả, giảm lỗi

Ví dụ: Sử dụng Tìm kiếm SQL, có thể tìm kiếm SELECT * trong văn bảncác quy trình và chế độ xem được lưu trữ và thay thế chúng bằng một danh sáchcột chính xác để cải thiện hiệu suất và ngăn ngừa các lỗi trong tương lai

Trang 20

Hình 1.5: Microsoft Search giúp làm việc hiệu quả hơn

1.3.4 Dịch vụ MS DTC.

Dịch vụ MS DTC - Distributed Transaction Co-ordinator (Điều phối viên giaodịch phân tán) là dịch vụ cho phép trong một phiên giao vận có thể sử dụng dữliệu được phân phối trên nhiều server khác nhau, thực hiện theo các bước cơ bảnsau:

• Gọi các thủ tục lưu trữ trên các server xa sử dụng SQL Server

• Tự động gọi hoặc tạo các phiên giao vận cục bộ và các giao vận vớicác máy chủ từ xa

• Tạo bộ dữ liệu được cập nhật hoặc được phân phối bởi các server xa.Điều này là để đảm bảo rằng giao dịch được cam kết hoặc được khôi phụctrên các hệ thống phân tán này và không có phần nào bị bỏ lại ở trạng thái khôngcam kết

Giao dịch phân tán là một giao dịch thường được bắt đầu từ một ứng dụngchạm vào nhiều trường hợp riêng biệt Ví dụ:

Hình 1.6: Dịch vụ MS DTC

Trang 21

Khi một giao dịch phân tán được bắt đầu, giao dịch được biết bởi DTCcục bộ (hoặc được phân cụm tùy theo cấu hình), sau đó sẽ gửi các yêu cầu đếntrình quản lý tài nguyên DB cục bộ Trình quản lý tài nguyên sau đó thực hiệncác yêu cầu giao dịch Trình quản lý tài nguyên được đăng ký trong trang khởiđộng của cơ sở dữ liệu sẵn có trên bản sao chính Nếu chuyển đổi dự phòng xảy

ra trong giao dịch này, trong giai đoạn phục hồi cơ sở dữ liệu, DTC bản saochính trước đó cung cấp chi tiết giao dịch cho trình quản lý tài nguyên chínhmới (hiện đã được đăng ký trong trang khởi động của cơ sở dữ liệu sẵn có chínhmới) Nếu giao dịch được thực hiện, nó có thể được chuyển tiếp, nếu giao dịchkhông được cam kết / nghi ngờ thì nó sẽ được khôi phục

Sơ đồ hoạt động:

Hình 1.7: Sơ đồ hoạt động của MS DTC

Trang 22

Khi Client kêu gọi một thủ tục có sẵn đến server cục bộ, khi có yêu cầu

dữ liệu trên server khác, thông qua dịch vụ MS DTC server cục bộ sẽ gọi các thủtục từ server từ xa, kết quả có thể tạo được bộ dữ liệu được tập trung từ nhiềuserver khác nhau

Hình 1.8: Bộ dữ liệu được tập trung từ nhiều Server

1.4 Các cơ chế an toàn trong SQL Server

1.4.1 Đăng nhập và người dùng (Login And User)

SQL Server chỉ cho phép truy cập vào hệ thống thông qua quá trình đăngnhập Chỉ khi có quyền hạn ở mức độ nhất định thì người dùng mới có thể tạo

Trang 23

thêm những đăng nhập khác Ở trong SSMS có thể xem tất cả các đăng nhậpbằng cách mở rộng những node Security/Logins Những đăng nhập này chỉ cóquyền truy cập vào Server chứ chưa thể vào được cơ sở dữ liệu ở bên trong.

Với mỗi cơ sở dữ liệu lại duy trì một danh sách những người dùng, cácngười dùng này luôn luôn đính với một đăng nhập ở mức độ Server Nếu đăngnhập vào SQL Server qua đăng nhập này, người dùng sẽ có quyền truy cập vào

cơ sở dữ liệu theo quyền hạn mà người dùng tương ứng với nó được cung cấp

Có thể xem những người dùng này bằng cách mở rộng Security/Users của cơ sở

dữ liệu tương ứng

Để hiểu hơn khái niệm bảo mật SQL Server này, giả sử có một đăng nhập

có tên là Chuc2019 vào trong SQL Server Ở trong cơ sở dữ liệu db1, có ngườidùng tên là Chuc2019 và được gắn với đăng nhập Chuc2019, và tất nhiênngười dùng này chỉ có quyền đọc Ở trong cơ sở dữ liệu 2, cũng có người dùngChuc2019 cũng được gắn cùng với login ở trên, và người dùng này có quyềnđọc và ghi Khi truy cập vào SQL Server bằng Chuc2019, chỉ có quyền đọc trêndb1 nhưng lại có thể đọc và ghi trên db2

1.4.2 Vai trò trên Server (Server rule)

Server Role là một tập hợp 1 nhóm những quyền và được đại diện bằngmột tên có thể thuận tiện trong việc quản lý Server role chính là nhóm nhữngquyền ở mức độ Server, mà khi các login được cấp chúng sẽ có thể làm một sốthao tác ở mức độ Server

Không chỉ gán vai trò cho người dùng trong CSDL, mà còn có thể gán vaitrò trong phạm vi toàn bộ SQL Server Điều này có nghĩa là có thể ngăn cảnhoặc cho phép mọi người thực hiện các hoạt động Các vai trò này được gọi làvai trò trên server (server role)

Các vai trò trên server trong SQL Server:

• Sysadmin: vai trò này có khả năng kiểm soát toàn bộ SQL Server

• Securityadmin: tạo và quản lí các dăng nhập cho server

• Serveradmin: cấu hình các tham số và tắt server

• Setupadmin: quản lí các thủ tục khỏi động và liên kết server

• Processadmin: quản lí các chuyển tác đang chạy trên SQL Server Điềunày có nghĩa vai trò này có thể đưa ra câu lệnh KILL, kết thúc côngviệc 1 người dùng

• Diskadmin: quản lí các file trên đĩa

• Dbcreator: có thể tạo, xáo trộn, xóa CSDL

Trang 24

Hình 1.9: Role trong SQL server

Chẳng hạn như vai trò sysadmin có toàn quyền hoạt động ở trong Server

và tự nó cũng có quyền truy cập vào toàn bộ cơ sở dữ liệu Và “diskadmin” chỉ

có quyền về những thao tác như bổ sung tập tin vào cơ sở dữ liệu

Những login khi được tạo thì vai trò mặc định là public Vai trò này thựcchất không có bất kỳ quyền nào cả ngoại trừ quyền truy cập vào Server Thườngthường chỉ có DBA mới có quyền sysadmin còn với những developer thì chỉ làrole public và thi thoảng bổ sung thêm khi có thêm những tác vụ liên quan

Trang 25

1.4.3 Vai trò trên cơ sở dữ liệu (Rule Database)

CSDL tập hợp những quyền truy cập vào cơ sở dữ liệu thành từng nhóm

để có thể dễ tạo và sửa đổi

Có một vai trò trên CSDL rất đặc biệt: vai trò Public Mỗi người dùngđược định nghĩa trong CSDL đều thuộc về vai trò Public Nếu muốn mọi ngườitrong một CSDL có một quyền nào đấy, ta phải gán quyền đó với vai trò public.Nếu một người dùng chưa được cấp quyền trên một đối tượng, người đó sẽ dùngcác quyền gán cho public Vai trò Public hầu như không có quyền nào ngoại trừmột quyền rất cơ bản là cho phép người dùng kết nối với CSDL

Vai trò này có một số điều cơ bản:

• Ở trong mọi CSDL

• Không thể bị loại bỏ

• Mọi người dùng đều thuộc vai trò Public

• Vì mọi người dùng đều thuộc vai trò này (mặc định), nên không thểthêm hay bớt

• người dùng cho vai trò này

Một số vai trò và quyền trên CSDL:

• Db_Owner: Vai trò cho phép người dùng quyền được hoàn toàn kiểmsoát CSDL

• Db_Securityadmin: Vai trò cho phép một người dùng quản lí tất cả cácvai trò và thành viên, gán quyền cho các vai trò

• Db_Accessadmin: cho phép người dùng thêm hoặc bớt người dùngtrong CSDL

• Db_Ddladmin: cho phép xử lí tất cả các đối tượng trong CSDL (tạo,sửa, xóa đối tượng)

• Db_Backupoperator: cho phép thực hiện backup CSDL

• Db_Datawriter: cho phép sửa dữ liệu ở các bảng do người dùng tạotrong CSDL

• Db_Reader: cho phép xem dữ liệu ở các bảng do người dùng tạo trongCSDL

• Db_Denydatawriter: ngăn việc sửa dữ liệu

• Db_Denydatareader: ngăn việc xem dữ liệu

Một người dùng đơn lẻ có thể thuộc một, nhiều, hoặc không thuộc vai trònào cả Nếu một người dùng thuộc nhiều hơn một vai trò, người dùng đó sẽ cótẩt cả các quyền của các vai trò đó Ta có thể tạo vai trò trên CSDL dùngEnterprise Manager hoặc sử dụng các thủ tục thường trú hệ thống

Trang 26

Giống như các đối tượng CSDL, ta cần đặt tên cho các vai trò.

SQL Server có 2 loại vai trò:

• Vai trò chuẩn (Standard role): gần giống YỚi các nhóm trong Windows

NT Vai trò này có thể bao gồm người dùng, các quyền Khi 1 người dùngkêt nối YỚi tư cách là thành viên của vai trò, họ hưởng các quyền của vaitrò đó

• Vai trò ứng dụng (application role): là những vai trò đặc biệt trong SQLServer 2000 bởi chúng không bao gồm bất kì thành viên nào Trong 1chừng mực nào đó có thể nghĩ những vai trò đặc biệt này như là tài khoảnngười dùng Các vai trò này hoạt động như người dùng bởi chung cần mã

để kích hoạt

Ví dụ như trong vấn đề bảo mật server thì vai trò Db_datareader chỉ cóquyền đọc dữ liệu từ các bảng, vai trò Db_datawriter chỉ có quyền ghi vào bảng,vai trò Db_owner thì có quyền cao nhất như tạo bảng, tạo thủ tục và thực thinhững thủ tục đó Những người dùng mặc định như đã nói ở trên đều có chungrole là public Khi người dùng chỉ có vai trò này thì họ chỉ có nhìn thấy cơ sở dữliệu mà không có thêm quyền gì khác

1.4.4 Xác Thực (Authentication)

SQL Server xác thực các đăng nhập với hai cơ chế, đó là SQL Serverauthentication và Windows authentication Điều này bắt nguồn khi tạo nhữnglogin ở trong SQL Server, khi tạo mới một đăng nhập, SQL Server sẽ đưa ra yêucầu phải chọn một trong hai cơ chế xác thực ở trên Nếu chọn loại thứ nhất đó làSQL Server authentication thì cần phải cung cấp tên đăng nhập và mật khẩu và

cả hai đều được lưu trong SQL Server Nếu chọn loại còn lại thì chỉ cần cungcấp một tài khoản Windows Account và sau đó SQL Server chỉ lưu trên tàikhoản trong danh sách login

Khi đăng nhập vào SQL Server, người dùng sẽ phải chọn một trong 2 cơchế xác thực như ở trên, tài khoản hiện tại đang muốn đăng nhập vào Windows sẽđược dùng nếu user chọn Windows authentication Thực tế người dùng không cóquyền chọn đăng nhập và SQL Server sẽ gửi lệnh đến Windows và kiểm tra có tàikhoản nào đang muốn đăng nhập vào Windows hay không rồi nó sẽ kiểm tra tàikhoản đó có nằm trong danh sách đăng nhập hay không Nếu không thì sẽ chặntài khoản đó lại, còn nếu có tất nhiên nó sẽ được đăng nhập vào

Trang 27

Với kiểu SQL Server authentication thì nguyên lý hoạt động giống nhưbình thường User đăng nhập vào với người dùng và mật khẩu SQL Server sẽkiểm tra xem và đưa ra quyết định có cho đăng nhập vào hay là không Mộtđiểm cần chú ý đó là với login dùng Windows, SQL chỉ lưu tên đăng nhập chứkhông lưu mật khẩu Khi đăng nhập nếu user cố ý chọn sang SQL Server thì hệthống sẽ không xác thực cho user nữa.

1.5 Ưu, nhược điểm của SQL Server

SQL Server không phải là một hệ quản trị cơ sở dữ liệu độc lập mà nó chỉ

là một thành phần với vai trò ngôn ngữ là công cụ giao tiếp giữa hệ cơ sở dữ liệu

và người dùng Chính vì thế nó được sử dụng trong các dịch vụ thiết kế web đẹpvới chức năng giao tiếp với người dùng với các vai trò sau:

SQL là một ngôn ngữ đòi hỏi có tính tương tác cao: Người dùng có thể dễdàng trao đổi với các tiện ích thông qua các câu lệnh của SQL đến cơ sở dữ liệu

và nhận kết quả từ cơ sở dữ liệu

SQL là một ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể xâydựng các chương trình ứng dụng giao tiếp với cơ sở dữ liệu bằng cách nhúng cáccâu lệnh SQL vào trong ngôn ngữ lập trình

SQL là một ngôn ngữ lập trình quản trị cơ sở dữ liệu: Người quản trị cơ

sở dữ liệu có thể quản lý, định nghĩa và điều khiển truy cập cơ sở dữ liệu thôngqua SQL

SQL là một ngôn ngữ lập trình cho các hệ thống chủ khách: SQL được sửdụng như là một công cụ giao tiếp với các trình ứng dụng trong hệ thống cơ sở

Trang 28

CHƯƠNG 2: MÃ HÓA DỮ LIỆU TRONG SUỐT (TRANPARENT DATA ENCRYPTION – TDE)

2.1 Khái niệm về mã hóa TDE

Mã hóa dữ liệu trong suốt (TDE) là một phương pháp được cả Microsoft

và Oracle sử dụng để mã hóa các tệp cơ sở dữ liệu TDE cung cấp mã hóa ở cấp

độ tập tin Phương pháp này giải quyết vấn đề bảo vệ dữ liệu lưu trữ, tức là mãhóa cơ sở dữ liệu cả trên ổ cứng và do đó trên phương tiện sao lưu các doanhnghiệp thường sử dụng TDE để giải quyết các vấn đề tuân thủ như PCI DSS

Mã hóa dữ liệu trong suốt (TDE) cho phép mã hóa dữ liệu nhạy cảm,chẳng hạn như số thẻ tín dụng, được lưu trữ trong các bảng và không gianbảng Dữ liệu được mã hóa được giải mã trong suốt cho người dùng cơ sở dữliệu hoặc ứng dụng có quyền truy cập vào dữ liệu TDE giúp bảo vệ dữ liệuđược lưu trữ trên phương tiện trong trường hợp phương tiện lưu trữ hoặc tệp dữliệu bị đánh cắp TDE mã hóa dữ liệu nhạy cảm được lưu trữ trong các tệp dữliệu Để ngăn chặn việc giải mã trái phép, TDE lưu trữ các khóa mã hóa trongmô-đun bảo mật bên ngoài cơ sở dữ liệu

TDE sử dụng để mã hóa hàng loạt tại các loại tệp cơ sở dữ liệu khácnhau Nó sẽ mã hóa tất cả dữ liệu vào các trang trước khi ghi vào đĩa và giải mãkhi đọc từ đĩa

TDE thực hiện mã hóa I/O thời gian thực và giải mã dữ liệu và tệp nhật

ký Mã hóa sử dụng khóa mã hóa cơ sở dữ liệu (DEK), được lưu trữ trong bảnghi khởi động cơ sở dữ liệu để sẵn sàng trong quá trình phục hồi DEK là khóađối xứng được bảo mật bằng cách sử dụng chứng thư được lưu trữ trong cơ sở

dữ liệu chính của máy chủ hoặc khóa bất đối xứng được bảo vệ bởi mô-đunEKM TDE bảo vệ dữ liệu ở phần còn lại, nghĩa là các tệp dữ liệu và nhật

ký Nó cung cấp khả năng tuân thủ nhiều luật, quy định và hướng dẫn được thiếtlập trong các ngành công nghiệp khác nhau Điều này cho phép các nhà pháttriển phần mềm mã hóa dữ liệu bằng cách sử dụng thuật toán mã hóa AES và3DES mà không thay đổi các ứng dụng hiện có

TDE sử dụng thuật toán mã hóa AES và 3DES, và các hoạt động mã hóa

và giải mã được chạy trên các tiến trình nền bởi SQL Server và sao lưu cơ sở dữliệu cũng được mã hóa bởi TDE

Trang 29

Mã hóa tệp cơ sở dữ liệu được thực hiện ở cấp độ trang Các trang trong

cơ sở dữ liệu được mã hóa trước khi chúng được ghi vào đĩa và được giải mã khiđọc vào bộ nhớ TDE không tăng kích thước của cơ sở dữ liệu được mã hóa

TDE chỉ mã hóa dữ liệu trước khi ghi vào đĩa, do đó, cũng có một trạngthái khác mà TDE không áp dụng mã hóa

Ví dụ: Khi đang gửi và chuyển dữ liệu của mình giữa SQL Server và ứngdụng khác, TDE không áp dụng bất kỳ mã hóa nào

Trước khi ghi vào đĩa, dữ liệu đến từ vùng đệm và dữ liệu vùng đệm củavùng đệm này có sẵn ở định dạng văn bản thuần túy, vì vậy TDE không áp dụngbất kỳ mã hóa nào trong vùng đệm này

TDE cho phép thực hiện mã hóa toàn bộ file cơ sở dữ liệu một cách trongsuốt, có nghĩa là ứng dụng người dùng không phải sửa đổi TDE là tùy chọn mãhóa chính trong SQL Server Lần đầu tiên TDE có sẵn trong SQL Server 2008,SQL Server 2012 và nó chỉ có trong các phiên bản SQL Server Enterprise

TDE giống như một key fob – Khóa xác thực, được sử dụng để có quyềntruy cập vào một chiếc xe: Chỉ chủ sở hữu của chiếc xe (hoặc người giữ fob)mới có thể vào được chiếc xe bị khóa Không có gì đặc biệt mà người giữ fobphải làm; họ chỉ cần nhấn nút mở khóa Trong cơ sở dữ liệu SQL hoặc Oracle,người dùng không cần phải lo lắng về cách dữ liệu được mã hóa; miễn là họ cóquyền truy cập vào cơ sở dữ liệu, tất cả mã hóa và giải mã đều trong suốt với họ

Sau khi dữ liệu được mã hóa, dữ liệu này được giải mã trong suốt chongười dùng hoặc ứng dụng được ủy quyền khi họ truy cập dữ liệu này TDEgiúp bảo vệ dữ liệu được lưu trữ trên phương tiện (còn gọi là dữ liệu ở trạng tháinghỉ) trong trường hợp phương tiện lưu trữ hoặc tệp dữ liệu bị đánh cắp

2.2 Lợi ích của TDE

Khi ngày càng có nhiều doanh nghiệp chuyển sang kỹ thuật số và hướngtới đám mây, bảo mật là quan trọng hơn bao giờ hết

TDE là hình thức mã hóa của SQL ở dạng lưu trữ Nó mã hóa các tệp dữliệu trong phần còn lại cho SQL Server, Azure SQL Database, Azure SQL DataWarehouse và APS Thuật ngữ dữ liệu trên dữ liệu tại phần còn lại đề cập đến dữliệu, tệp nhật ký và bản sao lưu được lưu trữ trong bộ lưu trữ liên tục Theo đó,TDE bảo vệ chống lại các bên độc hại cố gắng khôi phục các tệp cơ sở dữ liệu bịđánh cắp, chẳng hạn như dữ liệu, nhật ký, sao lưu, ảnh chụp nhanh và bản sao cơ

sở dữ liệu Mã hóa lưu trữ được dự kiến là một lớp bảo vệ cho các khách hàng

Trang 30

chạy phần cứng tại chỗ của họ hoặc lưu trữ dữ liệu của họ trong các trung tâm

dữ liệu đám mây Nhiều quy định của công ty và tuân thủ yêu cầu mã hóa để bảo

vệ dữ liệu khi lưu trữ

Với TDE được bật trên cơ sở dữ liệu, tất cả các tệp cơ sở dữ liệu ngoạituyến được mã hóa bằng mã hóa AES 256 Khi cơ sở dữ liệu của mở, mọi dữliệu trong bộ nhớ sẽ được giải mã Do đó, ứng dụng của người dùng không yêucầu bất kỳ thay đổi nào để hoạt động với TDE Tương tự, quản trị viên cơ sở dữliệu (DBA) làm việc với dữ liệu trong Management Studio (SSMS) có thể làmviệc với dữ liệu một cách tự do trong bản rõ DBA cũng có thể chạy các lệnhDBCC trên cơ sở dữ liệu Tuy nhiên, DBA sẽ không thể tìm kiếm thông qua cáctệp dữ liệu hoặc tệp nhật ký (ví dụ sử dụng grep), vì dữ liệu được mã hóa ở

đó Như với tất cả các hình thức bảo mật, TDE yêu cầu người dùng của mìnhthực hiện đánh đổi cẩn thận giữa khả năng sử dụng, tính khả dụng của dữ liệu vàbảo mật

Điều này đưa đến một vài điểm quan trọng về khả năng của TDE Quantrọng nhất, TDE không có nghĩa là được sử dụng như là sự bảo vệ duy nhấttrong hệ thống cơ sở dữ liệu Như đã đề cập trước đó, điều quan trọng là xácđịnh bề mặt tấn công còn lại ngay cả khi TDE được bật Một vài điểm nổi bậtlà: Tấn công SQL, chiếm quyền của quản trị viên, lộ lỗ hổng, tấn công bởingười dùng có đặc quyền cao với đặc quyền sysadmin, tấn công bởi quản trịviên hệ điều hành hoặc máy hoặc tấn công bởi bất kỳ ai có quyền truy cập vật

lý vào máy hoặc có quyền truy cập vào hình ảnh hệ điều hành và các tệp dữliệu, chỉ để đặt tên cho một số tình huống mà kẻ tấn công có thể có quyền truycập thông qua độ cao của các đặc quyền Đây là những lỗ hổng màTDE không bảo vệ được, và sẽ cần phải bảo vệ chống lại những điều này bằngcác phương tiện khác

Mã hóa dữ liệu trong suốt cho phép mã hóa đơn giản và dễ dàng cho dữliệu nhạy cảm trong các cột mà không yêu cầu người dùng hoặc ứng dụng quản

lý khóa mã hóa Sự tự do này có thể cực kỳ quan trọng khi giải quyết, ví dụ,các vấn đề tuân thủ quy định Không cần sử dụng chế độ xem để giải mã dữliệu, vì dữ liệu được giải mã trong suốt khi người dùng đã vượt qua kiểm trakiểm soát truy cập cần thiết Quản trị viên bảo mật đảm bảo rằng dữ liệu trênđĩa được mã hóa, nhưng việc xử lý dữ liệu được mã hóa trở nên trong suốt đốivới các ứng dụng

Trang 31

Mã hóa dữ liệu trong suốt (TDE) đảm bảo rằng dữ liệu nhạy cảm được mãhóa, đáp ứng tuân thủ và cung cấp chức năng hợp lý hóa các hoạt động mã hóa.TDE chỉ mạnh như các biện pháp phòng chống khác mà thực hiện xung quanhviệc thực hiện nó Dưới đây là một số lợi ích tốt nhất cần ghi nhớ:

1 Lưu trữ bản sao lưu khỏi vị trí của máy chủ vật lý

• Tránh không để xảy ra sự cố Ví dụ nếu đám cháy bùng phát gần máychủ vật lý và ta không thể truy cập máy chủ, ta sẽ không muốn các bảnsao lưu cũng bị xâm phạm trong đám cháy

2 Bảo vệ chứng chỉ mã hóa và khóa khỏi mất mát và trộm cắp

• Kiến trúc của TDE bao gồm một hệ thống phân cấp các cấp mã hóabảo vệ chứng chỉ TDE hoặc khóa bất đối xứng TDE (nếu sử dụngquản lý khóa mở rộng hoặc EKM), mã hóa khóa mã hóa cơ sở dữ liệu,lần lượt mã hóa dữ liệu, tệp nhật ký của cơ sở dữ liệu sao lưu

• Hãy chắc chắn sao lưu các chứng chỉ TDE hoặc các khóa bất đối xứngTDE, đồng thời bảo mật và giám sát việc sử dụng chúng Luôn lưu trữchứng chỉ và khóa ở vị trí an toàn về mặt vật lý, tách biệt với vị trí tệpsao lưu cơ sở dữ liệu

• Sử dụng EKM sẽ thêm bảo mật, vì khóa mã hóa được lưu trữ trongthiết bị Mô-đun bảo mật phần cứng (HSM) tách biệt với hệ thống cơ

sở dữ liệu SQL Server không bao giờ có quyền truy cập vào khóa

mã hóa

3 Giảm thiểu quyền: Theo mặc định, danh sách kiểm soát truy cập (ACL) trên các tệp dữ liệu sẽ giới hạn quyền truy cập chỉ với Máy chủ SQL hoặc quản trị viên trên máy Hãy cẩn thận nếu các quyền mặc định này sẽ được sửa đổi và tham khảo các nguyên tắc bảo mật của bộ phận CNTT

4 Là quản trị viên bảo mật, có thể chắc chắn rằng dữ liệu nhạy cảm là antoàn trong trường hợp phương tiện lưu trữ hoặc tệp dữ liệu bị đánh cắp

5 Việc triển khai TDE giúp giải quyết các vấn đề tuân thủ quy định liênquan đến bảo mật

6 Không cần tạo trình kích hoạt hoặc chế độ xem để giải mã dữ liệu chongười dùng hoặc ứng dụng được ủy quyền Dữ liệu từ các bảng được giải

mã trong suốt cho người dùng và ứng dụng cơ sở dữ liệu

7 Người dùng và ứng dụng cơ sở dữ liệu không cần phải biết rằng dữ liệu

họ đang truy cập được lưu trữ ở dạng mã hóa Dữ liệu được giải mã trongsuốt cho người dùng và ứng dụng cơ sở dữ liệu

8 Các ứng dụng không cần phải sửa đổi để xử lý dữ liệu được mã hóa Mãhóa và giải mã dữ liệu được quản lý bởi cơ sở dữ liệu

Trang 32

9 Hoạt động quản lý chính là tự động Người dùng hoặc ứng dụng khôngcần quản lý khóa mã hóa.

Việc cung cấp bảo mật của Cơ sở dữ liệu Azure SQL hoạt động theo cáclớp để cung cấp các cơ chế bảo mật ở các cấp độ khác nhau, cùng nhau tạo ramột giải pháp bảo mật hoàn chỉnh hơn TDE chỉ là một phần thiết yếu của giảipháp bảo mật tổng thể này, vì vậy hãy tìm hiểu cách các khía cạnh khác nhưkiểm soát truy cập và giám sát chủ động giúp củng cố bảo mật dữ liệu, bảo mật

cơ sở dữ liệu SQL Nếu yêu cầu bảo vệ mã hóa rộng hơn, bao gồm bảo vệ chốnglại DBA, thì sự bảo vệ tối đa mà SQL có thể cung cấp đó là thông qua mãhóa luôn luôn mã hóa

2.3 Kiến trúc và cách mã hóa TDE

TDE cung cấp khả năng mã hóa toàn bộ cơ sở dữ liệu và quá trình mã hóahoàn toàn trong suốt cho ứng dụng truy cập cơ sở dữ liệu TDE mã hóa dữ liệuđược lưu trữ trong cả hai tập tin dữ liệu cơ sở dữ liệu (.MDF.) và tập log (.LDF)bằng cách sử dụng thuật toán mã hóa AES (Advanced Encryption Standard)hoặc 3DES (Triple DES) Ngoài ra, bất kỳ bản sao lưu cơ sở dữ liệu đều được

mã hóa Điều này đảm bảo rằng những dữ liệu còn lại trên thiết bị lưu trữ đượcbảo vệ chống lại mất thông tin nhạy cảm nếu như các phương tiện sao lưu bị mấthoặc bị đánh cắp

Giống như nén dữ liệu, mã hóa cơ sở dữ liệu TDE được thực hiện ở mứctrang Dữ liệu được mã hóa trên đĩa và được giải mã khi nó được đọc vào bộnhớ Thực hiện mã hóa ở mức trang cho phép quá trình mã hóa là hoàn toàntrong suốt với các ứng dụng Client Khả năng tìm kiếm và truy vấn dữ liệu trong

cơ sở dữ liệu mã hóa không bị hạn chế

Điều quan trọng cần lưu ý rằng mặc dù TDE mã hóa dữ liệu lưu trữ, nókhông mã hóa các liên kết truyền thông giữa máy chủ và các ứng dụng củakhách hàng Nếu ta cần để mã hóa các kết nối dữ liệu giữa các ứng dụng và máychủ, ta cần phải sử dụng một kết nối SSL cho khách hàng

Việc sử dụng TDE tương đối đơn giản Để má hóa một cơ sở dữ liệu, thựchiện các bước sau:

• Tạo một khóa chủ của cơ sở dữ liệu, đó là khóa DMK

• Tạo một chứng chỉ được bảo vệ bằng khóa DMK

Trang 33

• Tạo một khóa đặc biệt được sử dụng để bảo vệ cơ sở dữ liệu Khóa nàyđược gọi là khóa mã cơ sở dữ liệu (DEK) và chúng ta bảo vệ nó bằngcách sử dụng chứng chỉ

• Cho phép mã hóa

Hình 2.1 Hệ thống phân cấp mã hóa TDE

Hệ thống phân cấp mã hóa được hiển thị trong hình TDE SQL Server Cómột khóa chủ nằm ở máy chủ; có một cơ sở dữ liệu chính yêu cầu khóa chủ vàchứng chỉ máy chủ; cuối cùng, cơ sở dữ liệu người dùng được bảo vệ bởi khóa

• Tạo hoặc lấy chứng chỉ được bảo vệ bởi khóa chủ CSDL

• Tạo khóa mã hóa cơ sở dữ liệu DEK và bảo vệ nó với chứng chỉ

• Đặt cơ sở dữ liệu để sử dụng mã hóa

Kịch bản mẫu để kích hoạt TDE:

Trang 34

1 Tạo khóa chủ cơ sở dữ liệu:

BACKUP CERTIFICATE MyCertDEK TO FILE = 'path_and_file_name.cer'

WITH PRIVATE KEY ( FILE = 'C:\MyCertDEK_Bak.pvk' ,

ENCRYPTION BY PASSWORD = 'Myp@ssword456' );

Go;

4 Tạo cơ sở dữ liệu để thực hiện TDE

1

2 Create Database MyDBForTDE Go;

5 Tạo khóa mã hóa cơ sở dữ liệu trong DB người dùng

CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128

ENCREPTION BY SERVER CERTIFICATE MyCertDEK

Trang 35

chuyển vào cơ sở dữ liệu cần áp dụng mã hóa Sau đó thực hiện lệnh CREATEDATABASE ENCRYPTION KEY để tạo khóa DEK với thuật toán chỉ định.Chúng ta có thể chọn một trong các thuật toán mã hóa sau: AES_128, AES_192,AES_256, hay TRIPLE_DES_3KEY Sau khi khóa mã hóa cơ sở dữ liệu đượctạo ra, lệnh ALTER DATABASE được sử dụng để cho phép mã hóa Tiến trình

mã hóa chạy như là tác vụ nền, vì vậy cơ sở dữ liệu vẫn có sẵn trong khi nó mãhóa Tuy nhiên, có ảnh hưởng hiệu năng trong thời gian này Cần lưu ý rằng nếu

có bất kỳ cơ sở dữ liệu trên một máy chủ được mã hóa bằng TDE, cơ sở dữ liệuTempdb cũng được mã hóa Sao lưu chứng chỉ là cực kỳ quan trọng bởi vì các

dữ liệu được mã hóa không thể được truy cập hoặc khôi phục mà không cóchứng chỉ Tương tự như vậy, nếu chúng ta cần di chuyển một cơ sở dữ liệuđược mã hóa từ một SQL Server đến máy chủ khác, thì chúng ta cũng cần phải

di chuyển chứng chỉ này Đoạn mã số 4 ở trên cho thấy làm thế nào để sao lưucác chứng chỉ tới một tập tin trong hệ thống tập tin Tập tin này sau đó có thểđược sao lưu hoặc sao chép vào một hệ thống khác để cho phép cơ sở dữ liệuđược mã hóa để được phục hồi Để di chuyển hoặc khôi phục lại cơ sở dữ liệuđến một thể hiện SQL Server khác, chúng ta cần khôi phục chứng chỉ cho máychủ mới

Sau khi kích hoạt TDE ở mức độ cơ sở dữ liệu của SQL Server, Nó sẽ mãhóacác tệp dữ liệu, tệp trang và tệp sao lưu của cơ sở dữ liệu

2.4 Các vấn đề với mã hóa TDE

Yêu cầu sử dụng CPU cao khi thực hiện TDE sẽ đạt được những lợi íchcủa bảo mật bằng cách khai thác CPU Nên thực hiện TDE trong thời gian rảnhhoặc không phải làm việc và chỉ trên các máy chủ có nhiều CPU để khaithác Khi thấy CPU tăng đột biến ngay khi triển khai TDE thì nên kiểm tratrạng thái mã hóa bằng cách sử dụng DMV (Dynamic Management Views)sys.dm_database_encoding_keys Ta cũng có thể sử dụng cờ theo dõi 5004 (tạmdừng quá trình mã hóa nền), 5005 (Làm chậm quá trình mã hóa nền)

Sử dụng không gian đĩa cao Mã hóa cơ sở dữ liệu lớn có thể tăng kíchthước tệp nhật ký đáng kể vì quá trình mã hóa của toàn bộ cơ sở dữ liệu đượcghi lại

Không thể mã hóa cơ sở dữ liệu - Kiểm tra phiên bản của SQL Server vàmọi nhóm tệp chỉ đọc Kiểm tra DMV sys.dm_database_encoding_keys để xem

mã hóa đã được bật chưa

Ngày đăng: 26/06/2019, 10:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. TS. Nguyễn Nam Hải, “Giáo trình An toàn cơ sở dữ liệu”, Học viện Kỹthuật mật mã, 2006 Sách, tạp chí
Tiêu đề: Giáo trình An toàn cơ sở dữ liệu
[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 Sách, tạp chí
Tiêu đề: Giáo trình Cơ sở lý thuyếtmậtmã
[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 Sách, tạp chí
Tiêu đề: Mật mã học nâng cao
[4]. MaKhônghaPunna/Mã hóa dữ liệu trong suốt trong SQL/https://www.sqlservergeeks.com/sql-server-transparent-data-encryption Link
[5].Alicekupkic/Mã hóa dữ liệu trong suốt/https://azure.microsoft.com/en-us/blog/transparent-data-encryption-or-always-encrypted Link
[6]. Oracle Corporation, Database Encryption in Oracle9i, technique whitepaper, 2001 Khác
[7]. RSA Security company, Securing Data at Rest: Developing a DatabaseEncryption Strategy, whiter paper, 2002 Khác
[9]. Erez Shmueli, Ronen Vaisenberg, Yuval Elovici, Chanan Glezer,Database Encryption – An Overview of Contemporary Challenges and Design Considerations Khác

TỪ KHÓA LIÊN QUAN

w