• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

token_secret 변경후 인증부분에 대하여

21.06.07 18:45 작성 조회수 211

4

안녕하세요. 
좋은 강의 정말 감사드립니다.

12:12무렵에 token_secret 변경-> busrefresh 후
인증할때 Bearer Token의 token값을 변경하지 않아도...

debug시 token_secret이 busrefresh로 변경된 값으로 확인 되지만
정상적으로 인증 되는것을 확인했습니다.

로그인시 적용된 token_secret 아래의 값입니다.

user_token_native_application_#2

이상해서 아래와 같이 다른 값으로 변경후 

user_token_native_application_#4

user_token_native_application_#5

user_token_native_application_#9

busrefresh하고 health_check  URL을 확인했지만 마찬가지로 인증이 잘되었습니다.

이상한건 아래와 같이 코드를 바꾸면 

user_token_native_application_#10

user_token_native_application_#14

user_token_native_application_#17

401Unauthorized 로 정상적인 결과가 나왔습니다.

제 생각으론 # 뒤의 숫자값보다는 자릿수만 인지한거같습니다.

이런생각으로 아래와 같이 숫자를 영문으로 변경해 시도해봤더니 인증이 되었습니다.

user_token_native_application_#z

그리고 또 아래와 같이 영문을 두자리수로 늘려봤더니

user_token_native_application_#za

제 생각처럼 숫자든 영문이든 관계없이 자릿수2개로 인지해 인증이 되지 않았습니다.

이런 제 생각이 맞을까요?
엉뚱하지만.. 맞아도 이상하고 안맞아도 이상해서 질문드립니다.

답변 1

답변을 작성해보세요.

5

안녕하세요, 이도원입니다. 

답변이 늦어 죄송합니다. 

말씀하신 문제는 HMAC 알고리즘에서 비밀키를 처리하는 데에 일정한 해시키의 지정 된 길이만 사용되는 점입니다. 비밀 키의 최소 길이는 알고리즘의 비트 강도에 따라 다음과 같이 다릅니다. 

HS256: 32 bytes minimum key length

HS386: 48 bytes minimum key length

HS512: 64 bytes minimum key length

HS512의 경우 64바이트 이상의 비밀키를 요구하고, 키의 길이가 64~67까지는 동일한 키로 인식되어 같은 키로 인식 될 수 있습니다. (예를 들어, 64바이트까지는 같은 값이고 65번째 값만 다르다거나 하는 경우)

HAMC는 간단하게 사용할 수 있는 대칭키 암호 알고리즘으로 속도가 빠르다는 장점도 가지고 있습니다만, 정확하게 말해서 디지털 서명은 아닙니다. 따라서, 정교한 암호 알고리즘을 사용하기 위해 HMAC-secured JWT 또는 RSA 비대칭키 알고리즘을 선택하는게 좋을 수 있습니다. 

감사합니다.