- อีเมลอาร์ไคฟ์ของ Epstein ที่กระทรวงยุติธรรมสหรัฐเผยแพร่ กำลังถูกวิจารณ์อย่างหนักจากข้อผิดพลาดร้ายแรงอันเกิดจากการเข้ารหัสผิดพลาดและการปกปิดข้อมูลมากเกินไป
- อีเมลบางฉบับยังคงมีไฟล์แนบในรูปแบบ
Content-Transfer-Encoding: base64 รวมอยู่ตามเดิม และหากกู้คืนข้อมูลนี้ได้ ก็จะสามารถประกอบกลับเป็นไฟล์ PDF ต้นฉบับได้
- อย่างไรก็ตาม เนื่องจาก คุณภาพ OCR ที่เสื่อมลง, ปัญหาการแยกแยะระหว่าง 1 กับ l ในฟอนต์ Courier New, และ คุณภาพการสแกนที่ผิดพลาด ทำให้การกู้คืนแบบอัตโนมัติแทบเป็นไปไม่ได้
- ผู้เขียนลองใช้ tesseract, Adobe Acrobat Pro, AWS Textract และเครื่องมืออื่น ๆ เพื่อกู้คืน แต่ทั้งหมดให้ผลลัพธ์ที่ยังไม่สมบูรณ์
- กรณีนี้เผยให้เห็น ข้อจำกัดของนิติดิจิทัลและเทคโนโลยีกู้คืนเอกสาร และถูกเสนอเป็นความท้าทายทางเทคนิคที่ชุมชนควรร่วมมือกันแก้ไข
ปัญหาของเอกสารที่กระทรวงยุติธรรมเผยแพร่
- อาร์ไคฟ์ Epstein ที่เพิ่งเผยแพร่ล่าสุด ถูกแจกจ่ายมาในสภาพที่มีการปกปิดข้อมูลมากเกินไป ตั้งแต่ชื่อผู้สมรู้ร่วมคิดไปจนถึงภาพผู้หญิงที่ไม่เกี่ยวข้อง
- ไฟล์บางส่วนเสียหายจาก ข้อผิดพลาดการเข้ารหัส Quoted-Printable จนไม่สามารถเปิดดูได้
- ถึงขั้นมีข้อมูลรับรองอีเมลรั่วไหล จน ผู้ใช้ Reddit สามารถเข้าถึงบัญชีของ Epstein ได้
- การจัดการที่หละหลวมเช่นนี้ทำให้เกิดเสียงวิจารณ์ถึง การขาดความเชี่ยวชาญของกระทรวงยุติธรรมภายใต้การนำของ Pam Bondi
การค้นพบไฟล์แนบ base64
- ในอีเมล
EFTA00400459 พบ ข้อมูลที่เข้ารหัสแบบ base64 ยาว 76 หน้า
- นี่คือข้อมูลของไฟล์
DBC12 One Page Invite with Reply.pdf ที่ถูกเข้ารหัสสำหรับการส่งผ่าน SMTP
- ตามทฤษฎีแล้วควรเพียงคัดลอกแล้วใช้คำสั่ง
base64 -d > output.pdf เพื่อกู้คืนได้ แต่ในความเป็นจริงมีเพียง สำเนาที่สแกนผ่าน OCR เท่านั้น จึงเกิดข้อผิดพลาดจำนวนมาก
- ผลลัพธ์ OCR มีทั้ง การแทรกอักขระผิด, ข้อมูลขาดหาย, และ อักขระ base64 ที่ไม่ถูกต้องตามกฎ (เช่น [, ,) ทำให้ถอดรหัสไม่ได้
ปัญหา OCR และฟอนต์
- การลองประมวลผล OCR ใหม่ด้วย Adobe Acrobat Pro และ tesseract ต่างก็ยังพบปัญหา มีการแทรกช่องว่างและรู้จำอักขระผิด
- แม้
tesseract จะถูกจำกัดชุดอักขระให้เหลือเฉพาะอักขระที่ใช้ได้ใน base64 ก็ยังเกิดปัญหา ความยาวบรรทัดไม่ตรงกัน และ การรู้จำหยุดกลางคันบางส่วน
- สาเหตุใหญ่ที่สุดคือฟอนต์ Courier New ซึ่งแทบแยกไม่ออกระหว่าง
1 กับ l
- ยิ่งเมื่อรวมกับการสแกน JPEG ความละเอียดต่ำและ compression artifacts ก็ยิ่ง แยกด้วยตาเปล่าได้ยากมาก
- ด้วยเหตุนี้ การแก้ไขด้วยมือจึงเป็นสิ่งจำเป็น และระหว่างถอดรหัสก็ต้องลองสลับ
1 กับ l ไปมา
ความพยายามกู้คืนและการเปรียบเทียบเครื่องมือ
imagemagick และ ghostscript ล้มเหลวจาก หน่วยความจำไม่พอระหว่างประมวลผลไฟล์ขนาดใหญ่ ทำให้ต้องใช้ pdftoppm เป็นทางเลือก
AWS Textract ให้ผลดีที่สุด แต่ก็ยังมี ความคลาดเคลื่อนของความยาวบรรทัด และ ผลลัพธ์ที่ไม่แน่นอน อยู่
- มีการขยายภาพอินพุต 2 เท่าเพื่อเพิ่มอัตราการรู้จำ แต่ก็ยังไม่สามารถกู้คืนได้สมบูรณ์
- ความพยายามใช้
qpdf เพื่อกู้คืนโครงสร้าง PDF ก็ล้มเหลวเพราะ ตาราง cross-reference เสียหาย
ข้อเสนอจากชุมชนและการถกเถียงต่อเนื่อง
- ช่วงท้ายบทความ ผู้เขียนชวนชุมชนให้ลอง กู้คืนไฟล์แนบอื่น ๆ เพิ่มเติม
- เมื่อค้นหาคำว่า
Content-Transfer-Encoding และ base64 ก็ยังพบข้อมูลบางส่วนที่น่าจะมีประโยชน์
- ผู้ใช้หลายคนเสนอแนวทางหลากหลาย เช่น OCR ที่อิง ML, การฝึก CNN เฉพาะฟอนต์, และ วิธี crowdsourcing แบบแคปช่า
- บางคนแชร์กรณี กู้คืน PDF สำเร็จ โดยรายงานว่า
pdfimages ให้ผลลัพธ์คมชัดกว่า pdftoppm
- ท้ายที่สุด มีการพูดถึงเทคนิคกู้คืนขั้นสูง เช่น อัลกอริทึมสำหรับแยก 1/l แบบอัตโนมัติ, การตรวจหาข้อผิดพลาดด้วยสตรีมมิงดีคอมเพรสเซอร์, และ การเปรียบเทียบระดับพิกเซล
นัยสำคัญทางเทคนิค
- เหตุการณ์นี้แสดงให้เห็นว่า ข้อผิดพลาดในการเข้ารหัสเอกสารดิจิทัลและข้อจำกัดของ OCR สามารถขัดขวางการเข้าถึงข้อมูลจริงได้อย่างไร
- มันยังเน้นย้ำถึงความสำคัญของ การควบคุมคุณภาพในการจัดการพยานหลักฐานดิจิทัลทางกฎหมาย และ เทคโนโลยีการทำเอกสารนิติวิทยาศาสตร์แบบอัตโนมัติ
- ความพยายามกู้คืนผ่านความร่วมมือของชุมชนจึงถูกมองว่าเป็นตัวอย่างของ การสร้างความโปร่งใสให้ข้อมูลสาธารณะ และ ความสามารถในการตรวจสอบเชิงเทคนิค
1 ความคิดเห็น
ความเห็นจาก Hacker News
ดูเหมือนว่า ทีมกระทรวงยุติธรรม ของ Pam Bondi จะไม่ได้ทุ่มคนที่เก่งที่สุดมาจัดการเรื่องนี้
แชร์สคริปต์ที่ Claude Opus สร้างไว้
ลิงก์สคริปต์ / ผลลัพธ์ข้อความ / เวอร์ชันจัดระเบียบแล้ว
มันสร้าง PDF ที่พออ่านหน้าแรกได้
Tesseract สามารถฝึกกับฟอนต์เฉพาะได้ น่าจะเป็นจุดเริ่มต้นที่ดี
ดูเพิ่ม: คู่มือข้อมูลฝึกสำหรับ Tesseract
นี่เป็นปัญหา การถอดรหัส PDF แบบไบนารี จำนวน encoding ที่เป็นไปได้มีจำกัด จึงขอเสนอแนวทางนี้
แบบนี้จะทดสอบเฉพาะอักขระตรงกลางได้อย่างรวดเร็ว ทำให้สำรวจทั้งหมดได้แบบเชิงเส้น
มันดูเหมือน nerd snipe แต่จริง ๆ แล้วน่าจะจบได้เร็วกว่าด้วย brute force ถ้ามี 76 คนช่วยพิมพ์คนละหน้า ก็น่าจะเสร็จก่อนบล็อกโพสต์จะออกมา
เพราะ PDF เป็น ฟอร์แมตที่ซับซ้อนมาก เลยคิดว่ารัฐบาลควรสร้างและผลักดันมาตรฐาน ฟอร์แมตเปิดที่ปลอดภัย ขึ้นมาใหม่เลยจะดีกว่า
DjVu เรียบง่ายและมีเครื่องมือโอเพนซอร์สดี แต่ความสามารถไม่ครบ
TIFF กลับซับซ้อนกว่า PDF เสียอีก จึงไม่เหมาะ
ดูเพิ่ม: XPS, DjVu, TIFF
ค้นหาในช่อง search ของ justice.gov แล้วเจอหลายเวอร์ชันของอีเมลฉบับเดียวกัน
ต้นฉบับ: EFTA00400459.pdf
เวอร์ชันเพิ่มเติม:
EFTA02153691.pdf
EFTA02154109.pdf
EFTA02154246.pdf
ถ้าเอาหลายเวอร์ชันมาเทียบกันก็น่าจะช่วยให้แก้ปัญหาได้ง่ายขึ้น
ปัญหา “1” กับ “l” ยังอยู่เหมือนเดิม แต่ก็น่าจะมีประโยชน์สำหรับใช้อ้างอิง
คิดว่าอาจลอง ไล่ทุก permutation ของคู่ (1, l) ดู 76 หน้า × 69 บรรทัด × ปรากฏ 1 ครั้ง ก็จะมีความเป็นไปได้ 2^5244 แบบ ใครมี CPU เหลือบ้าง
ถ้ามีการบีบอัดเป็นค่าเริ่มต้นก็จะง่ายขึ้นอีกเพราะมี checksum ช่วยตรวจ แต่ทำด้วยเครื่องมือเดิม ๆ ไม่ได้ ต้องสร้าง test harness ที่ใส่ instrumentation ไว้ภายในตัวถอดรหัส เอง
รายละเอียดงาน: Dubin Breast Center 2nd Annual Benefit (Archive)
เพื่อยกย่อง Elisa Port และครอบครัว Ruttenberg
ผู้ดำเนินรายการคือ Cynthia McFadden และมีนักดนตรีหลายคนร่วมแสดง
pdftoppm และ Ghostscript (เรียกผ่าน Imagemagick) ช้าเพราะทำการแรสเตอร์ไรซ์ทั้งหน้าซ้ำทั้งหมด
การใช้ pdfimages หรือ mutool เพื่อดึงภาพสแกนออกมาโดยตรงจะเร็วกว่าเยอะ
ผลทดสอบพบว่า pdfimages เร็วกว่า 13 เท่า เมื่อเทียบกับ pdftoppm