DEDA – ชุดเครื่องมือสำหรับดึงจุดติดตาม ถอดรหัส และทำให้นิรนาม
(github.com/dfd-tud)- DEDA เป็นชุดเครื่องมือสำหรับอ่าน ถอดรหัส และทำให้นิรนามจุดติดตามสีของเอกสาร หรือจุดสีเหลือง ที่อยู่ในสิ่งพิมพ์จากเครื่องพิมพ์เลเซอร์สี
- จุดติดตามสีของเอกสารคือ รูปแบบจุดเชิงระบบ ขนาดเล็กที่เข้ารหัสข้อมูลของเครื่องพิมพ์และสิ่งพิมพ์ไว้ และถูกรวมอยู่ในเครื่องพิมพ์เลเซอร์สีเชิงพาณิชย์แทบทั้งหมด
- สามารถอ่านหรือเปรียบเทียบข้อมูลติดตามจากภาพสแกน ดึงรูปแบบที่ยังไม่รู้จัก และเพิ่ม เมทริกซ์จุดติดตาม ของตัวเองลงใน PDF ได้
- ฟังก์ชันทำให้นิรนามทำงานโดยลบข้อมูลติดตามส่วนใหญ่ออกจากภาพสแกน หรือสร้างมาสก์ทำให้นิรนามเฉพาะเครื่องพิมพ์เพื่อนำไปใช้กับเอกสาร PDF
- เพื่อผลลัพธ์ที่ดี แนะนำให้ใช้ภาพสแกนอินพุตแบบ บีบอัดไม่สูญเสียข้อมูล, 300 dpi และคอนทราสต์เป็นกลาง โดยหน้าขาวดำหรือสิ่งพิมพ์จากอิงก์เจ็ตอาจไม่มีจุดติดตาม
ปัญหาที่ DEDA จัดการ
- Document Colour Tracking Dots หรือจุดสีเหลือง คือจุดเชิงระบบขนาดเล็กที่เข้ารหัสข้อมูลเกี่ยวกับเครื่องพิมพ์และตัวสิ่งพิมพ์เอง
- กระบวนการนี้ถูกรวมอยู่ใน เครื่องพิมพ์เลเซอร์สี เชิงพาณิชย์แทบทั้งหมด
- สิ่งพิมพ์แทบทุกชิ้นมีข้อมูลที่ถูกเข้ารหัสเกี่ยวกับอุปกรณ์ต้นทาง ซึ่งอาจรวมถึง หมายเลขซีเรียล เป็นต้น
- DEDA มีทั้งความสามารถในการอ่านและถอดรหัสคุณลักษณะทางนิติวิทยาศาสตร์นี้ และฟังก์ชันทำให้นิรนามเพื่อป้องกันการติดตามโดยไม่พึงประสงค์
- ผู้พัฒนาขอให้มีการอ้างอิงงานวิจัยต่อไปนี้เมื่อใช้งานซอฟต์แวร์
- 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
การติดตั้งและการรัน GUI
- ต้องติดตั้ง Python 3
- ติดตั้งได้จาก PyPI
pip3 install --user deda
- ติดตั้งจากไดเรกทอรีปัจจุบันก็ได้
pip3 install --user .
- สามารถติดตั้ง Wand เป็น dependency แบบเลือกได้ของ
deda_anonmask_applyบน Unix และ GNU/Linuxpip3 install --user wand- หากไม่มี Wand จะไม่สามารถทำให้นิรนามหน้าที่มีพื้นที่สีขาวภายในภาพได้
- รัน GUI ด้วยคำสั่งต่อไปนี้
deda_gui
งานที่ทำได้ด้วยเครื่องมือในเทอร์มินัล
-
อ่านข้อมูลติดตาม
- สามารถอ่านและในบางกรณีถอดรหัส ข้อมูลติดตาม จากภาพสแกนได้
- เพื่อผลลัพธ์ที่ดี ควรใช้อินพุตแบบ บีบอัดไม่สูญเสียข้อมูล เช่น png, 300 dpi และคอนทราสต์เป็นกลาง
- คำสั่งรัน:
deda_parse_print INPUTFILE
-
ค้นหาเครื่องพิมพ์ที่ต่างกันจากชุดเอกสารสแกน
- สามารถค้นหาเอกสารที่พิมพ์จากเครื่องพิมพ์คนละเครื่องในเอกสารสแกนหลายชุดได้
- คำสั่งรัน:
deda_compare_prints INPUT1 INPUT2 [INPUT3] ...
-
วิเคราะห์รูปแบบติดตามที่ยังไม่รู้จัก
- รูปแบบใหม่อาจไม่ถูก
parse_printรู้จัก - สามารถดึง จุดสีเหลือง ออกมาเพื่อวิเคราะห์เพิ่มเติมได้
- คำสั่งรัน:
deda_extract_yd INPUTFILE
- รูปแบบใหม่อาจไม่ถูก
-
สร้างจุดติดตามของตัวเอง
- สามารถสร้าง เมทริกซ์จุดติดตาม ของตัวเองและเพิ่มลงในเอกสาร PDF ได้
- เนื้อหาจะส่งผ่านเป็นพารามิเตอร์ตาม
deda_create_dots -h - คำสั่งรัน:
deda_create_dots PDFINPUT
- สามารถใช้หน้าคาลิเบรตที่สร้างด้วย
deda_anonmask_create -wเป็นอินพุตได้
เวิร์กโฟลว์การทำให้นิรนาม
-
ทำให้นิรนามภาพสแกน
- ลบข้อมูลติดตามส่วนใหญ่ออกจากภาพสแกน
- คำสั่งรัน:
deda_clean_document INPUTFILE OUTPUTFILE
-
ทำให้นิรนามเอกสารสำหรับการพิมพ์
- บันทึกเอกสารเป็น PDF และตั้งชื่อเป็น
DOCUMENT.PDF - พิมพ์
testpage.pdfที่สร้างด้วยคำสั่งต่อไปนี้แบบไม่มีระยะขอบdeda_anonmask_create -w
- สแกนเอกสารดังกล่าวที่ 300 dpi และส่งไฟล์แบบไม่สูญเสียข้อมูลให้คำสั่งต่อไปนี้
deda_anonmask_create -r INPUTFILE
- กระบวนการนี้จะสร้าง
mask.jsonซึ่งเป็นมาสก์ทำให้นิรนามเฉพาะเครื่องพิมพ์แต่ละเครื่อง - นำมาสก์ที่สร้างขึ้นไปใช้กับ PDF
deda_anonmask_apply mask.json DOCUMENT.PDF
- ผลลัพธ์จะได้
masked.pdfที่ผ่านการทำให้นิรนามแล้ว และสามารถพิมพ์ด้วยการตั้งค่าระยะขอบหน้าเป็น 0 ได้ - ควรตรวจสอบด้วย กล้องจุลทรรศน์ ว่ามาสก์ครอบจุดติดตามของเครื่องพิมพ์ได้จริงหรือไม่
- สามารถปรับรัศมีจุด, x offset และ y offset ของมาสก์ได้ผ่านพารามิเตอร์ของ
deda_anonmask_apply - หาก
DOCUMENT.PDFมีพื้นที่กราฟิกสีขาวหรือสีอ่อน พื้นที่ดังกล่าวจะมาสก์ได้ก็ต่อเมื่อมีการติดตั้ง Wand
- บันทึกเอกสารเป็น PDF และตั้งชื่อเป็น
การแก้ปัญหา
- หากขึ้น
deda_parse_print: command not foundให้ตรวจสอบการติดตั้ง DEDA หรือเพิ่มพาธ Python user bin ลงใน PATHexport PATH="$PATH:$(python -c 'import site,os; print(os.path.join(site.USER_BASE, "bin"))')"
- หาก DEDA ไม่สามารถตรวจจับจุดติดตามได้ ควรตั้งค่าโปรแกรมสแกนไม่ให้ลบโครงสร้างกระดาษหรือจุดติดตามด้วยการทำ threshold
- หน้าขาวดำและ สิ่งพิมพ์จากอิงก์เจ็ต อาจไม่มีจุดติดตาม
- หากเครื่องพิมพ์ไม่พิมพ์จุดติดตาม สามารถสร้างจุดติดตามของตัวเอง หรือพิมพ์หน้าคาลิเบรตด้วยเครื่องพิมพ์อื่นเพื่อนำมาใช้เป็นมาสก์สำหรับเครื่องพิมพ์ของตนได้
- สามารถสร้างจุดติดตามของตัวเองด้วย
deda_create_dots - สามารถสร้างหน้าคาลิเบรตด้วย
deda_anonmask_create -w - สามารถใช้เวอร์ชันจุดติดตามที่ทำให้นิรนามแล้ว หรือคัดลอกด้วย
deda_anonmask_create --copy
- สามารถสร้างจุดติดตามของตัวเองด้วย
- ข้อผิดพลาดการติดตั้งที่เกี่ยวข้องกับ
x86_64-linux-gnu-gccอาจเกิดจาก dependency eel ที่จำเป็นต่อ GUI- คำสั่งที่แนะนำ:
sudo apt-get install build-essential autoconf libtool pkg-config python3.6-dev gcc && pip3 install --user eel
- คำสั่งที่แนะนำ:
- หาก
wand.exceptions.PolicyErrorทำให้การทำงานกับ PDF ถูกบล็อกโดยนโยบายความปลอดภัย สาเหตุอาจมาจากการตั้งค่า ImageMagick- ให้ถอนการติดตั้ง Wand หรือเพิ่มนโยบายต่อไปนี้ไว้ก่อน
</policymap>ใน/etc/ImageMagick-*/policy.xml<policy domain="coder" rights="read | write" pattern="PDF" />
- ลิงก์อ้างอิงที่เกี่ยวข้อง: ImageMagick security policy PDF blocking conversion
- ให้ถอนการติดตั้ง Wand หรือเพิ่มนโยบายต่อไปนี้ไว้ก่อน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ทีมของเราใช้จุดติดตามสีเหลืองเหล่านี้ในการประกอบเอกสารที่ถูกทำลายกลับคืนใน DARPA Shredder Challenge เมื่อราวสิบกว่าปีก่อน
จะเห็นโปรแกรมไฮไลต์จุดต่าง ๆ ระหว่างที่กำลังจับคู่เศษเอกสารที่ถูกทำลายได้ที่: https://www.youtube.com/watch?v=uzZDhyrjdVo
สิ่งนี้ช่วยให้เราชนะขาดลอย
พอมาเห็นเรื่องราวต่อจากนั้นก็ปลุกความทรงจำที่ลืมไปแล้วขึ้นมา ค่อนข้างน่าทึ่งทีเดียว
กระบวนการนั้นก็ดูมีเรื่องให้เขียนแยกต่างหากพอ ๆ กับอัลกอริทึมแก้ปัญหาเลย และคงต้องมีนิสัยเฉพาะบางอย่างถึงจะรับมือความยุ่งเหยิงแบบนั้นได้
เมื่อไม่นานมานี้ ผมมีเหตุให้ต้องลองดู จุดติดตาม เหล่านี้เล็กน้อย ด้วยเหตุผลที่บอกตรงนี้ได้ยาก
ลองใช้ไฟฉาย LED สีน้ำเงินส่องงานพิมพ์สีดูสิ จะตกใจเพราะมีจุดจำนวนมหาศาลกระจายเต็มหน้ากระดาษเหมือนโรยทรายไว้ทั่วหน้า
ถ้าพรินเตอร์ของผมไม่พิมพ์จุดติดตาม แนวคิดที่ว่าจะสามารถ ปลอมจุดติดตาม ของพรินเตอร์เครื่องอื่นได้ก็น่าสนใจทีเดียวในแง่การปฏิเสธความรับผิดได้
แต่ถึงอย่างนั้น กรณีนี้ก็ดูเหมือนว่ายังต้องเข้าถึงพรินเตอร์ต้นฉบับเพื่อพิมพ์หน้ากากนิรนามอยู่ดี
ทุกวันนี้อาจเข้าถึงได้จากระยะไกลผ่านการตั้งค่าพรินเตอร์ด้วย
อาจหลอกคนที่วิเคราะห์แบบคร่าว ๆ ได้ แต่ถ้าเป็นเจ้าหน้าที่สืบสวนที่ชำนาญ ก็น่าจะมองได้ทำนองว่า “จุดติดตามนี่ชัดเจนว่าเป็นยี่ห้อ X แต่แรสเตอร์ที่ใช้ในโทนเทานี่เห็นชัดว่าเป็นของฝั่ง Y”
ถ้าพลาดบทความที่น่าสนใจเกี่ยวกับเรื่องนี้ มีอยู่ที่นี่: https://news.ycombinator.com/item?id=42880704
สิ่งที่น่าสนใจกว่านั้นคือ คนที่โพสต์การค้นพบและการวิเคราะห์นั้นอาจเสียหายเป็นการส่วนตัวได้ เพราะเขาใช้เงินไปหลายพันดอลลาร์กับการ์ดปลอมเหล่านั้นแล้ว แต่ก็ยังเปิดเผยผลลัพธ์ออกมา
สงสัยว่าถ้าพิมพ์หน้าเดียวกันด้วยพรินเตอร์หลายเครื่องจะเกิดอะไรขึ้น
ถ้าพรินเตอร์เครื่องแรกพิมพ์เนื้อหาจริง แล้วเครื่องอื่น ๆ เติมลงไปเพียงเล็กน้อยในพื้นที่ที่ยังขาวอยู่ พรินเตอร์เครื่องหนึ่งจะทำให้ จุดติดตาม ของอีกเครื่องเสียหายหรือไม่?
แต่ก็เป็นไปได้ว่าขึ้นอยู่กับรายละเอียดบางอย่างแล้วอาจยังอ่านได้บางส่วนหรือทั้งหมด
เริ่มรู้สึกว่าบ้านของพวกกี๊กที่เริ่มโปรเจกต์แนว OpenWRT สำหรับพรินเตอร์ อาจมี MIB มาเยือนก็ได้
ประมาณว่าไม่อาจยอมให้มีการแสดงออกที่ติดตามไม่ได้ และต้องสามารถผ่าตัดโจมตีแหล่งที่มาของมีมที่ไม่สบายใจได้ ผมเลยใช้พรินเตอร์เลเซอร์ขาวดำที่ซื้อจาก craigslist วางไว้ใน VLAN แยก และตั้งเซิร์ฟเวอร์ CUPS คั่นกลาง
ไม่มีใครยินยอมอย่างมีข้อมูลเพียงพอกับสิ่งที่ Niantic ทำมาตลอดกว่าสิบปีที่ผ่านมา และก็ไม่มีใครยินยอมให้สิ่งพิมพ์ทุกชิ้นกลายเป็นสิ่งที่ติดตามได้ ไม่มีคำเตือนในผลิตภัณฑ์หรือกระบวนการใด ๆ ว่า “การไม่มีตัวระบุที่มองเห็นได้ไม่ได้แปลว่าไม่มีตัวระบุ อาจมีตัวระบุแบบสเตกาโนกราฟีอยู่”
เช่นเดียวกันกับการที่เครื่องจักรเอนกประสงค์ในผลิตภัณฑ์ที่เราซื้อถูกล็อกจนเราในฐานะเจ้าของไม่สามารถนำไปใช้ใหม่ตามที่ต้องการได้ เราถูกทำให้ยอมรับการดูหมิ่นจากองค์กรการค้าและหน่วยงานรัฐในรูปแบบ “จะกินแซนด์วิชอึ หรือไม่ก็ไม่มีแซนด์วิชและโดนซ้อมแทน” และ Consumer Action Taskforce (CAT) ของ Louis Rossmann ก็กำลังกลายเป็นชุดรวบรวมตัวอย่างแบบนี้ได้ดี
ถึงเวลาต้องสู้กลับแล้ว ต้องแฮ็กพรินเตอร์ที่พอใช้ได้ เปลี่ยนเฟิร์มแวร์ให้เป็นสิ่งที่ใช้งานได้จริง และหลุดพ้นจากเรื่องไร้สาระแบบนี้ จุดติดตามเหล่านี้และวิธีติดตามแบบสเตกาโนกราฟีอื่น ๆ มีอยู่เพื่อใช้ติดตามและปิดปากคนอย่างผม คนที่ชี้ให้เห็นรูปแบบการควบคุมที่ซ่อนอยู่ และเผยแพร่มีมที่หมึกยักษ์ออบซิเดียนยักษ์ตีตราว่าเป็นความเสี่ยงด้านข้อมูลหรือข้อมูลผิด
การพิมพ์ลงกระดาษดูโง่มาก เพราะเป็นวิธีที่แม้แต่คนรับธนบัตรทั่วไปก็ยังสังเกตได้ง่าย
ดูเหมือนว่าเรื่องนี้จะสำคัญขึ้นมากในอีกไม่กี่ปีข้างหน้า
ถ้าคุณวางแผนจะพิมพ์ใบปลิวหรือแผ่นพับสำหรับการประท้วง ถ้ามีคนที่ไว้ใจได้ก็ควรจ้างโรงพิมพ์มืออาชีพ หรืออย่างน้อยก็ซื้อพรินเตอร์ด้วยเงินสด และอย่าเชื่อมต่ออินเทอร์เน็ตเด็ดขาด ให้ต่อกับคอมพิวเตอร์ Linux ผ่าน USB เท่านั้น
macOS และ Windows สามารถติดตั้งไดรเวอร์พรินเตอร์ให้อัตโนมัติได้ และไดรเวอร์นั้นอาจติดต่อกลับสำนักงานใหญ่เพื่อเชื่อมโยง ID ของพรินเตอร์กับตัวระบุบางอย่าง
ใช้พิมพ์เสื้อยืดได้ด้วย
อยากรู้จริง ๆ ว่าเครื่องพิมพ์ที่ถอดรหัสได้ด้วยเครื่องมือสาธารณะมีสัดส่วนประมาณเท่าไร
มีสถิติไหมว่าโค้ดของผู้ผลิตรายไหนถูกถอดได้แล้ว?
มีสำเนาอยู่ที่นี่: https://ericbalawejder.com/assets/hexview/Forensic-Analysis-...
ตารางที่ 1 สรุปผู้ผลิต จำนวนเครื่องพิมพ์ที่วิเคราะห์ และพบจุดหรือไม่: Brother 1 เครื่อง ไม่พบ, Canon 10 เครื่อง พบ, Dell 4 เครื่อง พบ, Epson 8 เครื่อง บางรุ่น, Hewlett-Packard 43 เครื่อง บางรุ่น, IBM 1 เครื่อง พบ, KonicaMinolta 21 เครื่อง บางรุ่น, Kyocera 4 เครื่อง พบ, Lanier 1 เครื่อง พบ, Lexmark 6 เครื่อง บางรุ่น, NRG 1 เครื่อง พบ, Okidata 9 เครื่อง บางรุ่น, Ricoh 6 เครื่อง พบ, Samsung 5 เครื่อง ไม่พบ, Savin 1 เครื่อง พบ, Tektronix 4 เครื่อง ไม่พบ, Unknown 1 เครื่อง พบ, Xerox 15 เครื่อง บางรุ่น
นอกจากเบาะแสบางอย่างที่อธิบายไว้ในบทความแล้ว ดูเหมือนว่าในกรณีที่พบรูปแบบจุด โดยทั่วไปก็เข้าใจกันแล้ว
เครื่องพิมพ์เลเซอร์ขาวดำ ก็สร้างจุดติดตามด้วยหรือเปล่า?
แล้วการติดตามแบบนี้มีความหมายอะไร หลักการคือทุกซอกทุกมุมในชีวิตเราต้องถูกติดตามหรือ?
การโปรยข้อมูลแหล่งที่มาไว้กับทุกสิ่งมีคุณค่าด้านความมั่นคงของชาติมากเกินไป มักยกเหตุผลเรื่องความปลอดภัยหรือความมั่นคงขึ้นมาก่อนเสมอ แล้วก็ตามมาทันทีด้วยว่า “แต่มีผลเสียอะไรล่ะ คุณไม่ได้ทำสิ่งที่ไม่ควรทำอยู่ใช่ไหม… ใช่ไหม?”
ถ้าการใช้งานหลักคือการติดตามผู้ปลอมธนบัตร ก็ไม่จำเป็นสำหรับเครื่องพิมพ์ขาวดำ และนั่นจึงหมายความว่ามันไม่ได้ถูกรวมไว้
รายการนี้ไม่ได้อัปเดตตั้งแต่ปี 2017 และน่าจะเป็นผลการอนุมานจากคำขอ FOIA ของคนคนเดียวเป็นส่วนใหญ่ คงต้องรอจนกว่าคราวหน้ามหาวิทยาลัยจีนจะเปิดเผยความลับของรัฐบาลสหรัฐฯ อีกครั้ง
หลายสิบปีก่อนเคยทำงานซอฟต์แวร์ที่ปรับเคอร์นิงของตัวอักษรเพื่อซ่อนข้อมูล แต่เท่าที่รู้ โปรเจกต์นั้นไม่ได้ออกมาเป็นผลลัพธ์อะไรมากนัก
สิ่งนี้ก็อาจน่าสนใจเช่นกัน: https://en.wikipedia.org/wiki/EURion_constellation
น่าเสียดายที่ฝั่งนั้นแทบไม่มีข้อมูลสาธารณะ: http://www.cl.cam.ac.uk/users/sjm217/projects/currency/