SSH 공개 키 무결성

SSH 공개 키 무결성

비대칭 공개 키 암호화에 대해 (제한적이긴 하지만) 제가 이해한 바는 공개 키는 모든 사람과 공유되도록 설계되었으며 개인 키는 비공개로 유지된다는 것입니다.

내 로컬 컴퓨터의 공개 키를 원격 웹 서버에 저장하고 내가 이 서버로 보내는 암호화된 정보(내 개인 키로)를 내 공개 키를 소유한 다른 당사자가 가로채는 경우를 가정해 보겠습니다. 이는 그들이 내 암호화된 정보를 해독할 수도 있다는 뜻이 아닙니까?

그렇다면 이는 공개 키를 한 당사자(이 경우 서버)와만 공유해야 한다는 의미입니까? 이는 공개 키의 용도에 대한 이해에 어긋나는 것입니까? 내 로컬 컴퓨터에서 다양한 애플리케이션에 대해 서로 다른 키 쌍을 가질 수 있습니까?

답변1

개인 키로 암호화된 서버에는 정보를 보내지 않습니다. 서버와의 보안 연결을 열면 서버의 소프트웨어가 새로운 대칭 암호화 키를 생성하고 이를 공개 키로 암호화하여 사용자에게 보냅니다. 그런 다음 개인 키로 암호를 해독하고 서버로 보내는 데이터에 해당 대칭 암호화 키를 사용합니다. 보안 측면과는 별개로 공개/개인 키 암호화는 모든 데이터 전송에 사용하기에는 CPU를 너무 많이 사용합니다. 일반적으로 다른 암호화 키를 암호화하거나 디지털 서명에만 사용됩니다.

답변2

세 가지가 있습니다매우공개 키 시스템으로 할 수 있는 다양한 작업:

  1. 개인 데이터 보내기: 이를 위해 공개 키를 사용하지 않고 원하는 대상의 공개 키를 사용합니다. 따라서 데이터는 개인 키를 통해서만 해독될 수 있습니다.

  2. 공개 데이터에 서명: 개인 키로 무언가를 암호화하면 공개 키를 가진 누구든지 이를 해독하고 읽을 수 있습니다.알다 당신이 쓴 것이고, 수정되지 않았다는 것입니다. 실제로 전체 메시지는 암호화되지 않으며 서명으로 사용되는 체크섬만 암호화됩니다.

  3. 비공개 채널 설정: 이는 더 복잡하며 가장 일반적인 방법은Diffie-Hellman 키 교환 프로토콜. 이 짧은 교환을 통해 두 당사자는 공통 비밀을 생성할 수 있으며 누군가가 통신을 가로채더라도 개인 키 중 하나가 없으면 공유 비밀을 얻을 수 없습니다. 그런 다음 공유 비밀을 사용하여 나머지 통신을 암호화합니다.

처음 두 가지 사례에 대한 설명을 읽어보셨을 것 같지만 귀하의 질문(그리고마이크 스캇의 답변) 3번째 정도였던 것 같습니다.

답변3

공개 키를 사용하면 암호화하여 해독할 개인 키 소유자에게 보낼 수 있지만 공개 키로는 해독할 수 없습니다.

한 시스템에 다양한 키 쌍이 있을 수 있습니다.

답변4

SSH가 공개 키를 사용하는 유일한 용도는 해당 개인 키 소유자의 신원을 확인하는 것입니다. SSH 공개 키로 할 수 있는 유일한 생각은 협력하는 인증 에이전트가 해당 개인 키를 보유하고 있는지 여부를 결정하는 것입니다.

관련 정보