BitLocker

BitLocker BitLocker là tính năng mã hóa toàn bộ ổ đĩa đi kèm với các phiên bản Microsoft Windows bắt đầu từ Windows Vista. Tính năng này được thiết kế để bảo vệ dữ liệu bằng cách cung cấp mã hóa cho toàn bộ ổ đĩa. Theo mặc định, tính năng này sử dụng thuật toán Advanced Encryption Standard (AES) trong cipher block chaining (CBC) hoặc "xor–encrypt–xor (XEX)-based tweaked codebook mode with ciphertext stealing" (XTS) mode với khóa 128 bit hoặc 256 bit. CBC không được sử dụng trên toàn bộ đĩa; nó được áp dụng cho từng sector riêng lẻ.

== Lịch sử ==
BitLocker có nguồn gốc là một phần của kiến trúc Next-Generation Secure Computing Base của Microsoft vào năm 2004 dưới dạng một tính năng tạm thời có tên mã là "Cornerstone" và được thiết kế để bảo vệ thông tin trên các thiết bị, đặc biệt là nếu thiết bị bị mất hoặc bị đánh cắp. Một tính năng khác có tên là "Code Integrity Rooting", được thiết kế để xác thực tính toàn vẹn của các tệp hệ thống và khởi động Microsoft Windows. Khi được sử dụng kết hợp với Trusted Platform Module (TPM) tương thích, BitLocker có thể xác thực tính toàn vẹn của các tệp hệ thống và khởi động trước khi giải mã một ổ đĩa được bảo vệ; việc xác thực không thành công sẽ cấm truy cập vào một hệ thống được bảo vệ. BitLocker được gọi ngắn gọn là Secure Startup trước khi Windows Vista được phát hành để sản xuất.

BitLocker có sẵn trên:

- Phiên bản "Enterprise" và "Ultimate" của Windows Vista và Windows 7
- Phiên bản "Pro" và "Enterprise" của Windows 8 và 8.1
- Windows Embedded Standard 7 và Windows Thin PC
- Windows Server 2008 và mới hơn
- Phiên bản Pro, Enterprise và Education của Windows 10
- Phiên bản Pro, Enterprise và Education của Windows 11

== Tính năng ==
Ban đầu, giao diện BitLocker đồ họa trong Windows Vista chỉ có thể mã hóa ổ đĩa hệ điều hành. Bắt đầu với Windows Vista với Service Pack 1 và Windows Server 2008, các ổ đĩa khác ngoài ổ đĩa hệ điều hành có thể được mã hóa bằng công cụ đồ họa. Tuy nhiên, một số khía cạnh của BitLocker (chẳng hạn như bật hoặc tắt khóa tự động) phải được quản lý thông qua công cụ dòng lệnh có tên là codice_1.

Phiên bản BitLocker có trong "Windows 7" và "Windows Server 2008 Release 2" bổ sung khả năng mã hóa ổ đĩa di động. Trên Windows XP hoặc Windows Vista, có thể đạt được quyền truy cập chỉ đọc vào các ổ đĩa này thông qua chương trình có tên là "BitLocker To Go Reader", nếu sử dụng hệ thống file FAT16, FAT32 hoặc exFAT. Ngoài ra, một công cụ dòng lệnh mới có tên là codice_2 đã thay thế công cụ codice_1.

Bắt đầu từ Windows Server 2012 và Windows 8, Microsoft đã bổ sung BitLocker với thông số kỹ thuật "Microsoft Encrypted Hard Drive", cho phép các hoạt động mã hóa của mã hóa BitLocker được chuyển giao sang phần cứng của thiết bị lưu trữ, ví dụ như ổ đĩa tự mã hóa. Ngoài ra, BitLocker hiện có thể được quản lý thông qua Windows PowerShell. Cuối cùng, Windows 8 đã giới thiệu "Windows To Go" trong phiên bản Enterprise của mình, mà BitLocker có thể bảo vệ.

=== Mã hóa thiết bị ===
Windows Mobile 6.5, Windows RT và các phiên bản cốt lõi của Windows 8.1 bao gồm device encryption, một phiên bản giới hạn tính năng của BitLocker mã hóa toàn bộ hệ thống. Đăng nhập bằng tài khoản Microsoft có quyền quản trị sẽ tự động bắt đầu quá trình mã hóa. Khóa khôi phục được lưu trữ trong tài khoản Microsoft hoặc Active Directory (Active Directory yêu cầu các phiên bản Pro của Windows), cho phép lấy khóa từ bất kỳ máy tính nào. Mặc dù mã hóa thiết bị được cung cấp trên tất cả các phiên bản Windows 8.1, không giống như BitLocker, mã hóa thiết bị yêu cầu thiết bị phải đáp ứng các thông số kỹ thuật InstantGo (trước đây là Connected Standby), yêu cầu ổ đĩa SSD và chip TPM 2.0.

Bắt đầu từ Windows 10 1703, các yêu cầu về mã hóa thiết bị đã thay đổi, yêu cầu mô-đun TPM 1.2 hoặc 2.0 có hỗ trợ PCR 7, UEFI Secure Boot và thiết bị đáp ứng các yêu cầu của Modern Standby hoặc xác thực HSTI.

Các yêu cầu về mã hóa thiết bị đã được nới lỏng trong Windows 11 24H2, với việc tuân thủ "Modern Standby", HSTI và "Secure Boot" không còn bắt buộc nữa và danh sách chặn giao diện DMA đã bị xóa. Và mã hóa thiết bị sẽ được bật theo mặc định khi cài đặt Windows 11 24H2 mới, được gọi là "auto device encryption".

Vào tháng 9 năm 2019, một bản cập nhật mới đã được phát hành (KB4516071) thay đổi cài đặt mặc định cho BitLocker khi mã hóa ổ đĩa tự mã hóa. Bây giờ, mặc định là sử dụng mã hóa phần mềm cho các ổ đĩa mới được mã hóa. Điều này là do các lỗi mã hóa phần cứng và các mối lo ngại về bảo mật liên quan đến các sự cố đó.

=== Chế độ mã hóa ===
Có thể sử dụng ba cơ chế xác thực làm khối xây dựng để triển khai mã hóa BitLocker:

- Transparent operation mode: Chế độ này sử dụng khả năng của phần cứng TPM 1.2 để cung cấp trải nghiệm người dùng minh bạch—người dùng bật nguồn và đăng nhập vào Windows như bình thường. Khóa được sử dụng để mã hóa đĩa được niêm phong (mã hóa) bởi chip TPM và sẽ chỉ được phát hành cho mã tải hệ điều hành nếu các file khởi động ban đầu có vẻ không bị sửa đổi. Các thành phần tiền hệ điều hành của BitLocker đạt được điều này bằng cách triển khai "Static Root of Trust Measurement"—một phương pháp do "Trusted Computing Group" (TCG) chỉ định. Chế độ này dễ bị tấn công khởi động nguội vì nó cho phép kẻ tấn công khởi động máy đã tắt nguồn. Nó cũng dễ bị tấn công đánh hơi vì khóa mã hóa ổ đĩa được chuyển dưới dạng văn bản thuần túy từ TPM đến CPU trong quá trình khởi động thành công
- User authentication mode: Chế độ này yêu cầu người dùng cung cấp một số xác thực cho môi trường trước khi khởi động dưới dạng mã PIN hoặc mật khẩu trước khi khởi động
- USB Key Mode: Người dùng phải chèn một thiết bị USB có chứa khóa khởi động vào máy tính để có thể khởi động hệ điều hành được bảo vệ. Lưu ý rằng chế độ này yêu cầu BIOS trên máy được bảo vệ hỗ trợ đọc các thiết bị USB trong môi trường tiền hệ điều hành. BitLocker không hỗ trợ thẻ thông minh để xác thực trước khi khởi động.

Các kết hợp sau đây của các cơ chế xác thực trên được hỗ trợ, tất cả đều có khóa khôi phục tùy chọn:

- Chỉ TPM
- TPM + PIN
- TPM + PIN + USB Key
- TPM + USB Key
- USB Key
- Chỉ mật khẩu

== Hoạt động ==
BitLocker là hệ thống mã hóa ổ đĩa logic. (Một ổ đĩa trải dài một phần của ổ đĩa cứng, toàn bộ ổ đĩa hoặc nhiều ổ đĩa.) Khi được bật, TPM và BitLocker có thể đảm bảo tính toàn vẹn của đường dẫn khởi động đáng tin cậy (ví dụ: BIOS và khu vực khởi động), để ngăn chặn hầu hết các cuộc tấn công vật lý ngoại tuyến và phần mềm độc hại khu vực khởi động.

Để BitLocker mã hóa ổ đĩa lưu trữ hệ điều hành, cần có ít nhất hai ổ đĩa được định dạng NTFS: một ổ đĩa cho hệ điều hành (thường là C:) và một ổ đĩa khác có kích thước tối thiểu là 100 MB, ổ đĩa này vẫn chưa được mã hóa và khởi động hệ điều hành. (Tuy nhiên, trong trường hợp của Windows Vista và Windows Server 2008, kích thước tối thiểu của ổ đĩa là 1,5 GB và phải có ký tự ổ đĩa.) Không giống như các phiên bản Windows trước đây, công cụ dòng lệnh ""diskpart"" của Vista bao gồm khả năng thu nhỏ kích thước của ổ đĩa NTFS để ổ đĩa này có thể được tạo từ không gian đã phân bổ. Một công cụ có tên là "BitLocker Drive Preparation Tool" cũng có sẵn từ Microsoft cho phép thu nhỏ một ổ đĩa hiện có trên Windows Vista để tạo chỗ cho một ổ đĩa khởi động mới và các file khởi động cần thiết được chuyển đến ổ đĩa đó.

Sau khi phân vùng khởi động thay thế được tạo, mô-đun TPM cần được khởi tạo (giả sử tính năng này đang được sử dụng), sau đó các cơ chế bảo vệ khóa mã hóa đĩa cần thiết như TPM, PIN hoặc khóa USB được cấu hình. Sau đó, ổ đĩa được mã hóa dưới dạng tác vụ nền, việc này có thể mất khá nhiều thời gian với ổ đĩa lớn vì mọi sector logic đều được đọc, mã hóa và ghi lại vào đĩa. Các khóa chỉ được bảo vệ sau khi toàn bộ ổ đĩa đã được mã hóa khi ổ đĩa được coi là an toàn. BitLocker sử dụng trình điều khiển thiết bị cấp thấp để mã hóa và giải mã mọi hoạt động của file, giúp tương tác với ổ đĩa được mã hóa trở nên trong suốt đối với các ứng dụng đang chạy trên nền tảng.

Trong môi trường Active Directory, BitLocker hỗ trợ ký quỹ khóa tùy chọn cho Active Directory, mặc dù có thể cần cập nhật lược đồ để tính năng này hoạt động (tức là nếu Dịch vụ Active Directory được lưu trữ trên phiên bản Windows trước Windows Server 2008).

BitLocker và các hệ thống mã hóa toàn bộ ổ đĩa khác có thể bị tấn công bởi trình quản lý khởi động giả mạo. Sau khi trình tải khởi động độc hại nắm bắt được bí mật, nó có thể giải mã Khóa chính ổ đĩa (VMK), sau đó cho phép truy cập để giải mã hoặc sửa đổi bất kỳ thông tin nào trên ổ cứng được mã hóa. Bằng cách định cấu hình TPM để bảo vệ đường dẫn khởi động đáng tin cậy, bao gồm BIOS và khu vực khởi động, BitLocker có thể giảm thiểu mối đe dọa này. (Lưu ý rằng một số thay đổi không độc hại đối với đường dẫn khởi động có thể khiến kiểm tra Sổ đăng ký cấu hình nền tảng không thành công và do đó tạo ra cảnh báo sai.)

== Mối quan ngại về bảo mật ==
=== Chỉ riêng TPM là không đủ ===
Chế độ "Transparent operation mode" và "User authentication mode" của BitLocker sử dụng phần cứng TPM để phát hiện xem có thay đổi trái phép nào đối với môi trường trước khi khởi động hay không, bao gồm BIOS và MBR. Nếu phát hiện bất kỳ thay đổi trái phép nào, BitLocker sẽ yêu cầu khóa khôi phục trên thiết bị USB. Bí mật mã hóa này được sử dụng để giải mã Khóa chính khối lượng (VMK) và cho phép quá trình khởi động tiếp tục. Tuy nhiên, chỉ TPM thôi là chưa đủ:

- Vào tháng 2 năm 2008, một nhóm các nhà nghiên cứu bảo mật đã công bố thông tin chi tiết về cái gọi là "cuộc tấn công khởi động nguội" cho phép các hệ thống mã hóa toàn bộ đĩa như BitLocker bị xâm phạm bằng cách khởi động máy từ phương tiện di động, chẳng hạn như ổ USB, vào một hệ điều hành khác, sau đó đổ nội dung của bộ nhớ trước khi khởi động. Cuộc tấn công dựa trên thực tế là DRAM lưu giữ thông tin trong tối đa vài phút (hoặc thậm chí lâu hơn, nếu được làm mát) sau khi nguồn điện đã bị ngắt. Thiết bị Bress/Menz, được mô tả trong Bằng sáng chế US 9.514.789, có thể thực hiện loại tấn công này. Các cơ chế mã hóa toàn bộ đĩa tương tự của các nhà cung cấp khác và các hệ điều hành khác, bao gồm Linux và Mac OS X, cũng dễ bị tấn công tương tự. Các tác giả khuyến nghị rằng máy tính nên được tắt nguồn khi không nằm trong tầm kiểm soát vật lý của chủ sở hữu (thay vì để ở chế độ ngủ) và phần mềm mã hóa phải được định cấu hình để yêu cầu mật khẩu để khởi động máy.
- Vào ngày 10 tháng 11 năm 2015, Microsoft đã phát hành bản cập nhật bảo mật để giảm thiểu lỗ hổng bảo mật trong BitLocker cho phép bỏ qua xác thực bằng cách sử dụng trung tâm phân phối khóa Kerberos độc hại, nếu kẻ tấn công có quyền truy cập vật lý vào máy, máy sẽ là một phần của miền và không có mã PIN hoặc bảo vệ ổ đĩa flash USB.
- BitLocker vẫn chưa hỗ trợ đúng các tính năng bảo mật TPM 2.0, do đó, có thể dẫn đến việc bỏ qua hoàn toàn tính năng bảo vệ quyền riêng tư khi các khóa được truyền qua Serial Peripheral Interface trong bo mạch chủ.

Tất cả các cuộc tấn công này đều yêu cầu truy cập vật lý vào hệ thống và bị ngăn chặn bởi một thiết bị bảo vệ thứ cấp như ổ đĩa flash USB hoặc mã PIN.

=== Duy trì nguyên tắc của Kerckhoffs ===
Mặc dù thuật toán mã hóa AES được sử dụng trong BitLocker thuộc phạm vi công cộng, nhưng việc triển khai thuật toán này trong BitLocker, cũng như các thành phần khác của phần mềm, đều là độc quyền; tuy nhiên, mã này có sẵn để các đối tác và doanh nghiệp của Microsoft xem xét, tùy thuộc vào thỏa thuận không tiết lộ.

Theo các nguồn tin của Microsoft, BitLocker không chứa cửa hậu được tích hợp cố ý, do đó, không có cách nào do Microsoft cung cấp để cơ quan thực thi pháp luật có quyền truy cập được đảm bảo vào dữ liệu trên ổ đĩa của người dùng. Năm 2006, Bộ Nội vụ Anh đã bày tỏ lo ngại về việc thiếu cửa hậu và đã cố gắng đàm phán với Microsoft để đưa ra một cửa hậu. Nhà phát triển và chuyên gia mật mã của Microsoft, Niels Ferguson đã từ chối yêu cầu về cửa hậu và nói rằng, "hãy bước qua xác tôi". Các kỹ sư của Microsoft đã nói rằng các đặc vụ của Cục Điều tra Liên bang Mỹ cũng đã gây áp lực lên họ trong nhiều cuộc họp để thêm một cửa hậu, mặc dù không có yêu cầu chính thức nào được đưa ra bằng văn bản; Các kỹ sư của Microsoft cuối cùng đã đề xuất rằng các tác nhân nên tìm kiếm bản sao cứng của khóa mã hóa mà chương trình BitLocker gợi ý rằng người dùng của chương trình tạo ra.

Quan điểm của Niels Ferguson rằng "cửa sau đơn giản là không thể chấp nhận được" phù hợp với nguyên tắc của Kerckhoffs. Được nhà mật mã học người Hà Lan Auguste Kerckhoffs nêu ra vào thế kỷ 19, nguyên tắc này cho rằng hệ thống mật mã phải an toàn, ngay cả khi mọi thứ về hệ thống, ngoại trừ khóa mã hóa, đều là kiến thức công khai.

Từ năm 2020, phương pháp và cấu trúc dữ liệu của BitLocker là kiến thức công khai do kỹ thuật đảo ngược; chương trình cryptsetup của Linux có khả năng đọc và ghi các ổ đĩa được BitLocker bảo vệ khi có khóa.

=== Những lo ngại khác ===
Bắt đầu từ Windows 8 và Windows Server 2012, Microsoft đã xóa Elephant Diffuser khỏi chương trình BitLocker mà không có lý do chính thức nào được nêu. Nghiên cứu của Dan Rosendorf cho thấy việc xóa Elephant Diffuser có "tác động tiêu cực không thể phủ nhận" đến tính bảo mật của mã hóa BitLocker trước các cuộc tấn công có chủ đích. Sau đó, Microsoft đã trích dẫn các lo ngại về hiệu suất và việc không tuân thủ Tiêu chuẩn xử lý thông tin liên bang (FIPS) để biện minh cho việc xóa bỏ "diffuser". Tuy nhiên, bắt đầu từ Windows 10 phiên bản 1511, Microsoft đã thêm một thuật toán mã hóa "XTS-AES" tuân thủ FIPS mới vào BitLocker. Bắt đầu từ Windows 10 phiên bản 1803, Microsoft đã thêm một tính năng mới có tên là "Kernel Direct Memory access (DMA) Protection" vào BitLocker để bảo vệ chống lại các cuộc tấn công DMA thông qua các cổng Thunderbolt 3. "Kernel Direct Memory access (DMA) Protection" chỉ bảo vệ chống lại các cuộc tấn công thông qua Thunderbolt. Truy cập bộ nhớ trực tiếp cũng có thể thực hiện được thông qua PCI Express. Trong loại tấn công này, kẻ tấn công sẽ kết nối Thiết bị PCI Express độc hại, có thể ghi trực tiếp vào bộ nhớ và bỏ qua thông tin đăng nhập Windows. Để bảo vệ lại loại tấn công này, Microsoft đã giới thiệu "Virtualization-based Security".

Vào tháng 10 năm 2017, có báo cáo rằng một lỗ hổng cho phép suy ra khóa riêng từ khóa công khai, điều này có thể cho phép kẻ tấn công bỏ qua mã hóa BitLocker khi sử dụng chip TPM bị ảnh hưởng. Lỗ hổng này là lỗ hổng Return of Coppersmith's Attack hay ROCA nằm trong thư viện mã do Infineon phát triển và đã được sử dụng rộng rãi trong các sản phẩm bảo mật như thẻ thông minh và TPM. Microsoft đã phát hành phiên bản cập nhật của chương trình cơ sở cho chip TPM của Infineon để khắc phục lỗ hổng thông qua Windows Update.

== Liên kết ngoài ==
- BitLocker Drive Encryption Technical Overview
- System Integrity Team Blog