O SyncSeed é um módulo de autenticação que aproveita um sistema de desafio-resposta baseado em sementes sincronizado para verificar a autenticidade do usuário. As sementes são geradas usando um CSPRNG para garantir a imprevisibilidade. Agora, o SyncSeed também contém um sistema de troca de sementes, que pode ser usado no sistema de comunicação ponto a ponto por meio de uma autoridade confiável intermediária (TA).
O algoritmo SyncSeed agora contém um módulo adicional - seed_exchange . Este módulo contém três variações de uma solução para a autenticação dinâmica de pares a pares usando a SyncSeed, possibilitada pelo algoritmo de troca sincronizado (SEA). Consulte o syncseed/tests/Seed Exchange Example para obter mais informações.
Para integrar o SyncSeed ao seu projeto, siga estas etapas:
pip install syncseedServidor:
# 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." )Lado do cliente:
# 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 )Além do processo de autenticação do núcleo, a SyncSeed fornece um mecanismo para fortalecer ainda mais sua resistência contra ataques de força bruta. A mutação periodicamente a semente adiciona uma camada extra de segurança, tornando mais desafiador para atores maliciosos comprometer as credenciais do usuário.
O objetivo da mutação das sementes é interromper qualquer tentativa de adivinhar sistematicamente ou iterar através de possíveis combinações de sementes. Ao mutar periodicamente a semente, terceiros são frustrados em seus esforços para explorar uma semente de cliente comprometida.
Em um ambiente de produção, considere incorporar a função mutate_seed fornecida pelo SyncSeed no fluxo de trabalho do seu aplicativo. Esta função inicia uma mutação no valor atual da semente, produzindo uma nova semente que pode ser usada nas tentativas subsequentes de autenticação.
Aqui está um exemplo de como você pode usar a função 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 } ' )A integração da mutação de semente na estratégia de segurança do seu aplicativo aprimora a robustez do SyncSeed, contribuindo para um mecanismo de autenticação mais seguro.
Tune SyncSeed para sua aplicação ajustando suas várias propriedades:
seed_length : defina o comprimento da semente sincronizada.challenge_rounds : Defina o número de rodadas de desafio para maior segurança.scramble_rounds : configure as rodadas de scramble para equilibrar a segurança e o desempenho.seed_value_lower_bound : Defina o limite inferior para os valores das sementes.seed_value_upper_bound : Defina o limite superior para os valores de sementes.cha_cha_generator_rounds : Ajuste o número de rodadas do gerador de chacha.Para um guia mais aprofundado para implantar a SyncSeed, consulte o Guia de implantação da SyncSeed
A SyncSeed oferece flexibilidade para otimizar o desempenho com base em requisitos específicos. Teste e analise regularmente o tempo de execução sob diferentes configurações para encontrar um equilíbrio ideal entre segurança e desempenho. Na pasta syncseed/tests do projeto, você encontrará um programa de benchmarking de desempenho para SyncSeed. Sinta -se à vontade para personalizar este programa para avaliar várias configurações. Além disso, a segurança do algoritmo pode ser avaliada usando o teste de geração de ciclo, também disponível na mesma pasta. Este teste permite determinar o número de sementes exclusivas que a SyncSeed pode gerar antes que um ciclo se formas com valores de sementes.
A SyncSeed é um esforço colaborativo, beneficiando -se do feedback e das contribuições da comunidade. Suas idéias e sugestões são altamente valorizadas na melhoria contínua deste módulo de autenticação. Sinta -se à vontade para levantar questões, propor aprimoramentos ou contribuir para o projeto.
Este projeto está licenciado sob a licença do MIT.
Kavin Muthuselvan
Github de Syncseed