หลักการของการแก้ไขแฮชไฟล์
แฮชเชิงเข้ารหัสที่พบบ่อย ได้แก่ MD5, SHA-1/256 เป็นต้น คุณสมบัติหลักในการออกแบบฟังก์ชันแฮชเชิงเข้ารหัสคือ "ผลกระทบแบบหิมะถล่ม" - การเปลี่ยนแปลงเพียงเล็กน้อยใด ๆ ของอินพุตจะทำให้เอาต์พุตเปลี่ยนแปลงอย่างมาก ซึ่งหมายความว่าแม้จะแก้ไขเพียง 1 ไบต์ ค่าแฮชทั้งหมดก็จะแตกต่างไปโดยสิ้นเชิง ตัวอย่างเช่น คุณเขียนเอกสาร 2000 คำแล้วบันทึกเป็นไฟล์ word เพียงคุณเปลี่ยนอักขระหนึ่งตัว เช่น เพิ่มช่องว่างหนึ่งช่อง md5 ของไฟล์นี้ก็จะเปลี่ยนไปทั้งหมด ดังนั้นสาระสำคัญของ “การเปลี่ยนแฮชไฟล์” คือการเปลี่ยนเนื้อหาของไฟล์เอง ไม่ใช่คุณสมบัติภายนอกอย่างชื่อไฟล์ คุณสมบัตินี้ทำให้การแก้ไขแฮชระดับไฟล์ทำได้ค่อนข้างง่าย
ระบบและรูปแบบไฟล์ต่าง ๆ มีการนับ “เมตาดาต้า” แตกต่างกัน: หากเมตาดาต้าถูกฝังอยู่ในข้อมูลไฟล์ (เช่น แท็กภายใน JPEG/คอนเทนเนอร์วิดีโอ) การเปลี่ยนเมตาดาต้าจะทำให้แฮชเปลี่ยน; หากเมตาดาต้าถูกเก็บไว้ในสตรีมข้อมูลหรือคุณสมบัติภายนอกของระบบไฟล์ การเปลี่ยนเมตาดาต้าจะไม่ส่งผลต่อแฮชที่คำนวณจากเนื้อหาไฟล์ ซึ่งอธิบายปรากฏการณ์ที่พบได้บ่อยว่า “เปลี่ยนชื่อไฟล์แล้วแฮชไม่เปลี่ยน แต่เปลี่ยนเมตาดาต้าที่ฝังไว้แล้วแฮชเปลี่ยน”
การแปลงรหัสของแพลตฟอร์มวิดีโอและ “การระบุว่าแฮชถูกแก้ไขหรือไม่”
หลังจากผู้ใช้อัปโหลดวิดีโอไปยังแพลตฟอร์มวิดีโอ แพลตฟอร์มจะดำเนินการกับวิดีโอดังกล่าวดังนี้:
รับไฟล์ต้นฉบับ
ตรวจสอบและยืนยันรูปแบบไฟล์
ประมวลผลการแปลงรหัส (แปลงรูปแบบ ปรับความละเอียด บีบอัด)
ดึงคีย์เฟรม
การคำนวณแฮชหลายชั้น
นี่คือกระบวนการแปลงรหัสแบบ “demux → decode → process → re-encode → mux” เพื่อสร้างหลายเวอร์ชันสำหรับการเล่นแบบปรับอัตราบิต/ความละเอียดได้หลายระดับ กระบวนการนี้เองจะเปลี่ยนลำดับไบต์ของไฟล์และแฮชเชิงเข้ารหัสใด ๆ ที่มีอยู่ก่อนการอัปโหลด
ในระดับแฮชไฟล์: ระหว่างกระบวนการแปลงรหัส แพลตฟอร์มจะสร้างไฟล์ขึ้นใหม่ แฮชไฟล์ดั้งเดิมจึงเปลี่ยนไปตามธรรมชาติ ดังนั้นแฮชไฟล์ที่ผู้ใช้แก้ไขไว้ล่วงหน้าจึงไม่มีความหมายหลังการแปลงรหัส แพลตฟอร์มจึงไม่จำเป็นต้องระบุว่าไฟล์นี้เคยแก้ไข md5 หรือไม่ เพราะไม่มีความหมายใด ๆ!
ขั้นตอนการตรวจจับไฟล์ซ้ำ/ลิขสิทธิ์ไม่ได้อาศัยแฮชไฟล์ของผู้อัปโหลด แต่แพลตฟอร์มจะคำนวณ “ลายนิ้วมือเสียงและวิดีโอ/แฮชเชิงรับรู้” ของตนเองจากเนื้อหาหลังการถอดรหัส แล้วนำไปเปรียบเทียบกับลายนิ้วมืออ้างอิงในฐานข้อมูล; เช่น Content ID ของ YouTube จะทำการ “สร้างลายนิ้วมือ” ให้กับเนื้อหาที่อัปโหลด และจับคู่กับข้อมูลอ้างอิงที่ผู้ถือสิทธิ์จัดเตรียมไว้
ดังนั้นแพลตฟอร์มไม่ได้ “ตรวจจับว่าแฮชถูกแก้ไข” แต่เป็น “มองข้ามแฮชที่อัปโหลด คำนวณลายนิ้วมือเนื้อหาใหม่ และทำการจับคู่” ทำให้การเปลี่ยน MD5/SHA เพียงด้วยการแก้ไขไบต์ของไฟล์หรือเมตาดาต้าของคอนเทนเนอร์ ไม่สามารถหลบเลี่ยงการตรวจจับที่อิงตามเนื้อหาได้