การปิดบังข้อมูลไม่ใช่สี่เหลี่ยมสีดำ
Spec: ISO 32000-2, §7.11ISO 32000-2 §7.11Spec: ISO 32000-2, §14.13.5ISO 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.11ISO 32000-2 §7.11 เครื่องหมายบนหน้าไม่เคยแตะต้องไฟล์แนบ
- การปิดบังข้อมูลที่แท้จริงเป็นแบบทำลาย มันนำเนื้อหาออกจากสตรีมไบต์ ไม่ใช่จากภาพ สิ่งที่หายไปก็หายไป และพื้นผิวที่เป็นเศษตกค้างก็ถูกทำความสะอาดด้วย
NextPDF จัดการเรื่องนี้อย่างไร
หัวข้อที่มีชื่อว่า “NextPDF จัดการเรื่องนี้อย่างไร”เชิงเครื่องสำอางเทียบกับแบบทำลาย อย่างแม่นยำ
หัวข้อที่มีชื่อว่า “เชิงเครื่องสำอางเทียบกับแบบทำลาย อย่างแม่นยำ”การวางซ้อนเชิงเครื่องสำอางเปลี่ยนสิ่งที่หน้า ดูเหมือน การปิดบังข้อมูลแบบทำลายเปลี่ยนสิ่งที่เอกสาร บรรจุ อย่างแรกย้อนกลับได้โดยใครก็ตามที่มีเคอร์เซอร์ข้อความ อย่างที่สองไม่เหลืออะไรให้กู้คืน
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.11ISO 32000-2 §7.11 มันสามารถผูกเพย์โหลดเหล่านั้นเข้ากับโครงสร้างของหน้าในฐานะไฟล์ที่เชื่อมโยง ซึ่งเป็นช่องทางอาร์ติแฟกต์ที่เกี่ยวข้องที่หน้าไม่ได้เรนเดอร์แต่เอกสารยังคงเก็บไว้ Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5 ไม่มีสิ่งใดในเหล่านี้อยู่บนหน้าที่คุณปิดบังข้อมูล ดังนั้นจึงไม่มีสิ่งใดถูกสี่เหลี่ยมแตะต้อง คำแนะนำดั้งเดิมในเรื่องนี้ — รายงาน “Hidden Data and Metadata in Adobe PDF Files” ของ NSA — มีอยู่ก็เพราะการรั่วไหลจริงจำนวนมากมาจากเศษตกค้าง ไม่ใช่หน้าที่มองเห็น
การปิดบังข้อมูลที่ลบคำบนหน้าแต่ปล่อยชื่อผู้แต่งไว้ใน XMP packet และสเปรดชีตต้นฉบับไว้เป็นไฟล์แนบ ไม่ได้ปิดบังข้อมูลเอกสาร มันปิดบังข้อมูลเพียงมุมมองเดียวของเอกสาร
- DetectFind every sensitive span — visible text, and the entity types a policy targets — not just the region you happen to see.
- 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.
- Clear the residueStrip the information dictionary and XMP metadata, and remove embedded and associated files that carry the same payload off-page.
- VerifyConfirm no selectable text, metadata field, or attachment reproduces the redacted content before the file leaves the building.
การล้มเหลวแบบ fail closed แทนการปลอมมัน
หัวข้อที่มีชื่อว่า “การล้มเหลวแบบ fail closed แทนการปลอมมัน”มีสองวิธีในการปิดบังข้อมูล: ตาม เนื้อหา (ค้นหาชื่อนี้ ลบมัน) และตาม โซน (ทาทับสี่เหลี่ยมนี้ของหน้า ไม่ว่าอะไรจะอยู่ใต้มัน) เอนจิน 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.11ISO 32000-2 §7.11, Spec: ISO 32000-2, §14.13.5ISO 32000-2 §14.13.5) ที่พกเพย์โหลดเดียวกันนั้นออกจากหน้าด้วย
| Edition | Availability |
|---|---|
| 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. |
| Pro | Not 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. |
เอกสารที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “เอกสารที่เกี่ยวข้อง”- วิธีที่การเข้ารหัส PDF ทำงานจริงๆ — เหตุใดการเข้ารหัสไฟล์จึงไม่เหมือนกับการนำเนื้อหาออกจากมัน และแต่ละอย่างปกป้องคุณที่ใด
- เมตาดาตาและ XMP packet — พื้นผิวที่เป็นเศษตกค้างที่การปิดบังข้อมูลระดับหน้าไม่เคยแตะต้อง โดยละเอียด
- API ที่ปฏิเสธจะเดา — จุดยืน fail-closed เดียวกันที่เอนจินการปิดบังข้อมูลใช้กับโซนที่มันทำไม่สำเร็จ
อภิธานศัพท์
หัวข้อที่มีชื่อว่า “อภิธานศัพท์”- 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 ทำเช่นนี้สำหรับการปิดบังข้อมูลตามโซนพิกัดที่มันทำไม่สำเร็จ