업무용 SSH 공개 키를 제공하는 것이 안전한가요?

업무용 SSH 공개 키를 제공하는 것이 안전한가요?

저는 현재 유지 관리 및 업그레이드를 위해 정기적으로 서버에 액세스해야 하는 여러 조직에서 원격으로 근무하고 있습니다. .ssh/authorized_keys비밀번호를 찾을 필요 없이 더 빠르게 로그인할 수 있도록 RSA 공개 SSH 키를 파일에 추가하는 것이 안전합니까? 내 가정은 공개 키에서 개인 키를 생성하는 것이 불가능하다는 것인데, 내 가정이 맞습니까?

한 단계 더 나아가 내 RSA 공개 키의 내용을 인터넷에 게시하면 보안 위험이 있습니까? 내 개인 키를 알아내면 큰 어려움을 겪을 것이라는 것은 알지만, 그 외에 실제 보안 위협이 있을 수 있습니까?

답변1

예, 공개 키에서 개인 키를 복구하는 것은 불가능합니다. 가능하다면 RSA는 근본적으로 깨질 것이고 이는 큰 뉴스가 될 것입니다(RSA를 깨는 것은 많은 인터넷 통신 보안을 깨뜨릴 뿐만 아니라 모든 종류의 은행 사기 등을 허용하게 됩니다).

실제로 로그인 시 비밀번호 대신 공개 키를 사용하면 보안이 향상되는 경우가 많습니다. 비밀번호가 충분히 강력하지 않으면 대역폭이 충분한 공격자가 무차별 대입 공격을 가할 수 있습니다. 공격자가 개인 키 파일의 복사본을 갖고 있지 않은 경우 RSA 키를 무차별 대입 공격하는 것은 사실상 불가능합니다(1024비트 키는 대소문자를 구분하는 임의의 문자와 숫자로 구성된 160자의 비밀번호와 동일합니다). 귀하를 염탐하는 누군가가 귀하의 비밀번호와 키 비밀번호를 볼 수 있지만, 키가 있는 경우 그 사람도 키를 얻어야 합니다.

개인 키가 항상 비밀번호보다 안전한 것은 아닙니다. 공격자가 개인 키 파일의 복사본을 얻은 경우(예: 노트북이나 백업 미디어를 훔치는 등) 비밀번호를 무차별 대입 공격할 수 있으며 속도 제한이 필요하지 않기 때문에 빠른 속도로 이 작업을 수행할 수 있습니다. 온라인 비밀번호 추측은 다릅니다). 비밀번호가 충분하고 도난 사실을 즉시 알아차린 경우에는 아직 키를 취소할 시간이 있습니다.

공개 키는 개인 정보 노출 요소를 도입합니다. A와 B에 로그인하는 데 동일한 공개 키를 사용했다는 사실을 누군가가 알면 A와 B에 로그인한 사람이 동일하다는 것을 알게 됩니다. 단순히 공개 키를 가지고 있다는 것은 자신이 개인 키도 가지고 있다고 의심한다는 의미이므로 어느 정도 익명성을 잃게 됩니다. 그러나 이는 일반적으로 사소한 문제입니다. 특히 ~/.ssh로그인한 IP 주소를 알고 있는 시스템 관리자만 볼 수 있는 곳에 키를 저장하는 경우에는 더욱 그렇습니다.

이러한 보안 고려 사항 외에도 개인 키에는 많은 실질적인 이점이 있습니다. 특히 ssh-agent 등에 키를 입력하면 메시지를 표시하지 않는 자동화된 스크립트를 실행할 수 있는 경우 비밀번호를 자주 입력할 필요가 없습니다. 비밀번호를 자주 입력할 필요가 없으므로 비밀번호를 더 높은 엔트로피로 설정할 수 있습니다(길고 입력하기 어렵습니다). 비밀번호를 자주 입력할 필요가 없으므로 관찰자나 카메라에 비밀번호가 노출될 위험이 적습니다.

답변2

자일스의답변빼고는 전반적으로 괜찮습니다

...특히 ~/.ssh에 키를 저장한 경우 시스템 관리자(로그인한 IP 주소도 알고 있음)만 이를 볼 수 있습니다.

입력한 SSH 키~/.ssh 자신의 계정으로 실행되는 모든 소프트웨어에서도 읽을 수 있습니다. 이것은 아마도최대실행 중인 소프트웨어의 따라서 소프트웨어와 이를 작성한 사람을 신뢰해야 합니다.

관련 정보