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

ตรวจสอบว่าคู่สื่อสารตกลงอะไรกันจริง

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

ถ้าไซเฟอร์ที่เจรจาคือ AES-GCM หรือ ChaCha20-Poly1305 ให้หยุดตรงนี้ โครงสร้างเหล่านี้ใช้บล็อก 128 บิตและพิสูจน์ยืนยันเพย์โหลด ดังนั้นข้อโต้แย้งเรื่องการชนกันแบบ 64 บิตด้านล่างจึงไม่ใช้กับมัน

แยกความยาวคีย์ออกจากความกว้างบล็อก

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

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

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

ใช้เลขคณิตวันเกิดกับขนาดบล็อก

บล็อก 64 บิตมีมาตราวันเกิดประมาณ 2^32 บล็อกที่เข้ารหัสภายใต้คีย์เดียว ก่อนที่การชนจะมีโอกาสเกิดขึ้น แต่ละบล็อกบรรทุกแปดไบต์ ดังนั้นมาตราเดียวกันคือประมาณ 2^35 ไบต์ หรือ 32 GiB ของข้อมูลภายใต้คีย์เดียว

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

นักวิจัย Sweet32 สาธิตการโจมตีจริงต่อไซเฟอร์บล็อก 64 บิตในปี 2016 รวมถึงสถานการณ์ OpenVPN ภายใต้เงื่อนไขที่ต้องมีการสังเกตและการสร้างทราฟฟิก ค่าเริ่มต้นและเวอร์ชันซอฟต์แวร์ที่พวกเขาเผยแพร่เป็นบริบททางประวัติศาสตร์ ไม่ใช่คำอธิบายการติดตั้งของคุณ

ตัดสินใจว่าการใช้ CBC ซ้ำมีความสำคัญที่นี่หรือไม่

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

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

ถ้าปริมาณที่วัดได้ต่อคีย์ยังต่ำกว่ามาตราวันเกิดมาก การเปิดเผยก็เล็กกว่า แต่มันยังไม่เป็นศูนย์และยังเป็นเหตุผลให้วางแผนย้ายระบบแทนที่จะเลิกกังวล

เปลี่ยนไซเฟอร์ ไม่ใช่คีย์

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

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

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

บทความที่เกี่ยวข้อง