Lượt xem: 8424 | Gửi lúc: 24/05/2012 16:02:34
Bookmark and Share

Mã hóa dữ liệu khi đồng bộ qua dịch vụ Điện toán đám mây

Với dịch vụ Điện toán đám mây, dữ liệu của người dùng được đồng bộ một cách tự động mà không đòi hỏi các thiết bị phải kết nối với nhau, chỉ cần kết nối vào mạng Internet là đủ. Tuy nhiên, vấn đề cần được giải quyết là bảo mật dữ liệu trong dịch vụ này.

Đồng bộ dữ liệu và vấn đề bảo mật
Các dịch vụ ĐTĐM cho phép lưu trữ và đồng bộ tập tin trực tuyến được dùng phổ biến hiện nay như Google Drive, Microsoft SkyDrive, Dropbox và Apple iCloud.... Trong đó, Google Drive mới chính thức đi vào hoạt động từ cuối tháng 4/2012, còn iCloud thì chỉ hỗ trợ nền tảng Mac và iOS. Có thể so sánh các dịch vụ này qua số liệu sau đây (Bảng 1)[2]:
Với dịch vụ ĐTĐM, khi người dùng cần đồng bộ tập tin giữa nhiều thiết bị khác nhau thì  phải cài lên mỗi thiết bị một phần mềm của nhà cung cấp dịch vụ, đồng thời xác định một thư mục để chứa tập tin cần đồng bộ. Sự thay đổi trong thư mục của người dùng (thêm/xóa tập tin, chỉnh sửa tập tin) sẽ được tự động thực hiện trên mọi thiết bị liên quan. Như vậy, người dùng không cần phải sao chép tập tin để mang đi sử dụng ở nơi khác; không phải cập nhật lại tập tin ở mọi thiết bị và không phải nghĩ xem “bản mới nhất của tài liệu được lưu trên thiết bị nào”.


Hình 1. Thư mục chứa dữ liệu cần đồng bộ

Tuy nhiên, có một vấn đề quan trọng đặt ra với những người muốn sử dụng dịch vụ ĐTĐM để đồng bộ dữ liệu, đó là bảo mật và an toàn thông tin. Trước đây, dữ liệu chỉ được mã hóa



Bảng 1. Các tính đặc trưng cơ bản của một số dịch vụ lưu trữ đám mây

Trên đường truyền (việc đồng bộ được thực hiện qua giao thức HTTPS) và không có nhà cung cấp dịch vụ nào trong số trên đây cam kết đảm bảo bí mật dữ liệu người dùng khi lưu trữ trên đám mây. Thậm chí, Google còn đòi hỏi phải được sử dụng dữ liệu của người dùng cho những mục đích của mình. Điều này khiến người ta phải đưa ra cảnh báo “Hãy cẩn thận khi sử dụng Google Drive” chỉ ít giờ sau khi dịch vụ này chính thức được công bố [2]. Dropbox không có ý định xâm nhập dữ liệu của người dùng, nhưng không có nghĩa là dữ liệu không bị xâm phạm. Ngày 19/6/2011 vừa qua là ngày “thả cửa” của DropBox. Trong vòng 4 tiếng đồng hồ, một người bất kỳ có thể đăng nhập vào tài khoản bất kỳ trên DropBox với mật khẩu tùy ý. Có lẽ các nhà phát triển dịch vụ đã không nhận ra nguy cơ này, nếu như thông tin về lỗ hổng không được công bố bởi một chuyên gia bảo mật độc lập Christopher Soghoian (http://pastebin.com/ yBKwDY6T). Và đó không phải là sự cố đầu tiên liên quan đến vấn đề an toàn của các tập tin mà hàng triệu người dùng đã tin tưởng, gửi gắm cho kho lưu trữ đám mây DropBox.
Như vậy, để vừa có được những lợi ích mà các dịch vụ này mang lại, vừa đảm bảo được bí mật cho dữ liệu của mình, người dùng cần sử dụng mật mã. Dữ liệu cần phải được mã hóa trên máy khách (trên thiết bị của người dùng) và truyền lên máy chủ ở dạng đã mã hóa.
Trong số các dịch vụ ĐTĐM cho phép đồng bộ dữ liệu giữa các thiết bị của người dùng, dường như DropBox được ưa thích hơn cả. Theo thống kê, cứ mỗi 5 phút, người dùng DropBox lại thực hiện lưu trữ khoảng một triệu tập tin. Có khoảng 25 triệu người đang sử dụng dịch vụ này [1]. Do đó, chúng ta sẽ xem xét việc mã hóa dữ liệu khi sử dụng Dropbox. Việc áp dụng cho các dịch vụ khác được thực hiện tương tự.

Mã hóa bằng EncFS
Một trong những phương án mã hóa dữ liệu là tạo ra trong thư mục của DropBox một container
(đĩa ảo) của TrueCrypt, R- Crypto hoặc FreeOTFE và đưa toàn bộ dữ liệu cần bảo mật vào đĩa ảo này. Trong trường hợp này, dù tài khoản DropBox có bị lộ thì cũng không thể giải mã được dữ liệu trong đĩa ảo. Tuy nhiên, sử dụng phương pháp trên đây sẽ gặp rắc rối với việc đồng bộ dữ liệu. Chỉ cần thay đổi một tập tin bất kỳ (kích thước có thể chỉ 1 KB) trong đĩa ảo thì hệ thống phải đồng bộ toàn bộ cả đĩa ảo (kích thước có thể hàng GB). Ngoài ra, nếu sử dụng phương pháp đó thì chức năng “quay lại” (undo) của DropBox sẽ không thể sử dụng được.
Có một phương pháp khả dĩ hơn – đó là thực hiện mã hóa từng tập tin. Để thực hiện việc này, có thể sử dụng EncFS, một hệ quản lý tập tin mật mã ảo (virtual encrypting file system). Điểm giống nhau giữa EncFS với các công cụ trên đây là khi hoạt động, chúng đều tạo ra trong hệ thống một (một số) ổ đĩa ảo; khi đưa một đĩa ảo vào ổ đĩa ảo, người dùng có thể truy cập đến dữ liệu trong đĩa ảo một cách bình thường, còn trên thực tế thì mọi dữ liệu đều được mã hóa trước khi lưu lên đĩa. EncFS khác với các công cụ còn lại ở một điểm cơ bản. Mỗi đĩa ảo của các công cụ kia tồn tại ở dạng một tập tin duy nhất trong hệ thống (tương tự như tập tin ISO). Khi ta thay đổi một tập tin trong đĩa ảo thì cũng có nghĩa là tập tin đĩa ảo bị thay đổi và cần phải được đồng bộ. Còn đĩa ảo của EncFS là một thư mục. Khi người dùng thao tác với một tập tin, chỉ có một tập tin tương ứng với nó trong thư mục đĩa ảo bị thay đổi. Tất nhiên, thư mục này (chứa các tập tin ở dạng đã mã hóa) có thể nằm trong thư mục của Dropbox. Và như thế, khi sử dụng EncFS, dữ liệu của ta vẫn được mã hóa trước khi chuyển lên máy chủ và DropBox vẫn chỉ phải đồng bộ những tập tin bị thay đổi.
Thực ra, đây là công nghệ đã được sử dụng từ lâu trong Linux và được phát triển dựa trên công nghệ FUSE (File system in Userspace) - cho phép nhà lập trình tạo ra các hệ thống quản lý tập tin ảo (virtual file system). Dù có xuất phát điểm từ Linux, EncFS có thể được dùng cho cả Mac OS X và Windows.
Hệ điều hành Windows
Sau sự cố với xác thực người dùng của DropBox, một số lập trình viên người Đức đã phát triển công cụ BoxCryptor (phiên bản mới nhất là BoxCryptor 1.3.1.0). Công cụ này sẽ tạo ra trong hệ thống một đĩa mật mã ảo (virtual encrypted disk). Các tập tin trong đĩa ảo này được mã hóa theo chuẩn AES- 256.
Dữ liệu thực (đã mã hóa) được đặt ở một thư mục tùy ý, bên trong thư mục của DropBox chẳng hạn. Còn dữ liệu trong đĩa ảo thì được lưu ở dạng rõ và các ứng dụng thao tác với chúng hoàn toàn bình thường. Các lập trình viên chỉ đơn giản là triển khai các khả năng chính của EncFS cho môi trường Windows. Tính đến thời điểm này, họ đã phát triển các phiên bản khác nhau cho Windows, Linux, Mac, iOS, Android. Dù BoxCryptor không hỗ trợ tất cả mọi khả năng EncFS, nhưng cũng đủ để bảo vệ hiệu quả dữ liệu người dùng khi lưu trữ trên đám mây nói chung và trên đám mây DropBox nói riêng.


Để dữ liệu được bảo vệ, người dùng cần xác định một mật khẩu để mã hóa (và giải mã), đồng thời xác định tên của ổ đĩa ảo mà BoxCryptor sẽ sử dụng. Trong ổ đĩa ảo này, các tập tin sẽ xuất hiện ở dạng rõ. Nếu không muốn BoxCryptor tự động giải mã thì chỉ cần không cho phép chương trình ghi nhớ mật khẩu, thay vào đó sẽ nhập mật khẩu mỗi khi cần mở đĩa ảo.
Nếu trước khi tạo một đĩa ảo ta chuyển sang “Advanced Mode” thì trong quá trình tạo đĩa ảo
ẽ có nhiều tùy chọn để cấu hình sâu hơn cho BoxCryptor, trong đó phải kể đến việc sử dụng chức năng phục hồi phiên bản trước của tập tin (undo) của Dropbox. Nguyên nhân là, theo ngầm định, BoxCryptor tự động mã hóa cả tên tập tin. Điều đó sẽ cản trở việc kiểm soát số phiên bản của tài liệu trên Dropbox. Do vậy, nếu ta muốn sử dụng chức năng phục hồi thì BoxCryptor sẽ đình chỉ việc mã hóa tên tập tin.
Đến đây, ta phải thấy trong thư mục của Dropbox một thư mục của BoxCryptor, nơi thực sự lưu trữ các tài liệu nhạy cảm cần đồng bộ qua Dropbox và trong hệ thống có thêm một ổ đĩa (ổ Z chẳng hạn). Có hai nguyên tắc quan trọng cần phải ghi nhớ. Thứ nhất, không bao giờ ghi trực tiếp tập tin vào thư mục của BoxCryptor. Mọi thao tác với tập tin phải thực hiện thông qua ổ Z. Thứ hai, không được phép xóa tập tin encfs6.xml trong thư mục của BoxCryptor. Tập tin này lưu trữ các thông tin quan trọng cho EncFS, phục  vụ việc giải mã dữ liệu. Phiên bản miễn phí của BoxCryptor cho phép tạo một đĩa ảo có dung lượng không quá 5 GB. Nếu dung lượng đó là nhỏ và kinh phí lại eo hẹp thì có thể sử dụng phần mềm mã nguồn mở encfs4win (http://gitorious.org/encfs4win). Cả BoxCryptor và Encfs4win đều được xây dựng trên nền tảng thư viện Dokan (http://dokandev.net). Nó tương tự như FUSE, nhưng hoạt động với Windows và cần thiết cho việc tạo ổ đĩa trong hệ thống.
Hệ điều hành Linux
Có nhiều phiên bản Linux chứa sẵn EncFS, tuy nhiên, không ít trong số đó, ví dụ Ubuntu 10.10, cung cấp EncFS phiên bản cũ (thường là 1.6), trong khi ta nên dùng EncFS phiên bản mới nhất (từ 1.7 trở lên), trong đó nhiều lỗi đã được khắc phục. Việc cài đặt phiên bản mới nhất của EncFS sẽ giúp cho quá trình làm việc dễ dàng hơn, có thể cài đặt thêm môđun giao diện đồ họa Cryptkeeper:
sudo apt- get install encfs cryptkeeper
Sau khi cài đặt xong, có thể chạy Cryptkeeper thông qua menu “Applications – System tools – Cryptkeeper” và thiết lập chế độ làm việc với thư mục đã được mã hóa:
- Thực hiện lệnh “Import EncFS folder”.
- Trỏ đến thư mục mã hóa.
- Xác định điểm cài đặt (mounting point) mà qua đó có thể truy cập các tập tin ở dạng rõ.
- Đến đây, trong menu của Cryptkeeper sẽ xuất hiện mục để kết nối nhanh ổ đĩa EncFS:, ví dụ, “Cryptkeeper>/home/step/Documents/Safe”. Sau khi nhập mật khẩu, trong hệ thống sẽ xuất hiện ổ đĩa với các tập tin ở dạng rõ. Cũng có thể bỏ qua việc sử dụng giao diện đồ họa và thực hiện kết nối EncFS qua giao diện dòng lệnh:
encfs ~/Dropbox/BoxCryptor/ ~/BoxCryptor
Tham số đầu tiên là nơi đặt dữ liệu đã mã hóa, còn tham số thứ hai là địa chỉ để truy cập dữ liệu ở dạng rõ.
Hệ điều hành Mac OS X
Khó khăn nhất là cài đặt EncFS cho Mac OS X, bởi vì cần phải cài đặt các công cụ bổ trợ. Bên cạnh đó, các tập tin nhị phân EncFS cho Mac OS X thường đã cũ, không ổn định, do vậy cần phải biên dịch lại các tập tin này. Hãy thực hiện điều này theo trình tự sau;
- Cài đặt gói XCode (http://developer.apple. com), trong đó có đủ trình biên dịch và các công cụ khác cần thiết cho việc biên dịch EncFS. Phiên bản nên dùng là bản miễn phí XCode 3.0.
- Tiếp đó, ta cần MacFUSE (http://code.google .com/p/macfuse). Đây là bản FUSE (sử dụng EncFS) dành cho Mac OS X. Chỉ cần tải tập tin MacFUSE.pkg về và thực thi nó, trình cài đặt sẽ tự động làm những việc còn lại.
- Cài đặt trình quản lý gói Homebrew:
ruby - e “$(curl - fsSL https://raw.github.com/gist/323731)
- Tải mã nguồn EncFS về và biên dịch nó. Homebrew sẽ thực hiện công việc sau:
brew install encfs
- Đến đây, EncFS đã được cài vào hệ thống. Việc còn lại là kết nối thư mục chứa dữ liệu đã mã hóa (thường là ~/Dropbox/BoxCryptor) với thư mục mà qua đó người dùng có thể truy cập dữ liệu ở dạng rõ (~/BoxCryptor chẳng hạn):
encfs ~/Dropbox/BoxCryptor ~/BoxCryptor
Nếu muốn làm việc qua giao diện đồ họa thay vì làm việc qua giao diện dòng lệnh, người dùng chỉ cần cài đặt plug- in hỗ trợ EncFS (http://thenakedman.wordpress.com/encfs) cho công cụ MacFusion (http://www.macfusionapp.org) là được.
Giải pháp thay thế
Việc bổ sung tầng mật mã cho Dropbox không chỉ có BoxCryptor và EncFS mà còn có SecretSync. SecretSync mã hóa dữ liệu bằng AES- 256 và hỗ trợ ba hệ điều hành là Windows, Mac OS X và Linux (http://getsecretsync.com/ss).
Nếu Dropbox chưa đáp ứng được yêu cầu về bảo mật, vậy thì sẽ là logic nếu ta muốn tìm một dịch vụ khác thay thế Dropbox, ứng cử viên có thể là Wuala (http://www.wuala.com).
Ngay từ đầu, các nhà phát triển Wuala đã hướng đến việc xây dựng một kho lưu trữ trực tuyến an toàn (secure online storage). Gần đây, dịch vụ này đã phát triển mạnh mẽ, có hầu hết các chức năng như của Dropbox. Hiện đã có các phiên bản cho Windows, Linux, Mac, iPhone và Android.
Để xác thực, Wuala sử dụng RSA- 2048, còn để mã hóa dữ liệu, Wuala sử dụng AES- 128. Tính năng an toàn được tăng cường bởi cơ chế lưu trữ dữ liệu phân tán. Trong Wuala, các nhà phát triển đã sử dụng một công nghệ giảm chi phí dịch vụ thông qua việc sử dụng các tài nguyên nhàn rỗi của người dùng. Khi người dùng thêm một tập tin vào kho lưu trữ, tập tin này sẽ được mã hóa và chia thành nhiều mảnh. Một số mảnh được lưu trữ trên đám mây, số còn lại được lưu trữ ở... máy tính của các người dùng khác. Nếu người dùng cho phép Wuala sử dụng một phần không gian đĩa trên máy tính thì Wuala sẽ cấp thêm cho người dùng đó một khoảng không gian trên đám mây (và điều kiện ràng buộc ở đây là máy tính của người dùng phải hoạt động ít nhất 4 giờ/ngày). Và như vậy, đĩa cứng của hệ thống người dùng Wuala tạo nên một mạng lưu trữ phân tán, mạng này cho phép tăng tốc độ truyền tải tập tin, đồng thời giảm chi phí hoạt động của dịch vụ. Để tránh trường hợp mất dữ liệu, người ta sử dụng các thuật toán sửa lỗi và độ dư thừa đáng kể. Ban đầu, người dùng được cấp miễn phí 1 GB, để mở rộng không gian này, người dùng có thể mời thêm người khác cùng tham gia dịch vụ (tương tự như Dropbox) hoặc chia sẻ một phần ổ cứng của mình cho mạng Wuala.
Về cơ bản, Wuala đã đáp ứng được nhu cầu về bảo mật dữ liệu người dùng. Tuy nhiên, cần cân nhắc kỹ trước khi quyết định từ bỏ Dropbox để chuyển sang sử dụng dịch vụ này.
Nếu như trong thư mục Dropbox có một thư mục để chứa dữ liệu dùng chung giữa nhiều người với nhau, giữa các đồng nghiệp để cùng thực hiện một công việc chẳng hạn, thì tất cả mọi người cùng phải chuyển sang dùng Wuala mới có thể tiếp tục hoạt động.
Phần mềm Wuala dành cho điện thoại được viết trên nền tảng JavaApplet, do đó, nó làm việc còn kém hiệu quả.
Trên đây là hai điểm cần phải cân nhắc khi quyết dịch dùng Dropbox+BoxCryptor hay là chuyển sang dùng Wuala.

Truy cập tập tin đã mã hóa qua giao diện web

Một khi đã sử dụng BoxCryptor cho Dropbox, thì ta sẽ không thể truy cập được các tập tin đã mã hóa qua giao diện web (chính xác là ta có thể tải chúng về, nhưng không thể mở ra được vì chúng đã được mã hóa). Để giải quyết vấn đề này, ta có thể sử dụng phiên bản di động (portable version) của BoxCryptor. Nó sẽ giúp ta giải mã các file đã được mã hóa. Nhưng hãy lưu ý rằng, nếu ta không vô hiệu hóa chức năng mã hóa tên tập tin của BoxCryptor thì khó mà tìm được tập tin cần thiết qua giao diện web của Dropbox. Phiên bản di động của BoxCryptor ra đời nhằm mục đích sử dụng trong những trường hợp quyền của người dùng trong hệ thống (máy tính) bị hạn chế. Và cũng cần nói thêm rằng, nó làm việc rất tốt với phiên bản di động của Dropbox – DropboxPorrtableAHK (http://dropportable.ho.am )

TS. Nguyễn Tuấn Anh