Syncseed adalah modul otentikasi yang memanfaatkan sistem respons tantangan berbasis benih yang disinkronkan untuk memverifikasi keaslian pengguna. Biji dihasilkan menggunakan CSPRNG untuk memastikan ketidakpastian. Sekarang, Syncseed juga berisi sistem pertukaran benih, yang dapat digunakan dalam sistem komunikasi peer-to-peer melalui Otoritas Terpercaya Menengah (TA).
Algoritma sinkronisasi sekarang berisi modul tambahan - seed_exchange . Modul ini berisi tiga variasi solusi untuk otentikasi peer to peer yang dinamis menggunakan syncseed, dimungkinkan melalui algoritma pertukaran sinkronisasi (SEA). Silakan merujuk ke ReadMe di bawah syncseed/tests/Seed Exchange Example untuk informasi lebih lanjut.
Untuk mengintegrasikan Syncseed ke dalam proyek Anda, ikuti langkah -langkah ini:
pip install syncseedSisi server:
# 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." )Sisi klien:
# 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 )Selain proses otentikasi inti, Syncseed menyediakan mekanisme untuk lebih memperkuat resistensi terhadap serangan brute force. Mutasi secara berkala benih menambah lapisan keamanan ekstra, membuatnya lebih menantang bagi aktor jahat untuk mengkompromikan kredensial pengguna.
Tujuan mutasi benih adalah untuk mengganggu segala upaya untuk menebak atau mengulangi secara sistematis melalui kemungkinan kombinasi benih. Dengan bermutasi secara berkala benih, pihak ketiga digagalkan dalam upaya mereka untuk mengeksploitasi benih klien yang dikompromikan.
Dalam lingkungan produksi, pertimbangkan untuk memasukkan fungsi mutate_seed yang disediakan oleh Syncseed ke dalam alur kerja aplikasi Anda. Fungsi ini memulai mutasi pada nilai benih saat ini, menghasilkan benih baru yang dapat digunakan dalam upaya otentikasi berikutnya.
Berikut adalah contoh bagaimana Anda dapat menggunakan fungsi 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 } ' )Mengintegrasikan mutasi benih ke dalam strategi keamanan aplikasi Anda meningkatkan ketahanan sinkronisasi, berkontribusi pada mekanisme otentikasi yang lebih aman.
Sinkronisasi fine-tune untuk aplikasi Anda dengan menyesuaikan berbagai propertinya:
seed_length : Atur panjang benih yang disinkronkan.challenge_rounds : Tentukan jumlah putaran tantangan untuk peningkatan keamanan.scramble_rounds : Mengkonfigurasi putaran scramble untuk menyeimbangkan keamanan dan kinerja.seed_value_lower_bound : Setel batas bawah untuk nilai benih.seed_value_upper_bound : Atur batas atas untuk nilai benih.cha_cha_generator_rounds : Sesuaikan jumlah putaran generator chacha.Untuk panduan yang lebih mendalam untuk menggunakan Syncseed, lihat Panduan Penyebaran Syncseed
Syncseed menawarkan fleksibilitas untuk mengoptimalkan kinerja berdasarkan persyaratan spesifik. Secara teratur menguji dan menganalisis waktu eksekusi di bawah konfigurasi yang berbeda untuk mencapai keseimbangan optimal antara keamanan dan kinerja. Di dalam folder syncseed/tests dari proyek, Anda akan menemukan program pembandingan kinerja untuk Syncseed. Jangan ragu untuk menyesuaikan program ini untuk mengevaluasi berbagai konfigurasi. Selain itu, keamanan algoritma dapat dinilai menggunakan uji generasi siklus, juga tersedia di folder yang sama. Tes ini memungkinkan Anda untuk menentukan jumlah biji unik yang dapat dihasilkan oleh sinkronisasi sebelum siklus terbentuk dengan nilai benih.
Syncseed adalah upaya kolaboratif, mendapat manfaat dari umpan balik masyarakat dan kontribusi. Wawasan dan saran Anda sangat dihargai dalam peningkatan berkelanjutan dari modul otentikasi ini. Jangan ragu untuk mengangkat masalah, mengusulkan peningkatan, atau berkontribusi pada proyek.
Proyek ini dilisensikan di bawah lisensi MIT.
Kavin Muthuselvan
GitHub Syncseed