검색
검색
공개 노트 검색
회원가입로그인

jwt secret 이 brute force 공격으로 탈취당하려면 얼마나 걸릴까?

jwt 토큰을 쓰고 있지만 좀 불안한 면이 있다. http only cookie 를 쓰고 있기는 하지만 값이 그대로 드러나기 때문이다. jwt secret 이 brute force 공격으로 뚫릴 가능성이 있지 않을까?

결론을 먼저 말하면 HS256 으로 낮은 수준으로 암호화된 토큰은 털릴 수 있다.

예를 들어 secret 이 password 인 경우는 바로 털린다. 물론 이렇게 설정하는 개발자는 없겠지만… 예를 들어 숫자 11자리는 2초면 털린다.

이거는 일반적인 비밀번호도 마찬가지이겠지만 숫자, 대소문자, 특수 문자를 사용하면 복잡도가 상상이상으로 높아져 시간이 오래걸려 크랙킹이 어렵게 된다. 만약 11 글자가 이렇게 이루어져 있다면 해커가 크래킹하는데 41년이 걸리게 된다고 한다. 만약 12 글자가 된다면 해킹하는데 34,000년이 걸리게 된다고 한다. 출처

auth0 블로그에서는 seceret key 는 512 bits 를 권장하고 있는데 1글자가 8 bits 이므로 64글자 정도가 된다.

아예 brute force 공격을 방어하려면 RSA 키를 사용해야 한다. RSA 는 퍼블릭키 시스템이다. 서비스가 상용화가 된다면 RSA 키 세팅 정도는 필요하다.

그 외에 추가적인 암호화를 더해도 좋을 것 같다.

우리가 일상적으로 사용하는 비밀번호도 대문자 하나와 특수 문자 하나 정도만 섞어줘도 어느정도 예방을 할 수 있다.

오히려 위협은 xss 공격이나 csrf 에서 올 확률이 더 크다고 본다.

물론 양자 컴퓨터가 상용화가 된다면 비밀번호들이 털릴 가능성이 크다. 서비스에서는 api limit 이나 계정 락킹으로 예방책을 마련해 두는게 좋을 것 같다.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 716
heart
T
페이지 기반 대답
AI Chat