Tải bản đầy đủ (.pdf) (80 trang)

Mã hóa cơ sở dữ liệu trong oracle

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.07 MB, 80 trang )

Mã hóa cơ sở dữ liệu trong Oracle

MỤC LỤC
MỤC LỤC ......................................................................................................... I
DANH MỤC CÁC CHỮ VIẾT TẮT ..........................................................III
DANH MỤC CÁC BẢNG ............................................................................ IV
DANH MỤC CÁC HÌNH VẼ ....................................................................... V
CHƯƠNG 1: CƠ BẢN VỀ MÃ HÓA ........................................................... 1
1.1. Giới thiệu ............................................................................................. 1
1.2. Lựa chọn mã hóa .................................................................................. 2
1.3. Thuật toán mã hóa và khóa .................................................................. 3
1.4. Các phương pháp mã hóa..................................................................... 3
1.4.1. Quá trình mã hóa khóa đối xứng ................................................. 4
1.4.2. Quá trình mã hóa khóa công khai ................................................ 5
CHƯƠNG 2: TỔNG QUAN VỀ MÃ HÓA CƠ SỞ DỮ LIỆU ................... 9
2.1. Tóm tắt ngắn gọn về cơ sở dữ liệu....................................................... 9
2.1.1. Định nghĩa cơ sở dữ liệu (DataBase)........................................... 9
2.1.2. Ưu điểm của cơ sở dữ liệu ........................................................... 9
2.1.3. Những vấn đề mà CSDL cần phải giải quyết .............................. 9
2.1.4. Các đối tượng sử dụng CSDL.................................................... 10
2.1.5. Hệ quản trị cơ sở dữ liệu (Database Management System) ...... 11
2.1.6. Các ứng dụng của cơ sở dữ liệu................................................. 12
2.2. An toàn thông tin trong cơ sở dữ liệu ................................................ 12
2.2.1. Tại sao phải bảo vệ cơ sở dữ liệu .............................................. 12
2.2.2. Các tấn công vào cơ sở dữ liệu .................................................. 13
2.2.3. Các phương pháp bảo vệ cơ sở liệu ........................................... 15
2.2.4. Áp dụng mã hóa ......................................................................... 16
2.3. Các mức mã hóa (Encryption Level) ................................................. 16
2.3.1. Mã hóa mức lưu trữ (Storage-Level Encryption) ...................... 16
2.3.2. Mã hóa mức hệ quản trị cơ sở dữ liệu (DBMS-Level
Encryption) ........................................................................................... 17


2.3.3. Mã hóa mức ứng dụng (Application-Level Encryption) ........... 17
2.3.4. Thuật toán mã hóa và chế độ hoạt động .................................... 18
2.3.5. Quản lý khóa .............................................................................. 19
CHƯƠNG 3: MÃ HÓA CƠ SỞ DỮ LIỆU TRONG HQT ORACLE 9I 22
3.1. Giới thiệu về hệ quản trị cơ sở dữ liệu Oracle 9i ............................... 22
3.1.1. Lịch sử phát triển của Oracle ..................................................... 22
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

i


Mã hóa cơ sở dữ liệu trong Oracle
3.1.2. Ưu điểm của Oracle ................................................................... 24
3.2. Giải pháp mã hóa dữ liệu lưu trữ trong Oracle 9i .............................. 25
3.2.1. Các khả năng mã hóa dữ liệu của Oracle 9i .............................. 25
3.2.2. Các thách thức của mã hóa dữ liệu ............................................ 41
CHƯƠNG 4: TRIỂN KHAI MÃ HÓA TRÊN CSDL NHÂN VIÊN ....... 49
4.1. Bảng nhân viên .................................................................................. 49
4.2. Thiết kế lược đồ mã hóa cho bảng nhân viên .................................... 51
4.3. Các bước triển khai ............................................................................ 53
4.3.1. Tạo người dùng SA.................................................................... 54
4.3.2. Xây dựng package mã hóa/giải mã ............................................ 54
4.3.3. Mã hóa/giải mã dữ liệu .............................................................. 54
4.3.4. Xử lý quá trình thêm, cập nhật và xóa nhân viên ...................... 57
4.3.5. Quản lý khóa .............................................................................. 57
4.3.6. Quản lý người dùng truy cập dữ liệu rõ..................................... 57
4.4. Kết quả kiểm tra ................................................................................. 58
4.5. Đánh giá lược đồ mã hóa bảng nhân viên.......................................... 61
KẾT LUẬN .................................................................................................... 63
TÀI LIỆU THAM KHẢO ............................................................................ 64

PHỤ LỤC ....................................................................................................... 65
A. Người dùng SA ...................................................................................... 65
B. Gói CRYPT_UTIL ................................................................................ 65
C. Khung nhìn NhanVien_vw .................................................................... 67
D. Trigger NhanVien_vw_trg .................................................................... 68

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

ii


Mã hóa cơ sở dữ liệu trong Oracle

DANH MỤC CÁC CHỮ VIẾT TẮT
AES

Advanced Encryption Standard

ANSI

American National Standards Institute

CBC

Cipher-Block Chaining

DAC

Discretionary Access Control


DBA

Database Administrator

DBMS

Database Management System

DCL

Data Control Language

DDL

Data Description Language

DEA

Encryption Standard Algorithm

DES

Data Encryption Standard

DML

Data Manipulation Language

ECB


Electronic Codebook

FW

Firewall

HSM

Hardware Security Module

IDS

Intrusion Detection System

ISO

International Organization for Standardization

IV

Initialization Vector

MAC

Mandatory Access Control

MD

RBAC


Message-Digest
Procedural Language/Structured Query
Language
Role-Based Access Control

RC

Rivest Cipher

SA

Security Administrator

SHA

Secure Hash Algorithm

SQL

Structured Query Language

SSL

Secure Sockets Layer

PL/SQL

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

iii



Mã hóa cơ sở dữ liệu trong Oracle

DANH MỤC CÁC BẢNG
Bảng 3.1: Hoạt động của TripleDES .............................................................. 27
Bảng 3.2: Các chương trình con của gói DBMS_OBFUSCATION .............. 30
Bảng 3.3: Các tham số của DES3DECRYPT cho dữ liệu thô ........................ 31
Bảng 3.4: Các tham số của hàm và thủ tụcDES3ENCRYPT ......................... 33
Bảng 3.5: Các tham số của hàm và thủ tục DES3GETKEY .......................... 36
Bảng 3.6: Các tham số của hàm và thủ tụcDESDECRYPT ........................... 37
Bảng 3.7: Các tham số của hàm và thủ tụcDESENCRYPT ........................... 38
Bảng 3.8: Các tham số của hàm và thủ tục DESGETKEY ............................ 40
Bảng 3.9: Các tham số của hàm và thủ tục MD5............................................ 41
Bảng 4.1: Bảng nhân viên ............................................................................... 50

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

iv


Mã hóa cơ sở dữ liệu trong Oracle

DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Quá trình mã hóa khóa đối xứng....................................................... 4
Hình 1.2: Quá trình mã hóa khóa công khai ..................................................... 6
Hình 1.3: Mã hóa khóa công khai được sử dụng để xác thực........................... 7
Hình 2.1: Ba tùy chọn cho các mức mã hóa cơ sở dữ liệu ..................................... 18
Hình 2.2: Các phương pháp quản lý khóa ..................................................................... 20
Hình 2.3: Chế độ liên kết khối mã – CBC ...................................................... 28

Hình 4.1: Bảng NhanVien ............................................................................... 51
Hình 4.2: Bảng Nhanvien_Ecrypt ................................................................... 51
Hình 4.3: Bảng NhanVien_Key ...................................................................... 52
Hình 4.4: Tạo khung nhìn NhanVien_Table................................................... 53
Hình 4.5: Quá trình mã hóa bảng NhanVien .................................................. 55
Hình 4.6: Bảng nhân viên đã mã hóa .............................................................. 55
Hình 4.7: Tạo khung nhìn NhanVien_Table................................................... 56
Hình 4.8: Bảng Nhanvien_table ...................................................................... 57
Hình 4.9: Nhân viên A xem dữ liệu rõ ............................................................ 58
Hình 4.10: Select từ bảng NhanVien_Encrypt................................................ 59
Hình 4.11: Insert vào bảng NhanVien ............................................................ 60
Hình 4.12: Update bảng NhanVien ................................................................. 61
Hình 4.13: So sánh kết quả mã hóa các bản ghi giống nhau .......................... 62

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

v


Mã hóa cơ sở dữ liệu trong Oracle

LỜI NÓI ĐẦU
Với nhiều tổ chức, cơ sở dữ liệu là một kho tàng thông tin nhạy cảm
chứa nhiều loại dữ liệu khác nhau, từ thông tin chi tiết về khách hàng và
thông tin cạnh tranh bí mật đến các thông tin sở hữu trí tuệ. Mất mát hoặc bị
trộm cắp dữ liệu, đặc biết là dữ liệu của khách hàng, có thể ảnh hưởng đến
danh tiếng, bất lợi cạnh tranh và thiệt hài về tài chính nghiêm trọng.
Chính vì vậy, an toàn cơ sở dữ liệu là một ưu tiên hàng đầu cho các tổ
chức ngày nay. Tuy nhiên, các kĩ thuật bảo đảm an toàn cơ sở dữ liệu truyền
thống như tường lửa và an toàn ứng dụng trong những năm gần đây bộc lộ rất

nhiều thiếu sót và các phương pháp để bảo đảm an toàn này không đủ để bảo
vệ các doanh nghiệp và dữ liệu trong thời đại hiên nay, một môi trường công
nghệ thông tin mở và phức tạp. Trong các biện pháp bảo đảm an toàn cơ sở
dữ liệu mã hóa được coi như là phương pháp phòng thủ sâu nhất chống lại các
lỗ hổng an toàn.
Từ thực tế đó, em đã chọn đề tài “Mã hóa cơ sở dữ liệu trong Oracle”
làm đồ án tốt nghiệp. Mục tiêu của đề tài là tìm hiểu về các phương pháp mã
hóa cơ sở dữ liệu và ứng dụng vào mã hóa một cơ sở dữ liệu nhỏ trong hệ
quản trị Oracle.
Báo cáo của đồ án của em được chia thành 3 chương:
- Chương 1: Cơ bản về mã hóa
- Chương 2: Tổng quan về mã hóa cơ sở dữ liệu
- Chương 3: Mã hóa cơ sở dữ liệu trong hệ quản trị Oracle 9i
- Chương 4: Triển khai mã hóa trên cơ sở dữ liệu nhân viên
Trong đó chương 1 giới thiệu tổng quan về mã hóa, tầm quan trọng của
mã hóa trong việc bảo vệ thông tin và các phương pháp mã hóa cơ bản hiện
nay; chương 2 trình bày về các vấn đề liên quan đến cơ sở dữ liệu và các mức
có thể áp dụng mã hóa để bảo vệ dữ liệu; chương 3 trình bày khả năng mã hóa

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

vi


Mã hóa cơ sở dữ liệu trong Oracle
cơ sở dữ liệu của hệ quản trị Oracle; chương 4 sẽ đưa ra cách áp dụng khả
năng mã hóa của Oracle để đảm bảo an toàn cho cơ sở dữ liệu nhân viên.
Em xin chân thành cảm ơn sự giúp đỡ tận tình của TS. Nguyễn Nam
Hải và CN. Trần Thị Lượng để Đồ án của em được hoàn thành.
Do thời gian có hạn nên Đồ án của em chắc chắn còn nhiều thiếu sót.

Em rất mong nhận được sự giúp ý, chỉ bảo của quý thầy cố để Đồ án của em
được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hà Nội, Ngày 16 tháng 06 năm 2010
Sinh viên
Ong Thị Hồng

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

vii


Mã hóa cơ sở dữ liệu trong Oracle

Chương 1
CƠ BẢN VỀ MÃ HÓA
Chương này giới thiệu tổng quan về mã hóa, tầm quan trọng của mã
hóa trong việc bảo vệ thông tin và các phương pháp mã hóa cơ bản hiện nay.
1.1.

Giới thiệu

Quá trình mã hóa có lịch sử ra đời rất thú vị. Việc mã hóa được ra đời
từ hàng nghìn năm trước, thậm chí có thể ra đời từ thời kì đế quốc La Mã.
Trong thời gian đó, Julius Caesar, người nắm chính quyền Roma cổ đại muốn
truyền thông điệp tới các vị tướng của mình trong trận địa. Những thông điệp
này hết sức nhạy cảm, bí mật bởi nó là thông điệp truyền lệnh chỉ ra cách bắt
đầu một chiến dịch quân sự mới đối với một mục tiêu nào đó.
Những thông điệp này được gửi đi bằng những sứ giả đưa tin, và đây là
một việc hết sức mạo hiểm bởi vì những thông điệp này có thể bị chặn bắt

trước khi tới được đích. Đây là điều hết sức nghiêm trọng bởi vì nó gây thất
bại tới chiến dịch quân sự đó. Chính vì vậy, thuật toán mã hóa đơn giản đã ra
đời, và được sử dụng để mã hóa những thông điệp. Julius Caesar được biết tới
như là người mã hóa và giải mã những thông điệp đầu tiên. Nhờ vậy khi
thông điệp bị chặn bắt, hoặc người sứ giả bị mua chuộc hay tra tấn nhằm tìm
ra nội dung thông điệp được mã hóa đều có thể bị loại bỏ nhờ phương pháp
này.
Vậy phải kết hợp sử dụng mã hóa như thế nào. Điều quan trọng là ta
phải hiểu được bản chất của vấn đề. Quá trình mã hóa cung cấp sự bảo vệ cho
những dữ liệu nhạy cảm được truyền trên những kênh liên lạc không an toàn.
Thông điệp được mã hóa từ những dữ liệu nhạy cảm, sau đó sẽ được sứ giả
đưa tin chuyển thông điệp qua kênh liên lạc không an toàn (qua vùng địch,
sông, núi ...).
Quá trình mã hóa bảo đảm dữ liệu nhạy cảm được truyền đi an toàn
trên những kênh liên lạc không tin cậy.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

1


Mã hóa cơ sở dữ liệu trong Oracle
Ngày nay, trong thế giới kết nối Internet, quá trình mã hóa đã được sử
dụng một cách rộng rã bởi vì nó khá phù hợp trong điều kiện hiện nay: quá
trình mã hóa sẽ đảm bảo truyền những dữ liệu nhạy cảm qua môi trường
không an toàn là Internet một cách an toàn. Từ đó cũng xuất hiện nhiều
chuyên gia vừa có những kinh nghiệm phong phú trong các lĩnh vực an toàn
mạng vừa có những hiểu biết sâu rộng trong lĩnh vực mật mã. Đây là một
trong những lí do làm cho quá trình mã hóa trở nên phổ biến ngày nay.
Quá trình mã hóa là quá trình xử lý dữ liệu từ bản rõ và chuyển đổi

chúng sang dạng không thể đọc được. Kết quả nhận được sẽ là dữ liệu đã
được mã hóa, thông thường sẽ được gọi là bản mã. Khi dữ liệu đã được mã
hóa, thì sau đó nó sẽ cần được giải mã trở lại. Quá trình giải mã (quá trình
thực hiện những hành động ngược với quá trình mã hóa) dữ liệu là quá trình
đưa bản mã trở về dạng ban đầu là bản rõ. Việc nghiên cứu hai quá trình xử lý
này được gọi là môn mật mã học.
1.2.

Lựa chọn mã hóa

Có rất nhiều cách để mã hóa dữ liệu, nhưng chỉ có một vài cách có thế
đem lại hiệu quả cao. Nhiều người được khuyến khích viết những bản mã của
riêng mình, như đại đế Julius Caesar đã làm. Tuy nhiên, trừ phi họ phải là
những thiên tài, hoặc là người cực kì may mắn, nên cho tới giờ những bản mã
của riêng cá nhân là hết sức ít ỏi. Ngày nay, hiệu suất của việc mã hóa được
đánh giá dựa trên 1 tiêu chuẩn chung và dựa vào việc phân tích, xem xét
những thuật toán mã hóa đó. Những thử nghiệm là hết sức quan trọng bởi vì
nó đảm bảo rằng quá trình mã hóa có thể loại bỏ được những sai sót không
đáng có, dẫn tới việc những người không được cho phép có thể xác định được
nội dung thông tin nhạy cảm.
Có một số chuẩn mã hóa mà ta có thể lựa chọn, nhưng trước khi bắt
đầu lựa chọn những thuật toán này để sử dụng trong cơ sở dữ liệu, ta cần phải
hiểu được một vài điều về quá trình thực hiện mã hóa.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

2


Mã hóa cơ sở dữ liệu trong Oracle

1.3.

Thuật toán mã hóa và khóa

Để mã hóa cơ sở dữ liệu có hai điều cần được đặt ra như sau: đó là
thuật toán mã hóa và khóa mã hóa. Quá trình mã hóa dữ liệu diễn ra khá đơn
giản như sau: bản rõ sẽ được “đưa vào” thuật toán mã hóa. Khóa mã hóa cũng
được thêm vào. Kết hợp thuật toán sẽ sử dụng khóa và những quá trình logic
phức tạp để mã hóa dữ liệu. Quá trình giải mã được tiến hành tương tự, nghĩa
là nó cũng yêu cầu khóa và thuật toán giải mã.
Độ mạnh của quá trình mã hóa là không xác định bởi thuật toán hoặc
độ dài của khóa. Độ mạnh của quá trình này được xác định bởi cả hai yếu tố
trên. Thông thường quan niệm sai cho rằng, khóa càng lớn có nghĩa là thuật
toán càng mạnh hơn những thuật toán khác sử dụng khóa có độ dài nhỏ hơn.
Một vài thuật toán yêu cầu khóa có độ dài lớn thì mới có độ mạnh giống như
thuật toán khác có độ dài khóa nhỏ hơn. Trong một số trường hợp thì khóa
với độ dài lớn được sử dụng trong cùng một thuật toán làm cho quá trình mã
hóa trở nên an toàn hơn.
Thách thức còn lại chính là hiệu suất của quá trình mã hóa. Nếu Julius
muốn gửi tới cho các vị tướng một thông điệp được mã hóa, thì đầu tiên
Julius cần có cả thuật toán và khóa mới có thể mã hóa thông điệp đó. Những
nghiên cứu của mật mã học chỉ ra cho chúng ta thấy rằng đối với các thuật
toán hiện nay chỉ cần khám phá một điểm mấu chốt đó chính là khóa. Những
thuật toán phổ biến không hỗ trợ kẻ tấn công tìm ra được những thông tin
nhạy cảm. Rõ ràng những thuật toán này dường như là những công cụ an
ninh tốt, ngọai trừ rắc rối tới từ những kẻ tấn công đã xác định trước.
1.4.

Các phương pháp mã hóa
Ba phương pháp mã hóa sẽ được trình bày bao gồm:

• Mật mã đối xứng: Sử dụng một khóa duy nhất cho cả việc mã hóa
và giải mã.
• Mật mã bất đối xứng: Sử dụng một khóa để mã hóa và một khóa
khác để giải mã.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

3


Mã hóa cơ sở dữ liệu trong Oracle
• Hàm băm: Sử dụng một phép biến đổi toán học để mã hóa thông
tin theo một chiều.
1.4.1. Quá trình mã hóa khóa đối xứng
Ngày nay có hai loại mã hóa sử dụng. Loại đầu tiên có tên gọi là mã
hóa khóa đối xứng. Thuật toán và khóa trong mã hóa khóa đối xứng được sử
dụng cả trong quá trình mã hóa và giải mã, chúng đối xứng với nhau. Thông
điệp được mã hóa bằng một khóa và được giải mã cũng chính bằng khóa đó.

Hình 1.1: Quá trình mã hóa khóa đối xứng
Thuật toán khóa đối xứng đảm bảo an ninh cao và đem lại hiệu suất lớn
trong cả quá trình mã hóa và giải mã thông tin. Một vài thuật toán khóa đối
xứng phổ biến là RC4, RC5, DES, 3-DES và AES. Bởi vì những thuật toán
mã hóa này mạnh và đem lại hiệu suất cao nên chúng thường được sử dụng để
mã hóa số lượng thông tin lớn.
Các mã pháp đối xứng hiện nay chia thành hai loại: mã khối và mã
dòng. Mã khối mã hóa một đoạn vài bit của dữ liệu một lúc, trong khi đó mã
dòng mã hóa một bit một như luồng dữ liệu chuyển qua. Khi mã khối phải mã
hóa dữ liệu có kích cỡ dài hơn một khối, thì đầu tiên dữ liệu đó phải được
chia thành các khối có kích cỡ phù hợp, và sau đó thuật toán mã hóa được áp

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

4


Mã hóa cơ sở dữ liệu trong Oracle
dụng cho mỗi khối. Có vài chế độ hoạt động để chỉ ra cách mà các khối được
xử lý. Các chế độ cho phép một thuật toán sử dụng một cách an toàn trong
nhiều tình huống. Bằng cách lựa chọn một chế độ thích hợp, một mã khối có
thể sử dụng như mã dòng.
Ưu điểm của mã dòng trong mã hóa dữ liệu là không cần phải thêm
phần đệm. Với các mã khối hoạt động trên một kích thước cố định, thì các
khối dữ liệu có kích thước nhỏ hơn phải được thêm phần đệm. Mã dòng tránh
được điều này, và khi dòng dữ liệu kết thúc, việc mã hóa cũng kết thúc.
Khi hai người muốn sử dụng thuật toán khóa đối xứng, họ cần thiết lập
trước khóa chung và cách truyền khóa đảm bảo an toàn. Khi hai bên đã biết
nhau, có thể họ đã biết khóa của nhau, nhưng để hai bên chưa từng gặp gỡ
nhưng giờ muốn trao đổi dữ liệu một cách an toàn, nảy sinh thách thức đó là
vấn đề trao đổi khóa. Bạn không thể chuyển khóa cùng với bản rõ vì như thế
kẻ tấn công sẽ phát hiện ra. Nếu bạn mã hóa khóa, bạn lại phải sử dụng một
khóa khác để mã hóa, từ đó sẽ phát sinh thêm vấn đề mới. Trước những thúc
đẩy cần phát triển đó, một quá trình mã hóa khác được ra đời, đó là quá trình
mã hóa khóa bất đối xứng hay còn gọi là quá trình mã hóa khóa công khai.
1.4.2. Quá trình mã hóa khóa công khai
Trong quá trình mã hóa khóa công khai, có hai khóa tạo thành một cặp
hoạt động một cách bổ sung. Thuật toán mã hóa khóa công khai là thuật toán
đảo ngược. Nếu một khóa thực hiện mã hóa thì khóa kia thực hiện quá trình
giải mã và ngược lại. Hơn nữa, mặc dù biết được thuật toán và một khóa trong
cặp khóa thì kẻ tấn công cũng không thể xác định khóa còn lại và giải mã dữ
liệu.

Trong quá trình mã hóa khóa công khai, một khóa sẽ được gọi là khóa
công khai, khóa kia sẽ được gọi là khóa riêng.
Dữ liệu được mã hóa với khóa công khai và được giải mã bằng khóa
riêng.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

5


Mã hóa cơ sở dữ liệu trong Oracle
“Khóa riêng” và “khóa công khai” được sử dụng để mô tả thuật ngữ
“khóa”, bởi vì khóa công khai có thể được biết bởi nhiều người, còn khóa
riêng được giữ bí mật, và chỉ có người sở hữu mới có thể biết. Chừng nào
khóa riêng được còn giữ bí mật, thì quá trình mã hóa khóa công khai còn hoạt
động tốt.
Do vậy Quá trình mã hóa khóa công khai giải quyết được vấn đề phân
phối khóa. Để hai bên có thể trao đổi với nhau, họ cần phải biết được khóa
công khai của bên kia. Hình 2 mô tả cách mã hóa khóa công khai gửi thông
điệp bí mật giữa hai bên liên lạc. Để đảm bảo rằng người nhận (là Alice trong
hình 1.2) có thể nhận được đúng thông điệp, thì thông điệp này phải được mã
hóa bằng khóa công khai của Alice. Và chỉ Alice mới có thể giải mã được
thông điệp bởi vì chỉ có khóa riêng của Alice mới có thể giải mã được thông
điệp đã được mã hóa bằng khóa công khai của cô ta. Cố gắng giải mã thông
điệp với khóa riêng không chính xác là điều không tưởng.
Khóa công khai không thể sử dụng để giải mã thông điệp được, dù cho
nó được mã hóa cùng với thông điệp.

Hình 1.2: Quá trình mã hóa khóa công khai
Ngoài ra, khóa riêng được sử dụng như là một phương pháp xác thực

đối với người gửi. Như hình 1.3 mô tả người gửi có thể mã hóa thông điệp
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

6


Mã hóa cơ sở dữ liệu trong Oracle
bằng khóa riêng của họ. Người nhận sử dụng khóa công khai của người gửi
để giải mã thông điệp. Nếu thông điệp được giải mã thì người gửi được xác
thực bởi vì chỉ có người gửi mới có thể sử dụng khóa riêng của họ để mã hóa
thông điệp.

Hình 1.3: Mã hóa khóa công khai được sử dụng để xác thực
Đáng tiếc là thuật toán mã hóa khóa công khai yêu cầu khóa có kích
thước lớn để có thể có cùng độ mạnh như khi mã hóa với khóa đối xứng. Do
vậy thuật toán khóa công khai thực hiện chậm hơn đồng thời cũng thực hiện
tính toán phức tạp hơn so với thuật toán khóa đối xứng.
Ngày nay, mã hóa khóa công khai và mã hóa khóa đối xứng được sử
dụng song song như là 1 thành phần của giao thức mạng SSL. Giao thức SSL
là kĩ thuật mã hóa dữ liệu phổ biến trên mạng Internet. Để chuyển dữ liệu
giữa 2 bên, khóa công khai được sử dụng để mã hóa khóa đối xứng. Trong
hình 1.2 và 1.3 thông điệp bí mật thực sự chính là khóa riêng.
1.4.3. Hàm băm mật mã
Một hàm băm mật mã, còn được gọi là một tóm lược thông báo, giống
như dấu tay của dữ liệu. Thuật toán hàm băm mật mã nén một lượng dữ liệu
lớn thành một giá trị nhỏ duy nhất. Điều khác biệt quan trọng của hàm băm
mật mã với các hàm băm khác là gần như không thể tính toán được dữ liệu
gốc từ giá trị băm hoặc tìm bản dữ liệu khác có giá trị băm giống như vậy.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin


7


Mã hóa cơ sở dữ liệu trong Oracle
Vai trò chính của hàm băm trong hệ thống mật mã hiện đại là nâng cao
hiệu quả của chữ kí số. Bởi vì mật mã khóa công khai chậm hơn nhiều so với
mật mã khóa đối xứng, chữ kí của các khối dữ liệu lớn mất nhiều thời gian
tính toán. Do vậy, hầu hết các giao thức chữ kí số định rõ áp dụng chữ kí số
trên bản băm của dữ liệu. Bởi vì tính toán một giá trị thường nhanh và giá trị
kết quả thường nhỏ hơn nhiều dữ liệu gốc, nên thời gian kí giảm đi đáng kể.
Một số ứng dụng khác của hàm băm bao gồm bảo vệ mật khấu, dữ liệu
thời gian để theo dõi an toàn việc tạo và thay đổi ngày và thời gian, và bảo
đảm tính toàn vẹn. Một số thuật toán hàm băm an toàn nổi tiếng gồm có
SHA-224, SHA-256, SHA-384, và SHA-512. Các thuật toán cũ hơn SHA-1
và MD5 hiện đang được sử dụng rộng rãi, nhưng những sai sót trong hai thuật
toán này đã được chỉ ra, do đó nên thay thế bằng các hàm băm an toàn hơn.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

8


Mã hóa cơ sở dữ liệu trong Oracle

Chương 2
TỔNG QUAN VỀ MÃ HÓA CƠ SỞ DỮ LIỆU
Chương này em sẽ trình bày các khái niệm cơ bản của cơ sở dữ liệu và
hệ quản trị cơ sở dữ liệu, vai trò của nó trong môi trường công nghệ thông tin
hiện nay. Từ đó sẽ đưa ra các nguy cơ mất an toàn đối với một cơ sở dữ liệu,

và tìm hiểu các mức có thể áp dụng mã hóa để bảo vệ cơ sở dữ liệu lưu trữ đó.
2.1. Tóm tắt ngắn gọn về cơ sở dữ liệu
2.1.1. Định nghĩa cơ sở dữ liệu (Database)
Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được
lưu trữ trên các thiết bị như băng từ, đĩa từ,… để có thể thoả mãn yêu cầu khai
thác đồng thời của nhiều người sử dụng.
CSDL gắn liền với đại số, logic toán và một số lĩnh vực khác.
2.1.2. Ưu điểm của cơ sở dữ liệu
- Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó bảo đảm
được tính nhất quán và toàn vẹn dữ liệu.
- Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau.
- Khả năng chia sẻ thông tin cho nhiều người sử dụng.
2.1.3. Những vấn đề mà CSDL cần phải giải quyết
- Tính chủ quyền của dữ liệu
Tính chủ quyền của dữ liệu được thể hiện ở phương diện an toàn dữ liệu,
khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác
của dữ liệu. Điều này có nghĩa là người khai thác CSDL phải có nhiệm vụ cập
nhật các thông tin mới nhất của CSDL.
- Tính bảo mật và quyền khai thác thông tin của người sử dụng

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

9


Mã hóa cơ sở dữ liệu trong Oracle
Do có nhiều người được phép khai thác dữ liệu một cách đồng thời, nên
cần thiết phải có một cơ chế bảo mật và phân quyền hạn khai thác CSDL. Các
hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục bộ đều có cung
cấp cơ chế này.

- Tranh chấp dữ liệu
Nhiều người được phép truy nhập cùng một lúc vào tài nguyên dữ liệu của
CSDL với những mục đích khác nhau, do đó cần thiết phải có một cơ chế ưu
tiên khi truy nhập dữ liệu. Cơ chế ưu tiên có thể được thực hiện bằng việc cấp
quyền ưu tiên cho từng người khai thác.
- Đảm bảo an toàn dữ liệu khi có sự cố
Việc quản lý dữ liệu tập trung có thể làm tăng khả năng mất mát hoặc sai
lệch thông tin khi có sự cố như mất điện đột xuất, hay một phần đĩa lưu trữ
CSDL bị hư,… một số hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh
đĩa cứng, tự động kiểm tra và khắc phục lỗi khi có sự cố. Tuy nhiên, bên cạnh
dịch vụ của hệ điều hành, để đảm bảo CSDL luôn ổn định, một CSDL nhất
thiết phải có một cơ chế khôi phục dữ liệu khi có các sự cố bất ngờ xảy ra.
2.1.4. Các đối tượng sử dụng CSDL
- Những người sử dụng CSDL không chuyên về lĩnh vực tin học và
CSDL.
- Các chuyên viên CSDL biết khai thác CSDL Những người này có thể
xây dựng các ứng dụng khác nhau, phục vụ cho các mục đích khác
nhau trên CSDL.
- Những người quản trị CSDL, đó là những người hiểu biết về tin học, về
các hệ quản trị CSDL và hệ thống máy tính. Họ là người tổ chức
CSDL, do đó họ phải nắm rõ các vấn đề kỹ thuật về CSDL để có thể
phục hồi CSDL khi có sự cố. Họ là những người cấp quyền hạn khai
thác CSDL, do vậy họ có thể giải quyết được các vấn đề tranh chấp dữ
liệu nếu có.
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

10


Mã hóa cơ sở dữ liệu trong Oracle

2.1.5. Hệ quản trị cơ sở dữ liệu (Database management system)
Để giải quyết tốt những vấn đề tổ chức CSDL như đã nói ở trên, cần
thiết phải có những phần mềm chuyên dùng để khai thác chúng. Những phần
mềm này được gọi là các hệ quản trị CSDL. Các hệ quản trị CSDL có nhiệm
vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng như những người khai
thác CSDL. Hiện nay trên thị trường phần mềm đã có những hệ quản trị
CSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual Foxpro, SQL
Server Oracle, …
Mỗi hệ quản trị CSDL đều được cài đặt dựa trên một mô hình dữ liệu
cụ thể. Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải
hội tụ đủ các yếu tố sau:
- Ngôn ngữ giao tiếp giữa người sử dụng và CSDL, bao gồm :
Ngôn ngữ mô tả dữ liệu (DDL): Để cho phép khai báo cấu trúc của
CSDL, khai báo các mối liên hệ của dữ liệu và các quy tắc quản lý áp đặt lên
các dữ liệu đó.
Ngôn ngữ thao tác dữ liệu (DML): Cho phép người sử dụng có thể cập
nhật dữ liệu (thêm/sửa/xoá)
Ngôn ngữ truy vấn dữ liệu (SQL): Cho phép người khai thác sử dụng để
truy vấn các thông tin cần thiết trong CSDL
Ngôn ngữ quản lý dữ liệu (DCL): Cho phép những người quản trị hệ thống
thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp
quyền hạn khai thác CSDL cho người sử dụng.,…
- Từ điển dữ liệu:
Dùng để mô tả các ánh xạ liên kết, ghi nhận các thành phần cấu trúc của
CSDL, các chương trình ứng dụng, mật mã, quyền hạn sử dụng,…
- Cơ chế giải quyết vấn đề tranh chấp dữ liệu:

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

11



Mã hóa cơ sở dữ liệu trong Oracle
Mỗi hệ quản trị CSDL cũng có thể cài đặt một cơ chế riêng để giải quyết
các vấn đề này. Một số biện pháp sau đây thường được sử dụng: thứ nhất: cấp
quyền ưu tiên cho từng người sử dụng; thứ hai: Đánh dấu yêu cầu truy xuất
dữ liệu, phân chia thời gian, người nào có yêu cầu trước thì có quyền truy
xuất dữ liệu trước,…
- Hệ quản trị CSDL cũng phải có cơ chế sao lưu (backup) và phục hồi
(restore) dữ liệu khi có sự cố xảy ra.
Điều này có thể thực hiện bằng cách sau một thời gian nhất định hệ quản
trị CSDL sẽ tự động tạo ra một bản sao những CSDL, cách này hơi tốn kém,
nhất là đối với CSDL lớn.
- Hệ quản trị CSDL phải cung cấp một giao diện thân thiện, dễ sử dụng.
2.1.6. Các ứng dụng của cơ sở dữ liệu
Hiện nay, hầu như CSDL gắn liền với mọi ứng dụng của tin học; chẳng
hạn như việc quản lý hệ thống thông tin trong các cơ quan nhà nước, việc lưu
trữ và xử lý thông tin trong các doanh nghiệp, trong các lĩnh vực nghiên cứu
khoa học, trong công tác giảng dạy, cũng như trong việc tổ chức thông tin đa
phương tiện,…
2.2. An toàn thông tin trong cơ sở dữ liệu
2.2.1. Tại sao phải bảo vệ cơ sở dữ liệu
Cơ sở dữ liệu là trái tim của một doanh nghiệp. Đó là nơi lưu trữ các
thông tin có giá trị và quan trọng. Dữ liệu của một công ty có thể liên quan
đến các bản ghi tài chính, hoặc các bản ghi khác cần thiết cho sự thành công
của một tổ chức, như bí mật thương mại, thông tin miêu tả về cá nhân với các
thông tin cần được bảo vệ.
Giá trị của những thông tin nhạy cảm này có thể là đích của kẻ tấn
công. Các tấn công thành công có thể gây thiệt hại lớn cho các doanh về tài
chính, ảnh hưởng nghiêm trọng đến danh tiếng và quan hệ với khách hàng,

thậm chí làm mất tính cạnh tranh,… Hơn nữa, với một kẻ tấn công, khi tấn
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

12


Mã hóa cơ sở dữ liệu trong Oracle
công vào cơ sở dữ liệu sẽ có lợi hơn là nghe nén giao tiếp trên mạng. Bởi vì
thông thường dữ liệu thường được mã hóa trên đường truyền nhưng lại được
lưu dưới dạng rõ trong cơ sở dữ liệu.
An toàn thông tin trong CSDL bao gồm 3 yếu tố chính: tính bí mật,
toàn vẹn và sẵn sàng.
- Đảm bảo tính bí mật (secrecy) có nghĩa là ngăn chặn/phát
hiện/cản trở những truy nhập thông tin trái phép. Nói chung, tính bí
mật được sử dụng để bảo vệ dữ liệu trong những mỗi trường bảo mật
cao như các trung tâm quân sự hay kinh tế quan trọng. Bảo vệ tính
riêng tư của dữ liệu.
- Đảm bảo tính toàn vẹn (integrity) của thông tin có nghĩa là ngăn
chặn/phát hiện/cản trở các sửa đổi thông tin trái phép.
- Đảm bảo tính sẵn sàng (availability) của hệ thống có nghĩa là
ngăn chặn/phát hiện/cản trở sự từ chối trái phép các truy nhập hợp
pháp đến dịch vụ trong hệ thống.
2.2.2. Các tấn công vào cơ sở dữ liệu
Dựa vào vị trí của kẻ tấn công ta có thể chia các tấn công vào cơ sở dữ
liệu thành 2 kiểu:
- Tấn công bên trong: kẻ tấn công là người bên trong tổ chức (bên trong
tường lửa), họ biết về kiến trúc của mạng.
- Tấn công bên ngoài: kẻ tấn công phải vượt qua tường lửa, IDS và
không biết về kiến trúc của mạng
Kẻ tấn công bên trong (có thể gồm cả người quản trị của CSDL) là mối

đe dọa còn lớn hơn các tấn công bên ngoài.
a. Tấn công tính bí mật
Tấn công tính bí mật là loại tấn công trong đó, những người dùng bất
hợp pháp có khả năng truy nhập vào thông tin nhạy cảm của CSDL. Kiểm
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

13


Mã hóa cơ sở dữ liệu trong Oracle
soát mức thấp nhất họ có thể thực hiện là đọc CSDL. Ví dụ như kẻ tấn công
có thể kiểm soát toàn bộ máy chủ CSDL, do đó anh ta có thể tải xuống toàn
bộ file CSDL rồi nạp file vào Database engine để truy nhập dữ liệu như người
dùng bình thường.
Để duy trì được tính bí mật của dữ liệu, chính sách kiểm soát truy cập
bắt buộc được định nghĩa trong DBMS là một phương thức phổ biến được sử
dụng để bảo vệ CSDL. Một chính sách kiểm soát truy cập có thể có hình thức
khác nhau tùy thuộc vào mô hình CSDL nằm dưới và cách xác thực được
thực thi như: DAC, RBAC, MAC. Tuy nhiên phương pháp kiểm soát truy cập
thường được cấu hình chưa đúng, tạo khe hở cho những người dùng muốn
lạm dụng quyền, hoặc là kẻ tấn công có thể truy cập trực tiếp vào file CSDL
vật lý.
Một khả năng khác làm cho kẻ tấn công có thể truy cập dữ liệu nhạy
cảm đó là từ việc sao lưu cơ sở dữ liệu không an toàn. Người ta thường sao
lưu các hệ thống cơ sở dữ liệu để tránh các thảm họa mất mát dữ liệu. Tuy
nhiên, dữ liệu sao lưu này thường được lưu ở một nơi khác, nên kẻ tấn công
có thể tấn công lấy trộm các thông tin nhạy cảm từ các dữ liệu này.
b. Tấn công tính toàn vẹn
Đây là loại tấn công gây ra những sửa đổi trái phép đối với thông tin
trong CSDL. Để thực hiên được tấn công này thì kẻ tấn công phải có khả

năng ghi vào CSDL. Do đó, trong loại tấn công này ta không lo ngại đối với
các kẻ tấn công có thể đọc CSDL.
Một số tấn công tính toàn vẹn phổ biến:
– Tấn công từ người quản trị ác ý
– Sự gây hại của các ứng dụng bị lỗi
– Sử dụng tài khoản đánh cắp có truy nhập ghi vào CSDL
– Khả năng leo thang đặc quyền của một số tài khoản

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

14


Mã hóa cơ sở dữ liệu trong Oracle
2.2.3. Các phương pháp bảo vệ cơ sở liệu
Trường hợp CSDL lưu trữ thông tin nhạy cảm và then chốt là không
hiếm, do đó cần cung cấp đầy đủ các mức bảo vệ cho nội dung của CSDL.
Các phương pháp bảo vệ sự an toàn cho CSDL được chia thành 4 lớp:
– An toàn vật lý
– An toàn hệ điều hành
– An toàn hệ quản trị cơ sở dữ liệu
– Mã hóa
Chỉ sử dụng 3 lớp đầu tiên thì không đủ bảo đảm an toàn cho CSDL vì
dữ liệu được lưu trữ ở dạng rõ, dạng có thể đọc được. Vì vậy bất kì ai có
quyền truy cập tời CSDL bao gồm DBA đều có khả năng đọc dữ liệu.
Một số kĩ thuật điển hình để bảo vệ dữ liệu trong CSDL, như tường lửa,
hệ thống phát hiện xâm nhập, và kiểm soát truy cập. Tuy nhiên tường lửa và
hệ thống phát hiện xâm nhập chỉ cung cấp sự bảo vệ ở lớp mạng. Kiểm soát
truy cập cũng trở nên vô dụng khi kẻ tấn công đạt được quyền truy cập vào dữ
liệu thô bằng cách vượt qua các cơ chế truyền thống. Các thức tấn công này

rất dễ dàng đạt được bởi những người bên trong, như người quản trị hệ thống
và DBA.
Một trong những phương pháp tiến bộ đang được các tổ chức kết hợp
chặt chẽ để giải quyết các thách thức bộc lộ dữ liệu nhạy cảm, đặc biệt trong
ngân hàng, tài chính, bảo hiểm, chính phủ và y tế là mã hóa CSDL.
Do đó, cách tốt nhất để bảo đảm an toàn dữ liệu ở trạng thái nghỉ là mã
hóa. Mã hóa sẽ mang lại sự phòng thủ hiệu quả nhất để bảo vệ dữ liệu, đồng
thời bổ xung an toàn cho các phương pháp khác.

SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

15


Mã hóa cơ sở dữ liệu trong Oracle
2.2.4. Áp dụng mã hóa
Với tinh thần của một nguyên tắc quan trọng được gọi là phòng thủ
theo chiều sâu (ví dụ phòng thủ phân lớp như kẻ tấn công phải vượt qua lớp
này đến lớp khác của việc bảo vệ), dùng đến các kĩ thuật mật mã để bổ sung
và củng cố việc điều khiển truy cập gần đây nhận được nhiều sự chú ý từ
cộng đồng CSDL. Mục đích của mã hóa CSDL là để đảm bảo tính không
trong suốt của CSDL bằng cách giữ thông tin được ẩn với bất kì người nào
không có thẩm quyền (ví dụ kẻ xâm nhập). Thậm chí kẻ tấn công vượt qua
FW và tránh các chính sách kiểm soát truy cập, thì họ vẫn không có khóa để
giải mã dữ liệu.
Mã hóa CSDL sẽ bảo vệ được tính bí mật và tính toàn vẹn của dữ liệu
lưu trữ.
Mã hóa cơ sở dữ liệu mang lại những lợi ích sau:
-


Bảo đảm sự bí mật của khác hàng khi sử dụng các dịch vụ của công ty
Phương pháp đơn giản và hiệu quả nhất để lấp đầy các yêu cầu
Bảo như đảm an toàn dữ liệu có giá trị nhất của công ty
Nâng cao sự bảo vệ an toàn dữ liệu
Giảm các rủi ro an toàn dữ liệu
Bảo đảm hoạt động kinh doanh
Duy trì tính cạnh tranh
Bảo đảm dữ liệu outsource
Lấp đầy các yêu cầu và quy định quản trị

2.3. Các mức mã hóa (Encryption Level)
2.3.1. Mã hóa mức lưu trữ (Storage-Level Encryption)
Mã hóa mức lưu trữ chung quy là mã hóa dữ liệu trong hệ thống lưu trữ
phụ và vì vậy bảo vệ dữ liệu lưu trữ (ví dụ từ những kẻ trộm phương tiện lưu
trữ). Phương pháp này phù hợp cho việc mã hóa tập tin và toàn bộ thư mục
trong phạm vi hệ điều hành. Từ quan điểm CSDL, mã hóa mức lưu trữ có ưu
điểm là trong suốt vì vậy tránh được bất kỳ thay đổi trong ứng dụng hiện có.
Mặt khác, vì hệ thống phụ lưu trữ không biết về cấu trúc và đối tượng CSDL,
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

16


Mã hóa cơ sở dữ liệu trong Oracle
nên chiến lược mã hóa không liên quan với đặc quyền người dùng (ví dụ:
bằng cách sử dụng các khóa riêng biệt cho người dùng riêng biệt), hoặc là với
dữ liệu nhạy cảm. Vì vậy lựa chọn mã hóa nên mã hóa chỉ một phần của
CSDL để giảm chi phí mã hóa, hạn chế mã hóa trong các tập tin có độ chi tiết
cao. Hơn nữa, việc lựa chọn các tập tin mã hóa là mạo hiểm vì cần đảm bảo
rằng không có bản sao dữ liệu nhạy cảm nào chưa được mã hóa (ví dụ trong

tập tin nhật ký, tập tin tạm thời…).
2.3.2. Mã hóa mức hệ quản trị cơ sở dữ liệu (DBMS-Level Encryption)
Mã hóa mức hệ quản trị cơ sở dữ liệu cho phép bảo đảm dữ liệu khi
chèn hoặc khôi phục từ CSDL. Chiến lược mã hóa là một phần trong thiết kế
CSDL và có thể liên quan với dữ liệu nhạy cảm và/hoặc đặc quyền người sử
dụng. Mã hóa chọn lọc có thể được thực hiện tại nhiều mức chi tiết khác
nhau, như là bảng, cột và hàng. Thậm chí có thể liên quan tới một vài điều
kiện logic (ví dụ mã hóa lương lớn hơn 1000$/1 tháng). Tùy thuộc vào mức
độ tích hợp của tính năng mã hóa và hệ quản trị cơ sở dữ liệu, quá trình mã
hóa có thể thay đổi từ ứng dụng. Hơn nữa, mã hóa có thể gây giảm hiệu suất
hệ quản trị cơ sở dữ liệu vì mã hóa thường ngăn cản người dùng ghi chỉ số
trên dữ liệu được mã hóa. Thực chất nếu không sử dụng thuật toán cụ thể
hoặc chế độ mã hóa cụ thể thì việc ghi chỉ số dữ liệu được mã hóa là vô ích.
Với hai mức mã hóa trên, dữ liệu được giải mã trên máy chủ CSDL khi
thực hiện. Vì vậy khóa mã phải được truyền hoặc lưu trữ cùng với dữ liệu
được mã hóa ở phía máy chủ, do vậy hai mức mã hóa này hạn chế trong việc
chống lại các tấn công của người quản trị máy chủ hoặc bất kỳ kẻ xâm nhập
nào chiếm đoạt quyền quản trị. Thực chất kẻ tấn công cũng có thể dò xét bộ
nhớ và khám phá ra khóa mã hoặc bản rõ.
2.3.3. Mã hóa mức ứng dụng (Application-Level Encryption)
Mã hóa mức ứng dụng chuyển quá trình mã hóa/giải mã tới ứng dụng
hiển thị dữ liệu. Vì vậy mã hóa được thực hiện ở ứng dụng, dữ liệu được gửi
ở dạng mã hóa, do đó được lưu trữ và khôi phục dạng mã hóa một cách tự
nhiên, để cuối cùng được giải mã ở ứng dụng. Phương pháp này có lợi ích là
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

17


Mã hóa cơ sở dữ liệu trong Oracle

tách khóa mã với dữ liệu mã hóa được lưu trong CSDL, vì vậy các khóa
không bao giờ phải tách rời khỏi phía ứng dụng. Tuy nhiên, các ứng dụng cần
được điều chỉnh để thực thi theo giải pháp này. Thêm vào đó, phụ thuộc vào
mức độ chi tiết của mã hóa, ứng dụng có thể phải khôi phục một lượng dữ
liệu lớn hơn người dùng cần thực tế, vì vậy mở ra một lỗ hổng về an toàn.
Thực vậy người dùng bất kì (hoặc kẻ tấn công thu được quyền truy cập vào
máy mà ứng dụng đang chạy) có thể hack ứng dụng để truy cập dữ liệu trái
phép. Cuối cùng như một phương pháp gây ra chi phí hiệu suất và ngăn chặn
sử dụng vài tính năng cải tiến của CSDL trên dữ liệu mã hóa, như các thủ tục
lưu trữ (như các đoạn mã dược lưu trong hệ quản trị cơ sở dữ liệu có thể được
chia sẻ và yêu cầu bởi vài ứng dụng) và các trigger (như đoạn chương trình tự
khởi động khi dữ liệu trong CSDL được chỉnh sửa). Trong khái niệm độ chi
tiết và quản lý khóa, mã hóa mức ứng dụng đưa ra sự linh hoạt cao nhất vì độ
chi tiết mã hóa và các khóa mã có thể được chọn phụ thuộc vào sự logic của
ứng dụng.
Ba phương pháp miêu tả trên được minh họa trong Hình 2.1

Hình 2.1: Ba tùy chọn cho các mức mã hóa cơ sở dữ liệu
2.3.4. Thuật toán mã hóa và chế độ hoạt động
Tùy thuộc vào chiến lược mã hóa, sự an toàn của dữ liệu đã mã hóa phụ
thuộc vào thuật toán mã, kích thước khóa mã và sự bảo vệ khóa mã. Thậm chí
sử dụng thuật toán mạnh, như AES, thì bản mã vẫn có thể bị phơi bày thông
SVTH: Ong Thị Hồng – AT020128 – Khoa An Toàn Thông Tin

18


×