SSH 공개 키가 클라이언트가 아닌 서버에있는 이유는 무엇입니까?


12

서버에 공개 키를 유지하는 데 대한 이론을 이해하지 못합니다. 공개 / 개인 키의 Lockbox 유추에서 Alice의 상자 를 잠금 해제하기 위해 Alice 는 개인 키를 보유하고 공개 키는 Bob에게 분배됩니다. 서버가 lockbox의 역할을하는 것처럼 보이므로 왜 공개 키를 보유합니까?

답변:


20

서버에는 개인 및 공개 키가 있으며 이는 사용자로 생성 한 키 쌍과 완전히 분리되어 있습니다. 서버의 개인 키는 일반적으로 서버 구성과 함께 저장되며 공개 키는 연결을 시도 할 때 서버에서 전송합니다. 클라이언트는 서버의 공개 키를 known_hosts 파일과 비교합니다. 올바르게 사용하면 MITM 공격이 방지됩니다.

개인 계정의 개인 키가 있습니다. 사용하려는 계정의 개인 키가 인증되었는지 확인할 수 있도록 서버에 공개 키가 필요합니다.

따라서 귀하의 예를 사용하십시오. Bob과 Alice 모두 개인 키와 공개 키가 있습니다. 미리 공유했거나 연결의 일부로 공개 키는 개인 키로 암호화 된 데이터가 올바른지 확인하는 데 사용됩니다. 클라이언트에 공개 키가 없거나 공개 키가 다른 경우 무서운 경고가 표시됩니다. 서버에 클라이언트 공개 키가 없으면 허용되지 않습니다.


1
아하! 훨씬 더 말이됩니다. MITM 공격으로부터 보호 할 방법이 있다는 것을 알았지 만 다른 키 페어가 있는지 몰랐습니다. :) 감사합니다!
코너 광택

5

사용자는 귀하가 로그인 할 때 자신의 정보를 제공하는 사람입니다. 따라서 권한 부여를 위해 서버는 귀하를 가장하는 사람에게 서버가 요청하기 때문에 개인 키가 필요합니다 ( 이름) 그것을 증명합니다.

작동 방식은 서버가 약간의 텍스트를 보내서 공개 키로 암호화하고 해독하도록 요청하는 것입니다. 개인 키를 가진 사람 만이 작업을 수행 할 수 있습니다.


1

편의를 위해 공개 키를 보유합니다. 그렇지 않으면 SSL CA와 비슷한 PKI를 만들어야합니다.

ssh 클라이언트가 원격 서버 키를 수락하도록 요청할 때 공개 키 지문을 확인하는 것이 좋습니다.


1

더 나은 비유는 서버의 공개 키가 열 수있는 래치가있는 열린 잠금 상자이며 서버 만 열 수 있다는 것입니다. 실제 질문은 공개 키를 신뢰할 수 있는지 여부입니다 (실제로 Alice의 상자입니까?). 키 를 얻는 곳은 정의에 따라 공개이며, 그것이 PKI에 관한 것입니다.


1

공개 키는 매우 큰 수이며 개인 키에서 수학적으로 파생됩니다.

두 숫자가 연결되는 방식으로 파생됩니다.

그러나 공개 키만 아는 사람은 개인 키를 찾을 수 없습니다. 공개 키는 다른 사람에게 보내거나, 본인을 인증하거나 암호화 된 메시지를 보내려는 사람입니다. 공개 키는 중요하지 않으므로 보호 할 필요가 없습니다. 공개적으로 전파 될 수 있습니다. babudilli98@gmail.com


1
나는 5 년 전에 이미 제공 한 다른 답변과 비교 하여이 답변에 새로운 것이 없다고 생각합니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.