Server/Security

Argon2id 파라미터 조정을 통한 해싱 지연

suee97 2025. 5. 26. 14:02

해싱 지연을 통해 해커가 브루트포스 공격을 하는 데에 더 많은 비용(시간, 메모리, 하드웨어 등)이 들도록 할 수 있다.

해킹을 통해 얻는 이득보다 이 비용이 더 크다고 판단되면 해커는 해킹을 중단할 가능성이 높으므로 해싱 지연은 보안을 높이는 데에 중요하다.

예를 들어, MD5의 경우 RTX4090 기준 초당 1500억 회의 연산이 가능하므로 브루트포스 공격에 용이하며 보안에 취약하다.

 

목표

사용자는 2~5초 정도의 응답 시간은 기다릴 수 있다고 인식하므로, 응답 시간은 약 3~4초를 목표로 하며 해싱하는 데에 드는 시간은 0.5~1초로 조정하는 것이 목표이다.

 

 

초기 파라미터

 

테스트 코드

@Test
@RepeatedTest(10)
@DisplayName("Argon2 해시 테스트")
public void test1() {
    byte[] salt = Argon2Hash.createSalt();
    String hashValue = Argon2Hash.createHash(salt, "password");
}

 

초기 테스트 결과

평균 소요시간 약 1.3s (목표 부합x)

 

 

파라미터 변경

평균 소요시간 약 0.55s (목표 부합)

 

 

'Server > Security' 카테고리의 다른 글

Salt Hash를 활용한 패스워드 암호화  (0) 2025.05.07