.2 Table USER-EAES-1

Một phần của tài liệu Nghiên cứu xây dựng giải pháp bảo vệ tính bí mật và tính riêng tư dữ liệu trong cơ sở dữ liệu bằng phương pháp mã hóa (Trang 40)

USER-ID C1-USR C2-USR C2-BKK

USER1 C1-USR1 C2-USR1 C2-BKK

... ...

- Thuật toán 2: Khi bộ khóa RSA của User được sinh là (KPU-USR, KPR-USR ). Backup sử dụng khóa công khai KPU-BKKmã hóa khóa bí mật KPR-USRcủa User (việc mã hóa này chỉ thực hiện một lần duy nhất cho một User khi sinh bộ khóa KPU-USR,KPR-USR). Khi KPR-USR bị mất thì Backup sử dụng KPR-BKKđể giải mã khóa KPR-USR .

Backup sử dụng khóa công khai KPU-BKKmã hóa khóa bí mật KPR-USRcủa User: C KPR-USR = ERSA (KPR-USR , KPU-BKK)

Quá trình mã hóa và giải mã: + Đối với User:

Mã hóa:

43 C2-USR1 = ERSA (KAES, KPU-USR1) Giải mã:

KAES = DRSA (C2-USR1, KPR-USR1) P = DAES (C1-USR1, KAES)

+ Đối với Backup: Mã hóa:

Không thực hiện Giải mã:

KPR-USR1 = DRSA ( C KPR-USR1, KPR-BKK) KAES = DRSA (C2-USR1, KPR-USR1)

P = DAES (C1-USR1, KAES)

* Dữ liệu mô phỏng được lưu trên các bảng như sau: Bảng 2.3 Table USER-KPU-2

USER-ID KPU C-KPR-USR

BKK KPU-BKK

USER1 KPU-USR1 C KPR-USR1

USER2 KPU-USR2 C KPR-USR2

...

Bảng 2.4 Table USER-EAES-2

USER-ID C1-USR C2-USR

USER1 C1-USR1 C2-USR1

44

- Thuật toán 3: Sử dụng KAESduy nhất cho từng User để mỗi lần mã hóa P.

Khi sinh bộ khóa RSA của User là (KPU-USR, KPR-USR ) thì sinh luôn khóa KAES. Sau đó cả User và Backup sử dụng RSA mã hóa KAES bằng khóa KPU-USR , KPU-BKK tương ứng.

Mã hóa KAES đối với User: C KAES-USR = ERSA (KAES , KPU-USR) Mã hóa KAES đối với Backup: C KAES-BKK = ERSA (KAES , KPU-BKK) Quá trình mã hóa và giải mã:

+ Đối với User: Mã hóa:

KAES = DRSA ( C KAES-USR1 , KPR-USR1) C1-USR1 = EAES (P, KAES)

Giải mã:

KAES = DRSA ( C KAES-USR1 , KPR-USR1) P = DAES (C1-USR1, KAES)

+ Đối với Backup: Mã hóa:

Không thực hiện Giải mã:

KAES = DRSA ( C KAES-BKK , KPR-BKK) P = DAES (C1-USR1, KAES)

45

* Dữ liệu mô phỏng được lưu trên các bảng như sau: Bảng 2.5 Table USER-KPU-3

USER-ID KPU C-KAES-USR C-KAES-BKK

BKK KPU-BKK

USER1 KPU-USR1 C KAES-USR1 C KAES-BKK USER2 KPU-USR2 C KAES-USR2 C KAES-BKK ...

Bảng 2.6 Table USER-EAES-3

USER-ID C1-USR

USER1 C1-USR1

...

2.3 Giải pháp thay đổi khóa bí mật khi dữ liệu đã được mã hóa

Trong trường hợp User muốn thay đổi khóa bí mật KPR-USR , do khóa này bị lộ hay do nhu cầu cá nhân. Hiện tại tất cả dữ liệu mật đã được mã hóa và chỉ giải mã được bởi duy nhất khóa bí mật KPR-USR(ngoại trừ Backup). Như vậy vấn đề tiếp tục đặt ra là giải quyết như thế nào một khi KPR-USR đã thay đổi mới ? Chúng tôi đưa ra các giảipháp như sau:

- Giải pháp 1: Trước khi thay đổi khóa KPR-USR, User phải thực hiện giải mã tất cả dữ liệu đã được mã hóa. Sau khi thay đổi khóa KPR-USRthành công, User tiếp tục mã hóa lại dữ liệu theo khóa bí mật KPR-USR mới.

- Giải pháp 2: Lưu lại lịch sử dữ liệu cho mỗi lần thay đổi khóa KPR-USR theo từng User và thực hiện lấy dữ liệu cho lần lưu sau cùng (Input-time sau cùng) để lần tìm khóa KPR-USR gốc (cấp lần đầu, tương ứng với khóa KPU-USR đã mã hóa). Thuật toán được mô tả chi tiết như sau:

46

Do tất cả dữ liệu đã được mã hóa bằng khóa bí mật KPR-USR gốc (cấp lần đầu) nên bắt buộc hệ thống phải lưu lại KPR-USR này (dạng mã hóa để bảo mật) khi có thay đổi KPR-USR mới.

+ Khi thay đổi KPR-USRlần 1: ( KPR-USR-1 , KPU-USR-1 )

Thực hiện mã hóa KPR-USR gốc và lưu vào bảng USER-KPR-HISTORY trong CSDL:

C KPR-USR = ERSA (KPR-USR , KPU-USR-1) Trong đó:

o KPR-USR và ( KPR-USR-i , KPU-USR-i ) tương ứng KPR-USR gốc và (KPR-USR , KPU-USR) lần thay đổi thứ i (trường hợp này i=1).

Bảng 2.7 Table USER-KPR-HISTORY sau khi User1 thay đổi KPR-USR lần 1

USER-ID C-KPR-USR KPU-USR-I INPUT-TIME

USER1 C KPR-USR KPU-USR-1 22-OCT-2016 19:00

* Input-time: Hệ thống ghi nhận ngày giờ đã thực hiện thay đổi khóa bí mật KPR. Sau khi thay đổi khóa bí mật thành công, User đăng nhập vào hệ thống giải mã KPR- USR để sử dụnggiải mã dữ liệu theo các bước:

b1: KPR-USR = DRSA ( C KPR-USR, KPR-USR-1 ) b2: Sử dụng KPR-USR để giải mã dữ liệu. Trong đó:

47

o C KPR-USR ,KPU-USR-1 được lấy từ mẫu tin theo Input-time sau cùng tương ứng với User trong bảng USER-KPR-HISTORY.

o KPR-USR-1 là khóa bí mật hiện hành (đã thay đổi thành công lần 1). + Khi thay đổi KPR-USRlần 2: ( KPR-USR-2 , KPU-USR-2 )

Thực hiện giải mã rồi mã hóa lại KPR-USR gốc bằng KPU-USR-2 và lưu vào bảng USER-KPR-HISTORY trong CSDL:

KPR-USR = DRSA ( C KPR-USR, KPR-USR-1 ) C KPR-USR = ERSA (KPR-USR , KPU-USR-2) Trong đó:

o KPR-USR và ( KPR-USR-i , KPU-USR-i ) tương ứng KPR-USR gốc và (KPR-USR , KPU-USR) lần thay đổi thứ i (trường hợp này i=2).

o C KPR-USR ,KPU-USR-1 được lấy từ mẫu tin theo Input-time sau cùng tương ứng với User trong bảng USER-KPR-HISTORY

o KPR-USR-1 là khóa bí mật hiện hành (cũ) trước khi thay đổi khóa mới (lần 2). Bảng 2.8 Table USER-KPR-HISTORY sau khi User1 thay đổi KPR-USR lần 2

USER-ID C-KPR-USR KPU-USR-I INPUT-TIME

USER1 C KPR-USR KPU-USR-1 22-OCT-2016 19:00

USER1 C KPR-USR KPU-USR-2 22-OCT-2016 20:30

Sau khi thay đổi khóa bí mật thành công, User đăng nhập vào hệ thống giải mã KPR- USR để sử dụnggiải mã dữ liệu theo các bước:

b1: KPR-USR = DRSA ( C KPR-USR, KPR-USR-2 ) b2: Sử dụng KPR-USR để giải mã dữ liệu.

48 Trong đó:

o KPR-USR là KPR-USR gốc (giải mã được tất cả dữ liệu mã hóa).

o C KPR-USR ,KPU-USR-2 được lấy từ mẫu tin theo Input-time sau cùng tương ứng với User trong bảng USER-KPR-HISTORY.

o KPR-USR-2 là khóa bí mật hiện hành (đã thay đổi thành công lần 2).

+ Tương tự thực hiện thay đổi KPR-USR cho các lần 3,4,...và thực hiện tương tự cho các User khác.

* Để xác thực thông tin người dùng (UserName, Password, PrivateKey) hợp lệ trước khi hệ thống chấp nhận cho thay đổi khóa bí mật, chữ ký số sử dụng hệ mã hóa RSA được ứng dụng để giải quyết vấn đề này. Do khóa bí mật hệ thống không lưu, vì vậy giải pháp sử dụng kỹ thuật chữ ký số để xác nhận “Old PrivateKey” là đúng hay không theo các bước sau: Chữ ký số = ERSA (MD5(Username) , KPR) . Hệ thống kiểm tra: DRSA (Chữ ký số , KPU) = MD5(Username). Trong đó:

- ERSA . DRSA : Mã hóa, giải mã bằng hệ mã RSA. - MD5: Mã hóa bằng hàm băm MD5.

- KPR, KPU, Username và Password: Khóa bí mật, khóa công khai, tên đăng nhập và mật khẩu của Userđăng nhập.

49

Sơ đồ kiểm tra xác thực thông tin người dùng (Username, Password, PrivateKey) trước khi hệ thống chấp nhận cho thay đổi khóa bí mật:

Hình 2.7 Sơ đồ kiểm tra xác thực thông tin đăng nhập khi thay đổi khóa bí mật.

Tiểu kết chương 2

Kết hợp hệ mật mã khóa công khai (RSA) và hệ mật mã khóa đối xứng (AES) để mã hóa dữ liệu, được ứng dụng để xây dựng giải pháp bảo vệ tính bí mật và tính riêng tư dữ liệu trong CSDL bằng phương pháp mã hóa. Chúng tôi đã xây dựng giải pháp kết hợp RSA-AES để mã hóa dữ liệu trong CSDL và đưa ra 3 thuật toán theo giải pháp này. Giải pháp đề xuất đảm bảo tin cậy và hiệu quả vì những lý do sau:

User nhập: -Username -Password

-PrivateKey Hệ thống kiểm tra: Username và Password Hợp lệ ? Thoát: Đăng nhập không thành công Băm: MD5(Username) Mã hóa: ERSA (MD5(Username) , KPR) Username Username, Password PrivateKey (KPR) Đúng Sai Chữ ký số Hệ thống giải mã: DRSA (Chữ ký số , KPU) So sánh ? Kết thúc: Đăng nhập thành công Sai Đúng Hệ thống: PublicKey KPU

50

- Giải pháp kết hợp RSA-AES mang lại hiệu quả cao trong quá trình mã hóa và giải mã. Do tốc độ của thuật toán RSA chậm hơn rất nhiều so với thuật toán mã hóa khóa đối xứng AES, vì lý do này nên chúng tôi không sử dụng thuật toán RSA để xử lý (mã hóa và giải mã) trực tiếp trên dữ liệu mà kết hợp với một thuật toán AES để mã hóa và giải mã dữ liệu. Kết hợp RSA-AES cũng đã được đề xuất áp dụng trong [4], [13], [14], [15], [16].

- Trong phạm vi nghiên cứu của đề tài, tính bí mật và tính riêng tư của dữ liệu được lưu trong CSDL luôn đảm bảo trước mọi tấn công:

+ Truy cập vào CSDL trái phép (từ bên ngoài, nội bộ bên trong hay DBA): Do dữ liệu được lưu trữ trên các bảng trong CSDL (thể hiện trên “DBMS” trong hình 2.3, hình 2.4) đã bị mã hóa (ngoại trừ khóa công khai).

+ Lấy cấp tập tin CSDL: Do dữ liệu đã được mã hóa trên các tập tin được lưu trữ trên ổ đĩa (thể hiện trên “STORAGE LAYER” trong hình 2.3, hình 2.4). - Không chỉ trong CSDL, tính bí mật và tính riêng tư của dữ liệu cũngđược bảo

vệ trên đường truyền (dữ liệu đã được mã hóa thể hiện trên “NETWORK” trong hình 2.3, hình 2.4).

Ở trong chương 2, các giải pháp nhằm nâng cao tính tiện ích và giải quyết các vấn đề liên quancũng được trình bày:

+ Giải pháp dự phòng để giải mã dữ liệu mã hóa trong trường hợp khóa bí mật bị mất.

+ Giải pháp thay đổi khóa bí mật khi dữ liệu đã được mã hóa.

+ Sơ đồ kiểm tra xác thực thông tin đăng nhập khi thay đổi khóa bí mật bằng cách ứng dụng chữ ký số sử dụng hệ mã RSA.

Trong chương tiếp theo, chúng tôi sẽ xây dựng chương trình thử nghiệm theo các giải pháp và thuật toán đã đề xuất.

51

CHƯƠNG 3:

XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM

3.1 Xây dựng chương trình

3.1.1 Bài toán thực nghiệm

Xây dựng chương trình thực nghiệm theo các giải pháp đã đề xuất: bảo vệ tính bí mật dữ liệu vị trí kho (Location) của hàng hóa vận chuyển bằng đường hàng không (không vận đơn-Airway Bill).

Vị trí kho của lô hàng được vận chuyển bằng đường hàng không cần được bảo mật thông tin trong quá trình khai thác. Điều này đặc biệt quan trong đối với những lô hàng cần được bảo mật cao trong quá trình khai thác như: chống mất trộm đối với những hàng hóa quí hiếm, tránh sai sót trong quá trình khai thác đối với nhân viên không được giao nhiệm vụ, hàng hóa cần theo dõi nhằm mục đích điều tra,..Như vậy bài toán đặt ra là thông tin vị trí của lô hàng chỉ có nhân viên được giao nhiệm vụ hoặc đang khai thác lô hàng này mới biết được, thông tin này cũng cần được bảo mật ngay cảngười quản trịviên cơ sở dữ liệu.

Thông tin vịtrí kho cũng được lưu trong cơ sở dữ liệu chung với các thông tin khác của không vận đơn, thông tin này được bảo mật bằng phương pháp mã hóa. Đối với nhân viên được giao nhiệm vụ thì dữ liệu mã hóa theo khóa công khai của nhân viên này, đối với nhân viên đang khai thác lô hàng thì sử dụng chính khóa công khai của mình để mã hóa.

Do dữ liệu vị trí trí kho đã mã hóa và chỉ giải mã được từ khóa bí mật tương ứng của người dùng, như vậy chương trình cần phải có giải pháp dự phòng để giải mã dữ liệu khi người dùng quên mất khóa bí mật hay cơ quan có nhu cầu cần thiết giải mã. Nâng cao tiện ích, chương trình cũng cho phép người dùng thay đổi khóa bí mật nếu cần mà vẫn đảm bảo giải mã được dữ liệu đã mã hóa trước đây hay tiếp tục mã hóa và giải mã dữ liệu mới.

Một phần của tài liệu Nghiên cứu xây dựng giải pháp bảo vệ tính bí mật và tính riêng tư dữ liệu trong cơ sở dữ liệu bằng phương pháp mã hóa (Trang 40)

Tải bản đầy đủ (PDF)

(49 trang)