Syncseed est un module d'authentification qui exploite un système de réponse de défi basé sur les graines synchronisé pour vérifier l'authenticité de l'utilisateur. Les graines sont générées à l'aide d'un CSPRNG pour assurer l'imprévisibilité. Maintenant, Syncseed contient également un système d'échange de semences, qui peut être utilisé dans le système de communication entre pairs par le biais d'une autorité de confiance intermédiaire (TA).
L'algorithme synchronisé contient désormais un module supplémentaire - seed_exchange . Ce module contient trois variations d'une solution pour l'authentification dynamique des pairs à des pairs à l'aide de Syncseed, rendue possible via l'algorithme d'échange syncseed (SEA). Veuillez vous référer à l' syncseed/tests/Seed Exchange Example pour plus d'informations.
Pour intégrer Syncseed dans votre projet, suivez ces étapes:
pip install syncseedCôté serveur:
# 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." )Côté client:
# 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 )En plus du processus d'authentification de base, Syncseed fournit un mécanisme pour fortifier davantage sa résistance contre les attaques de force brute. La mutation périodique de la graine ajoute une couche de sécurité supplémentaire, ce qui rend plus difficile pour les acteurs malveillants de compromettre les informations d'identification des utilisateurs.
Le but de la mutation des graines est de perturber toute tentative de deviner ou d'itérer systématiquement à travers d'éventuelles combinaisons de graines. En mutant périodiquement la graine, des tiers sont contrecarrés dans leurs efforts pour exploiter une graine client compromise.
Dans un environnement de production, envisagez d'incorporer la fonction mutate_seed fournie par Syncseed dans le flux de travail de votre application. Cette fonction initie une mutation sur la valeur actuelle des graines, produisant une nouvelle graine qui peut être utilisée dans les tentatives d'authentification ultérieures.
Voici un exemple de la façon dont vous pourriez utiliser la fonction 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 } ' )L'intégration de la mutation de semences dans la stratégie de sécurité de votre application améliore la robustesse de Syncseed, contribuant à un mécanisme d'authentification plus sûr.
Fine-Tune Syncseed pour votre application en ajustant ses différentes propriétés:
seed_length : Réglez la longueur de la graine synchronisée.challenge_rounds : Définissez le nombre de tours de défi pour une sécurité améliorée.scramble_rounds : Configurez les tours de brouillage pour équilibrer la sécurité et les performances.seed_value_lower_bound : Réglez la limite inférieure pour les valeurs de graines.seed_value_upper_bound : Réglez la limite supérieure pour les valeurs de graines.cha_cha_generator_rounds : ajustez le nombre de tours de générateur Chacha.Pour un guide plus approfondi pour le déploiement de Syncseed, reportez-vous au guide de déploiement syncseed
Syncseed offre une flexibilité pour optimiser les performances en fonction des exigences spécifiques. Testez et analysez régulièrement le temps d'exécution sous différentes configurations pour trouver un équilibre optimal entre la sécurité et les performances. Dans le dossier syncseed/tests du projet, vous trouverez un programme d'analyse comparative de performance pour Syncseed. N'hésitez pas à personnaliser ce programme pour évaluer diverses configurations. De plus, la sécurité de l'algorithme peut être évaluée à l'aide du test de génération de cycle, également disponible dans le même dossier. Ce test vous permet de déterminer le nombre de graines uniques que synchronisées peut générer avant qu'un cycle se forme avec des valeurs de graines.
Syncseed est un effort de collaboration, bénéficiant des commentaires et des contributions de la communauté. Vos idées et suggestions sont très appréciées dans l'amélioration continue de ce module d'authentification. N'hésitez pas à soulever des problèmes, à proposer des améliorations ou à contribuer au projet.
Ce projet est autorisé sous la licence du MIT.
Kavin Muthuselvan
Github de Syncseed