RS256 대 HS256 차이점은 무엇입니까?

RS256과 HS256 JWT 서명 알고리즘의 차이점을 알아보세요.






JWT에 대해 배울 때 많이 듣는 용어는 서명과 서명입니다. 자습서에서 JWT를 생성하는 경우 서명을 생성하는 알고리즘을 선택하는 것을 볼 수 있습니다. 그러나 서명 알고리즘은 무엇이며 어떻게 작동합니까? JWT 서명 알고리즘과 가장 일반적으로 사용되는 두 가지 알고리즘에 대해 자세히 읽고 알아보세요.

JSON 웹 토큰을 생성하면 서명됩니다. 토큰에 서명하면 수신자는 토큰의 내용이 변경되지 않았는지 확인하고 토큰 생성 서명의 원래 발급자를 확인할 수 있습니다.

주의! 서명은 암호화가 아닙니다!

JWT에 서명해도 데이터를 읽을 수 없습니다. 서명은 JWT의 콘텐츠가 변경되지 않았다는 확인만 허용합니다.

서명은 JWT가 발행된 이후로 JWT의 내용이 변경되지 않았음을 확인하는 JWT의 일부입니다(예를 들어, 중간 공격에서 발생하는 경우).

RS256 및 HS256은 JWT 서명에 사용되는 가장 일반적인 알고리즘입니다. 이 기사에서는 RS256과 HS256의 몇 가지 차이점에 대해 설명합니다. 이 게시물에서는 ES256 또는 PS256과 같은 다른 JWT 서명 알고리즘을 다루지 않습니다.

To view more signing algorithms view the specs that lists all the signing algorithms.



JWT 서명이란 무엇입니까?



서명은 헤더의 인코딩된 버전과 JWT의 페이로드를 결합하여 생성되며 헤더에 정의된 알고리즘에 매개변수로 시크릿과 암호를 전달합니다.

다음은 JWT 서명을 만드는 데 사용할 수 있는 예제 코드입니다.

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)


다음은 서명된 JWT의 출력 예입니다.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c


각 섹션(헤더, 페이로드 및 서명)은 마침표(.)로 구분됩니다.

다음 그림은 jwt.io을 통해 디코딩된 JWT의 서명 부분을 강조 표시합니다.



JWT는 일반적으로 HS256(SHA256을 사용하는 HMAC) 및 RS256(SHA256을 사용하는 RSA)의 두 가지 알고리즘 중 하나를 사용하여 서명됩니다.

그러면 다음과 같은 질문이 남습니다.

RS256과 HS256 서명 알고리즘의 차이점은 무엇입니까?

Read more...

좋은 웹페이지 즐겨찾기