2017-02-08 1 views
0

JWT가 내가 검토중인 코드베이스에서 어떻게 구현되는지 이해하려고합니다. 나는 그것은 서버의 공개 키와 자신의 개인 키 (I 서버가 개인 해당 가지고 가정을 가지고 ...이 코드베이스에서, 클라이언트는 개인 및 공개 키를 가지고 보인다비대칭 암호화 및 JWT

그러나 thisthis 읽기 키). 왜 이것이 필요한가? 클라이언트는 공개 키만 필요하고 서버는 개인 키만 필요합니까? 클라이언트가 메시지를 암호화하는 경우 공개 키를 사용하여 메시지를 암호화 할 수 없으며 서버는이를 해독하기 위해 개인 키가 필요합니까? 반대로 공개 키를 사용하여 서버에서 암호화 된 메시지를 해독 할 수 있습니까? 클라이언트가 공개 키와 비공개 키 두 세트를 필요로하는 이유는 무엇입니까? 읽기에서

:

(예 : 전자 메일 프로그램으로) 소프트웨어를 서명, 디지털 서명을 생성하려면 전자 데이터의 단방향 해시 서명 할 만듭니다. 그런 다음 사용자의 개인 키를 사용하여 해시를 암호화하고 해시 된 데이터에 고유 한 값을 반환합니다. 암호화 된 해시는 해싱 알고리즘과 같은 다른 정보와 함께 디지털 서명을 형성합니다. 데이터가 변경되면 단일 비트까지도 다른 해시 값이됩니다. 이 속성은 서명자의 공개 키를 사용하여 해시를 해독하여 다른 사람들이 데이터 무결성을 검증 할 수있게합니다. 해독 된 해시가 동일한 데이터의 두 번째 계산 된 해시와 일치하면 서명 된 이후 데이터가 변경되지 않았 음을 증명합니다.

  1. 해시 된 데이터와 암호화 된 데이터 사이의 differnce는 무엇인가? 왜 먼저 해시해야합니까? 해시 된 데이터가 암호화되어 있습니까?

  2. 여기서 secondon 계산 된 해시는 어디에서 왔습니까? 디 크립 터가 암호화 된 데이터에 공개 키를 적용하려고 시도하는 경우 어떻게 성공 했는가? 그것과 무엇을 비교합니까? 비교 해시는 어디에서 왔습니까?

+0

좋은 질문입니다. 실제로는 12 가지 질문이 있습니다. StackOverflow의 경우 너무 넓음 IMO –

+0

:(제발? 길어 보이는 대답을 받아 들일 것입니까?) – Jwan622

+0

일반적으로 StackOverflow와 같은 곳에서 광범위한 질문을 할 수없는 이유는 무엇입니까? 궁극적으로 정보의 장소가 될 것입니까? – Jwan622

답변

2

JWT는 발신자의 개인 키로 서명 (암호화되지 않음)되어 있습니다. jWT 컨텐츠는 선택적으로 JWE를 사용하여 암호화 할 수 있습니다.

대칭 키는 서명하고 확인하는 데 사용됩니다. 비대칭 키 쌍을 사용하면 메시지가 개인 키로 서명되고 공개 키로 확인됩니다.

디지털 서명은 변경으로부터 메시지를 보호하고 보낸 사람을 식별합니다. 비대칭 키는 수신자가 개인 키를 손상시키지 않고 발신자의 공개 키를 사용하여 서명을 확인할 수있게합니다.

JWT 서명은 용도에 따라 클라이언트 또는 서버 측에서 모두 사용할 수 있습니다. 제시 한 후 최종 사용자에게 문제 토큰 : 서버 등록시 업로드 공개 키로

  • 서버 측을 서명의 유효성을 검사 API 요청, 예를 들어, 인증에

    • 클라이언트 측 흐름 자격증 명

    내부적으로 디지털 서명에는 여러 가지 암호화 작업이 포함되어 있으며, encr 해시를 재확인하고 알고리즘 식별자를 추가하십시오.그러나 모든 프로그래밍 언어에서 지원하므로 걱정할 필요가 없습니다.

    나는 특정 질문에 답하는 대신 일반적인 방법으로 JWT & 디지털 서명을 설명하려고했습니다. 나는 아마 약간을 남겨 줬다. 의견을 말하십시오

  • +0

    송신자와 수신자는 개인 키와 공개 키의 두 세트를 가질 수 있습니까? 검토중인 현재 코드에서 클라이언트는 공개 키와 별도의 개인 키를 가지고 있습니다. 서버에 상응하는 공용 키와 개인 키가 있다고 가정하십시오. 두 세트의 키가 있습니다. – Jwan622

    +0

    해당 코드의 링크를 게시하거나 그 범용 목적을 설명해 주시겠습니까? – pedrofb

    +0

    코드를 보지 않고 목적이 무엇인지 알 수 있습니까? 하지만 클라이언트와 서버가 비대칭 키 쌍을 가지고 있으면 디지털 서명을 통해 상호 인증을 원할 수 있습니다 .RSA 키는 대칭 암호화 키를 교환하는 데에도 사용되지만,이 키에는 단지 한 당사자의 공개 키가 필요합니다. – pedrofb

    관련 문제