CHƯƠNG 3: ỨNG DỤNG BẢO VỆ THÔNG TIN TRONG
3.2 Bảo vệ dữ liệu khi sử dụng điện toán đám mây
3.2.1 Mã hóa dữ liệu phía máy chủ ownCloud
OwnCloud bao gồm cả một ứng dụng mã hóa (Encryption App) phía máy chủ (server-side) [19], nếu muốn sử dụng ứng dụng này, người quản trị ownCloud cần phải kích hoạt để ứng dụng hoạt động. Khi đó, tất cả các tập tin dữ liệu của người sử dụng sẽ tự động được ownCloud mã hóa. Ứng dụng này sẽ mã hóa tất cả các tập tin được lưu trữ trên máy chủ ownCloud và tất cả các tập tin trên ổ lưu trữ từ xa được kết nối với máy chủ ownCloud. Vì vậy, khi kích hoạt ứng dụng này, người sử dụng sẽ không thể chọn một số tập tin không được mã hóa. Ứng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
dụng sử dụng tài khoản đăng nhập vào ownCloud của người dùng như mật khẩu cho khóa bí mật, người dùng cần đăng nhập và quản lý, chia sẻ các tập tin như bình thường và vẫn có thể thay đổi mật khẩu.
Ứng dụng mã hóa của ownCloud sử dụng thuật toán AES, quá trình mã hóa và giải mã xảy ra “trong suốt”, người dùng vẫn có thể sử dụng tất cả các tính năng, ứng dụng khác từ ownCloud như chia sẻ WebDAV .
Mã hóa phía máy chủ đặc biệt hữu ích cho những trường hợp sử dụng lưu trữ bên ngoài (external), đảm bảo cho người dùng lưu trữ bên ngoài mà bên thứ ba không truy cập được dữ liệu của mình.
3.2.1.1 Kích hoạt mã hóa
Có một vài lựa chọn khi sử dụng ứng dụng mã hóa của ownCloud. Khi người quản trị kích hoạt mã hóa lần đầu tiên thì người dùng cần phải đăng xuất và đăng nhập lại để tạo khóa mã hóa và mã hóa các tập tin.
Sau khi mã hóa đã được kích hoạt, người sử dụng sẽ thấy yêu cầu khởi tạo khóa. Lưu ý rằng không được để mất password ownCloud vì sẽ mất quyền truy cập vào các tập tin.
Hình 3.14: Khởi động khóa mã hóa dữ liệu trên máy chủ ownCloud OwnCloud cho phép người dùng đăng nhập mật khẩu để mã hóa. Điều này có nghĩa là người dùng nên chọn mật khẩu mạnh để bảo vệ dữ liệu. Mặc định, người dùng sẽ mất quyền truy cập vào dữ liệu của mình nếu mất mật khẩu đăng nhập. OwnCloud cũng có tính năng bổ sung là tạo khóa khôi phục để người quản trị có thể khôi phục dữ liệu của người dùng (xem phần mật khẩu khôi phục khóa)
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
3.2.1.2 Chia sẻ tập tin được mã hóa
Chỉ những người dùng có các khóa mã hóa bí mật có quyền truy cập vào các tập tin được mã hóa và thư mục được chia sẻ. Người dùng chưa tạo khóa mã hóa bí mật sẽ không có quyền truy cập vào các tập tin chia sẻ được mã hóa; họ sẽ thấy các thư mục và tên tập tin, nhưng sẽ không thể để mở hoặc tải về các tập tin
3.2.1.3 Mật khẩu khôi phục khóa (Key Recovery Password)
Nếu người quản trị ownCloud đã kích hoạt tính năng khôi phục khóa trong tài khoản quản trị thì người sử dụng có thể chọn tính năng này cho tài khoản của mình. Nếu người dùng kích hoạt Password recovery, người quản trị sẽ có thể phục hồi các tập tin của người dùng trong trường hợp họ bị mất mật khẩu ownCloud. Nếu không kích hoạt thì không có cách nào khôi phục lại các tập tin khi người dùng bị mất mật khẩu đăng nhập.
Hình 3.15: Kích hoạt chế độ mã hóa bằng tài khoản admin
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Hình 3.16: Kích hoạt chế độ khôi phục khóa mã hóa 3.2.1.4 Loại bỏ mã hóa
Nếu người quản trị ownCloud được chọn để loại bỏ ứng dụng mã hóa, người dùng sẽ vào trang cá nhân của mình và nhập mật khẩu vào form Encryption để giải mã các tập tin.
Hình 3.17: Thông báo ở trang cá nhân sau khi admin kích hoạt giải mã
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Hình 3.18: Giải mã thành công và loại bỏ khóa mã hóa dữ liệu
Nếu giải mã thành công, người dùng có thể chọn nút Delete Encryption Keys. Không có lý do gì để lưu chúng sau khi vô hiệu hóa giải mã, bởi vì nếu mã hóa được kích hoạt một lần nữa bạn sẽ tạo ra một tập khóa mới.
Lưu ý rằng, mọi dữ liệu được mã hóa và giải mã phía máy chủ, người quản trị sẽ luôn có thể chặn dữ liệu của người dùng. Vì thế, nên chọn những người quản trị đáng tin cậy hoặc tự quản trị.
3.2.1.5 Tập tin không được mã hóa
Chỉ dữ liệu trong các tập tin được mã hóa, tên tập tin hoặc các cấu trúc thư mục sẽ không được mã hóa.
Những tập tin sau cũng không được mã hóa:
- Các tập tin cũ trong thùng rác.
- Hình ảnh thu nhỏ (image thumbnail) từ ứng dụng Gallery.
- Preview từ ứng dụng Files
- Các chỉ mục tìm kiếm từ các ứng dụng tìm kiếm văn bản đầy đủ.
- Dữ liệu của ứng dụng bên thứ ba (third-party).
3.5.1.6 Cách thức hoạt động của mã hóa
Mã hóa dựa trên ba khóa khác nhau: mỗi người dùng có một cặp khóa bí mật, công khai (private/public key-pair), mỗi tập tin có một khóa tập tin (file-key) và để nhiều người sử dụng có thể truy cập tới một tập tin ta sử dụng khóa chia sẻ (share-key) [22].
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Mỗi người dùng có một cặp khóa bất đối xứng 4096 bit mạnh mẽ bao gồm một khóa bí mật và một khóa công khai. Các khóa bí mật được mã hóa với mật khẩu đăng nhập của người dùng sử dụng thuật toán mã hóa AES-256. Ngoài ra, có hai cặp khóa toàn hệ thống: một cặp cho phép ownCloud giải mã các tập tin chia sẻ liên kết công khai, một cặp nếu được kích hoạt sự phục hồi cặp khóa.
Các file-key được sử dụng để mã hóa tập tin của người sử dụng với AES- 256. Các tập tin được mã hóa với khóa công khai từ tất cả người dùng có quyền truy cập vào các tập tin. Điều này có nghĩa là nếu một người dùng thêm hoặc bớt từ một tập tin, ta chỉ cần mã hóa lại file-key nhỏ thay vì toàn bộ tập tin.
Mỗi khi một file-key được mã hóa cho nhiều người dùng OpenSSL sinh ra cho mỗi người dùng một khóa chia sẻ share-key bổ sung. Chỉ có sự kết hợp khóa bí mật của những người dùng với các share-key tương ứng cho phép người dùng giải mã các tập tin nhất định.
Hình 3.2: Mô hình mã hóa phía máy chủ ownCloud
Khi một tập tin mới được thêm vào hoặc được đồng bộ, ownCloud tạo ra một file-key liên kết và sử dụng để mã hóa tập tin bằng thuật toán mã hóa AES- 256. Như vậy, mỗi tập tin trên ownCloud có một file-key duy nhất.
OwnCloud cũng mã hóa chính file-key bằng cách sử dụng khóa công khai của từng người dùng. Kết quả của việc mã hóa này là một hoặc nhiều share-key.
Mỗi người dùng có một share-key duy nhất ứng với mỗi tập tin. Khi một người dùng được phép truy cập vào tập tin, ownCloud giải mã file-key với khóa riêng
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
của người dùng (private key) kết hợp với khóa share-key thích hợp. Sau đó, sử dụng file-key để giải mã tập tin.
Khi một tập tin được chia sẻ với người dùng mới, file-key lại được mã hóa một lần nữa với khóa công khai của người dùng mới để tạo ra một share-key mới.
Mặc dù ownCloud phải mã hóa lại file-key, nhưng công việc này giúp giảm bớt nhiều nhiệm vụ hơn so với việc phải mã hóa lại toàn bộ các tập tin vật lý khi chia sẻ tập tin với người dùng mới.
Toàn bộ mã nguồn phần mã hóa ownCloud được trình bày trong tài liệu CD đính kèm.
3.2.2 Nghiên cứu xây dựng giải pháp mã hóa dữ liệu người dùng
Giải pháp mã hóa dữ liệu có chức năng mã hóa đảm bảo an toàn thông tin dữ liệu của người sử dụng trước khi lưu trữ, quản lý, khai thác, chia sẻ trên điện toán đám mây thu tin tự động. Trình tự thực hiện diễn ra như sau:
1. Trước tiên, người nhận tệp mã hóa cần tạo cặp khóa bằng thuật toán mã hóa bất đối xứng, sau đó gửi khóa công khai cho người gửi.
2. Người gửi dùng thuật toán mã đối xứng để mã hóa dữ liệu, và sử dụng thuật toán mã hóa bất đối xứng để mã hóa khóa đối xứng nối trên bằng khóa công khai của người nhận
3. Người nhận sử dụng khóa bí mật để giải mã khóa đối xứng, sau đó giải mã dữ liệu với khóa đối xứng vừa thu được.
Trong trường hợp này, thuật toán mã hóa bất đối xứng được dùng chỉ để mã hóa khóa đối xứng, vì vậy độ phức tạp tính toán là không đáng kể. Đây chính là nguyên lý làm việc của SSL. Cụ thể, trong chương trình sử dụng thuật toán AES để mã hóa dữ liệu với độ lớn của khóa là 256 bit, và RSA để mã hóa khóa của AES trong thư viện Microsoft .NET Cryptography.
3.2.2.1 Giao diện Chương trình
Chương trình được thiết kế với giao diện chính như sau:
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Hình 3.20: Giao diện chính của chương trình 3.2.2.1 Giới thiệu và hướng dẫn sử dụng Chương trình Tóm tắt thông tin Chương trình được mô tả theo hình sau:
Hình 3.21: Giới thiệu chương trình
3.2.2.2 Chức năng tạo khóa
Để sử dụng, trước hết cần tạo cặp khóa công khai - bí mật bằng công cụ tạo khóa trên phần mềm. Cặp khóa được tạo ra có dạng XML, nằm trong 02 tệp là privateKey.xml và publicKey.xml.
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Hình 3.22: Chức năng tạo khóa
3.2.2.2 Chức năng mã hóa
Khi đã tạo được cặp khóa, cần chọn tệp để mã hóa và nạp khóa công khai publicKey.xml ở mục thiết lập để tiến hành mã hóa.
Hình 3.23: Chức năng mã hóa
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Tên tệp mã hóa giống với tên tệp cần mã hóa và có phần mở rộng là .encrypted. Tệp này nằm cùng thư mục với tệp cần mã hóa. Ngoài ra trong quá trình mã hóa còn sinh ra tệp có phần mở rộng là .manifest.xml có tác dụng chứa khóa đối xứng đã được mã hóa.
Hình 3.24: Quá trình mã hóa
3.2.2.2 Chức năng giải mã
Giải mã tệp là quá trình ngược lại với quá trình mã hóa. Quá trình giải mã tính toán khóa đối xứng đã được mã bằng RSA, ghi trong tệp .manifest.xml. Để sử dụng chức năng giải mã cần dùng lệnh “Chuyển mã hóa/giải mã” của chương trình.
Hình 3.25: Chức năng giải mã
Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn
Sau khi đã chọn tệp để giải mã, trong phần thiết lập cần nạp khóa bí mật và khóa đối xứng được mã hóa trong quá trình mã tệp để tiến hành giải mã tệp đã được mã. Tệp sau khi được giải mã sẽ có phần mở rộng .decrypted.
Minh họa nội dung tệp trước và sau khi đã mã hóa