• Thứ Hai, 07/03/2011 14:19 (GMT+7)

    Dữ liệu trong ổ SSD có bảo mật?

    Huy Thắng
    Lâu nay, các chuyên gia lưu trữ đều cho rằng việc xóa dữ liệu trong ổ lưu trữ thể rắn SSD (solid-state drive) khó hơn xóa dữ liệu lưu trên ổ đĩa cứng HDD (hard disk drive).

    Cho đến khi công bố của các nhà nghiên cứu Trường Đại học California tại San Diego (UCSD) vào tuần trước đã làm các chuyên gia trong ngành ngạc nhiên, nhưng họ cho rằng có những ổ SSD có riêng tính năng mã hóa có thể bảo vệ dữ liệu không bị tìm thấy ngay cả sau khi ổ đã hết sử dụng, và có vài phương pháp xóa dữ liệu trong ổ SSD thành công hơn các phương pháp khác.

    Nhà công nghệ bảo mật Bruce Schneier cho biết, ông không cho rằng ai cũng biết điều này.

    Nghiên cứu trên cho thấy việc xóa ổ SSD có chứa dữ liệu là một công việc khó khăn ngay cả trong điều kiện tốt nhất có thể và hầu như không thể trong điều kiện xấu nhất. Trong khi nếu cứ ghi đè dữ liệu lên nhau nhiều lần có thể giúp xóa dữ liệu trên nhiều ổ SSD, các nhà nghiên cứu thấy rằng họ vẫn có thể phục hồi dữ liệu trên vài ổ.

    Một phương pháp hiệu quả để bảo vệ dữ liệu trên ổ SSD của bạn là phương pháp xóa bằng mật mã, theo Kent Smith, Giám đốc cao cấp bộ phận Tiếp thị sản phẩm của hãng sản xuất bộ điều khiển SSD SandForce.

    Phương pháp xóa bằng mật mã (crypto-erasure) thực hiện bằng cách: trước hết là mã hóa ổ SSD để chỉ có những người dùng có mật khẩu mới có thể truy cập dữ liệu trong ổ. Khi ổ SSD không còn được dùng, người dùng có thể xóa khóa mã hóa trong ổ, loại trừ được khả năng giải mã hay truy xuất dữ liệu.

    Ông Smith cho biết, không có cách nào có thể truy xuất được dữ liệu, trừ phi bạn có thể phá được giải thuật mã hóa AES 128-bit. Ổ SSD bây giờ vẫn là một ổ vận hành đầy đủ chức năng và có thể bắt đầu ghi lại một cách hiệu quả. Phương pháp này thực hiện rất nhanh.

    Một phương pháp bảo mật khác có thể thực hiện trên các ổ SSD dùng bộ điều kiển SandForce là xóa tất cả bộ nhớ flash NAND.

    Ông Smith cho biết, phải thực hiện trên mọi địa chỉ khối luận lý LBA (logical block addressing), xác định mọi vị trí có thể chứa dữ liệu người dùng, và thực hiện xóa bằng mật mã. Phương pháp tốn nhiều thời gian hơn vì bạn phải xóa flash, có thể mất đến vài phút.

    Các bộ điều khiển của SandForce, mà hầu hết các hãng cung cấp SSD sử dụng, gồm kỹ thuật mã hóa riêng chuẩn AES 128-bit cho phép người dùng thiết lập mật khẩu. Nhưng nhiều ổ SSD khác, như các ổ của Intel và OCZ, không có kỹ thuật mã hóa phần cứng riêng.

    Phương pháp xóa bằng mật mã được thực hiện trên ổ hoặc bằng lệnh SEU (Security Erase Unit), hoặc bằng phương pháp bổ sung sẽ sớm được công bố cho đặc tả serial ATA dưới tên gọi Sanitize Device Set.

    Khi người dùng chọn lệnh SEU, tất cả LBA đều bị xóa trong phần nhận dạng cấu hình thiết bị (Device Configuration Identity), đó là tất cả mọi nơi mà ổ SSD có thể lưu trữ dữ liệu người dùng. Ngoài ra, khóa mã hóa cũng được vô hiệu hay bị hủy, để lại dữ liệu đang có nằm lộn xộn, và tất cả dữ liệu ánh xạ đều bị xóa để ổ không thể xác định vị trí các dữ liệu nằm lộn xộn trước đó. Bộ điều khiển tự động tạo một khóa mã hóa mới cho dữ liệu mới ghi vào.

    Phương pháp xóa dữ liệu bằng mật mã có hữu hiệu hay không còn tùy thuộc vào mức độ bảo mật của hệ thống mã hóa được sử dụng (thí dụ AES), và luôn cả khả năng của người thiết kế loại trừ được trường hợp tấn công qua kênh phụ (side channel), mà theo đó kẻ tấn công có thể tìm được khóa mã hóa hay bằng cách khác vượt qua được mã hóa, theo bài viết của các nhà nghiên cứu của Trường Đại học UCSD.

    Chuẩn mã hóa cao cấp AES (Advanced Encryption Standard) là chuẩn tiếp nối chuẩn mã hóa dữ liệu DES (Data Encryption Standard) trước đó. Chuẩn này được Chính phủ Mỹ sử dụng để đánh giá được mức độ 128-bit và 256-bit để mã hóa các tài liệu mật và tối mật.

    Nhưng dùng chuẩn mã hóa AES cũng chưa đủ; còn phải tùy thuộc nhiều vào cách mã hóa được thực hiện như thế nào.

    Điều này rất quan trọng, một phần vì người dùng không phải lúc nào cũng muốn dùng mật khẩu đủ dài như yêu cầu để tạo khóa mã hữu hiệu. Nếu người dùng chọn một mật khẩu có ít ký tự hơn số ký tự cần thiết để tạo một khóa mã 128-bit hay 256-bit (1 ký tự = 8 bit, đề cập về mật khẩu với 16 hay 32 ký tự), các ký tự còn lại thường tự động chuyển thành số không (0).

    Trong những trường hợp như thế, người ta có thể đoán ra mật khẩu dễ dàng hơn, theo Charles Kolodgy, Giám đốc nghiên cứu sản phẩm nội dung bảo mật và quản lý nguy cơ của IDC.

    Ông Kolodgy khuyên người dùng nên tạo một đoạn mật khẩu thay vì một mật khẩu. Theo ông, bước đầu tiên là phải để ý đến 90% người dùng bên ngoài. Sau đó, giải pháp tốt nhất là phải có bộ sinh ký tự mật khẩu ngẫu nhiên trên ổ.

    Ngay cả khi ổ lưu trữ của bạn có tính năng mã hóa riêng, không có cách nào để biết được hệ thống bảo mật của hãng cung cấp có tin cậy được hay không, ngoài chi phí mà bạn phải bỏ ra để xây dựng nó, theo Bruce Schneier đã viết trong bài về bảo mật mật khẩu.

    Ông Schneier đề nghị nên mua một ổ lưu trữ càng rẻ tiền càng tốt và sau đó mã hóa dữ liệu bằng phần mềm miễn phí như TruCrypt, hay một sản phẩm giá tương đối thấp như PGPDisk.

    Các nhà nghiên cứu của Trường Đại học UCSD đều cho rằng, phương pháp xóa bằng mật khẩu là một phương pháp tốt để đảm bảo ổ SSD có thể được xóa sạch khi hết dùng hay khi được dự tính sử dụng lại.

    Các nhà nghiên cứu này đã thử nghiệm 12 ổ SSD và thấy rằng, không có kỹ thuật phần mềm nào hiện có để xóa từng tập tin một cách hữu hiệu. Xóa cả ổ SSD bằng lệnh riêng sẵn có là hữu hiệu nhất, nhưng chỉ khi lệnh được thực hiện đúng cách, và kỹ thuật xóa bằng phần mềm có hiệu quả hầu hết, chứ không phải tất cả các trường hợp.

    Các nhà nghiên cứu không cho biết sản phẩm dùng trong thử nghiệm thuộc loại nào.

    Phòng thí nghiệm các hệ thống không mất dữ liệu (Non-volatile Systems Laboratory) của Trường Đại học UCSD đã thiết kế một biện pháp để tránh lớp chuyển dịch flash FTL (flash translation layer) trên ổ SSD và trực tiếp tiếp cận chip flash NAND thô để kiểm nghiệm xem kỹ thuật xóa nào thành công.

    Lớp FTL của ổ SSD thực hiện ánh xạ dữ liệu giữa các LBA qua chuẩn kết nối ATA hay SCSI và các trang vật lý của bộ nhớ flash NAND.

    Trong tài liệu “Xóa dữ liệu hữu hiệu từ ổ flash SSD” (Reliable Erasing Data from Flash-Based Solid State Drives), các nhà nghiên cứu của Trường Đại học UCSD cho biết, tất cả các giao thức xóa bằng cách ghi đè lên tập tin đều thất bại: khoảng 4% đến 75% nội dung của tập tin vẫn còn lại trên ổ SSD SATA.

    Kết quả trên ổ flash USB cũng không tốt hơn. Khoảng 0,57% đến 84,9% dữ liệu vẫn còn lưu lại trên ổ sau khi đã thử ghi đè.

    Các nhà nghiên cứu cũng thử ghi đè phần trống trên ổ và chống phân mảnh để phân bố lại dữ liệu, kích thích lớp FTL dùng lại thêm nhiều vị trí lưu trữ vật lý, nhưng cũng không hiệu quả.

    Trong số 12 ổ SDD được thử nghiệm bằng lệnh “Erase Unit” riêng của ổ, chỉ có 4 ổ được xóa thật sự. Một ổ SSD báo đã được xóa, nhưng các nhà nghiên cứu lại phục hồi được dữ liệu.

    Trong một thử nghiệm ghi đè khác, mất hết 58 giờ đối với vài ổ SSD, các nhà nghiên cứu thấy một trong 8 ổ còn lại được xem là đã bị xóa. Sau khi ghi đè 2 lần, tất cả ngoại trừ 1 ổ là đã được xóa. Một ổ vẫn còn giữ lại được 1% dữ liệu ngay cả sau 20 lần ghi đè.

    Các nhà nghiên cứu thấy xóa ổ đĩa cứng HDD đơn giản hơn. Đối với người dùng cá nhân, ổ đĩa cứng có thể định dạng lại và ghi đè. Người dùng doanh nghiệp có thể dùng bộ khử từ (sử dụng một từ trường mạnh để khử từ ổ đĩa) để xóa tất cả dữ liệu một cách hiệu quả.

    Nhưng ổ SSD lại không vận hành theo cách của ổ đĩa cứng.

    Trên một ổ đĩa cứng, các cung từ (sector) được ghi và xóa giống nhau, có nghĩa là khi ghi đè dữ liệu, dữ liệu này được ghi vào cùng khối bộ nhớ với dữ liệu gốc đã được ghi.

    Bộ nhớ flash gồm các trang và khối. Dữ liệu được ghi trong các trang 8KB, và các phép xóa lại xảy ra trong các khối 2MB, còn gọi là chunk. Do đó, khi xóa, phải đánh dấu cả một khối 2MB để xóa.

    Vì thế, khi dữ liệu được ghi vào bộ nhớ flash NAND, đó là một quy trình 2 bước được gọi là chu kỳ đọc-sửa-xóa-ghi. Trước hết, dữ liệu hiện có phải được xóa và sau đó dữ liệu cũ kết hợp với dữ liệu mới có thể được ghi vào một trang khác trên bộ nhớ. Tuy nhiên, dữ liệu cũ không thật sự bị xóa hẳn vào lúc ghi mới; nó chỉ được đánh dấu để xóa.

    Các nhà sản xuất dùng các giải thuật “thu thập rác” (garbage collection algorithm) để sau này quay lại nó, đặc biệt là khi ổ ở trạng thái nhàn rỗi (không làm việc), và xóa các dữ liệu đã được đánh dấu. Tất cả các thiết bị flash NAND vận hành theo cách này. Trong khi chờ đợi, dữ liệu bản sao vẫn còn trên bộ nhớ flash NAND.

    Theo nhà phân tích Gregory Wong của hãng nghiên cứu thị trường Forward Insights, có vài ổ lưu trữ không xóa hết tất cả dữ liệu đó.

    Chẳng hạn, trên hầu hết các ổ SSD hiện giờ, giải thuật quản lý sắp xếp dữ liệu (wear-leveling) được sử dụng để phân bố đồng đều hơn dữ liệu trên ổ để khỏi bị mài mòn chỉ ở một vùng của ổ flash NAND. Vấn đề là, giải thuật đó cũng có thể không cho phép xóa dữ liệu vì nó tái định vị các khối nhớ trong thời gian giữa lúc các khối này được ghi lần đầu và ghi đè sau đó.

    Viện Tiêu chuẩn và Công nghệ Quốc gia của Mỹ NIST (National Institute of Standards and Technology) hiện đang bị sức ép của ngành công nghiệp SSD buộc phải tái định nghĩa vài giao thức ghi đè và xóa theo chuẩn quân sự để nhận ra các ổ lưu trữ mã hóa có thể xóa được bằng phương pháp dùng mật mã mà không cần phải ghi đè bộ nhớ flash.

    Theo ông Smith, các cơ quan chức năng phải cần một thời gian dài mới nắm được tiêu chuẩn.

    Từ khóa: Huy Thắng, ssd
    Nguồn: Computerworld, 1/3/2011