3.6. ĐỀ XUẤT GIẢI PHÁP LƯU TRỮ ẢNH DICOM AN TOÀN TRONG CSDL
3.6.3 Lựa chọn hệ quản trị cơ sở dữ liệu đáp ứng
Hiện trên thị trường phần mềm hệ quản trị CSDL có nhiều sản phẩm như Microsoft SQL SERVER 2012, Oracle 12c, MySQL (mã nguồn mở). Tuy nhiên với bài toán lưu trữ an toàn ảnh DICOM, đề xuất sử dụng hệ quản trị CSDL Oracle 12c vì những lý do sau:
Thứ nhất, oracle hỗ trợ lưu trữ ảnh DICOM trong bảng CSDL. Oracle 12c có một kiểu dữ liệu hỗ trợ việc lưu trữ ảnh DICOM là ORDDICOM. Kiểu dữ liệu này tương tự như các đối tượng trong C++ hay giống như khái niệm về các lớp Java.
Khi sử dụng kiểu dữ liệu này, các ảnh DICOM có thể được lưu trữ trong các cột của bảng CSDL. Nhờ vậy có thể sử dụng câu lệnh truy vấn để tìm kiếm, cập nhật trong CSDL lưu trữ ảnh DICOM. Một đối tượng DICOM trong CSDL Oracle bao gồm các thành phần:
- Các thuộc tính metadata: thông tin người bệnh, bác sĩ điều trị, dạng bệnh, - Ảnh DICOM
- Các phương thức của đối tượng: khởi tạo, kiểm tra tính hợp lệ, lưu trữ, ẩn giấu thông tin, thi hành, truy hồi thông tin.
Việc import ảnh DICOM vào CSDL từ 2 nguồn: file ảnh rời rạc hoặc trực tiếp từ máy chụp chiếu. Nếu import từ file ảnh, có thể sử dụng các thủ tục của ngôn ngữ PL/SQL, Java, SQL Loader, DataPump để tự động hóa việc import một số lượng lớn các file. Còn nếu import từ các thiết bị chụp chiếu thì cần sử dụng giao thức DICOM Communication Protocol. Kết quả là làm giảm thời gian công sức lưu trữ và tránh được nhầm lẫn giữa các hồ sơ của các bệnh nhân.
Thứ hai, Oracle 12c cho phép mã hóa các thông tin được lưu trong CSDL bằng tính năng Transparent Data Encryption (TDE). Tính năng này sẽ mã hóa hồ sơ dữ liệu người bệnh. Những người không có thẩm quyền sẽ không thể xem được hồ sơ người bệnh được lưu trong CSDL vì các hồ sơ này đã được mã hóa. Kể cả người đó
có quyền quản trị hệ điều hành máy chủ CSDL hoặc người quản trị CSDL cũng KHÔNG thể xem được nội dung.
Hình. Người quản trị máy chủ chỉ nhận được thông tin mã hóa
Ở hình trên, người quản trị máy chủ thực thi câu lệnh lấy dữ liệu hồ sơ nhưng thông tin trả về là các file đã được mã hóa. Các thuật toán mã hóa được TDE sử dụng ở bảng dưới:
Một tính năng vượt trội khác của TDE đó là cho phép chỉ mã hóa những cột thông tin nhạy cảm trong CSDL, ví dụ họ tên, ngày tháng năm sinh, số bảo hiểm xã hội, và không mã hóa những cột thông tin khác, ví dụ tên bệnh viện. Các cột được mã hóa sẽ giữ nguyên trạng thái khi được sao lưu ra các phương tiện backup khác, giúp cho thông tin luôn ở trạng thái bí mật, kể cả khi có kẻ đánh cắp các băng đĩa sao lưu dữ liệu. Nếu muốn mã hóa toàn bộ CSDL thì TDE cho phép thực hiện điều này bằng tính năng TDE TableSpace Encryption. Như vậy không cần phải xác định những cột nào chứa thông tin nhạy cảm, cột nào chứa thông tin ít nhạy cảm, mà toàn bộ CSDL được mã hóa.
Trong vấn đề mã hóa dữ liệu thì việc tạo khóa và quản lý khóa là công việc khó khăn nhất. Oracle 12c tích hợp modun quản lý khóa (build-in key management).
Modun này có kiến trúc 2 lớp khóa: lớp khóa mã hóa dữ liệu và lớp khóa master.
Các khóa mã hóa dữ liệu được quản lý tự động bởi modun và được mã hóa bởi khóa master. Khóa master được lưu trữ bên ngoài CSDL hồ sơ y tế (không nằm trong CSDL y tế) và được quản lý bằng tính năng Oracle Wallet (Là một file dạng chuẩn PKCS#12). Với việc lưu trữ tách biệt dữ liệu mã hóa với key master, khiến kẻ tấn công nếu có xâm nhập được vào dữ liệu mã hóa, cũng không làm gì được vì không thể lấy được khóa master. Hơn nữa kiến trúc 2 lớp khóa còn hỗ trợ việc đổi khóa master, khi bạn cảm thấy khóa master cũ không còn an toàn, bạn có thể đổi khóa master mới mà không làm ảnh hưởng đến dữ liệu của người sử dụng.
Hình. Giao diện quản lý và đổi khóa master
Thứ 3, Oracle 12c nâng cấp tính năng phân quyền truy cập dựa trên vai trò: không hiển thị những thông tin nhạy cảm đối với những người không có đủ thẩm quyền xem những thông tin đó, mà chỉ hiển thị những thông tin cần thiết đối với họ. Ví dụ khi bệnh nhân gọi điện đến bệnh viện gặp bộ phận lễ tân nhờ trợ giúp. Lễ tân hỏi số ID người bệnh và tìm kiếm các thông tin về người bệnh. Tuy nhiên lễ tân sẽ không thể xem được các thông tin nhạy cảm như tình trạng bệnh, số bảo hiểm, mà chỉ xem
được các thông tin như họ tên, tên bác sĩ điều trị. Tính năng này gọi là Oracle Advanced Security Data Redaction.
Hình. Tính năng Data Redaction
Bảng dưới đây mô tả các kiểu thay đổi thông tin gốc mà tính năng Data Redaction hỗ trợ.
Như vậy với tính năng Data Redaction, ta có thể phân quyền truy cập khác nhau đến những vai trò khác nhau. Ví dụ trong trường hợp đã nêu ban đầu, các bác sĩ tham gia hội chẩn hình ảnh chỉ có thể xem được hình ảnh mà không thể xem được các thông tin cá nhân của người bệnh. Chỉ có bác sĩ điều trị chính mới có quyền xem được những thông tin cá nhân người bệnh và những thong tin này được quy định bởi luật pháp và của bệnh viện nơi điều trị.