SSH 키를 사용하여 알 수 없거나 손상된 서버에 로그인하는 것이 위험하지 않습니까?


9

공개 SSH 키인 id_rsa.pub를 누군가에게 제공하면 손상된 서버에 키를 설치하고 로그인하라는 메시지가 표시됩니다.

로그인 프로세스에 개인 키를 손상된 서버로 보내는 것이 포함됩니까?

그렇다면 공격자는 이제 내 개인 SSH 키에 액세스 할 수 있으며 무섭습니다.

그렇지 않다면 왜 ssh -vvv 출력에 다음 줄이 표시됩니까?

debug1: Server accepts key: pkalg ssh-rsa blen 277

이는 개인 키가 서버로 전송되었으며이를 수락했음을 의미합니다.

문제를 오해하고 있습니까?

답변:


7

아니요 , 개인 키는 "보내지"거나 전송되지 않습니다.

공개 키 암호화 는 기존의 사용자 이름 / 암호 인증과 다릅니다.

  • 귀하의 공개 키는 단지이다 - 공공. 공유하는 것이 안전합니다. 공개 키를 다른 사람에게 보내면 사용자의 신원 이 공개 될 수 있지만 (다른 사람이 자신 의 고유 번호이기 때문에 본인의 정보임을 알 수 있음) 다른 사람이 사용자를 가장하거나 귀하를 인증 할 수는 없습니다. 공개 키를 수퍼 유저 또는 웹 페이지에 일반 HTTP를 통해 게시 할 수도 있습니다. 누군가가 개인 키를 가지고 있지 않으면 완벽하게 안전하고 쓸모가 없습니다.

  • 귀하의 개인 키 는 그저 비밀입니다. 그것은 오직 당신이 소유하고 신뢰하는 시스템에만 존재하며, 누군가가 시스템에 저장된 시스템에 물리적으로 접근 할 수 있도록 최대한의 안전을 위해 항상 잠금 해제 암호로 암호화되어야합니다. 개인 키는 공개 키 암호화 규칙에 따라 올바르게 구현 된 보안 프로그램에 의해 전송되지 않습니다. 즉, 로컬 시스템에 손상되어 개인 키를 읽을 수있는 프로그램이없고 (개인 키는 암호로 암호화되지 않은) 개인 키는 항상 안전합니다.

메시지는 원격 서버로 전송되기 전에 컴퓨터 에서 개인 키로 서명 됩니다 . 따라서 개인 키를 원격 서버로 보내지 않고 개인 키로 암호화 된 메시지 보냅니다 . 그러나이 두 가지는 동일하지 않습니다 . 서명 된 메시지에서 개인 키를 파생 시킬 수 없습니다 . 이는 공개 키 암호화의 일부입니다.

즉, 적대적 공격자가 사용자의 공개 키를 획득하더라도 개인 키로 서명을 얻 메시지를, 그들은 여전히 실제 개인 키를 획득 할 수 없습니다, 따라서 그들은 자격 증명을 가장하거나 "인증하기 위해 개인 키를 사용할 수 없습니다 당신".


공개 키 crypo 프로세스를 이해했지만에 의해 생성 된 디버그 메시지로 인해 혼란 스러웠습니다 ssh. @ pjc50의 답변은 내가 찾고있는 보증을 제공하는 것 같습니다.
Gurjeet Singh

11

프로세스를 오해하고 있습니다.

키는 전송되지 않으며 공개 키로 일치하는 개인 키로 만 해독 할 수있는 것을 암호화하여 "도전"을 구성합니다.

암호를 묻는 메시지가 표시되거나 손상된 서버로 X를 전달하면 잠재적 인 보안 위험이 있습니다.


감사. ssh는이 메시지도 debug1: Offering RSA public key: <$HOME>/.ssh/id_rsa출력하므로 id_rsa.pub가 이미 공유되어 있어도 개인 키가 공유되고 있다고 생각할 수 있습니다.
Gurjeet Singh

공개 키는 공개입니다. 당신은 누구에게나 줄 수 있습니다. 이를 통해 메시지를 암호화 할 수 있습니다. 개인 키는 메시지를 해독 할 수있게 해줍니다. 개인 키를 자신에게 보관하는 한 괜찮습니다.
Pete
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.