Syncseed เป็นโมดูลการตรวจสอบความถูกต้องที่ใช้ประโยชน์จากระบบตอบสนองต่อความท้าทายที่ใช้เมล็ดแบบซิงโครไนซ์เพื่อตรวจสอบความถูกต้องของผู้ใช้ เมล็ดถูกสร้างขึ้นโดยใช้ CSPRNG เพื่อให้แน่ใจว่าคาดเดาไม่ได้ ตอนนี้ Syncseed ยังมีระบบแลกเปลี่ยนเมล็ดพันธุ์ซึ่งสามารถใช้ในระบบการสื่อสารแบบเพียร์ทูเพียร์ผ่านอำนาจที่เชื่อถือได้ระดับกลาง (TA)
อัลกอริทึม Syncseed ตอนนี้มีโมดูลเพิ่มเติม - seed_exchange โมดูลนี้มีสามรูปแบบของการแก้ปัญหาสำหรับการตรวจสอบเพียร์แบบไดนามิกเพื่อการตรวจสอบเพียร์โดยใช้ syncseed ทำให้เป็นไปได้ผ่านอัลกอริทึมการแลกเปลี่ยน syncseed (SEA) โปรดดูที่ readMe ภายใต้ syncseed/tests/Seed Exchange Example สำหรับข้อมูลเพิ่มเติม
หากต้องการรวมการซิงค์เข้ากับโครงการของคุณให้ทำตามขั้นตอนเหล่านี้:
pip install syncseedฝั่งเซิร์ฟเวอร์:
# Initialize Syncseed
from syncseed . syncseed import SyncseedGenerator
gen = SyncseedGenerator ()
# Authenticate a user
if gen . authenticated ( user_seed , seed_value ):
# Update the seed
new_seed = gen . update_seed ()
print ( "Authentication successful!" )
else :
print ( "Authentication failed." )ฝั่งไคลเอ็นต์:
# Initialize Syncseed
from syncseed . syncseed import SyncseedGenerator
gen = SyncseedGenerator ()
# [Load syncseed configuration to match that of the server...]
# Assume 'user_seed' is the user's seed value stored in a file or database
user_seed = 123456789
# Generate the challenge value to transmit
seed_value = gen . get_expected_seed_value ( user_seed )นอกเหนือจากกระบวนการตรวจสอบแกนหลักแล้ว Syncseed ยังมีกลไกในการเสริมสร้างความต้านทานต่อการโจมตีด้วยกำลังเดรัจฉาน การกลายพันธุ์ของเมล็ดพันธุ์เพิ่มความปลอดภัยเป็นระยะทำให้ความท้าทายมากขึ้นสำหรับนักแสดงที่เป็นอันตรายในการประนีประนอมข้อมูลประจำตัวของผู้ใช้
วัตถุประสงค์ของการกลายพันธุ์ของเมล็ดคือการขัดขวางความพยายามใด ๆ ที่จะคาดเดาหรือวนซ้ำอย่างเป็นระบบผ่านการรวมกันของเมล็ดพันธุ์ที่เป็นไปได้ โดยการกลายพันธุ์เป็นระยะ ๆ บุคคลที่สามจะถูกขัดขวางในความพยายามที่จะใช้ประโยชน์จากเมล็ดพันธุ์ลูกค้าที่ถูกบุกรุก
ในสภาพแวดล้อมการผลิตให้พิจารณารวมฟังก์ชั่น mutate_seed ที่จัดทำโดยการซิงค์เข้ากับเวิร์กโฟลว์ของแอปพลิเคชันของคุณ ฟังก์ชั่นนี้เริ่มต้นการกลายพันธุ์เกี่ยวกับค่าเมล็ดปัจจุบันผลิตเมล็ดพันธุ์ใหม่ที่สามารถใช้ในการพยายามตรวจสอบความถูกต้องตามมา
นี่คือตัวอย่างของวิธีที่คุณจะใช้ฟังก์ชั่น mutate_seed :
import syncseed . syncseed as syncseed
# Initialize the syncseed generator
gen = syncseed . SyncseedGenerator ()
# Assume 'current_seed' is the current seed value you want to mutate
current_seed = 123456789
# Call the 'mutate_seed' function to perform a mutation on the seed
mutated_seed = gen . mutate_seed ( current_seed )
# Now 'mutated_seed' contains the result of the mutation
print ( f'Mutated Seed: { mutated_seed } ' )การรวมการกลายพันธุ์ของเมล็ดพันธุ์เข้ากับกลยุทธ์ความปลอดภัยของแอปพลิเคชันของคุณช่วยเพิ่มความทนทานของการซิงค์ซิงค์ซึ่งมีส่วนทำให้กลไกการตรวจสอบความปลอดภัยที่ปลอดภัยยิ่งขึ้น
ปรับแต่งการปรับแต่งสำหรับแอปพลิเคชันของคุณโดยปรับคุณสมบัติต่าง ๆ :
seed_length : ตั้งค่าความยาวของเมล็ดที่ซิงโครไนซ์challenge_rounds : กำหนดจำนวนรอบการท้าทายเพื่อการรักษาความปลอดภัยที่เพิ่มขึ้นscramble_rounds : กำหนดค่ารอบการแย่งชิงเพื่อสร้างสมดุลระหว่างความปลอดภัยและประสิทธิภาพseed_value_lower_bound : ตั้งค่าขอบเขตล่างสำหรับค่าเมล็ดseed_value_upper_bound : ตั้งค่าขอบเขตบนสำหรับค่าเมล็ดcha_cha_generator_rounds : ปรับจำนวนรอบเครื่องกำเนิด Chachaสำหรับคู่มือเชิงลึกเพิ่มเติมสำหรับการปรับใช้ syncseed โปรดดูที่คู่มือการปรับใช้ syncseed
Syncseed มีความยืดหยุ่นในการเพิ่มประสิทธิภาพตามข้อกำหนดเฉพาะ ทดสอบและวิเคราะห์เวลาดำเนินการอย่างสม่ำเสมอภายใต้การกำหนดค่าที่แตกต่างกันเพื่อสร้างสมดุลที่ดีที่สุดระหว่างความปลอดภัยและประสิทธิภาพ ภายในโฟลเดอร์ syncseed/tests ของโครงการคุณจะพบโปรแกรมการเปรียบเทียบประสิทธิภาพสำหรับ Syncseed อย่าลังเลที่จะปรับแต่งโปรแกรมนี้เพื่อประเมินการกำหนดค่าต่างๆ นอกจากนี้ความปลอดภัยของอัลกอริทึมสามารถประเมินได้โดยใช้การทดสอบการสร้างรอบและมีอยู่ในโฟลเดอร์เดียวกัน การทดสอบนี้ช่วยให้คุณสามารถกำหนดจำนวนเมล็ดที่ไม่ซ้ำกันที่ซิงค์สามารถสร้างได้ก่อนรูปแบบวัฏจักรที่มีค่าเมล็ด
Syncseed เป็นความพยายามร่วมกันที่ได้รับประโยชน์จากความคิดเห็นของชุมชนและการมีส่วนร่วม ข้อมูลเชิงลึกและข้อเสนอแนะของคุณมีมูลค่าสูงในการปรับปรุงโมดูลการตรวจสอบความถูกต้องนี้อย่างต่อเนื่อง อย่าลังเลที่จะยกประเด็นเสนอการปรับปรุงหรือมีส่วนร่วมในโครงการ
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
Kavin Muthuselvan
GitHub ของ Syncseed