Lỗ hổng C2PA cho phép "hack thời gian" để làm giả ảnh trúng số

Công nghệ03 tháng 10, 2026·6 phút đọc

Một nhà nghiên cứu bảo mật đã chứng minh rằng siêu dữ liệu C2PA — chuẩn xác thực nội dung số đang được nhiều ông lớn công nghệ hậu thuẫn — có lỗ hổng cho phép ký một chữ ký hợp lệ lên... chuỗi rỗng, từ đó thay đổi nội dung ảnh sau khi đã có dấu thời gian tin cậy. Khai thác này biến C2PA từ công cụ chống giả mạo thành chính công cụ hỗ trợ giả mạo.

Lỗ hổng C2PA cho phép "hack thời gian" để làm giả ảnh trúng số

Trong lịch sử điện ảnh, pha "hack" ấn tượng nhất có lẽ thuộc về bộ phim Kung Fury (2015), khi nhân vật Hackerman hack chính thời gian để sửa chữa những sai lầm trong quá khứ. Câu hỏi đặt ra: nếu có khả năng đó, chúng ta sẽ làm gì? Cá nhân tôi sợ hiệu ứng cánh bướm, nên chỉ dám quay lại vài giờ để nói với chính mình dãy số trúng thưởng mà thôi.

Và hóa ra, theo siêu dữ liệu C2PA được cho là "không thể làm giả" của bức ảnh dưới đây, tôi đã thực sự làm đúng như vậy.

Ảnh vé số EuroMillions với siêu dữ liệu C2PA bị thao túngẢnh vé số EuroMillions với siêu dữ liệu C2PA bị thao túng

Dĩ nhiên, bạn có thể nhận ra ngay đây là ảnh đã qua Photoshop. Mục đích của thí nghiệm này không phải là gian lận xổ số thật, mà là phơi bày một lỗ hổng nghiêm trọng trong cách C2PA vận hành.

C2PA hoạt động như thế nào?

Chuẩn C2PA (Coalition for Content Provenance and Authenticity) được thiết kế để chống lại nạn nội dung giả mạo do AI tạo ra, hiện được Adobe, Google, Microsoft và nhiều ông lớn công nghệ hậu thuẫn. Một manifest C2PA điển hình chứa hai chữ ký số:

  • Chữ ký claim (claim signature): xác nhận nội dung, ví dụ "đây là ảnh chụp tại tọa độ GPS X vào thời điểm Y". Trong một bài viết trước, tác giả đã chứng minh chữ ký này gần như vô giá trị, vì ta có thể ký bất kỳ claim nào mình muốn — ít nhất là với các triển khai C2PA trên điện thoại cao cấp như ứng dụng Camera của Google Pixel.
  • Chữ ký từ Time Stamp Authority (TSA): đây mới là phần thú vị. Vì không thể tin tưởng thiết bị tự khai thời gian của chính nó, hệ thống sẽ hỏi một máy chủ từ xa qua giao thức RFC 3161. Máy chủ trả về chữ ký khẳng định: "đúng, tôi đã thấy hash này tại thời điểm này". Chữ ký này được nhúng vào siêu dữ liệu C2PA, hoạt động như một nhân chứng độc lập.

Điểm đáng chú ý là với Pixel 10, Google quyết định rằng thiết bị có thể tự tin tưởng về thời gian của chính nó. Tác giả bài viết tỏ ra rất hoài nghi về cơ chế "dấu thời gian tin cậy trên thiết bị" này, dù chưa đánh giá đầy đủ.

Lỗ hổng nằm ở đâu?

Cuộc tấn công trong bài viết này không nhắm vào TSA — giả định rằng máy chủ TSA hoạt động đúng như quảng cáo. Thay vào đó, nó khai thác một lỗi thuộc nhóm "spec footgun" (đặc tả tự chĩa súng vào chân mình).

Cụ thể: C2PA cho phép khai báo các "vùng loại trừ" (exclusions) tùy ý — tức là các dải byte trong file sẽ không được đưa vào tính toán chữ ký. Điều này đã được ghi rõ trong đặc tả, và Tiến sĩ Neal Krawertz từng chỉ ra trong danh sách các lỗ hổng C2PA công bố tháng 6/2025.

Điểm mới ở đây là: kẻ ký độc hại có thể cố tình loại trừ toàn bộ file, tạo ra một chữ ký hoàn toàn hợp lệ trên... chuỗi rỗng. Điều này cho phép file bị chỉnh sửa sau đó mà không làm mất hiệu lực chữ ký, cũng không phá vỡ bằng chứng dấu thời gian của TSA.

Minh họa quá trình tạo manifest C2PA với vùng loại trừ toàn fileMinh họa quá trình tạo manifest C2PA với vùng loại trừ toàn file

Khi dùng công cụ c2patool -d để dump manifest của file PoC, phần quan trọng hiện ra rõ ràng: giá trị 3995383 là độ dài toàn bộ file, còn 47DE...uFU= chính là hash của chuỗi rỗng. Chữ ký claim ký lên hash đó, và chữ ký dấu thời gian ký lên chữ ký claim. Về bản chất, ta đang ký vào hư vô, nhưng cho đến nay, mọi công cụ xác minh C2PA mà tác giả thử nghiệm đều không hề gắn cờ bất thường.

Chúng ta đang ký vào hư vô, nhưng tất cả công cụ xác minh C2PA hiện có đều không phát hiện điều gì bất thường.

Tại sao khó vá?

Việc phát hiện trường hợp loại trừ toàn bộ file thì dễ — chỉ cần báo invalid là xong. Nhưng câu hỏi hóc búa hơn là: nếu chỉ một phần nhỏ bị loại trừ thì sao? Làm thế nào để phân biệt vùng loại trừ vô hại với vùng có thể thay đổi hoàn toàn diện mạo bức ảnh nếu bị chỉnh sửa? Các thí nghiệm va chạm hash MD5 trong quá khứ đã chứng minh điều này là hoàn toàn khả thi.

Tác giả ban đầu định kết bài bằng khuyến nghị "nên loại bỏ tính năng exclusion khỏi đặc tả C2PA", nhưng mọi chuyện không đơn giản như vậy.

Lý do chính khiến tính năng exclusion tồn tại là vì một số định dạng file buộc phải cần đến nó. Ví dụ, trong file PNG, mỗi chunk có checksum CRC32 riêng, và checksum này phải được sửa lại sau khi chữ ký được nhúng vào file. Điều này tạo ra vòng phụ thuộc vòng tròn, trừ khi CRC32 được loại trừ khỏi phạm vi chữ ký.

Giải pháp đề xuất

Theo tác giả, hướng đi đúng đắn là đặc tả rõ ràng, cụ thể những phần nào của file được phép loại trừ đối với từng định dạng file được hỗ trợ, đồng thời yêu cầu công cụ xác minh bắt buộc thực thi các ràng buộc này.

Đây không phải vấn đề kỹ thuật đơn thuần, mà là bài học về cách các chuẩn an ninh được thiết kế: một tính năng linh hoạt quá mức, dù xuất phát từ nhu cầu hợp lý, có thể trở thành lỗ hổng chí mạng nếu thiếu ràng buộc chặt chẽ.

Sơ đồ mô tả mối quan hệ giữa chữ ký claim, dấu thời gian TSA và vùng loại trừSơ đồ mô tả mối quan hệ giữa chữ ký claim, dấu thời gian TSA và vùng loại trừ

Ý nghĩa với người dùng Việt Nam

C2PA đang được quảng bá như giải pháp then chốt để chống nạn tin giả và nội dung do AI tạo ra — vấn đề đang ngày càng nhức nhối tại Việt Nam, đặc biệt trong bối cảnh các chiến dịch thông tin sai lệch trên mạng xã hội. Việc một lỗ hổng cơ bản như vậy tồn tại trong đặc tả cho thấy rằng không nên đặt trọn niềm tin vào bất kỳ nhãn "đã xác thực" nào.

Người dùng cần nhớ rằng: dấu xác thực nội dung số chỉ có giá trị khi toàn bộ chuỗi công cụ — từ thiết bị chụp, máy chủ dấu thời gian, đến phần mềm xác minh — đều được triển khai đúng và chặt chẽ. Cho đến khi các lỗ hổng như vậy được vá, một bức ảnh có "chứng nhận C2PA hợp lệ" vẫn có thể là ảnh giả mạo hoàn toàn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗