ข้ามไปยังเนื้อหา
getnextpdf.com

การปิดบังข้อมูลไม่ใช่สี่เหลี่ยมสีดำ

Spec: ISO 32000-2, §7.11Spec: ISO 32000-2, §14.13.5

สี่เหลี่ยมสีดำที่วาดทับชื่อไม่ได้ซ่อนอะไรเลย หน้าดูเหมือนถูกปิดบังข้อมูลแล้ว แต่ข้อความที่อยู่ข้างใต้ยังคงอยู่ ยังเลือกได้ ยังคัดลอกได้ การปิดบังข้อมูลที่แท้จริงไม่ได้ปกคลุมเนื้อหา มันลบเนื้อหา

หน้านี้อธิบายช่องว่างระหว่างการวางซ้อนเชิงเครื่องสำอางกับการลบเนื้อหาที่แท้จริง เหตุใดเมตาดาตาและไฟล์ฝังตัวจึงรอดจากงานแบบไร้เดียงสา และวิธีที่ RedactionEngine เอดิชัน enterprise ของ NextPDF ปฏิเสธที่จะแกล้งทำว่าพื้นที่หนึ่งหายไปเมื่อมันไม่สามารถลบได้จริง

การรั่วไหลข้อมูล PDF ที่ถูกอ้างถึงมากที่สุดไม่ใช่การโจมตีที่ชาญฉลาด มันคือสี่เหลี่ยมสีดำ มีคนวาดกล่องทึบทับย่อหน้าที่ละเอียดอ่อน ส่งออกไฟล์ และส่งมันออกไป ผู้รับกดที่กล่อง ลากผ่านมัน และคำต้นฉบับก็ถูกคัดลอกออกจากเอกสารตรงเข้าสู่คลิปบอร์ด

เหตุผลเป็นเชิงโครงสร้าง หน้า PDF คือชุดของโอเปอเรเตอร์การวาดที่เรียงซ้อนกันตามลำดับ การลงสีสี่เหลี่ยมทึบเพิ่มโอเปอเรเตอร์อีกหนึ่งตัวไว้ด้านบน มันไม่ได้นำโอเปอเรเตอร์แสดงข้อความที่อยู่ข้างใต้ออก สำหรับสายตา ข้อความถูกซ่อน สำหรับเครื่องจักร มันอยู่ที่เดิมที่มันอยู่เสมอพอดี การวางซ้อนคือเครื่องแต่งกาย และเครื่องแต่งกายก็ถอดออกได้

สิ่งนี้แพงเพราะความล้มเหลวเป็นแบบเงียบและถาวร เอกสารดูถูกต้อง ผ่านการตรวจสอบด้วยสายตา และถูกเผยแพร่ การรั่วไหลถูกค้นพบในภายหลังโดยคนที่เลือกข้อความ และเมื่อถึงตอนนั้นทุกสำเนาก็ออกไปแล้ว

  • กล่องสีดำคือ การวาดที่เรียงซ้อนทับ ข้อความ ไม่ใช่การลบมัน ไบต์ยังรอดอยู่
  • ข้อความที่เลือกได้รอดอยู่เพราะสตรีมเนื้อหาของหน้ายังคงพก glyph ที่วาดคำเหล่านั้น
  • เมตาดาตาของเอกสารรอดอยู่เพราะมันอยู่ในที่แยกต่างหาก — document information dictionary และ XMP packet — ที่ไม่มีสี่เหลี่ยมบนหน้าใดเอื้อมถึง
  • ไฟล์ฝังตัวรอดอยู่เพราะ PDF สามารถบรรจุไฟล์ทั้งไฟล์ไว้ภายในในรูปของ embedded file stream Spec: ISO 32000-2, §7.11 เครื่องหมายบนหน้าไม่เคยแตะต้องไฟล์แนบ
  • การปิดบังข้อมูลที่แท้จริงเป็นแบบทำลาย มันนำเนื้อหาออกจากสตรีมไบต์ ไม่ใช่จากภาพ สิ่งที่หายไปก็หายไป และพื้นผิวที่เป็นเศษตกค้างก็ถูกทำความสะอาดด้วย

เชิงเครื่องสำอางเทียบกับแบบทำลาย อย่างแม่นยำ

หัวข้อที่มีชื่อว่า “เชิงเครื่องสำอางเทียบกับแบบทำลาย อย่างแม่นยำ”

การวางซ้อนเชิงเครื่องสำอางเปลี่ยนสิ่งที่หน้า ดูเหมือน การปิดบังข้อมูลแบบทำลายเปลี่ยนสิ่งที่เอกสาร บรรจุ อย่างแรกย้อนกลับได้โดยใครก็ตามที่มีเคอร์เซอร์ข้อความ อย่างที่สองไม่เหลืออะไรให้กู้คืน

RedactionEngine เอดิชัน enterprise ของ NextPDF ถูกสร้างขึ้นสำหรับกรณีแบบทำลายในระดับเนื้อหาข้อความ เมธอด redact() ของมันรับเนื้อหา, RedactionPolicy ที่อธิบายว่าจะค้นหาอะไรและแทนที่อย่างไร และคืน RedactionResult ภายในนั้น มันตรวจจับช่วงที่ละเอียดอ่อน รวมช่วงที่ทับซ้อนกันให้เป็นช่วงครอบคลุมที่ไม่ทับซ้อนกัน แล้ว เขียนสตริงเนื้อหาใหม่ ด้วย substr_replace เพื่อให้แต่ละไบต์ที่ถูกครอบคลุมถูกนำออกเพียงครั้งเดียวพอดี ข้อความที่ละเอียดอ่อนไม่ได้ถูกทาทับ มันหายไปจากบัฟเฟอร์ที่ผลลัพธ์พกกลับมา

ผลลัพธ์ซื่อสัตย์เกี่ยวกับสิ่งที่เกิดขึ้น: มันบันทึก SHA-256 hash ของเนื้อหาต้นฉบับ, redactedContent ที่เขียนใหม่, รายงานการตรวจสอบของทุกสิ่งที่พบ และแฟล็ก wasModified คุณสามารถพิสูจน์ได้ว่าไบต์เปลี่ยนไป และคุณสามารถพิสูจน์ได้ว่าไบต์ใด

การนำข้อความที่มองเห็นออกเป็นสิ่งจำเป็นแต่ไม่เพียงพอ คำเดียวกันนั้น และคำที่คุณไม่เคยเห็นบนหน้า ซ่อนอยู่ในที่ที่การแก้ไขระดับหน้าไม่เคยเอื้อมถึง

เอกสารพกเมตาดาตาซ้ำสองชั้น: information dictionary รุ่นเก่าและ XMP packet ซึ่งทั้งคู่อาจเก็บชื่อผู้แต่ง ชื่อเรื่อง หรือลายนิ้วมือของเครื่องมือ มันสามารถพกไฟล์ทั้งไฟล์ในรูปของ embedded file stream Spec: ISO 32000-2, §7.11 มันสามารถผูกเพย์โหลดเหล่านั้นเข้ากับโครงสร้างของหน้าในฐานะไฟล์ที่เชื่อมโยง ซึ่งเป็นช่องทางอาร์ติแฟกต์ที่เกี่ยวข้องที่หน้าไม่ได้เรนเดอร์แต่เอกสารยังคงเก็บไว้ Spec: ISO 32000-2, §14.13.5 ไม่มีสิ่งใดในเหล่านี้อยู่บนหน้าที่คุณปิดบังข้อมูล ดังนั้นจึงไม่มีสิ่งใดถูกสี่เหลี่ยมแตะต้อง คำแนะนำดั้งเดิมในเรื่องนี้ — รายงาน “Hidden Data and Metadata in Adobe PDF Files” ของ NSA — มีอยู่ก็เพราะการรั่วไหลจริงจำนวนมากมาจากเศษตกค้าง ไม่ใช่หน้าที่มองเห็น

การปิดบังข้อมูลที่ลบคำบนหน้าแต่ปล่อยชื่อผู้แต่งไว้ใน XMP packet และสเปรดชีตต้นฉบับไว้เป็นไฟล์แนบ ไม่ได้ปิดบังข้อมูลเอกสาร มันปิดบังข้อมูลเพียงมุมมองเดียวของเอกสาร

  1. DetectFind every sensitive span — visible text, and the entity types a policy targets — not just the region you happen to see.
  2. Delete, do not coverRewrite the content stream so the glyphs are removed from the bytes. An opaque box on top leaves the text underneath intact.
  3. Clear the residueStrip the information dictionary and XMP metadata, and remove embedded and associated files that carry the same payload off-page.
  4. VerifyConfirm no selectable text, metadata field, or attachment reproduces the redacted content before the file leaves the building.
What a complete destructive redaction removes, in order: detect the sensitive content, delete the bytes from the content stream rather than draw over them, then clear the residue surfaces — metadata and embedded payloads — that a page-level mark never reaches, and finally verify nothing copyable survived.

มีสองวิธีในการปิดบังข้อมูล: ตาม เนื้อหา (ค้นหาชื่อนี้ ลบมัน) และตาม โซน (ทาทับสี่เหลี่ยมนี้ของหน้า ไม่ว่าอะไรจะอยู่ใต้มัน) เอนจิน enterprise ทำอย่างแรกอย่างซื่อตรง มัน ไม่ แกล้งทำอย่างที่สองโดยตั้งใจ

เมธอด redact() รับอาร์กิวเมนต์ที่สาม คือรายการของพื้นที่พิกัด ZoneRedaction เอนจินเนื้อหาข้อความไม่มี sink สำหรับการวางซ้อนเนื้อหาของหน้า — ไม่มีวิธีนำสิ่งที่อยู่ภายในกล่องพิกัดออกได้จริง ดังนั้นเมื่อรายการนั้นไม่ว่างเปล่า มันจะไม่วาดสี่เหลี่ยมแล้วเรียกโซนนั้นว่า “ปิดบังข้อมูลแล้ว” มันโยน RuntimeException ที่ระบุชนิดและบอกคุณให้ส่งโซนผ่านไปป์ไลน์การปิดบังเนื้อหาของหน้าแทน

การปฏิเสธนั้นคือทั้งหมดของหน้านี้ที่ถูกแปลงเป็นโค้ด เอนจินยอมหยุดและบอกชื่อสิ่งที่มันทำไม่ได้ ดีกว่าคืนผลการพบ “ปิดบังข้อมูลแล้ว” สำหรับพื้นที่ที่มันปล่อยไว้โดยไม่ได้แตะต้องเลย การวางซ้อนเชิงเครื่องสำอางอย่างเงียบๆที่ถูกรายงานว่าเป็นการลบ คือการรับประกันเท็จที่ทำให้เกิดการรั่วไหลพอดี การล้มเหลวแบบ fail closed เปลี่ยนการรั่วไหลนั้นให้เป็นข้อความแสดงข้อผิดพลาดที่คุณเห็นก่อนที่จะส่งออกไป

“ฉันวาดกล่องสีดำทับมัน ดังนั้นมันถูกปิดบังข้อมูลแล้ว”

นี่คือกับดัก และเป็นกับดักที่พบบ่อยที่สุดในทั้งรูปแบบนี้ สี่เหลี่ยมทึบคือคำสั่งการวาดที่เรียงซ้อนทับข้อความ โอเปอเรเตอร์แสดงข้อความยังคงอยู่ในสตรีมเนื้อหา glyph ยังคงวาด และการเลือกหรือการคัดลอกก็อ่านมันออกมาโดยไม่เปลี่ยนแปลง คุณซ่อนภาพ คุณไม่ได้เปลี่ยนเอกสาร

กับดักที่สอง ละเอียดอ่อนกว่า: “ฉันลบข้อความบนหน้าแล้ว ดังนั้นเอกสารสะอาด” ยังไม่ เนื้อหาเดียวกันนั้น และเนื้อหาที่คุณไม่เคยแสดง สามารถคงอยู่ในเมตาดาตาและในไฟล์ฝังตัว การปิดบังข้อมูลเสร็จสิ้นก็ต่อเมื่อทุก พื้นผิว — เนื้อหาของหน้า เมตาดาตา และไฟล์แนบ — ปลอดจากสิ่งที่คุณตั้งใจจะนำออก

ขอบเขตที่ซื่อสัตย์ของสิ่งที่ NextPDF ทำตรงนี้ จำแนกตามเอดิชัน:

  • Core ไม่มีการปิดบังข้อมูลเอกสารเลย มันมาพร้อมตัวล้างความเป็นส่วนตัวสำหรับ PII ใน บันทึกการตรวจสอบ — เก็บค่าที่ละเอียดอ่อนไว้นอกบันทึกวินิจฉัยของคุณเอง — และนั่นเป็นสิ่งที่ต่างไปโดยสิ้นเชิงจากการปิดบังข้อมูล PDF ที่ส่งมอบ หากคุณอยู่บน Core และคุณต้องปิดบังข้อมูลเอกสาร ความสามารถที่คุณต้องการไม่มีอยู่ อย่าวาดกล่องและสันนิษฐานว่าเอนจินนำอะไรออกไป
  • RedactionEngine เอดิชัน enterprise ปิดบังเนื้อหาข้อความแบบทำลาย มันเขียนบัฟเฟอร์เนื้อหาใหม่เพื่อนำไบต์ที่ละเอียดอ่อนออก และรายงาน hash, รายงานการตรวจสอบ และแฟล็ก wasModified เพื่อให้การลบนั้นพิสูจน์ได้
  • การปิดบังข้อมูลตามโซนพิกัดล้มเหลวแบบ fail closed ส่งรายการ ZoneRedaction ที่ไม่ว่างเปล่าแล้วเอนจินจะโยนข้อยกเว้นแทนที่จะปลอมการวางซ้อน นั่นเป็นคุณสมบัติด้านความปลอดภัยที่ตั้งใจ ไม่ใช่คุณสมบัติที่ขาดหาย: พื้นที่ที่มันไม่สามารถทำให้สะอาดได้จริงคือพื้นที่ที่มันปฏิเสธจะเรียกว่าสะอาด
  • การทำความสะอาดทุกพื้นผิวที่เป็นเศษตกค้างเป็นความรับผิดชอบของผู้ปฏิบัติงานด้วย การนำข้อความที่มองเห็นออกเป็นเพียงขั้นเดียว งานที่สมบูรณ์ยังลอก information dictionary, XMP packet และไฟล์ฝังตัวหรือไฟล์ที่เชื่อมโยงใดๆ (Spec: ISO 32000-2, §7.11, Spec: ISO 32000-2, §14.13.5) ที่พกเพย์โหลดเดียวกันนั้นออกจากหน้าด้วย
Document redaction — edition availability
EditionAvailability
Core

Not in this edition. Core has no document redaction. It provides only an audit-log PII sanitiser, which keeps sensitive values out of your own diagnostic records — it does not redact a delivered PDF.

ProNot in this edition
Enterprise

Available. The enterprise RedactionEngine performs destructive text-content redaction and fails closed — it throws a typed exception — on coordinate-zone redaction it cannot truly fulfil, rather than painting a cosmetic overlay and reporting a region as removed.

  • Cosmetic overlay — การวาด เช่น สี่เหลี่ยมทึบ ที่เรียงซ้อนทับเนื้อหาเพื่อซ่อนมันด้วยสายตา มันไม่ได้นำเนื้อหาที่อยู่ข้างใต้ออก ซึ่งยังคงเลือกได้และคัดลอกได้
  • Destructive redaction — การนำเนื้อหาออกจากสตรีมไบต์ของเอกสาร ไม่ใช่จากภาพ เมื่อทำเสร็จแล้ว ไม่มีอะไรที่อยู่ข้างใต้ให้กู้คืน
  • Content stream — รายการที่เรียงลำดับของโอเปอเรเตอร์การวาดที่เรนเดอร์หน้า รวมถึงโอเปอเรเตอร์แสดงข้อความที่วาด glyph กล่องที่อยู่ด้านบนไม่ได้ลบโอเปอเรเตอร์ข้อความที่อยู่ข้างใต้มัน
  • Residue surface — ที่ที่เอกสารเก็บเนื้อหาซึ่งหน้าไม่ได้แสดง: information dictionary, XMP metadata packet และไฟล์ฝังตัวหรือไฟล์ที่เชื่อมโยง การปิดบังข้อมูลที่สมบูรณ์ทำความสะอาดทั้งหมด
  • Embedded file stream — ไฟล์ทั้งไฟล์ที่บรรจุภายใน PDF (ISO 32000-2 §7.11) เครื่องหมายบนหน้าไม่เคยแตะต้องไฟล์แนบ
  • Fail closed — การหยุดด้วยข้อผิดพลาดที่ระบุชนิดเมื่อการดำเนินการไม่อาจทำได้อย่างซื่อตรง แทนที่จะผลิตผลลัพธ์ที่ดูน่าเชื่อแต่ผิด เอนจิน enterprise ทำเช่นนี้สำหรับการปิดบังข้อมูลตามโซนพิกัดที่มันทำไม่สำเร็จ