SyncSeed는 동기화 된 종자 기반 챌린지-응답 시스템을 활용하여 사용자 진위를 확인하는 인증 모듈입니다. 씨앗은 예측 불가능한 것을 보장하기 위해 CSPRNG를 사용하여 생성됩니다. 이제 SyncSeed에는 중간 신뢰할 수있는 당국 (TA)을 통해 피어 투 피어 커뮤니케이션 시스템에서 사용할 수있는 종자 교환 시스템도 포함되어 있습니다.
SyncSeed 알고리즘에는 이제 추가 모듈 seed_exchange 가 포함되어 있습니다. 이 모듈에는 SyncSeed Exchange 알고리즘 (SEA)을 통해 가능하게 된 SyncSeed를 사용하여 동적 피어에서 피어 인증을위한 솔루션의 세 가지 변형이 포함되어 있습니다. 자세한 내용은 syncseed/tests/Seed Exchange Example 의 readme를 참조하십시오.
SyncSeed를 프로젝트에 통합하려면 다음을 수행하십시오.
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는 핵심 인증 프로세스 외에도 무차별 인력 공격에 대한 저항을 더욱 강화하는 메커니즘을 제공합니다. 종자를 주기적으로 변형 시키면 추가 보안 계층이 추가되어 악의적 인 행위자가 사용자 자격 증명을 손상시키는 것이 더 어려워집니다.
종자 돌연변이의 목적은 가능한 종자 조합을 체계적으로 추측하거나 반복하려는 시도를 방해하는 것입니다. 종자를 주기적으로 변형시킴으로써, 제 3자는 타협 된 고객 씨앗을 이용하려는 노력에 방해가된다.
프로덕션 환경에서는 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 } ' )종자 돌연변이를 애플리케이션의 보안 전략에 통합하면 SyncSeed의 견고성이 향상되어보다 안전한 인증 메커니즘에 기여합니다.
다양한 속성을 조정하여 애플리케이션을위한 미세 조정 :
seed_length : 동기화 된 시드의 길이를 설정하십시오.challenge_rounds : 보안 향상을위한 도전 라운드 수를 정의하십시오.scramble_rounds : 보안 및 성능의 균형을 맞추기 위해 스크램블 라운드를 구성하십시오.seed_value_lower_bound : 종자 값의 하한을 설정하십시오.seed_value_upper_bound : 종자 값의 상한을 설정하십시오.cha_cha_generator_rounds : chacha 생성기 라운드 수를 조정하십시오.SyncSeed 배포를위한보다 심층적 인 안내서는 SyncSeed Deployment Guide를 참조하십시오.
SyncSeed는 특정 요구 사항에 따라 성능을 최적화 할 수있는 유연성을 제공합니다. 다른 구성에서 실행 시간을 정기적으로 테스트하고 분석하여 보안과 성능 간의 최적의 균형을 유지합니다. 프로젝트의 syncseed/tests 폴더 내에서 SyncSeed를위한 성능 벤치마킹 프로그램을 찾을 수 있습니다. 다양한 구성을 평가하려면이 프로그램을 사용자 정의하십시오. 또한, 동일한 폴더에서도 사용 가능한 사이클 생성 테스트를 사용하여 알고리즘의 보안을 평가할 수 있습니다. 이 테스트를 통해 시드 값이있는 사이클 형태 전에 동기화가 생성 할 수있는 고유 한 시드의 수를 결정할 수 있습니다.
SyncSeed는 공동 작업으로 커뮤니티 피드백과 기여로부터 혜택을받습니다. 귀하의 통찰력과 제안은이 인증 모듈의 지속적인 개선에서 높은 가치가 있습니다. 자유롭게 문제를 제기하거나 개선 사항을 제안하거나 프로젝트에 기여하십시오.
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다.
Kavin Muthuselvan
Syncseed의 Github