Mã hóa dữ liệu trong suốt (Transparent data encrytion – TDE) là một trong những cơ chế an toàn, cho phép mã hóa dữ liệu nhạy cảm được lưu trữ trong bảng và không gian bảng. Dữ liệu được mã hóa và giải mã trong suốt đối với người dùng và các ứng dụng có quyền truy cập vào 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 trong mô-đun an toàn bên ngoài cơ sở dữ liệu (CSDL).
TDE thực hiện mã hóa và giải mã thời gian thực các dữ liệu và các tệp nhật ký [1]. Việc mã hóa sử dụng khóa mã hóa dữ liệu (Data Encryption Key - DEK) được lưu trữ trong bản ghi khởi động CSDL để sẵn sàng trong quá trình phục hồi. Bên cạnh đó, TDE có khả năng bảo vệ dữ liệu lưu trữ, 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ết lập trong các ngành công nghiệp khác nhau. Điều này cho phép các nhà phát triể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 cần thay đổi các ứng dụng hiện có.
Người dùng và ứng dụng cơ sở dữ liệu không cần quản lý lưu trữ khóa hoặc tạo bảng phụ, dạng xem và kích hoạt. Một ứng dụng xử lý dữ liệu nhạy cảm có thể sử dụng TDE để cung cấp mã hóa dữ liệu mạnh mẽ với ít hoặc không có thay đổi nào đối với ứng dụng.
Vì vậy, TDE có các ưu điểm nổi bật sau:
- Đảm bảo an toàn các dữ liệu nhạy cảm trong trường hợp phương tiện lưu trữ hoặc tệp dữ liệu bị đánh cắp.
- Tuân thủ các quy định liên quan đến an toàn.
- Không cần tạo trình kích hoạt hoặc chế độ xem để giải mã dữ liệu cho ngườ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 CSDL.
- 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.
- Hoạt động quản lý được tự động hóa. Người dùng hoặc ứng dụng không cần quản lý khóa mã hóa.
Theo [3], có hai loại mã hóa TDE: Mã hóa cột và mã hóa không gian bảng. Trong khi mã hóa cột TDE cho phép mã hóa dữ liệu nhạy cảm được lưu trữ trong các cột của bảng được chọn, thì mã hóa không gian bảng TDE cho phép mã hóa tất cả dữ liệu được lưu trữ trong một vùng bảng.
Cả mã hóa cột và mã hóa không gian bảng TDE đều sử dụng kiến trúc dựa trên khóa hai tầng. Ngay cả khi dữ liệu mã hóa được truy xuất, dữ liệu cũng không được hiển thị cho đến khi quá trình giải mã được ủy quyền xảy ra, quá trình này là tự động cho người dùng được ủy quyền truy cập vào bảng.
Mã hóa cột TDE
Mã hóa cột TDE được sử dụng để bảo vệ dữ liệu nhạy cảm, chẳng hạn như thẻ tín dụng và số an sinh xã hội, được lưu trữ trong các cột của bảng. Loại mã hóa này sử dụng kiến trúc hai lớp, dựa trên khóa để mã hóa và giải mã các cột bảng nhạy cảm. Trong đó, khóa mã hóa chính (Master encryption key) được sử dụng để mã hóa khóa bảng (Table key). Khóa mã hóa chính được lưu trữ trong một mô-đun an toàn bên ngoài, có thể là ví (Wallet) hoặc mô-đun an toàn phần cứng (HSM). Chẳng hạn, đối với hệ quản trị Oracle sử dụng Oracle Wallet hoặc mô-đun an toàn phần cứng để lưu trữ khóa mã hóa chính.
Hình 1. Quá trình mã hóa cột TDE [3]
Việc lưu trữ theo cách này sẽ ngăn việc sử dụng trái phép các khóa mật và tách biệt các chức năng chương trình thông thường khỏi các hoạt động mã hóa, giúp phân chia nhiệm vụ giữa người quản trị CSDL và quản trị an toàn, dẫn đến tăng cường khả năng bảo mật.
Mã hóa không gian bảng TDE
Mã hóa không gian bảng TDE cho phép mã hóa toàn bộ vùng bảng. Tất cả các đối tượng được tạo trong không gian bảng sẽ được mã hóa tự động. Mã hóa không gian bảng TDE rất hữu ích nếu trong trường hợp muốn bảo vệ dữ liệu nhạy cảm trong các bảng. Trường hợp này, không cần thực hiện phân tích chi tiết từng cột trong bảng để xác định các cột cần mã hóa.
Ngoài ra, mã hóa không gian bảng TDE tận dụng mã hóa hàng loạt và bộ đệm để cung cấp hiệu suất nâng cao. Mặc dù tác động hiệu suất thực tế trên các ứng dụng có thể khác nhau, nhưng chi phí hiệu năng được ước tính trong khoảng từ 5% đến 8%.
Hình 2. Quá trình mã hóa không gian bảng TDE [3]
Mã hóa không gian bảng TDE là một thay thế tốt cho mã hóa cột TDE nếu các bảng chứa dữ liệu nhạy cảm trong nhiều cột hoặc nếu muốn bảo vệ toàn bộ bảng chứ không chỉ các cột riêng lẻ.
Loại mã hóa này mã hóa tất cả dữ liệu được lưu trữ trong một vùng bảng và dữ liệu làm lại (redo) tương ứng của nó. Điều này bao gồm (các LOB) đối tượng lớn bên trong như BLOBs và CLOBs. Mã hóa không gian bảng TDE không mã hóa dữ liệu được lưu trữ bên ngoài vùng bảng. Ví dụ, dữ liệu BFILE không được mã hóa vì nó được lưu trữ bên ngoài CSDL. Nếu tạo một bảng có một cột BFILE trong không gian bảng được mã hóa, thì cột cụ thể này sẽ không được mã hóa. Tuy nhiên, các file LOB được hỗ trợ từ CSDL Oracle 11 g phiên bản 1 (11.1).
Tất cả dữ liệu trong một vùng bảng được mã hóa sẽ được lưu trữ ở định dạng mã hóa trên đĩa. Dữ liệu được giải mã trong suốt cho người dùng được ủy quyền có các đặc quyền cần thiết để được xem hoặc sửa đổi dữ liệu. Người dùng hoặc ứng dụng CSDL không cần biết liệu dữ liệu trong một bảng cụ thể có được mã hóa trên đĩa hay không. Trong trường hợp các tệp dữ liệu trên đĩa hoặc phương tiện sao lưu bị đánh cắp, dữ liệu sẽ không bị xâm phạm.
Mã hóa không gian bảng TDE cũng sử dụng kiến trúc hai tầng (Hình 2), dựa trên khóa để mã hóa trong suốt và giải mã không gian bảng. Khóa chính TDE cũng có chức năng và cách thức lưu trữ như mã hóa cột TDE.
Mã hóa không gian bảng TDE cũng cho phép phạm vi chỉ mục quét dữ liệu trong không gian bảng được mã hóa. Điều này là không thể với mã hóa cột TDE.
Lưu ý, dữ liệu mã hóa được bảo vệ trong các hoạt động như JOIN và SORT. Điều này có nghĩa là dữ liệu được an toàn khi nó được di chuyển đến các vùng bảng tạm thời. Dữ liệu trong nhật ký hoàn tác và làm lại cũng được bảo vệ.
Các thuật toán mã hóa và toàn vẹn được hỗ trợ
Theo mặc định, TDE sử dụng chuẩn mã hóa nâng cao với khóa mật mã có độ dài 192 bit (AES192). Ngoài ra, theo mặc định salt được thêm vào bản rõ (Clear text) trước khi mã hóa trừ khi được quy định khác. Lưu ý, salt không thể được thêm vào các cột được lập chỉ mục mà người dùng muốn mã hóa. Đối với các cột được lập chỉ mục, chọn tham số NO SALT cho mệnh đề ENCRYPT SQL.
Hình 3 thể hiện một số câu lệnh SQL được sử dụng trong mã hóa TDE.
Hình 3. Các thuật toán mã hóa hỗ trợ cho TDE
Hình 3. Các lệnh SQL trong TDE
Các cân nhắc về an toàn cho TDE nên được xem xét trong quá trình hoạt động. Quản trị viên an toàn phải xác định mức độ rủi ro cần giải quyết và mức độ nhạy cảm của dữ liệu được duy trì bởi trang web. Chi phí và lợi ích phải được đánh giá cho các phương pháp thay thế để đạt được sự bảo vệ chấp nhận được. Trong nhiều trường hợp, nên có các quản trị viên an toàn riêng biệt, wallet riêng cho TDE và các quy trình sao lưu được bảo vệ cho dữ liệu được mã hóa. Chẳng hạn, trong Oracle, có một wallet riêng cho TDE cho phép tự động đăng nhập cho các thành phần khác nhưng vẫn bảo vệ mật khẩu cho wallet TDE.
Các cân nhắc an toàn bổ sung cũng cần được áp dụng cho CSDL và hoạt động mạng thông thường khi sử dụng TDE. Dữ liệu cột được mã hóa vẫn được mã hóa trong các tệp dữ liệu, hoàn tác nhật ký, nhật ký làm lại và bộ đệm của khu vực chung của hệ thống. Tuy nhiên, dữ liệu được giải mã trong quá trình ước lượng biểu thức, khiến dữ liệu được giải mã có thể xuất hiện trong tệp trao đổi trên đĩa. Khi đó, người dùng hệ điều hành có đặc quyền sẽ có khả năng xem dữ liệu này.
Các giá trị cột được mã hóa bằng TDE được lưu trữ trong các tệp dữ liệu ở dạng được mã hóa. Tuy nhiên, các tệp dữ liệu này vẫn có thể chứa một số đoạn văn bản rõ, được gọi là bản sao ma, còn sót lại bởi các hoạt động dữ liệu trong quá khứ trên bảng. Điều này tương tự với việc tìm kiếm dữ liệu trên đĩa sau khi một tệp đã bị xóa bởi hệ điều hành.
Các đoạn văn bản rõ cũ có thể xuất hiện trong một thời gian cho đến khi cơ sở dữ liệu ghi đè lên các khối có chứa các giá trị đó. Nếu người dùng đặc quyền bỏ qua các điều khiển truy cập của cơ sở dữ liệu, họ có thể truy cập trực tiếp các giá trị này trong tệp dữ liệu lưu giữ không gian bảng. Do đó, có thể sử dụng quy trình sau để giảm thiểu rủi ro này:
Bước 1: Tạo một vùng bảng mới trong một tệp dữ liệu mới, có thể sử dụng câu lệnh CREATE TABLESPACE.
Bước 2: Di chuyển bảng chứa các cột được mã hóa sang không gian bảng mới sử dụng câu lệnh ALTER TABLE.....MOVE. Lặp lại bước này cho tất cả các đối tượng trong không gian bảng ban đầu.
Bước 3: Giải phóng không gian bảng ban đầu sử dụng câu lệnh DROP TABLESPACE tablespace INCLUDING CONTENTS KEEP DATAFILES. Người dùng nên xóa các tệp dữ liệu một cách an toàn bằng các tiện ích cụ thể của DBMS đang sử dụng.
Bước 4: Sử dụng các tiện ích cụ thể của DBMS và hệ thống tệp để xóa an toàn tệp dữ liệu cũ. Chẳng hạn các tiện ích như shred (trên Linux) và sdelete (trên Windows).
Nếu có nhiều CSDL được cài đặt trên cùng một máy chủ, thì mỗi CSDL phải truy cập vào Wallet mã hóa dữ liệu trong suốt của chính nó. Wallet không được thiết kế để được chia sẻ giữa các cơ sở dữ liệu. Theo thiết kế, phải có một wallet cho mỗi CSDL riêng biệt, nên không thể sử dụng cùng một wallet cho nhiều cơ sở dữ liệu.
Trong Oracle, để định cấu hình tệp sqlnet.ora cho môi trường đa CSDL, hãy sử dụng một trong các tùy chọn sau:
- Nếu các CSDL chia sẻ cùng hệ quản trị Oracle, thì hãy giữ tệp sqlnet.ora ở vị trí mặc định, trong thư mục ORACLE_HOME/network/ admin. Trong trường hợp này, tốt nhất nên sử dụng vị trí mặc định. Đảm bảo rằng tệp sqlnet. ora không có mục WALLET_LOCATION hoặc ENCRYPTION_WALLET_LOCATION. Mã hóa dữ liệu trong suốt truy cập wallet từ sqlnet. ora vị trí mặc định nếu hai mục nhập này không có trong tệp sqlnet.ora.
- Chỉ định vị trí ví dựa trên cài đặt biến môi trường, chẳng hạn như ORACLE_SID. Ví dụ: ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /home/oracle/wallet/$ORACLE_SID)
- Sử dụng các tệp sqlnet.ora riêng biệt, một tệp cho mỗi cơ sở dữ liệu. Đảm bảo rằng đã đặt chính xác biến môi trường TNS_ADMIN để trỏ đến cấu hình cơ sở dữ liệu chính xác.
Mặc dù có rất nhiều ưu điểm, nhưng TDE không cung cấp mã hóa trên kênh truyền thông. Khi kích hoạt TDE, phải sao lưu chứng thư và khóa riêng gắn với chứng thư đó. Nếu chứng thư không có sẵn hoặc phải khôi phục hay đính kèm CSDL trên một máy chủ khác, thì phải có bản sao lưu của cả chứng thư và khóa riêng. Nếu không, người dùng sẽ không thể truy cập thành công CSDL.
Bên cạnh đó, phải lưu lại chứng thư mã hóa ngay cả khi TDE không còn được kích hoạt trên CSDL. Mặc dù, CSDL không được mã hóa, nhưng khóa mã hóa CSDL cần được lưu trữ vì có thể cần phải được truy cập cho một số hoạt động.
Mặt khác, việc các chứng thư được bảo vệ bằng mật khẩu sau khi chúng được sử dụng bởi TDE sẽ gây ra việc CSDL không thể truy cập được sau khi khởi động lại.
Kết luận
Mặc dù mã hóa dữ liệu có vẻ như là một quá trình khó khăn, phức tạp, tuy nhiên với phương pháp TDE vấn đề này trở nên đơn giản hơn rất nhiều. Hiện nay hầu hết các hệ quản trị cơ sở dữ liệu mạnh đều hỗ trợ cơ chế mã hóa này, chẳng hạn như Oracle, SQL Server. Tùy vào từng hệ quản trị, các bước tiến hành mã hóa sẽ có thể khác nhau. Đây là phương pháp mã hóa dữ liệu được sử dụng rộng rãi hiện nay cho cơ sở dữ liệu. Tuy nhiên, để áp dụng mã hóa TDE bảo vệ cho dữ liệu nhạy cảm trong CSDL, quản trị viên cần thận trọng và quan tâm đến những vấn đề an toàn liên quan.
TÀI LIỆU THAM KHẢO 1. Dr Anwar pasha Deshmukh, Transparent Data Encryption- Security of Database Using Microsoft SQL Server 2008 and Oracle, University of Tabuk, IJCSt Vol. 2, ISSue 2, June 2011. 3. https://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#ASOAG10136 |
TS. Trần Thị Lượng, Học viện Kỹ thuật mật mã
16:00 | 03/09/2021
16:00 | 14/09/2020
16:34 | 24/05/2012
08:00 | 24/08/2021
14:00 | 03/01/2008
10:00 | 21/04/2023
10:00 | 10/04/2024
14:00 | 02/10/2024
Trong bối cảnh các cuộc tấn công mạng ngày càng tinh vi và phức tạp, Zero Trust đang nổi lên như một mô hình bảo mật toàn diện cho doanh nghiệp. Tại Hội thảo Netpoleon Solutions Day 2024 với chủ đề “Transforming Security with Zero Trust”, ông Nguyễn Kỳ Văn, Giám đốc Netpoleon Việt Nam đã chia sẻ những góc nhìn sâu sắc về tầm quan trọng của mô hình Zero Trust và cách thức doanh nghiệp Việt Nam có thể ứng dụng hiệu quả giải pháp này.
16:00 | 04/08/2024
Với sự phát triển mạnh mẽ của công nghệ số, số lượng các phần mềm chương trình được công bố ngày càng lớn. Song hành với đó là việc tin tặc luôn tìm cách phân tích, dịch ngược các chương trình nhằm lấy cắp ý tưởng, bẻ khóa phần mềm thương mại gây tổn hại tới các tổ chức, cá nhân phát triển phần mềm. Đặc biệt, trong ngành Cơ yếu có những chương trình có tích hợp các thuật toán mật mã ở mức mật và tối mật thì việc chống phân tích, dịch ngược có vai trò hết sức quan trọng. Do đó, việc phát triển một giải pháp bảo vệ các chương trình phần mềm chống lại nguy cơ phân tích, dịch ngược là rất cấp thiết.
11:00 | 13/05/2024
Trong lĩnh vực chữ ký số, lược đồ ký số dựa trên đường cong Elliptic (ECDSA) được đánh giá là một trong những lược đồ chữ ký số có độ an toàn cao, dù ra đời sau nhưng ECDSA đang dần được thay thế cho lược đồ ký số RSA. Bài báo này tập trung giới thiệu lược đồ ECDSA, ứng dụng của ECDSA trong thực tế và các tham số an toàn được khuyến nghị dùng cho ECDSA.
14:00 | 04/03/2024
Ngày nay, tất cả các lĩnh vực trong đời sống xã hội đều có xu hướng tích hợp và tự động hóa, trong đó các giao dịch số là yêu cầu bắt buộc. Do vậy, các tấn công lên thiết bị phần cứng, đặc biệt là các thiết bị bảo mật có thể kéo theo những tổn thất to lớn như: lộ thông tin cá nhân, bị truy cập trái phép hoặc đánh cắp tài khoản ngân hàng,… So với các loại tấn công khác, tấn công kênh kề hiện đang có nhiều khả năng vượt trội. Trong bài báo này, nhóm tác giả sẽ trình bày sơ lược về kết quả thực hành tấn công kênh kề lên mã khối Kalyna trên hệ thống Analyzr của Viện Khoa học - Công nghệ mật mã. Nhóm tác giả đã tấn công thành công và khôi phục đúng 15 byte khóa trên tổng số 16 byte khóa của thuật toán Kalyna cài đặt trên bo mạch Nucleo 64.
Trong thời đại ngày nay, cùng với sự phát triển của khoa học kỹ thuật có ngày càng nhiều những cuộc tấn công vào phần cứng và gây ra nhiều hậu quả nghiêm trọng. So với các loại tấn công khác, tấn công qua kênh kề đang được nghiên cứu do khả năng khôi phục lại khóa bí mật trong khi hệ thống vẫn hoạt động bình thường mà không hề làm thay đổi phần cứng. Bài báo này sẽ trình bày một cách sơ lược về những kết quả cuộc tấn công kênh kề lên mã hóa RSA cài đặt trên điện thoại thông minh sử dụng hệ điều hành Android tại Viện Khoa học - Công nghệ mật mã. Nhóm tác giả đã tấn công khôi phục được một phần khóa bí mật của mã hóa RSA cài đặt trên điện thoại thông minh và chứng minh khả năng rò rỉ thông tin qua kênh kề.
14:00 | 11/09/2024
Cục An toàn thông tin vừa phát đi cảnh báo về chiêu trò lừa đảo mới mạo danh cơ quan an sinh xã hội, dụ người dân nhận tiền hỗ trợ, trợ cấp... Tuy nhiên, đằng sau những lời "có cánh" lại là cái bẫy tinh vi nhằm chiếm đoạt tài sản.
10:00 | 30/10/2024