본문 바로가기

보안

HS256 암호화 알고리즘

HS256은 HMAC (Hash-based Message Authentication Code)과 SHA-256 (Secure Hash Algorithm 256)을 결합한 JWT (JSON Web Token)에 사용되는 암호화 알고리즘입니다.

HS256 알고리즘은 대칭 키 암호화 방식을 사용하며, 키 한 개만으로 암호화와 복호화를 모두 수행합니다. 즉, 동일한 키를 암호화와 복호화에 모두 사용합니다. 따라서 이 키를 안전하게 보관하는 것이 중요합니다.

HS256의 동작 방식은 다음과 같습니다:

HS256 동작 방식

1. Payload(정보 페이로드)와 Header(헤더 정보)를 각각 Base64로 인코딩합니다.
2. 인코딩된 헤더와 페이로드를 연결합니다. 이때 각 부분은 점(.)으로 구분됩니다.
3. 이렇게 생성된 문자열에 대해 HS256 알고리즘을 사용하여 HMAC을 계산합니다. 계산에는 암호화 키가 필요합니다.
4. 생성된 HMAC을 Base64로 인코딩하여 JWT의 세 번째 부분을 구성합니다.

HS256은 JWT의 헤더와 페이로드가 변경되지 않았음을 검증하는 데 사용됩니다. 이 알고리즘을 사용하면 토큰이 생성된 후 원래 데이터가 변조되지 않았음을 검증할 수 있습니다. 하지만 HS256 암호화는 토큰의 데이터를 숨기지 않습니다. 이것은 토큰의 데이터가 Base64로 인코딩되어 있기 때문이며, 이는 암호화가 아닌 단순한 인코딩 방법입니다. 따라서 중요한 데이터는 JWT에 직접 포함되어서는 안 되며, JWT의 내용은 송수신하는 동안에는 HTTPS와 같은 보안 채널을 통해 전송되어야 합니다.

 

* HMAC 암호화 기법 : https://ace28.tistory.com/34

반응형