Vào thứ Tư, Ủy ban châu Âu đã công bố một ứng dụng di động(cửa sổ mới) được thiết kế để cho phép xác minh độ tuổi trực tuyến mà không cần chia sẻ dữ liệu cá nhân với các nền tảng. Các quan chức EU cho biết ứng dụng đã sẵn sàng, đáp ứng các tiêu chuẩn quyền riêng tư cao nhất và chỉ ra mã nguồn mở làm bằng chứng về tính minh bạch.

Tuy nhiên, chỉ trong vòng vài giờ, các nhà nghiên cứu bảo mật đã bắt đầu mổ xẻ mã nguồn mở. Đến thứ Năm, nhà tư vấn bảo mật Paul Moore đã vượt qua lớp bảo vệ của ứng dụng trong chưa đầy hai phút(cửa sổ mới).

A screenshot of the EU age verification app

Những người khác đã xác nhận phát hiện này. Bộ kiểm soát giới hạn tần suất của ứng dụng được lưu trữ trong một tệp có thể chỉnh sửa, xác thực sinh trắc học có thể bị tắt bằng một thay đổi cấu hình đơn giản, và các thông tin đăng nhập nhạy cảm có thể bị truy cập mà không có sự bảo vệ của phần cứng bảo mật.

Ủy ban đã hạ thấp phát hiện này và gọi bản phát hành là một phiên bản demo. Cả Moore và nhà mật mã học người Pháp Olivier Blazy đều phản đối, chia sẻ với Politico(cửa sổ mới) rằng họ đang thử nghiệm phiên bản mã mới nhất khi phát hiện ra các lỗ hổng.

Sau đó, Ủy ban cho biết sự cố đã được khắc phục, nhưng vụ việc vẫn cho thấy các hệ thống xác minh độ tuổi này dễ bị tổn thương như thế nào.

Ứng dụng xác minh độ tuổi của EU hoạt động ra sao và những gì đã sai sót

Ứng dụng xác minh độ tuổi của EU cho phép mọi người xác minh độ tuổi bằng hộ chiếu, căn cước công dân hoặc nhà cung cấp tin cậy như ngân hàng. Sau đó, các nền tảng có thể yêu cầu ứng dụng kiểm tra xem một người có trên độ tuổi nhất định hay không mà không cần truy cập dữ liệu cá nhân cơ bản, còn được gọi là bằng chứng không tri thức, hay zero-knowledge proof.

Việc triển khai đã làm suy yếu thiết kế đó. Ứng dụng xác minh độ tuổi của EU lưu trữ mã PIN đã mã hóa trong một tệp cấu hình có thể chỉnh sửa trên thiết bị, tách biệt với kho danh tính lưu trữ dữ liệu nhạy cảm. Bằng cách xóa một vài giá trị và khởi động lại ứng dụng, kẻ tấn công có thể thiết lập mã PIN mới trong khi tái sử dụng thông tin đăng nhập từ hồ sơ trước đó.

Bộ kiểm soát giới hạn tần suất nhằm ngăn chặn việc đoán thử liên tục được lưu trữ dưới dạng một bộ đếm đơn giản trong cùng một tệp, có thể đặt lại về không, xóa sạch mọi hồ sơ về các lần thử thất bại. Xác thực sinh trắc học được kiểm soát bằng một cờ boolean duy nhất; chuyển đổi từ true sang false sẽ bỏ qua hoàn toàn việc kiểm tra.

Được xây dựng để kiểm tra độ tuổi, nhưng không an toàn

Sau khi các nhà nghiên cứu sử dụng mã để vạch trần các lỗ hổng, giới chức trách đã định nghĩa lại ứng dụng này như một phiên bản demo.

Nhiều nhà phát triển lưu ý rằng dữ liệu nhạy cảm lẽ ra phải được lưu trữ trong vùng bảo mật secure enclave, một lớp bảo vệ cấp phần cứng có sẵn trên điện thoại thông minh hiện đại giúp các cuộc tấn công này khó khăn hơn nhiều.

But các lỗ hổng này bộc lộ một vấn đề vượt xa phạm vi ứng dụng cụ thể này. Xác minh độ tuổi vốn không an toàn ngay từ khâu thiết kế, vì quá trình này đòi hỏi phải liên kết danh tính thực với một hành động trực tuyến. Liên kết đó phải được lưu trữ ở đâu đó, dù chỉ là tạm thời, và dù ở đâu, nó cũng trở thành mục tiêu của tin tặc, chính phủ và bất kỳ ai có truy cập trái phép vào dữ liệu cơ bản. Liên kết đó càng tập trung và có thể tái sử dụng, mục tiêu sẽ càng lớn.

Luật xác minh độ tuổi của EU được kỳ vọng là một tiêu chuẩn chung, bảo vệ quyền riêng tư nhằm thay thế hệ thống pháp lý chắp vá đang hình thành giữa các Quốc gia Thành viên, nhưng sự tự tin của Ủy ban về việc ứng dụng đã sẵn sàng hóa ra là quá sớm. Hơn 400 nhà nghiên cứu về quyền riêng tư và bảo mật đã gửi thư cho Ủy ban vào tháng Ba(cửa sổ mới) yêu cầu tạm dừng triển khai cho đến khi công nghệ xác minh độ tuổi được hoàn thiện về mặt khoa học.