SSH에서 사용되는 세션 키에 대한 질문

SSH에서 사용되는 세션 키에 대한 질문

SSH 핸드셰이크 프로세스에서 설명됨http://www.cathaycenturies.com/blog/?p=1635

키 교환

  1. 클라이언트에는 공개 키와 개인 키 쌍이 있습니다. 서버에는 공개 키와 개인 키 쌍이 있습니다.
  2. 클라이언트와 서버는 공개 키를 교환합니다.
  3. 이제 클라이언트는 서버의 공개 키뿐만 아니라 자체 키 쌍을 갖게 됩니다.
  4. 이제 서버에는 클라이언트의 공개 키뿐만 아니라 자체 키 쌍도 있습니다.
  5. 이 키 교환은 보안되지 않은 네트워크를 통해 수행됩니다.
  6. 클라이언트는 개인 키와 서버의 공개 키를 가져와 수학 방정식을 통해 전달하여 공유 비밀(세션 키)을 생성합니다.
  7. 서버는 개인 키와 클라이언트의 공개 키를 가져와 수학 방정식을 통해 전달하여 공유 비밀(세션 키)을 생성합니다. 두 사람이 공유하는 비밀은 똑같습니다! 이는 비대칭 키입니다.
  8. 이 암호화된 터널은 다음 단계인 사용자 인증을 포함하여 나머지 세션에 사용됩니다.

항목 6과 7에서는 클라이언트가 개인 키와 서버의 공개 키를 가져와 수학 방정식을 통해 전달하여 공유 비밀(세션 키)을 생성하고, 서버는 개인 키와 클라이언트의 공개 키를 가져와 이를 생성에 전달한다고 말합니다. 공유 비밀 비밀(세션 키)에 대한 수학 방정식입니다.

  1. 그들은 서버와 클라이언트가 공유 비밀, 즉 세션 키를 생성하며 두 공유 비밀이 동일하다고 말합니다. 이는 서버와 클라이언트가 동일한 세션에서 동일한 세션 키를 생성한다는 것을 의미합니까? 그렇다면 왜 "이것은 비대칭 키입니다"라고 표시됩니까?

    "이것은 비대칭 키입니다"는 서버와 클라이언트에서 생성된 세션 키가 동일하지 않다는 것을 의미합니까?

  2. 항목 6과 7은 클라이언트나 서버에서 세션 키를 생성하는 알고리즘에 대한 입력이 자신의 개인 키이고 상대방의 공개 키라는 것을 의미합니까?

    그렇다면 서버와 클라이언트의 입력이 다르기 때문에 세션 키가 어떻게 동일할 수 있습니까?

    세션 키는 세션마다 어떻게 다릅니까? 세션별 ​​입력이 있나요?

Jakuje의 답변을 읽었습니다.https://unix.stackexchange.com/a/290027/674, 하지만 여전히 위 질문에 어떻게 답해야 할지 잘 모르겠습니다.

감사해요.

답변1

  1. 이는 서버와 클라이언트가 동일한 세션에서 동일한 세션 키를 생성한다는 의미입니까?

네, 사진을 보면 알 수 있어요그림최근 질문에.

그렇다면 왜 "이것은 비대칭 키입니다"라고 표시됩니까?

전혀 모른다. 이 글의 작성자에게 물어보시는 것이 좋을 것 같습니다. 비대칭 암호화는 공유 비밀을 생성하는 데 사용되지만 이 설명이 무엇을 의미하는지 모르겠습니다.

"이것은 비대칭 키입니다"는 서버와 클라이언트에서 생성된 세션 키가 동일하지 않다는 것을 의미합니까?

당연히 아니지. 공유 비밀은 동일합니다(공유라고 함).

  1. 항목 6과 7은 클라이언트나 서버에서 세션 키를 생성하는 알고리즘에 대한 입력이 자신의 개인 키이고 다른 하나는 상대방의 공개 키라는 것을 의미합니까?

그렇다면 서버와 클라이언트의 입력이 다르기 때문에 세션 키가 어떻게 동일할 수 있습니까?

앞서 언급한 '수학적 방정식'의 핵심은 바로 이것이다. 색상만으로는 설명하기 부족할 경우 숫자를 사용하여 설명할 수도 있습니다.위키피디아:

  1. Alice와 Bob은 모듈로 p = 23과 베이스 g = 5(기본 루트 모듈로 23)를 사용하는 데 동의합니다.
  2. Alice는 비밀 정수 a = 6을 선택하여 Bob에게 보냅니다. A = ga mod p
    • A = 5 6 모듈로 23 = 8
  3. Bob은 비밀 정수 b = 15를 선택하여 이를 Alice B = gb mod p에게 보냅니다.
    • B = 5 15 모듈로 23 = 19
  4. 앨리스는 s = B a mod p를 계산합니다.
    • s = 19 6 모듈로 23 = 2
  5. Bob은 s = A b mod p를 계산합니다.
    • s = 8 15 모듈로 23 = 2
  6. 이제 Alice와 Bob은 비밀을 공유합니다(2번).

이에 대한 수학은 "정수 mod p의 곱셈 그룹"이지만 RSA 또는 타원 곡선 암호화 뒤에는 유사한 메커니즘이 있습니다.

세션 키는 세션마다 어떻게 다릅니까? 세션별 ​​입력이 있나요?

클라이언트와 서버에서 본질적으로 무작위 비대칭 키 쌍을 생성하는 다양한 키 교환을 통해 다양한 세션 키가 생성됩니다. 동일한 무작위 데이터를 두 번 생성하는 일은 절대로 발생해서는 안 됩니다. 그렇지 않으면 무작위가 아닙니다. 클라이언트와 서버 모두에서 이 작업을 수행하면 서버와 클라이언트가 동일한 데이터를 생성하도록 강제하는 것이 거의 불가능하므로 단일 실패 지점(손상된 무작위 생성기)을 제거합니다.

키 교환에 대한 입력도 알고리즘마다 다르지만 기본적으로 무작위로 선택된 모듈러스(위 예에서는 숫자 23)입니다. 이는 서로 다른 세션에 대해 서로 다른 공유 키를 얻을 수 있도록 보장하는 키 교환의 세 가지 무작위 입력 부분입니다.

관련 정보