Sự phát triển của mật mã bảo mật iOS
Qua các năm, Apple liên tục tinh chỉnh cơ chế bảo mật để ngăn cản các truy cập trái phép vào các thiết bị của họ. Một trong các khía cạnh quan trọng nhất của quá trình tiến hóa này là hệ thống bảo vệ mật mã ngày càng tinh vi trong các thiết bị iOS. Trong bài viết này, hãy cùng tìm hiểu về cách mà việc trì hoãn giữa các lần nhập mật mã sai đã phát triển qua thời gian, từ đó hiểu thêm về cách bảo vệ màn hình khóa của iOS trở nên chắc chắn hơn như thế nào.
Giai đoạn đầu
Trong thời kì đầu của iOS, số lần nhập mật mã trên thực tế là không có giới hạn. Thời gian chờ giữa các lần nhập sai sẽ tăng dần, nhưng trong một số trường hợp nghiêm trọng, thời gian đợi có thể lên đến các con số vô lý như “Next attempt in 100 million years” (Lần thử tiếp theo sẽ là sau 100 triệu năm). Có rất nhiều ảnh chụp về thời gian khóa màn hình quá đáng này trên mạng. Dưới đây là một ví dụ:
IOS 10 và IOS 11
Ở IOS 10 và 11, Apple đã giới thiệu một cơ chế hiệu quả để ngăn cản các cuộc tấn công brute-force vào mật mã, với việc thực hiện các khoảng trễ tăng dần sau mỗi lần thử không thành công. Kết quả cho IOS 10 và 11 là giống nhau:
- 5 lần thử: 1 phút
- 6 lần thử: 5 phút
- 7 lần thử: 15 phút
- 8 lần thử: 15 phút
- 9 lần thử: 1 tiếng
- 10 lần thử: 1 tiếng
- 11 lần thử: Xóa dữ liệu hoặc “IPhone bị vô hiệu hóa”
IOS 12: Vẫn không có sự thay đổi
Với sự ra mắt của IOS 12, Apple vẫn duy trì một kết cấu tương tự, giữ các khoảng trễ phần lớn không thay đổi. Thử nghiệm trên các thiết bị chạy IOS 10 và IOS 12 cho thấy cả 2 thiết bị đều đi theo cùng một khuôn mẫu về tăng khoảng trễ, đỉnh điểm là một lần đợi dài 1 tiếng trước lần thử cuối cùng. Trong lần đó, thử nghiệm được dừng giữa chừng với thiết bị IOS 10 để giữ jailbreak máy, điều này là cần thiết cho việc truy xuất dữ liệu ở mức độ thấp vào thời điểm đó, trong khi để thiết bị IOS 12 bị vô hiệu hóa sau nhiều lần thử. Một lần nữa, kết quả thử nghiệm với IOS 12 là tương đồng với IOS 10 và IOS 11:
- 5 lần thử: 1 phút
- 6 lần thử: 5 phút
- 7 lần thử: 15 phút
- 8 lần thử: 15 phút
- 9 lần thử: 1 tiếng
- 10 lần thử: 1 tiếng
- 11 lần thử: Xóa dữ liệu hoặc “IPhone bị vô hiệu hóa”
Thú vị thay, vào thời điểm đó Apple đã sai về các con số này trong tài liệu chính thức của họ. Trong https://support.apple.com/en-gb/ht204306, Apple đã tuyên bố rằng: “Nếu người dùng nhập sai mật mã 6 lần liên tiếp, người dùng sẽ bị khóa không thể truy cập và thiết bị bị vô hiệu hóa.”. Trong thử nghiệm trên, các khoảng trễ bắt đầu từ lúc nhập sai mật mã 5 lần liên tiếp và sau đấy bắt đầu tăng dần. Lỗi này khá khó hiểu, tuy nhiên Apple đã sửa lại tài liệu, và các con số bị sai đã không còn hiện hữu trong tài liệu chính thức.
2023 và sau đó
Đến năm 2023, cơ chế trì hoãn vẫn được giữ nguyên trong các phiên bản hiện hữu tại thời điểm đó. Tuy nhiên, chúng tôi đã nhận ra rằng phiên bản mới nhất của hệ thống trì hoãn mật mã của Apple đã mang đến các khoảng thời gian chờ dài hơn là 3 tiếng và 8 tiếng trước khi thiết bị bị vô hiệu hóa:
- 1-3 lần thử: không có trì hoãn
- lần thử thứ 4: 1 phút
- lần thử thứ 5: 5 phút
- lần thử thứ 6: 15 phút
- lần thử thứ 7: 1 tiếng
- lần thử thứ 8: 3 tiếng
- lần thử thứ 9: 8 tiếng
- hơn 10 lần thử: Thiết bị bị vô hiệu hóa và kết nối với Mac hoặc PC
Cách tiếp cận mới này đã tăng đáng kể khoảng thời gian cần thiết để kẻ tấn công có thể đưa ra nhiều phỏng đoán sai, khiến cho việc tấn công brute-force thủ công chở nên không thực tế.
Mật khẩu cũ có thể vẫn dùng được
Có một tính năng mới đã được thêm vào ở bản IOS 17 cho phép tạm thời dùng mật mã cũ nếu quên mất mật mã mới. Tuy nhiên, một số người dùng đã đăng lên mạng các bằng chứng về các hành vi bất thường (vd: https://discussions.apple.com/thread/254927446?sortBy=rank). Chúng tôi đã thấy các bài đăng thuật lại rằng mật mã cũ vẫn còn khả dụng mặc dù đã qua khung thời gian 72 tiếng.
Gần đây, Apple đã ra mắt một tính năng cho phép người dùng thiết lập lại hoàn toàn thiết bị của họ trực tiếp từ màn hình khóa nếu họ xác nhận được rằng đã quên mất mật mã. Đáng ngạc nhiên là tính năng này đã bị thiếu trong một thời gian dài, buộc người dùng phải nhập mật mã sai 10 lần để kích hoạt trạng thái cần phải kết nối với máy tính để được hướng dẫn sâu hơn, hoặc tìm kiếm về hướng dẫn thiết lập chế độ DFU trên mạng. Điều không chắc chắn xoay quanh quá trình thiết lập lại này dẫn đến sự gia tăng của các giải pháp giá rẻ của bên thứ ba được tiếp thị là công cụ có thể bỏ qua quy trình quên mật mã. Trên thực tế, các công cụ đấy chỉ đơn giản là thực hiện một lần thiết lập lại (điều mà hiển nhiên có thể làm một cách miễn phí), dẫn đến mất dữ liệu hoàn toàn trong khi thiết bị vẫn bị gắn với Apple ID gốc.
Ưu điểm của thời gian trì hoãn khóa dài hơn
Cơ chế trì hoãn mới (khóa không truy cập tăng lên 3 đến 8 tiếng sau nhiều lần thử) có một lợi ích chính: Giảm khả năng khiến thiết bị vô tình bị khóa nếu rơi vào tay những đứa trẻ hiếu kỳ. Trước đây, 2.5 tiếng bấm phím liên tục có thể khiến thiết bị bị vô hiệu hóa vĩnh viễn. Giờ đây, một đứa trẻ sẽ khó có thể truy cập vào thiết bị trong cả quá trình khóa 12 tiếng để kích hoạt xóa toàn bộ.
Mật mã thời gian sử dụng (Screen-time passcode)
Nói về bảo vệ trẻ em, mật mã thời gian sử dụng (thường được dùng để kiểm soát và hạn chế bởi phụ huynh) có hệ thống trì hoãn riêng. Các khoảng trễ sẽ tăng dần, đạt đến 1 tiếng sau 11 lần thử, tuy nhiên không có xóa dữ liệu. Với IOS 18, các khoảng trễ sẽ như sau:
- 5 lần thử đầu tiên: không có khoảng trễ
- lần thử thứ 6: 1 phút
- lần thử thứ 7: 5 phút
- lần thử thứ 8: 15 phút
- lần thử thứ 9: 1 tiếng
Chúng tôi không thử nghiệm thêm vượt quá điểm này. Ngoài ra, định dạng của mật mã thời gian sử dụng vẫn chỉ giới hạn trong 4 chữ số như trước đây.
Mật mã: Những hiểu lầm, sự thật và các chi tiết đáng ngạc nhiên
Mặc dù mã PIN và mật mã có vẻ không phải là chủ đề hấp dẫn nhất, một vài chi tiết thú vị về chúng vẫn đáng để tìm hiểu. Chúng tôi đã khám phá ra một số sự thật và bác bỏ một số quan niệm sai lầm về cách mà mật mã bảo mật thực sự hoạt động. Từ các quan điểm sai lầm về bảo vệ trước các cuộc tấn công brute-force đến các ngộ nhận về cách vượt qua bộ đếm thời gian khóa truy cập, mật mã bảo mật trên IOS phức tạp hơn những gì chúng ta nghĩ.
Liệu dữ liệu có thực sự bị xóa sau 10-11 lần thử?
Câu trả lời sẽ là có và không, hoặc là có thể nói, tùy tình huống.
- Trên các thiết bị 32bit, dữ liệu sẽ không bị xóa. Trên thực tế, với IOS 7 trở về trước, trích xuất dữ liệu mà không cần đến mật mã là có thể.
- Trên các thiết bị mới hơn, dữ liệu sẽ không bị xóa vật lý; chỉ có khóa mã hóa trên metadata bị xóa. Điều này vẫn làm cho dữ liệu không thể truy cập được vì hầu hết mọi thứ trên IiPhone đều được mã hóa.
- Với một số thiết bị 64bit (đến IiPhone 7) chạy IOS 12 trở về trước, vẫn có khả năng brute-force được mật mã và phục hồi dữ liệu ngay cả sau khi thiết bị đã vào trạng thái vô hiệu hóa.
Có thêm một lần thử nữa bằng cách cập nhật IOS?
Một tin đồn phổ biến cho rằng nếu một thiết bị bị vô hiệu hóa sau quá nhiều lần thử không thành công, cập nhật IOS (vd: bằng 3uTools) cho thêm một lần thử nữa. Các thử nghiệm của chúng tôi không tìm thấy bất kì bằng chứng nào ủng hộ ý kiến này. Thỉnh thoảng, một lần thử nữa sẽ xuất hiện nhưng nó không có giá trị bởi kể cả khi dùng mật mã đúng thì nó vẫn không hoạt động.
Liệu các khoảng trễ trì hoãn đó có ảnh hưởng đến nỗ lực brute-force trong điều tra pháp y không?
Không, các khoảng trễ chỉ áp dụng cho các lần nhập mật mã qua giao diện người dùng. Với các công cụ pháp y có khả năng brute-force mật mã, các khoảng trễ này không có tác động lên chúng. Tốc độ brute-force sẽ khác nhau:
- Trên các thiết bị 32bit, tỷ lệ sẽ từ 5-20 lần thử mỗi giây.
- Trên các thiết bị mới hơn, tốc độ giảm rõ rệt. Lấy ví dụ, một báo cáo trên LinkedIn cho thấy một chiếc IPhone SE 2020 (chip A13, IOS 15.6.1) bị giới hạn vào khoảng 2 lần thử trong 1 phút; 595000 mật mã tốn 192 ngày để xử lý.
Liệu có giải pháp brute-force mật mã nào cho IPhone 12 và các thiết bị mới hơn không?
Hiện tại, không có cách nào để brute-force mật mã trên IPhone với chip A14 hoặc mới hơn (IPhone 12 hoặc mới hơn). Điều này có thể do việc chuyển tiếp đến thế hệ Secure Enclave mới.
Tốc độ brute-force trên lý thuyết của Apple và tốc độ thực tế
Tài liệu chính thức của Apple tuyên bố rằng: “Số lần lặp được hiệu chỉnh sao cho mỗi lần thử sẽ mất khoảng 80 mili-giây. Thực tế, sẽ phải mất 5,5 năm để có thể thử hết các tổ hợp của mật mã chữ số với 6 kí tự bao gồm chữ thường và số.”
Trên thực tế, các thông số trên không khớp với tốc độ brute-force ghi nhận đc. Kể cả IiPhone 7 cũng không thể đạt đến 12 lần thử mỗi giây. Thêm vào đó, tính toán của Apple giả định một mật mã 6 kí tự chữ thường và số, vốn không phải là một lựa chọn điển hình. Nếu người dùng có mật mã 6 chữ số đơn giản, brute-force ở tốc độ này rõ ràng tốn ít thời gian hơn, vốn không phải tình huống trong thực tế.
Mật mã giống nhau liên tiếp sẽ không tính
Nếu một mật mã được nhập nhiều lần liên tiếp, IOS sẽ tính chúng là cùng một lần thử thay vì tăng bộ đếm nhập sai lên.
Kết luận
Sự phát triển của mật mã bảo mật IOS phản ánh cách tiếp cận của Apple để bảo vệ quyền truy cập vào thiết bị của họ bằng cách tăng dần độ trễ giữa những lần mở khóa không thành công. Từ khi được triển khai lần đầu trong iOS 10 và 11 cho đến phiên bản hiện tại, hệ thống được thiết kế để ngăn chặn truy cập trái phép vào dữ liệu của người dùng.
Xem thêm: Đào tạo Điều tra kỹ thuật số điện tử