การอัปโหลดดูเหมือนเสียหาย: เปรียบเทียบแฮชที่ปลายทั้งสองข้าง
การอัปโหลดที่ล้มเหลวไม่ใช่หลักฐานว่าเส้นทางอุโมงค์เปลี่ยนไบต์ เปรียบเทียบไฟล์ที่ตั้งใจกับผลลัพธ์ที่จัดเก็บไว้ แล้วหาขอบเขตแรกที่ทั้งสองต่างกัน
ผู้รับที่ไม่สามารถเปิดไฟล์ที่อัปโหลดได้มักได้ยินว่า VPN ทำให้ไฟล์เสียหาย นั่นคือสมมติฐาน ไม่ใช่การสังเกต และสามารถทดสอบได้ ก่อนจะแตะต้องอุโมงค์ ให้พิจารณาว่าวัตถุที่จัดเก็บไว้ที่ปลายทางตอนนี้แตกต่างจากวัตถุที่ควรจะส่งไปหรือไม่ ทุกอย่างที่เหลือตามมาจากคำตอบนั้น
เริ่มจากไบต์ที่ตั้งใจ ไม่ใช่จากคำร้องเรียน
เลือกไฟล์ที่ไม่เป็นอันตรายซึ่งทำให้เกิดปัญหาเดิม หรือไฟล์จริงหากนโยบายอนุญาตให้ออกจากสภาพแวดล้อมต้นทาง บันทึกสองสิ่งก่อนการถ่ายโอน: ขนาดที่แน่นอนเป็นไบต์และแฮชเนื้อหาสมัยใหม่ ชื่อไฟล์ เวลาที่บันทึก และตัวอย่างก่อนดูเป็นเมทาดาทา และไม่มีสิ่งใดระบุเนื้อหาได้
คำนวณแฮชด้วยอัลกอริทึมที่ปลายทั้งสองรันได้ และจดว่าใช้อันไหน การเปรียบเทียบระหว่าง SHA-256 กับ MD5 ไม่ใช่การเปรียบเทียบ และการเปรียบเทียบระหว่างไฟล์สองไฟล์ที่บังเอิญชื่อเดียวกันก็ไม่ใช่การเปรียบเทียบเช่นกัน
PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash Path
---- ----
9F2C... C:\uploads\report.csv
เอกสารอ้างอิง Get-FileHash ของ Microsoft อธิบายคำสั่งและพารามิเตอร์อัลกอริทึมของคำสั่งนั้น ซึ่งเป็นส่วนที่ผู้คนข้ามไปเมื่อการเปรียบเทียบให้ผลลัพธ์ที่ไม่ตรงกันอย่างไม่มีความหมาย
หนึ่งแฮชต่อขั้นตอน อัลกอริทึมเดียวกัน
ตอนนี้คำนวณอัลกอริทึมเดียวกันบนวัตถุที่จัดเก็บไว้ ณ ที่ที่มันอยู่จริงในที่สุด ด้วยวิธีที่ได้รับอนุญาต ไม่ใช่สำเนาที่ผ่านเครื่องมืออื่น การเก็บไฟล์ที่ได้รับไว้ในเครื่องแล้วแฮชสำเนานั้นเป็นการเพิ่มขั้นตอนที่คุณยังไม่ได้ทดสอบ
หากบริการเปิดเผยค่าความสมบูรณ์ของตัวเอง ให้ถือว่าเป็นการสังเกตแยกต่างหาก เช็กซัมที่ผู้ให้บริการรายงานสามารถบอกคุณได้ว่าผู้ให้บริการเชื่อว่าตนจัดเก็บอะไรไว้ และนั่นไม่ใช่ข้อกล่าวอ้างเดียวกับสิ่งที่ไคลเอนต์ของคุณส่งไป
ผลลัพธ์เป็นไปได้สามแบบ และชี้ไปในทิศทางที่ต่างกัน แฮชเท่ากันหมายความว่าไบต์มาถึงโดยไม่เปลี่ยนแปลง แฮชต่างกันโดยมีการแปลงที่รู้จักหมายความว่าบริการสร้างวัตถุใหม่โดยเจตนา แฮชต่างกันโดยไม่มีการแปลงหมายความว่ามีบางอย่างระหว่างสองจุดเปลี่ยนเนื้อหา และขั้นตอนต่อไปคือหาขอบเขตแรกสุดที่สิ่งนั้นเกิดขึ้น
แยกความล้มเหลวในการถ่ายโอนออกจากการแปลง
การอัปโหลดบางส่วนและการอัปโหลดที่เสียหายดูเหมือนกันในเบราว์เซอร์ไฟล์และเป็นข้อบกพร่องที่ต่างกัน ตรวจสอบว่าการถ่ายโอนเสร็จสมบูรณ์หรือไม่: บันทึกของแอปพลิเคชันที่แสดงคำขอที่ถูกยกเลิก ไฟล์ที่จัดเก็บซึ่งมีขนาดเป็นคำนำหน้าของต้นทาง หรือวัตถุที่เป็นหน้าข้อผิดพลาดที่บันทึกไว้ภายใต้นามสกุลที่คาดไว้ ทั้งหมดบ่งชี้ถึงการถ่ายโอนที่ไม่สมบูรณ์ ไม่ใช่ไบต์ที่ถูกเปลี่ยน
การแปลงคือคำอธิบายทั่วไปอีกข้อ บริการที่บีบอัดรูปภาพใหม่ เขียนท้ายบรรทัด CSV ใหม่ หรือแปลงเอกสาร จะสร้างแฮชที่ต่างจากต้นทางอย่างชอบธรรม และนั่นไม่ใช่ความเสียหาย เปรียบเทียบขั้นตอนที่อ้างว่าเป็นสำเนาที่ซื่อตรง ไม่ใช่รูปแบบการนำเสนอสุดท้าย
ความล่าช้าและการสูญหายอยู่ในหมวดที่สาม สิ่งเหล่านี้อาจทำให้ไคลเอนต์หมดเวลารอ ลองใหม่ หรือยอมแพ้ และไม่มีข้อใดบ่งชี้ว่าไบต์ที่เซิร์ฟเวอร์ยอมรับถูกเปลี่ยนอย่างเงียบ ๆ ดูผลการถ่ายโอนก่อนจะโยนความผิดให้อุโมงค์
ลองเส้นทางที่สองโดยไม่เปลี่ยนทุกอย่าง
หากแฮชต่างกันจริงและไม่มีการแปลง ให้ทำซ้ำไฟล์ ไคลเอนต์ โพรโทคอล และปลายทางเดิมผ่านเส้นทางอื่นที่รองรับ เช่น เครือข่ายภายในแทน VPN เปลี่ยนตัวแปรเพียงตัวเดียว การเปลี่ยนไคลเอนต์ จุดปลายทาง และเครื่องมือพร้อมกันจะให้ผลลัพธ์ที่คุณระบุสาเหตุไม่ได้
รักษาการเปรียบเทียบให้ซื่อตรงทั้งสองทิศทาง แฮชบอกคุณว่าสองจุดเห็นตรงกันหรือไม่ตรงกันเกี่ยวกับเนื้อหา แต่ไม่ได้บอกว่าฝั่งใดน่าเชื่อถือ ดังนั้นเก็บค่าที่คาดไว้และการตรวจสอบไว้ภายในแบบจำลองความเชื่อถือที่คุณพึ่งพาจริง
ปิดท้ายด้วยประโยคเฉพาะเจาะจงในตั๋ว: การถ่ายโอนหยุดก่อนกำหนด แอปพลิเคชันแปลงวัตถุ ที่จัดเก็บเปลี่ยนมัน หรือไบต์ตรงกันและการอ่านคือความล้มเหลว แต่ละกรณีมีเจ้าของต่างกัน และไม่มีกรณีใดเป็น VPN โดยค่าเริ่มต้น