บทนำ: การโจมตีเซิร์ฟเวอร์เวลาและการบรรเทาผลกระทบใน ETH2
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)หมายเหตุบรรณาธิการ: บทความนี้มาจาก
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)ที่นี่ผู้เขียน: dankrad แปล: A Jian ทำซ้ำโดย Odaily โดยได้รับอนุญาต
บทคัดย่อ: การโจมตีเซิร์ฟเวอร์เวลาใน Eth2 ก็เคยถูกพูดถึงมาก่อนเช่นกัน แต่จนถึงตอนนี้ ความเห็นของกระแสหลักคือการโจมตีประเภทนี้จะทำให้ตัวตรวจสอบความถูกต้องออฟไลน์ได้ชั่วคราวเท่านั้น และรอให้ตัวดำเนินการโหนดสร้างมาตรการซิงโครไนซ์เวลาที่ถูกต้องอีกครั้ง และโหนดจะสามารถกลับมาออนไลน์ได้ อย่างไรก็ตาม หากโหนดสามารถถูกหลอกให้ลงนามในเอกสารรับรองสำหรับยุคหนึ่งในอนาคตอันไกลโพ้น อันตรายมีมากกว่าแค่การออฟไลน์ชั่วคราว: เนื่องจากกฎการฟันดาบแบบสรุปของอัลกอริทึมที่สอดคล้องกัน โหนดเหล่านี้จะไม่สามารถเข้าถึงยุคนั้นได้ จนกว่าเครือข่ายทั้งหมดจะถึงจริง ๆ จะไม่มีการลงนามข้อความรับรองอีกจนกว่าจะถึงช่วงเวลาเป้าหมายของข้อความรับรองที่ส่งผิด (มิฉะนั้น เครื่องหมายทับจะถูกทริกเกอร์)
ที่นี่
). ภายใต้การดำเนินการของกฎฉันทามติ การโจมตีเซิร์ฟเวอร์ตามเวลาแบบนี้จะทำให้ตัวตรวจสอบที่ถูกโจมตีออฟไลน์เกือบตลอดไป และผู้มีส่วนได้ส่วนเสียที่เกี่ยวข้องจะต้องจ่ายราคาสูงเนื่องจากการรั่วไหลที่ไม่มีการใช้งาน
พื้นผิวการโจมตี
เราสามารถรวมการโจมตีเซิร์ฟเวอร์เวลาได้ดังนี้: ขั้นตอนแรกคือการข้ามไปยังเวลาหนึ่งในอนาคตโดยจัดการเวลาของเซิร์ฟเวอร์เวลา เพื่อให้เวลาของการตรวจสอบการโจมตีข้ามไปยังอนาคตด้วย (เช่น 15 ถึง 20 วัน) เวลานี้ต้องสั้นกว่าเวลาที่บทลงโทษความเกียจคร้านทำให้ยอดคงเหลือของผู้ตรวจสอบลดลงเหลือศูนย์ มิฉะนั้นผู้ตรวจสอบความถูกต้องจะไม่ลงนามในข้อความรับรองอีก
ผลลัพธ์
จากนั้นเราจำเป็นต้องหลอกให้โหนดที่เกี่ยวข้องคิดว่าจริง ๆ แล้วซิงค์กับเชน จากนั้นโหนดจะลงนามในเอกสารรับรอง สิ่งนี้เกิดขึ้นได้เสมอหากผู้โจมตีควบคุมเพียร์หลายคน เพียงแค่ส่งการรับรองและบล็อกจากเวลาในอนาคตในช่องทางเครือข่ายเพียร์ทูเพียร์ การควบคุมหลาย ๆ โหนดสามารถทำได้ง่ายเช่นกัน ดังนั้นนี่จึงไม่ใช่ข้อสันนิษฐานของผู้โจมตีที่ไม่สมจริง
เมื่อโปรแกรมตรวจสอบเป้าหมายลงนามในข้อความรับรองที่กำหนดเป้าหมายไปยังยุคอนาคต ผู้โจมตีสามารถบันทึกข้อความและตรวจสอบให้แน่ใจว่าโปรแกรมตรวจสอบความถูกต้องไม่สามารถลงนามในข้อความรับรองได้อีกจนกว่าเครือข่ายทั้งหมดจะมาถึงยุคในอนาคตนั้นจริงๆ (มิฉะนั้น ผู้โจมตีอาจส่งข้อความนี้ ข้อความทำให้ถูกเฉือน) ไคลเอนต์ตัวตรวจสอบทั้งหมดที่ใช้งานอยู่ใน Eth2 ในปัจจุบันมีมาตรการป้องกันตัวตรวจสอบความถูกต้องจากการลงนามการรับรองที่ขัดแย้งกัน ดังนั้นตัวตรวจสอบความถูกต้องจึงอยู่ในสถานะออฟไลน์อย่างมีประสิทธิภาพ
ผลลัพธ์
ผู้โจมตีสามารถใช้เซิร์ฟเวอร์เวลา (หรือสิ่งอำนวยความสะดวกที่คล้ายกัน เช่น เวลาคร่าวๆ) เพื่อขับไล่ตัวตรวจสอบความถูกต้องทั้งหมดที่ TA สามารถมีอิทธิพลได้ การโจมตีดังกล่าวจะเลวร้ายยิ่งกว่าการโจมตี [2] ก่อนหน้านี้โดยใช้อินเทอร์เฟซเดียวกัน เนื่องจากผลกระทบไม่ได้เกิดขึ้นชั่วคราวแต่จะคงอยู่ถาวรกว่ามาก แม้ว่าจะเป็นไปได้ที่เราสามารถตรวจจับการโจมตีดังกล่าวได้ภายในไม่กี่นาที และโหนดมืออาชีพทั้งหมดสามารถกู้คืนเวลาปกติได้ภายในไม่กี่ชั่วโมง แต่สิ่งนี้ไม่ได้ช่วยอะไรเนื่องจากความเสียหายได้เกิดขึ้นแล้ว - และอาจนำไปสู่การตรวจสอบความถูกต้องได้ เช่น อาจมี เป็นผู้ตรวจสอบจำนวนมากที่จะถูกถอนออกจากเครือข่ายเนื่องจากบทลงโทษความเกียจคร้านที่เพิ่มขึ้นอย่างทวีคูณ
การลดผลกระทบ
เพิ่มกฎ non-slashing ของไคลเอนต์ตัวตรวจสอบความถูกต้อง
เราสามารถเพิ่มกฎแบบไม่สแลชให้กับไคลเอนต์ตัวตรวจสอบความถูกต้อง: กำหนดให้พวกเขาประเมินเวลาปัจจุบันก่อนเซ็นข้อความทั้งหมด และไม่ต้องเซ็นชื่อล่วงหน้าในข้อความในอนาคต วิธีนี้มีประโยชน์จริง ๆ ก็ต่อเมื่อไคลเอนต์ตัวตรวจสอบความถูกต้องและโหนดลูกโซ่บีคอนไม่ได้ใช้งานบนเครื่องเดียวกัน และไม่ได้รับผลกระทบจากการโจมตี อย่างไรก็ตาม เป็นการปรับปรุงที่ชัดเจนสำหรับตัวตรวจสอบความถูกต้องแบบแบ่งคีย์ เนื่องจากกฎนี้จะไม่อนุญาตให้ผู้นำเสนอข้อความรับรองในอนาคต ซึ่งสามารถบล็อกการกระทำของตัวตรวจสอบความถูกต้องได้
เพิ่มการป้องกันเพิ่มเติมสำหรับมาตรการซิงโครไนซ์เวลา


