2 điểm bởi GN⁺ 2025-04-03 | 1 bình luận | Chia sẻ qua WhatsApp
  • DEDA là bộ công cụ để đọc, giải mã và ẩn danh hóa các dấu chấm theo dõi màu trong tài liệu, tức các chấm vàng, có trong bản in từ máy in laser màu
  • Dấu chấm theo dõi màu trong tài liệu là những mẫu chấm có hệ thống rất nhỏ mã hóa thông tin về máy in và bản in, và được tích hợp trong hầu hết mọi máy in laser màu thương mại
  • Có thể đọc hoặc so sánh dữ liệu theo dõi từ ảnh scan, trích xuất các mẫu chưa biết, và thêm ma trận dấu chấm theo dõi tùy chỉnh vào PDF
  • Chức năng ẩn danh hóa hoạt động bằng cách loại bỏ phần lớn dữ liệu theo dõi khỏi ảnh scan, hoặc tạo mặt nạ ẩn danh hóa riêng cho từng máy in rồi áp dụng lên tài liệu PDF
  • Để có kết quả tốt, khuyến nghị ảnh scan đầu vào dùng nén không mất dữ liệu, 300 dpi và độ tương phản trung tính; các trang đen trắng hoặc bản in phun có thể không có dấu chấm theo dõi

Vấn đề DEDA xử lý

  • Document Colour Tracking Dots hoặc chấm vàng là các chấm nhỏ có hệ thống, mã hóa thông tin về máy in và chính bản in
  • Quy trình này được tích hợp trong hầu hết mọi máy in laser màu thương mại
  • Hầu như mọi bản in đều chứa thông tin đã mã hóa về thiết bị nguồn, ví dụ có thể bao gồm số sê-ri
  • DEDA cung cấp cả chức năng đọc và giải mã đặc trưng pháp chứng này, cùng chức năng ẩn danh hóa để ngăn việc truy vết tùy tiện
  • Khi sử dụng phần mềm, tác giả đề nghị trích dẫn bài báo sau
    • Timo Richter, Stephan Escher, Dagmar Schönfeld, Thorsten Strufe. 2018. Forensic Analysis and Anonymisation of Printed Documents. IH&MMSec '18, 127-138. DOI: https://doi.org/10.1145/3206004.3206019

Cài đặt và chạy GUI

  • Cần cài đặt Python 3
  • Có thể cài từ PyPI
    • pip3 install --user deda
  • Cũng có thể cài từ thư mục hiện tại
    • pip3 install --user .
  • Có thể cài Wand trên Unix và GNU/Linux như một phụ thuộc tùy chọn của deda_anonmask_apply
    • pip3 install --user wand
    • Nếu không có Wand, các trang có vùng màu trắng trong ảnh sẽ không thể được ẩn danh hóa
  • Chạy GUI bằng lệnh sau
    • deda_gui

Các việc có thể làm bằng công cụ dòng lệnh

  • Đọc dữ liệu theo dõi

    • Có thể đọc và trong một số trường hợp giải mã dữ liệu theo dõi từ ảnh scan
    • Để có kết quả tốt, đầu vào nên dùng nén không mất dữ liệu như png, 300 dpi và độ tương phản trung tính
    • Lệnh chạy:
      • deda_parse_print INPUTFILE
  • Tìm máy in khác trong một tập tài liệu scan

    • Có thể tìm các tài liệu được in bằng máy in khác trong nhiều tài liệu scan
    • Lệnh chạy:
      • deda_compare_prints INPUT1 INPUT2 [INPUT3] ...
  • Phân tích mẫu theo dõi chưa biết

    • Mẫu mới có thể không được parse_print nhận diện
    • Có thể trích xuất chấm vàng để phân tích thêm
    • Lệnh chạy:
      • deda_extract_yd INPUTFILE
  • Tạo dấu chấm theo dõi tùy chỉnh

    • Có thể tạo ma trận dấu chấm theo dõi tùy chỉnh và thêm vào tài liệu PDF
    • Nội dung được truyền dưới dạng tham số theo deda_create_dots -h
    • Lệnh chạy:
      • deda_create_dots PDFINPUT
    • Có thể dùng trang hiệu chỉnh được tạo bằng deda_anonmask_create -w làm đầu vào

Quy trình ẩn danh hóa

  • Ẩn danh hóa ảnh scan

    • Loại bỏ phần lớn dữ liệu theo dõi khỏi ảnh scan
    • Lệnh chạy:
      • deda_clean_document INPUTFILE OUTPUTFILE
  • Ẩn danh hóa tài liệu để in

    • Lưu tài liệu dưới dạng PDF và đặt là DOCUMENT.PDF
    • In testpage.pdf được tạo bằng lệnh sau, không để lề
      • deda_anonmask_create -w
    • Scan tài liệu đó ở 300 dpi, rồi truyền tệp không mất dữ liệu vào lệnh sau
      • deda_anonmask_create -r INPUTFILE
    • Quy trình này tạo mask.json, là mặt nạ ẩn danh hóa cho từng máy in riêng lẻ
    • Áp dụng mặt nạ đã tạo lên PDF
      • deda_anonmask_apply mask.json DOCUMENT.PDF
    • Kết quả tạo ra masked.pdf đã được ẩn danh hóa, có thể in với thiết lập lề trang bằng 0
    • Cần kiểm tra bằng kính hiển vi để chắc rằng mặt nạ che phủ các dấu chấm theo dõi của máy in
    • Bán kính chấm, offset x và offset y của mặt nạ có thể được điều chỉnh bằng tham số của deda_anonmask_apply
    • Nếu DOCUMENT.PDF có vùng đồ họa màu trắng hoặc màu sáng, các vùng đó chỉ có thể được che mặt nạ khi đã cài Wand

Khắc phục sự cố

  • Nếu gặp deda_parse_print: command not found, hãy kiểm tra cài đặt DEDA hoặc thêm đường dẫn bin của người dùng Python vào PATH
    • export PATH="$PATH:$(python -c 'import site,os; print(os.path.join(site.USER_BASE, "bin"))')"
  • Nếu DEDA không nhận diện được dấu chấm theo dõi, cần thiết lập chương trình scan để không loại bỏ cấu trúc giấy hoặc dấu chấm theo dõi bằng xử lý ngưỡng
    • Các trang đen trắng và bản in phun có thể không có dấu chấm theo dõi
  • Nếu máy in không in dấu chấm theo dõi, có thể tạo dấu chấm theo dõi tùy chỉnh hoặc in trang hiệu chỉnh bằng máy in khác rồi dùng làm mặt nạ cho máy in của mình
    • Có thể tạo dấu chấm theo dõi tùy chỉnh bằng deda_create_dots
    • Có thể tạo trang hiệu chỉnh bằng deda_anonmask_create -w
    • Có thể dùng phiên bản dấu chấm theo dõi đã ẩn danh hóa hoặc sao chép bằng deda_anonmask_create --copy
  • Lỗi cài đặt liên quan đến x86_64-linux-gnu-gcc có thể do phụ thuộc eel cần cho GUI
    • Lệnh đề xuất:
      • sudo apt-get install build-essential autoconf libtool pkg-config python3.6-dev gcc && pip3 install --user eel
  • Nếu thao tác PDF bị chặn bởi chính sách bảo mật với wand.exceptions.PolicyError, nguyên nhân là cấu hình ImageMagick

1 bình luận

 
GN⁺ 2025-04-03
Ý kiến trên Hacker News
  • Nhóm của chúng tôi đã dùng các chấm theo dõi màu vàng này để tái dựng tài liệu đã bị cắt vụn trong DARPA Shredder Challenge hơn 10 năm trước
    Có thể xem chương trình làm nổi bật các chấm trong lúc ghép các tài liệu đã bị cắt vụn: https://www.youtube.com/watch?v=uzZDhyrjdVo
    Nhờ vậy chúng tôi đã thắng với cách biệt lớn

    • Tôi vẫn nhớ hồi học tiểu học đã nghe về thử thách này trên Daily Planet
      Đọc câu chuyện tiếp theo làm tôi nhớ lại ký ức đã quên, khá là thú vị
    • Tôi cứ tưởng máy cắt vụn/máy quét thư viện trong Rainbows End của Vinge chỉ là một bối cảnh SF phỏng theo giải trình tự gene một cách lỏng lẻo, nên thật thú vị khi thấy một cách triển khai gần như ngoài đời thực
    • Tôi tò mò quy trình quét để đưa các mảnh vụn vào chương trình diễn ra thế nào
      Có vẻ bản thân quy trình đó cũng đáng viết riêng không kém thuật toán giải, và chắc phải có kiểu tính cách riêng mới chịu nổi đống hỗn loạn như vậy
  • Gần đây, vì một số lý do khó nói rõ ở đây, tôi có dịp xem xét các chấm theo dõi
    Thử chiếu đèn pin LED xanh dương lên bản in màu sẽ thấy hay. Sốc thật sự vì có vô số chấm rải khắp trang như thể rắc cát lên đó

    • Thật lạ là các hãng máy in chưa bị kiện tập thể vì lượng mực vàng bổ sung mà họ đã dùng suốt thời gian qua
    • Giờ đây cũng không chỉ là chuyện máy in nữa: https://datadotusa.com/technology.htm
    • Tôi tò mò đang nói tới loại máy in nào: laser, laser màu hay phun mực
  • Nếu máy in của tôi không in chấm theo dõi, ý tưởng rằng tôi có thể giả mạo chấm theo dõi của máy in khác khá thú vị xét về khả năng phủ nhận
    Dù vậy, ngay cả trong trường hợp này có lẽ vẫn cần truy cập vào máy in gốc để in mặt nạ ẩn danh

    • Theo Wikipedia, mẫu chấm mã hóa số sê-ri thiết bị và thời điểm in, nên để giả mạo máy in của người khác thì về cơ bản chỉ cần có số sê-ri
      Ngày nay có thể truy cập được từ xa thông qua phần cài đặt máy in
    • Nếu đã đến mức điều tra pháp y soi cả chấm theo dõi, thì hầu hết nỗ lực giả mạo sẽ lộ khá rõ, và thậm chí có khả năng trở thành bằng chứng để thu hẹp nghi phạm xuống những người biết kỹ thuật này
      Có thể lừa được người phân tích qua loa, nhưng điều tra viên có kinh nghiệm có lẽ sẽ nhìn theo kiểu: “chấm theo dõi rõ ràng là của hãng X, nhưng raster dùng trong thang xám thì rõ ràng lại thuộc phía Y”
  • Nếu bạn đã bỏ lỡ một bài thú vị liên quan thì đây: https://news.ycombinator.com/item?id=42880704

    • Đây là câu chuyện đáng đọc về việc các bản playtest thẻ Pokemon đời đầu mới “được phát hiện” gần đây bị xác định là giả, hoặc ít nhất là rất đáng ngờ, dựa trên sự tồn tại và việc giải mã các chấm này
      Điều thú vị hơn là người đăng phát hiện và phân tích đó đã có thể chịu thiệt hại cá nhân vì đã chi hàng nghìn đô la cho các thẻ giả, nhưng vẫn công bố kết quả
  • Tôi tò mò điều gì xảy ra nếu in cùng một trang bằng nhiều máy in
    Nếu máy in đầu tiên in nội dung thật, còn các máy in khác chỉ in thêm rất ít vào các vùng vẫn còn trắng, liệu một máy in có làm hỏng chấm theo dõi của máy in khác không?

    • Có lẽ là có. Vì máy in không có cách nào biết rằng nó không nên làm vậy
      Tuy nhiên tùy chi tiết điều kiện, vẫn có khả năng đọc được một phần hoặc toàn bộ
  • Tôi bắt đầu nghĩ rằng nhà của gã lập dị nào khởi động một dự án kiểu OpenWRT cho máy in chắc sẽ bị MIB ghé thăm
    Kiểu như không thể cho phép biểu đạt không thể truy vết, và phải có khả năng đánh phẫu thuật vào nguồn gốc của các meme gây khó chịu. Vì vậy tôi dùng một máy in laser đen trắng mua trên craigslist, đặt trong VLAN riêng và cho đi qua một máy chủ CUPS trung gian
    Không ai từng đồng ý một cách đầy đủ thông tin với những gì Niantic đã làm trong hơn 10 năm qua, và cũng không ai đồng ý với việc mọi bản in đều trở nên có thể truy vết. Không có cảnh báo nào trên sản phẩm hay quy trình rằng “không có mã định danh nhìn thấy được không có nghĩa là không có mã định danh; có thể có mã định danh steganographic”
    Việc các cỗ máy đa dụng trong sản phẩm chúng ta mua bị khóa đến mức chủ sở hữu như chúng ta không thể tái sử dụng theo ý mình cũng vậy. Chúng ta đã bị buộc phải chấp nhận những sự xúc phạm từ tổ chức thương mại và cơ quan nhà nước theo kiểu “hoặc ăn cái sandwich phân này, hoặc không có sandwich và còn bị đánh”, và Consumer Action Taskforce(CAT) của Louis Rossmann đang trở thành một tuyển tập tốt về những trường hợp như vậy
    Đã đến lúc phản kháng. Hãy hack những máy in dùng được, thay firmware bằng thứ thực dụng, và thoát khỏi mấy chuyện nhảm nhí này. Những chấm theo dõi này và các kiểu theo dõi steganographic khác tồn tại để truy lùng và bịt miệng những người như tôi, những người chỉ ra các cơ chế kiểm soát ẩn và lan truyền các meme bị con mực obsidian khổng lồ gán nhãn là rủi ro thông tin/sai lệch thông tin

    • Nếu định làm giả, tôi nghĩ thường người ta sẽ không in lên giấy theo kiểu gia đình/văn phòng, mà sẽ kiếm thứ như CNC cho thợ đồng hồ với dung sai chính xác nhỏ để làm khuôn in bằng nhôm hay vật liệu tương tự
      In trên giấy trông có vẻ ngu ngốc vì cả người xử lý tiền giấy bình thường cũng dễ nhận ra
  • Có vẻ chuyện này sẽ khá quan trọng trong vài năm tới
    Nếu định in truyền đơn hoặc pamphlet biểu tình, tốt nhất là giao cho một nhà in chuyên nghiệp nếu có người đáng tin, hoặc tối thiểu mua máy in bằng tiền mặt, tuyệt đối không kết nối Internet và chỉ nối USB với máy tính Linux
    macOS và Windows có thể tự động cài driver máy in, và driver đó có thể liên hệ về trụ sở để liên kết ID máy in với một định danh nào đó

    • Muốn biết các nước toàn trị Đông Âu từng làm việc này thế nào thì xem Samizdat: https://en.m.wikipedia.org/wiki/Samizdat
    • Nếu lo đến mức đó thì mua bộ in lụa còn hơn
      Có thể in cả áo thun
    • Chẳng phải theo dõi những người phát truyền đơn dễ hơn nhiều sao?
    • Hoặc cứ dùng máy in mua bằng tiền mặt để in hàng loạt chấm theo dõi hợp lệ nhưng được ngẫu nhiên hóa trên toàn bộ tài liệu
  • Tôi thật sự tò mò tỷ lệ máy in có thể được giải mã bằng công cụ công khai là bao nhiêu
    Liệu có thống kê nào về mã của nhà sản xuất nào đã bị phá không?

    • Trên GitHub có tham chiếu bài báo năm 2018 của Timo Richter, Stephan Escher, Dagmar Schönfeld, Thorsten Strufe, Forensic Analysis and Anonymisation of Printed Documents
      Có bản sao ở đây: https://ericbalawejder.com/assets/hexview/Forensic-Analysis-...
      Bảng 1 tổng hợp nhà sản xuất, số máy in được phân tích và việc có phát hiện chấm hay không: Brother 1 máy không có, Canon 10 máy có, Dell 4 máy có, Epson 8 máy một số mẫu, Hewlett-Packard 43 máy một số mẫu, IBM 1 máy có, KonicaMinolta 21 máy một số mẫu, Kyocera 4 máy có, Lanier 1 máy có, Lexmark 6 máy một số mẫu, NRG 1 máy có, Okidata 9 máy một số mẫu, Ricoh 6 máy có, Samsung 5 máy không có, Savin 1 máy có, Tektronix 4 máy không có, Unknown 1 máy có, Xerox 15 máy một số mẫu
      Ngoài một vài manh mối được mô tả trong bài báo, có vẻ như khi phát hiện được mẫu chấm thì nhìn chung họ đã hiểu được chúng
  • Máy in laser đen trắng cũng tạo chấm theo dõi sao?
    Và ý nghĩa của kiểu theo dõi này là gì. Về nguyên tắc, có nhất thiết mọi ngóc ngách trong đời sống của chúng ta đều phải bị theo dõi không?

    • Tôi không biết chắc về các định danh steganographic trong máy in đen trắng, nhưng nếu máy in đen trắng không cài thông tin theo dõi thì tôi lại thấy ngạc nhiên hơn
      Việc rải thông tin nguồn gốc lên mọi thứ có giá trị quá lớn về an ninh quốc gia. Lý do được đưa ra luôn là an toàn hoặc bảo mật, rồi ngay sau đó là “nhưng có hại gì đâu, bạn đâu có làm việc gì không nên làm… đúng không?”
    • Theo tôi hiểu thì Secret Service đã đề nghị hoặc yêu cầu các nhà sản xuất thêm các chấm này sau khi chất lượng máy in đã đủ tốt để có thể tái tạo tiền giấy một cách dễ dàng
      Nếu mục đích chính là truy vết những kẻ làm tiền giả, thì máy in đen trắng không cần đến nó, nên không được tích hợp
    • https://www.eff.org/pages/list-printers-which-do-or-do-not-d...
      Danh sách này chưa được cập nhật kể từ năm 2017, và rất có thể là kết quả suy luận của một người dựa trên yêu cầu FOIA. Có lẽ phải đợi đến lần tới khi một trường đại học Trung Quốc công bố bí mật của chính phủ Mỹ
    • Chắc ý tưởng là sẽ không ai bị đánh lừa bởi tờ 20 đô la in đen trắng, nên không cần phải in chấm lên đó
    • Máy in đơn sắc không có chấm vàng
      Vài chục năm trước tôi từng làm một phần mềm giấu thông tin bằng cách điều chỉnh kerning của chữ, nhưng theo tôi biết thì dự án đó không đi đến kết quả gì đáng kể
  • Có thể bạn cũng quan tâm: https://en.wikipedia.org/wiki/EURion_constellation