Tải bản đầy đủ (.docx) (23 trang)

Mã hóa và toàn vẹn CSDL với 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 (398.27 KB, 23 trang )

MỤC LỤC
MỤC LỤC 1
DANH MỤC BẢNG 2
DANH MỤC HÌNH VẼ 3
LỜI MỞ ĐẦU 4
CHƯƠNG 1: MÃ HÓA VÀ TOÀN VẸN DỮ LIỆU TRONG ORACLE 5
1.1. Tổng quan về mã hóa dữ liệu và toàn vẹn dữ liệu 5
1.2. Các mức mã hóa dữ liệu 6
CHƯƠNG 2: MÃ HÓA DỮ LIỆU ORACLE BẰNG TDE 7
2.1. Khái niệm TDE 7
2.2. Cơ chế quản lý khóa 7
2.3. Hoạt động của TDE 8
2.4. Cấu hình Oracle Wallet 11
2.5. Ví dụ mã hóa TDE 12
CHƯƠNG 3: CẤU HÌNH MÃ HÓA VÀ TOÀN VẸN DỮ LIỆU MẠNG GIỮA CLIENT VÀ SERVER 16
3.1. Mã hóa bảo mật nâng cao trong Oracle 16
3.1.1. Kích hoạt mã hoá và toàn vẹn 16
3.1.2. Thoả thuận mã hoá và toàn vẹn 17
3.1.3. Cài đặt mầm mã hoá (tuỳ chọn) 19
3.1.4. Cấu hình các thông số mã hoá và toàn vẹn sử dụng Oracle Net Manager 19
3.2. 22
Tài liệu tham khảo 23
1
DANH MỤC BẢNG
2
DANH MỤC HÌNH VẼ
3
LỜI MỞ ĐẦU
Trong chiến lược bảo mật dữ liệu, đa số các công ty hiện nay tập trung
nguồn lực vào bảo vệ dữ liệu trên đường truyền. Trong khi đó vấn đề bảo vệ dữ
liệu nằm trong cơ sở dữ liệu (CSDL) chưa được quan tâm đúng mức.


Thực tế cho thấy, sự cố về an ninh xảy ra với CSDL có thể ảnh hưởng
nghiêm trọng đến danh tiếng của công ty và quan hệ với khách hàng chẳng hạn
như: Sự cố an ninh mất cắp 40 triệu thẻ tín dụng của khách hàng gần đây xảy ra
với Master Card và Visa Card đã phần nào gia tăng sự chú ý đến các giải pháp
bảo mật CSDL.
Chính vì những lý do như vậy mà chúng em đã thực hiện bài tập có tên là
“Mã hóa và toàn vẹn CSDL với trong oracle”. Nội dung của đồ án bao gồm các
phần:
Chương 1: Giới thiệu về mã hóa và toàn vẹn CSDL.
Chương 2: Mã hóa dữ liệu Oracle bằng TDE.
Chương 3: Cấu hình mã hóa và toàn vẹn dữ liệu mạng trên Oracle
Em xin chân thành cảm ơn sự giúp đỡ tận tình của Trần Thị Lượng bài tập
của chúng em được hoàn thành.
Do thời gian có hạn nên bài tập của chúng em chắc chắn còn nhiều thiếu
sót. Em rất mong nhận được sự gó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!
Nhóm sinh viên thực hiện
4
CHƯƠNG 1: MÃ HÓA VÀ TOÀN VẸN DỮ LIỆU TRONG ORACLE
1.1. Tổng quan về mã hóa dữ liệu và toàn vẹn dữ liệu
Thuật toán mật mã đề cập tới nghành khoa học nghiên cứu về mã hoá và giải
mã thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển đổi thông tin từ dạng rõ
(clear text) sang dạng mã (cipher text) và ngược lại. Đây là một phương pháp hỗ trợ
rất tốt cho trong việc chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi
trên mạng, áp dụng mã hoá sẽ khiến cho nội dung thông tin được truyền đi dưới dạng
mã và không thể đọc được đối với bất kỳ ai cố tình muốn lấy thông tin đó.
Trước khi có internet, dữ liệu mã hóa ít khi được sử dụng bởi công chúng coi nó
như một công cụ an ninh quân sự. Ngày nay, với các dịch vụ mua sắm, giao dịch với
ngân hàng và các dịch vụ khác trực tuyến ngày càng phát triển thì nhận thức về mã hóa

dữ liệu đối với mỗi cá nhân ngày càng được nâng cao.
Ngày nay, các trình duyệt tự động mã hóa khi đưa ra một kết nối đến một máy
chủ an toàn. Điều này ngăn cản những kẻ xâm nhập nghe lén các thông tin quan trọng
của người sử dụng. Ngay cả khi lấy được tin nhắn, thì chúng cũng không thể đọc được.
Không phải ai hay bất kỳ ứng dụng nào cũng phải sử dụng mã hoá. Nhu cầu về
sử dụng mã hoá xuất hiện khi các bên tham gia trao đổi thông tin muốn bảo vệ các tài
liệu quan trọng hay gửi chúng đi một cách an toàn. Các tài liệu quan trọng có thể là: tài
liệu quân sự, tài chính, kinh doanh hoặc đơn giản là một thông tin nào đó mang tính
riêng tư.
Mã hóa là một chìa khóa kiểm soát nhận rất nhiều sự quan tâm của các tổ chức
ngày nay. Các tổ chức hiểu rằng họ cần phải mã hóa các dữ liệu quan trọng và có quy
tắc. Mã hóa có thể giúp ngăn chặn mất dữ liệu hoặc bị đánh cắp, cũng như ngăn chặn
gian lận trong tổ chức. Trong nhiều trường hợp, mã hóa cũng được sử dụng để qui
định những đòi hỏi cho việc bảo vệ dữ liệu khách hàng.
Nhiều tổ chức có những thiệt hại nặng nề khi các kiểm soát mã hóa không thể
được thực hiện theo cách mà nó phải được thực hiện cùng với tổ chức, và dữ liệu thì bị
mất mát. Đã có rất nhiều tình huống trong nhiều năm nơi mà các băng sao lưu bị mất,
hay bị đánh cắp, và những dữ liệu nhạy cảm thì không được mã hóa. Một máy chủ
cũng có thể bị tổn hại , kết quả của thông tin bị rò rỉ. Trong nhiều trường hợp, có thể
5
quy định những yêu cầu để báo cáo dữ liệu bị rò rỉ. Cuối cùng, ngày càng nhiều tổ
chức tìm cách để bào vệ dữ liệu, đề phòng trường hợp bị rò rỉ, bằng cách mã hóa dữ
liệu cùng với môi trường tổ chức.
Khi mã hóa dữ liệu ở mức cơ sở dữ liệu, có nhiều vùng nơi mà việc mã hóa
được áp dụng và quản lý. Thông qua những gì đã đề cập phía trên, chúng ta sẽ nhìn
vào những cái đơn giản nhất của việc mã hóa và thảo luận về ưu điểm và khuyết điểm
của kiến trúc mã hóa có sẵn ngày nay.
Mã hóa không phải là một giải pháp màu nhiệm và không thể giải quyết tất cả
các vấn đề, nhưng nó có thể giảm nhẹ rất nhiều những rủi ro bảo mật mà các tổ chức
phải đối mặt. Vấn đề quan trọng phải hiểu rằng những gì mã hóa dữ liệu làm được và

không làm được cùng với tổ chức nên chúng ta có thể quản lý rủi ro đúng đắn đối với
những dữ liệu quan trọng và có quy tắc.
1.2. Các mức mã hóa dữ liệu
- Mã hóa ứng dụng
- Mã hóa file / đĩa
- Mã hóa cơ sở dữ liệu
6
CHƯƠNG 2: MÃ HÓA DỮ LIỆU ORACLE BẰNG TDE
Giải pháp có cấu trúc cuối cùng là sử dụng mã hóa cơ sở dữ liệu. Mã hóa cơ sở
dữ liệu xuất hiện mọi nơi trong những mã hóa ứng dụng và mã hóa tập tin/ đĩa. Một ví
dụ như sau, chúng ta sẽ thảo luận sự minh bạch mã hóa dữ liệu (TDE) của Oracle
Advanced Security, nơi tự động mã hóa và giải mã dữ liệu được lưu trữ trong cơ sở dữ
liệu và cung cấp những khả năng này mà không cần viết một đoạn lệnh bổ sung.
2.1. Khái niệm TDE
Transparent Data Encryption (TDE) là cơ chế mã hóa dữ liệu trong suốt với
người dùng cuối; nghĩa là không cần sửa mã nguồn như cơ chế mã hóa dùng hàm API
như gói lệnh DBMS_OBFUSCATION_TOOLKIT (9i) và DBMS_CRYPTO (10g).
Có hai điểm cần lưu ý khi dùng TDE:
− TDE chỉ mã hóa dữ liệu ở mức File, dữ liệu khi lưu trong File sẽ ở dạng mã
hóa. Cách này giúp File dữ liệu bị đánh cắp nếu không có khóa thì không
xem được.
− Người dùng có quyền truy cập; ví dụ quyền SELECT, đến dữ liệu thì mặc
nhiên sẽ nhìn thấy dữ liệu ở dạng bản rõ.
2.2. Cơ chế quản lý khóa
TDE dùng “ví” (Wallet) để quản lý khóa. Trong đời thường, ví đuợc dùng để
lưu những gì quan trọng, như: tiền, CMND, thông tin bí mật … Ví trong Oracle cũng
vậy, ví là một tập tin nhị phân và thường dùng để lưu khóa giải mã, ta gọi khóa này là
MK (Master Key).
Tuy nhiên, TDE lại mã hóa dữ liệu bảng trong Database với khóa CK (Column-
Key, lưu ý mỗi bảng sẽ chỉ có 1 khóa CK dù mã hóa nhiều cột). Oracle Database

không lưu khóa CK ở dạng bản rõ, mà Oracle lưu bản mã của khóa CK; tức là lưu kết
quả của hàm này encrypt (CK, MK).
Tiến trình xem dữ liệu mã hóa TDE như sau:
1. Người dùng xem dữ liệu mã hóa TDE
2. Oracle đọc khóa MK từ Wallet lưu ngoài Database
7
3. Dùng mã MK giải mã CK trong database: CK = decrypt (encrypted_CK,
MK).
4. Dùng khóa CK để giải mã dữ liệu bảng mã hóa trong Database.
2.3. Hoạt động của TDE
Với TDE, quá trình mã hóa và những khóa mật mã kết hợp được tạo ra và được
quản lý bởi cơ sở dữ liệu. Đó là sự minh bạch cho cho người sử dụng cơ sở dữ liệu mà
có xác thực bởi cơ sở dữ liệu. Tuy nhiên, đối với cơ sở dữ liệu mở rộng, những nỗ lực
để truy cập những tập tin cơ sở dữ liệu đều trả lại dữ liệu trong một trạng thái được mã
hóa. Trước đó, đối với bất kỳ cấp độ người sử dụng hệ thống mở rộng nào, dữ liệu
được duy trì trong trạng thái không thể tiếp cận. Thêm vào đó, bởi vì cơ sở dữ liệu
đang được mã hóa, nên nó không cần thay đổi những ứng dụng, và có một hiệu suất tối
thiểu, khi những thay đổi diễn ra trên cơ sở dữ liệu. TDE được thiết kế thành chính bản
thân cơ sở dữ liệu: Oracle đã tích hợp sẵn cú pháp TDE với các DDL của nó, nên sự
mã hóa đó có thể xác định một cách trực tiếp trong các cú pháp sau: CREATE table,
ALTER table, và CREATE TABLESPACE. TDE cũng có thể được quản lý bằng cách
sử dụng Oracle Enterprise Manager.
Ngoài ra, những tiến trình trong cơ sở dữ liệu Oracle mà đang tồn tại sẽ được
sao lưu dữ liệu để bảo vệ bằng TDE mà không bị bất kì một sự chỉnh sửa nào. Nói
cách khác, nếu một cột hoặc một tablespace được mã hóa, cùng một dữ liệu sẽ vẫn mã
hóa khi nó được sao lưu. Đây là một khía cạnh lợi ích quan trọng của mã hóa cơ sở dữ
liệu bởi vì không có thời gian bổ sung nào nữa trong quá trình sao lưu để mã hóa lại cơ
sở dữ liệu. Yêu cầu bổ sung duy nhất là để đảm bảo rằng TDE master key được sao
lưu tại một vị trí an toàn riêng biệt từ trung tâm sao lưu- một yêu cầu phải có cho tất cả
các kịch bản mã hóa.

Oracle Data Pump cũng được tích hợp với TDE như là các Database export có
thể được mã hóa cũng bằng cách sử dụng một trong hai TDE master key hoặc chuỗi
mật khẩu
Với TDE, bạn có thể chọn để mã hóa toàn bộ một tablespace hoặc chỉ một cột
nhất định, tùy thuộc vào nhiều yếu tố:
8
• Bạn có thể xác định nơi chứa các dữ liệu nhạy cảm? Nếu không, việc mã
hóa tablespace có thể là giải pháp tốt hơn bởi vì nó mã hóa toàn bộ bảng chứ
không phải chỉ là những gì hiện đang được coi là một dữ liệu nhạy cảm.
• Nếu ta muốn mã hóa rất nhiều dữ liệu, vậy có thể sẽ tốt hơn khi sử dụng mã
hóa tablespace.
• Nếu bạn chỉ mã hóa một vài cột, việc mã hóa ở mức cột có thể là một lựa
chọn tốt hơn bởi vì mã hóa tablespace có thể là quá mức cần thiết.
• Dữ liệu của các cột quan trọng có được sử dụng như một foreign key? Nếu
vậy, tận dụng việc mã hóa tablespace như nó cũng có cơ chế riêng biệt cho
mã hóa khóa.
• Có thể các dữ liệu bạn cho là quan trọng thay đổi theo thời gian? Nếu vậy,
nó có thể dễ dàng hơn khi sử dụng mã hóa bảng và mã hóa tất cả mọi thứ từ
đầu.
• Có hạn chế không khi dựa trên cơ sở dữ liệu đang được sử dụng? Một số cơ
sở dữ liệu chỉ hỗ trợ việc mã hóa tablespace đầy đủ. Trong trường hợp khác,
nếu bạn muốn có thể re-key hoặc sử dụng những mô-đun bảo mật phần
cứng (HSM) bên ngoài được hỗ trợ, có khả năng bạn chỉ có thể sử dụng mã
hóa ở mức cột. Hãy chắc chắn rằng bạn đã cân nhắc kĩ khi đưa một cơ sở dữ
liệu chi tiết vào tài khoản.
Hình : Hoạt động của TDE
Một bất lợi của TDE là các dữ liệu không được bảo vệ từ những người dùng cơ
sở dữ liệu được chứng thực và xác nhận, bao gồm cả DBA. Một giải pháp truy cập
9
điều khiển riêng biệt, chẳng hạn như Oracle Database Vault là cần thiết để bảo vệ dữ

liệu từ DBA. Tương tự như các loại mã hóa khác mà chúng ta đã thảo luận, địa chỉ dữ
liệu TDE ở phần còn lại, nhưng không đề cập đến các dữ liệu trong transit. Hãy nhớ
rằng, đối với bất kỳ tùy chọn nào của các phương án kiến trúc, có một số dữ liệu bổ
sung trong transit phải được bảo vệ bằng một công cụ khác. Bạn cần các lớp bảo vệ,
bao gồm cả kiểm soát truy cập, mặt nạ dữ liệu và kỹ thuật khác để giữ cho dữ liệu
chuyên nghiệp được bảo vệ từ những người sử dụng đặc quyền và mã hóa dữ liệu
trong chuyển động, trong môi trường phát triển / kiểm tra và lưu trữ lâu dài.
Sau đây là một minh họa làm thế nào Oracle Advanced Security TDE được thực
hiện. Đầu tiên, một DBA hoặc một DBA được chỉ định bảo mật phải mở TDE master
key bằng cách cung cấp một mật khẩu. Theo mặc định, master key được lưu trữ trong
một Wallet Oracle, một PCKS # 12 fle, nằm trên hệ điều hành. Ngoài ra master key có
thể được lưu trữ trên một HSM. Master key rất quan trọng vì nó được sử dụng để bảo
vệ các khóa mã hóa được lưu trữ bên trong cơ sở dữ liệu Oracle trong những gì được
gọi là kiến trúc khóa 2 tầng.
Để mã hóa cột, TDE đã tạo ra một khóa mã hóa cho mỗi bảng có chứa một mã
hóa cột. Kết quả khóa mã hóa được mã hóa bằng cách sử dụng các master key và được
lưu trữ trong từ điển dữ liệu Oracle. Để mã hóa tablespace, TDE mã hóa các
tablespace cơ bản hoặc các tập tin để làm dữ liệu cơ sở. Các khóa mã hóa cho
tablespace được mã hóa bằng cách sử dụng chìa khóa mã hóa TDE master. Điều quan
trọng là bạn sao lưu các TDE master key sau lần khởi tạo đầu tiên và bất cứ khi nào nó
thay đổi. Nếu bị mất, TDE master key không thể phục hồi.
10
Hình : Mã hóa bằng TDE trong Oracle
2.4. Cấu hình Oracle Wallet
Gồm các bước sau:
Bước 1: Cấu hình vị trí lưu Wallet trong sqlnet.ora
[oracle@oraserver ~]$ mkdir /u01/app/oracle/product/11.2.0/dbhome_1/wallet
[oracle@oraserver ~]$ vi $ORACLE_HOME/network/admin/sqlnet.ora
[oracle@oraserver ~]$ more $ORACLE_HOME/network/admin/sqlnet.ora
#SQLNET.ORA Network Configuration File

#Created by Oracle Enterprise Manager Clone Database tool
ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=file)
(METHOD_DATA=
(DIRECTORY=/u01/app/oracle/product/11.2.0/dbhome_1/wallet)
)
)
[oracle@oraserver ~]$
Bước 2: Tạo Wallet
Lệnh sau tự động tạo và mở Wallet:
[oracle@oraserver ~]$ oracleviet
SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 1 12:17:28 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
11
oracleviet@orcl> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED
BY "password";
System altered.

oracleviet@orcl>
Bước 3: Mở / đóng Wallet
Mặc định khi tạo Wallet thì Oracle tự động mở Wallet, nếu không dùng lệnh sau
để đóng và mở Wallet:
oracleviet@orcl> ALTER SYSTEM SET ENCRYPTION
WALLET CLOSE IDENTIFIED BY "password";
System altered.
oracleviet@orcl> ALTER SYSTEM SET ENCRYPTION

WALLET OPEN IDENTIFIED BY "password";
System altered
Bước 4: Cấu hình tự động mở Wallet
Để Wallet tự động mở khi khởi động lại máy chủ Oracle, chúng ta phải dùng
công cụ Oracle Wallet Manager.
2.5. Ví dụ mã hóa TDE
Chúng ta có thể mã hóa dữ liệu ở mức Column hoặc Tablespace:
oracleviet@orcl> create tablespace tde1 datafile size 5M;
Tablespace created.
oracleviet@orcl> CREATE TABLESPACE tde2 DATAFILE SIZE 5M
ENCRYPTION USING 'AES256'
DEFAULT STORAGE(ENCRYPT); 2 3
Tablespace created.
oracleviet@orcl> create table t1 (x varchar2(50), y number) tablespace tde1;
Table created.
12
oracleviet@orcl> create table t2 (x varchar2(50), y number) tablespace tde2;
Table created.
oracleviet@orcl> alter table t1 modify (x encrypt);
Table altered.
oracleviet@orcl> set serveroutput on
oracleviet@orcl> exec pt ('SELECT * FROM V$ENCRYPTION_WALLET');
WRL_TYPE : file
WRL_PARAMETER :
/u01/app/oracle/product/11.2.0/dbhome_1/wallet
STATUS : OPEN

PL/SQL procedure successfully completed.
oracleviet@orcl> exec pt ('SELECT * FROM
DBA_ENCRYPTED_COLUMNS');

OWNER : ORACLEVIET
TABLE_NAME : T1
COLUMN_NAME : X
ENCRYPTION_ALG : AES 192 bits key
SALT : YES
INTEGRITY_ALG : SHA-1

PL/SQL procedure successfully completed.
oracleviet@orcl> select tablespace_name, encrypted from dba_tablespaces
where tablespace_name like 'TDE%';
TABLESPACE_NAME ENC

13
TDE1 NO
TDE2 YES
Khi ghi dữ liệu vào bảng không mã hóa thì chúng ta vẫn xem được dữ liệu bản
rõ trong Datafile, với bảng mã hóa thì không xem được:
oracleviet@orcl>
oracleviet@orcl> alter table t1 modify (x decrypt);
Table altered.
oracleviet@orcl> insert into t1 values('1111111111',1);
1 row created.
oracleviet@orcl> insert into t2 values ('2222222222',2);
1 row created.
oracleviet@orcl> commit;
Commit complete.
oracleviet@orcl> alter system checkpoint;
System altered.
oracleviet@orcl> col file_name format a80
oracleviet@orcl> set linesize 200

oracleviet@orcl> select file_name from dba_data_files where
tablespace_Name='TDE1';
FILE_NAME

/u01/app/oracle/oradata/ORCL/datafile/o1_mf_tde1_7bz0wo1f_.dbf
oracleviet@orcl>!strings
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_tde1_7bz0wo1f_.dbf | grep 1111
1111111111
14
oracleviet@orcl> select file_name from dba_data_files where
tablespace_Name='TDE2';
FILE_NAME

/u01/app/oracle/oradata/ORCL/datafile/o1_mf_tde2_7bz103wo_.dbf
oracleviet@orcl>!strings
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_tde2_7bz103wo_.dbf | grep 2222
oracleviet@orcl>
15
CHƯƠNG 3: CẤU HÌNH MÃ HÓA VÀ TOÀN VẸN DỮ LIỆU MẠNG GIỮA
CLIENT VÀ SERVER
Thông tin nhạy cảm mà được truyền qua các mạng doanh nghiệp và mạng
Internet có thể được bảo vệ bởi các thuật toán mã hóa. Một thuật toán mã hóa biến
thông tin thành một dạng có thể được giải mã với khóa giải mã.
Hình 1-1 cho thấy cách mã hóa hoạt động để đảm bảo sự an toàn của một giao
dịch. Ví dụ, nếu một người quản lý phê duyệt truy cập một lượng dữ liệu, dữ liệu này
phải được mã hóa khi gửi qua mạng để tránh bị nghe trộm. Nếu tất cả các thông tin
liên lạc giữa các khách hàng, các cơ sở dữ liệu, và các máy chủ ứng dụng được mã
hóa, sau đó khi người quản lý sẽ gửi lượng dữ liệu cho các cơ sở dữ liệu, khi đó nó
được bảo vệ.
Hình : Mã hóa dữ liệu mạng trong Oracle

Một số thuật toán mã hóa dữ liệu được OAS hỗ trợ để đảm bảo tính riêng tư
trên các đường truyền dữ liệu mạng:
- Thuật toán mã hóa RC4
- Thuật toán mã hóa DES
- Thuật toán mã hóa 3-DES
Người quản trị an ninh mạng phải cấu hình các thông số mã hoá và toàn vẹn.
Các hồ sơ trên client và server dùng mã hoá và toàn vẹn dữ liệu (file sqlnet.ora) có
chưa một số hoặc tất cả các thông số lắng nghe được trong phần này.
3.1. Kích hoạt mã hoá và toàn vẹn
Trong bất kỳ kết nối mạng nào, nó đều có khả năng hỗ trợ cho cả client và
server nhiều hơn một thuật toán mã hoá và toàn vẹn. Khi một kết nối được tạo, server
sẽ chọn thuật toán, nếu có, sẽ chọn một trong các thuật toán trong file sqlnet.ora.
16
Server tìm kiếm thuật toán phù hợp có sẵn trên cả client và server và đưa nó
làm thuật toán đầu tiên trong danh sách sở hữu của nó và cả danh sách của client. Nếu
một bên kết nối không chỉ ra một danh sách thuật toán, tất cả thuật toán được cài đặt ở
bên đó đều được chấp nhận. Kết nối thất bại với lỗi ORA-12650 nếu một trong 2 bên
chỉ định một thuật toán mà nó chưa được cài đặt.
Các thông số mã hoá và toàn vẹn được định nghĩa bằng cách sửa đổi file
sqlnet.ora trên các client và server trong mạng.
Có thể chọn để cấu hình bất kỳ hoặc tất cả các thuật toán mã hoá có sẵn trên
Oracle Advanced Security (Bảng 3.2) và một hoặc cả 2 thuật toán toàn vẹn có sẵn
(3.3). Chỉ một thuật toán mã hoá và một thuật toán toàn vẹn được sử dụng cho mỗi
phiên kết nối.
Chú ý: Oracle Advanced Security lựa chọn thuật toán mã hoá và toàn vẹn đầu
tiên kích hoạt trên client và server. Oracle Corporation khuyến cáo rằng bạn nên lựa
chọn các thuật toán và độ dài khoá theo thứ tự mà trong đó bạn phải đàm phán, chọn
độ dài khoá đầu tiên mạnh nhất.
3.2. Thoả thuận mã hoá và toàn vẹn
Để xem xét nên bật mã hoá hay toàn vẹn, bạn có thể chỉ định 4 giá trị có thể

cho Các thông số cấu hình mã hoá và toàn vẹn Oracle Advanced Security. 4 giá trị này
lắng nghe theo thứ tự tăng độ bảo mật. Giá trị Rejected cung cấp mức nhỏ nhất bảo
mật liên lạc giữa client và server và giá trị Required cung cấp mức bảo mật cao nhất:
- Rejected
- Accepted (Giá trị mặc định của các thông số).
- Requested
- Required
3.2.1. Rejected
Chọn giá trị này nếu bạn không muốn kích hoạt dịch vụ bảo mật, thận chí nếu
bên khác yêu cầu.
Trong kich bản này, bên này của kết nối không chỉ địch dịch vụ bảo mật. Nếu
bên kia cài đặt giá trị Required, kết nối sẽ chấm dứt với lỗi ORA-12560. Nếu bên kia
cài đặt giá trị Requested, Accepted hoặc Rejected, kết nỗi sẽ tiếp thục mà không có lỗi
và không kích hoạt dịch vụ bảo mật.
17
3.2.2. Accepted
Chọn giá trị này để kích hoạt dịch vụ bảo mật nếu cần thiết hoặc yêu cầu từ bên
kia.
Trong kịch bản này, bên này của kết nối không yêu cầu dịch vụ bảo mật nhưng
nó được kích hoạt nếu bên kia cài đặt giá trị Required hoặc Requested. Nếu bên kia cài
đặt Required hoặc Requested và một thuật toán mã hoá và toàn vẹn phù hợp được tìm
thấy, kết nối sẽ tiếp tục mà không có lỗi và dịch vụ bảo mật được kích hoạt. Nếu bên
kia cài đặt giá trị Required và không có thuật toán nào khớp được tìm thấy thì kết nối
sẽ chấm dứt với lỗi ORA-12650.
Nếu bên kia cài đặt giá trị Requested và không có thuật toán nào khớp được tìm
thấy hoặc nếu bên kia cài đặt giá trị Accepted hoặc Rejected, kết nối sẽ tiếp tục mà
không có lỗi và dịch vụ bảo mật không được kích hoạt.
3.2.3. Requested
Chọn giá trị này để kích hoạt dịch vụ bảo mật nếu bên kia đồng ý.
Nếu bên này của kết nối chỉ rõ mong muốn dịch vụ bảo mật nhưng không cần

thiết. Dịch vụ bảo mật sẽ được kích hoạt nếu bên kia chỉ rõ Accepted, Requested hoặc
Required. Nếu có các thuật toán phù hợp có sẵn ở bên kia, nếu không thì dịch vụ sẽ
không được kích hoạt. Nếu bên kia chỉ định Required và không có thuật toán nào
khớp, kết nối sẽ thất bại.
3.2.4. Required
Chọn giá trị này để kích hoạt dịch vụ bảo mật hoặc ngăn kết nối.
Nếu bên này của kết nối chỉ rõ dịch vụ bảo mật cần được kích hoạt. Kết nối thất
bại nếu bên còn lại chỉ định Rejected hoặc nếu không có thuật toán nào tương thích ở
bên đó.
Bảng sau cho thấy dịch vụ bảo mật được kích hoạt, dựa trên việc kết hợp của
các thông số cấu hình client và server. Nếu server hoặc client chỉ rõ Required, thuật
toán chung thiết sẽ làm cho kết nối thất bại. Hoặc nếu dịch vụ được kích hoạt, thiếu
thuật toán dịch vụ chung thì kết quả dịch vụ sẽ bị tắt.
18
Bảng : Thỏa thuận mã hóa và toàn vẹn dữ liệu
3.3. Cài đặt mầm mã hoá (tuỳ chọn)
Các mầm khoá khác nhau được dùng để phát ra một số ngẫu nhiên trên client
hoặc server. Một trong số các mầm khoá có thể được dùng như là mầm mã hoá định
nghĩa người dùng. Cái này cài đặt với thông số sqlnet.crypto_seed trong file sqlnet.ora.
Nó có thể gồm 10 đến 70 ký tự và thay đổi trong bất kỳ thời điểm nào. Trao đổi khoá
Diffe-Hellman dùng số ngẫu nhiên để phát ra những khoá phiên duy nhất cho mỗi
phiên kết nối.
3.4. Cấu hình các thông số mã hoá và toàn vẹn sử dụng Oracle Net Manager
Bạn có thể cài đặt hoặc thay đổi thông số mã hoá và toàn vẹn bằng cách cài đặt
và sử dụng Oracle Net Manager.
Cầu hình mã hoá trên Client và server:
Dùng Oracle Net Manager để cấu hình mã hoá trên client và server (2-2 page)
Điều hướng đến Oracle Advanced Security profile, hiện tab Oracle Advanced
Security:
19

Hình : Cửa sổ mã hóa nâng cao dữ liệu mạng
2. Chọn Encryption tab.
3. Tuỳ vào hệ thống ở trên bạn cấu hình, chọn client hoặc server từ danh sách
xổ xuống.
4. Ở Encryption Type, chọn một trong các giá trị:
− Requested
− Required
− Accepted
− Rejected
5. (Tuỳ chọn) Trong ô Encryption Seed, nhập ngẫu nhiên các ký tự (trong
khoảng 10-70), mầm mã hoá cho client có thể không cần giống trên server.
6. Chọn các thuật toán mã hoá trong Available Methods. Di chuyển nó đến
Selected Methods bằng cách chọn button [>].
7. Chọn File > Save Network Configuration. File sqlnet.ora sẽ được update.
8. Lặp lại quá trình này cho cấu hình mã hoá trên hệ thống khác. File sqlnet.ora
trên 2 hệ thống nên chứa các dòng sau:
Thuật toán mã hoá hợp lệ và giá trị pháp lý liên quan của chúng được tổng hợp
trong bảng sau:
20
Bảng : Thuật toán mã hóa
Cấu hình toàn vẹn trên client và server:
Dùng Oracle Net Manager để cấu hình toàn vẹn dữ liệu trên client và server
(Page 2-2).
Vào profile Oracle Advanced Security > Integrity tab.
2. Tuỳ theo hệ thống cần cấu hình, chọn server hoặc client.
3. Ở mục Checksum Level, chọn một trong các mức giá trị checksum:
− Requested
− Required
− Accepted
− Rejected

5. Chọn các thuật toán toàn vẹn trong danh sách Available Methods. Chuyển nó
qua Selected Methods bằng cách nhấn button [>].
6. File > Save Network Configuration. File sqlnet.ora sẽ được update
7. Lặp lại quá trình cho cấu hình integrity trên hệ thống khác. File sqlnet.ora
trên 2 hệ thống phải chứa các dòng sau:
Các thuật toán toàn vẹn hợp lệ và giá trị pháp lý liên quan như bảng sau:
21
Bảng : Thuật toán băm và giá trị pháp lý tương ứng
22
Tài liệu tham khảo
23

×