SSH Key Exchange는 비밀번호 인증보다 안전합니까?


9

원격 사용자는 SSH를 사용하여 인터넷을 통해 본사의 여러 서비스에 연결합니다. SSH 비밀번호는 LAN A / D 계정과 동기화됩니다.

CD 나 종이를 사용하여 사용자가 SSH 키 사본을 집으로 가져 오도록하는 것이 사용자가 비밀번호를 입력하는 것보다 더 안전합니까? 아니면 둘 다 필요합니까?

내 질문은 아마도 다음과 같이 재구성 될 수 있습니다 : SSH의 비밀번호 인증 프로토콜에 취약점이 있습니까?

이 메시지가 나를 의심하게 만듭니다.

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:.
Are you sure you want to continue connecting (yes/no)?

답변:


22

보고있는 메시지는 별도의 문제입니다. 연결하려는 호스트가 실제로 예상되는 호스트인지 확인하라는 메시지가 표시됩니다. 서버에서을 실행하여 지문을 얻을 수 있습니다 ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub. 그런 다음 처음으로 원격으로 연결할 때 지문이 일치하는지 확인할 수 있습니다.

여기에서 실제로 볼 수있는 호스트 키 는 중간 공격 에서 사람 의 문제를 해결합니다. 아마도 DNS가 전복되었을 수도 있고 자신의 컴퓨터 대신 경쟁사의 컴퓨터에 연결하고있을 것입니다. 해당 시스템은 자격 증명을 수집하고 연결을 실제 서버에 투명하게 전달하여 사용자 모르게 정보를 훔칩니다. 호스트 키가 일치하는지 확인하면 공격자가 실제로 서버의 공개 키를 도난하지 않는 한이 문제가 발생하지 않습니다.

그래도 문제가 남아 있습니다. 어떤 키가 옳은지 어떻게 알 수 있습니까? 첫 번째 연결 후 공개 키가 ~/.ssh/known_hosts파일에 저장 되므로 후속 연결에 문제가 없습니다. 그러나 처음에는 지문을 얻는 대역 외 방법이 필요하거나 "TOFU"모델, 즉 처음 사용시 신뢰를 따르는 방법이 필요합니다.

그러나이 공격을 통해 키와 암호를 모두 도난 당할 수 있다는 점을 제외하고는 암호와 키와는 아무런 관련이 없습니다. 어떤 의미에서, 그것은 당신이 요구하는 취약점입니다.

암호가 키보다 나쁜 이유는 세 가지가 있습니다.

  1. 그들은 무차별적일 수 있습니다. 일반적으로 사용자가 선택한 8 자 암호에는 약 30 비트의 추측 엔트로피가 있습니다. ssh 공개 / 개인 키 쌍은 1024 비트 이상입니다. ssh 키를 무차별 공격하는 것은 사실상 불가능하지만 자동 암호 추측은 항상 발생합니다.
  2. 그들은 바보 일 수 있습니다. 사용자는 제한이있는 경우에도 일상적으로 끔찍한 암호를 선택하며 여러 곳에서 더 단단한 암호를 사용하는 경향이 있습니다. 이것은 분명히 공격을 더 쉽게 만듭니다.
  3. 비밀번호를 원격으로 도난 당할 수 있습니다. SSH를 사용하는 경우 비밀번호는 유선으로 암호화되지만 손상된 시스템에서 ssh 서버를 모든 비밀번호를 기록하는 것으로 대체하는 것이 일반적입니다. 키를 사용하면 개인 키가 로컬 시스템에 유지되며 전혀 전송되지 않으므로 실제로 클라이언트 시스템을 손상시키지 않으면 도난 당할 수 없습니다.

또한 ssh 키는 다음과 같은 용도로 편리 성을 제공 ssh-agent합니다. 매번 다시 인증하지 않고도 연결을 번거 로움없이 운영하면서 합리적인 수준의 보안을 유지합니다.

개인 키를 훔치기에 충분한 액세스 권한을 가진 사람이 사용자의 암호를 상당히 쉽게 훔칠 수 있기 때문에 두 가지 모두를 요구할 때 큰 이점은 없습니다. 이보다 더 많은 보안이 필요한 경우 RSA SecurID 또는 WiKID 와 같은 2 단계 인증 시스템을 고려하십시오 .


좋은 대답입니다. 정확히 내가 찾던 것. 감사!
srmark

번호 3 관련) 이미 타협 된 서버에 로그인하는 경우 ... 누군가 비밀번호를 원하는 이유는 무엇입니까? 내가 생각할 수있는 유일한 이유는 모든 곳에서 동일한 암호를 사용하는 것입니다.
Sirex

사이 렉스-맞다; 그들은 당신의 암호를 훔쳐 다른 시스템에서 사용합니다. 이 질문에서 암호는 "LAN A / D"로 사용됩니다. 따라서 ssh 로그인 서버에서 비밀번호를 훔친 다음 Windows 서버에도 액세스 할 수 있습니다. 또한 이제 시스템이 손상 될 때마다 "좋아요, 모두 암호를 다시 변경합니다"발사를 수행해야합니다.
mattdm

또한 2 번에서 언급했듯이 사용자 모든 곳에서 동일한 비밀번호를 사용하고 있습니다. 한숨.
mattdm

성가신 사용자와 다운! :(
Sirex

1

당신이 정말로 요구하는 것은 "외부보다 한 가지 요소가 더 낫다"는 것입니다. 주제는 다단계 인증이며 실제로 그 주제를 살펴 보는 것이 좋습니다.

일반적으로 "인자"는 당신이 알고있는 것 (암호), 가지고있는 것 (ssh 파일 또는 키 슬쩍 카드) 또는 당신이있는 것 (지문)입니다.

하나는 그 자체보다 낫지 않고 무료입니다. 키 파일로 CD를 잃어 버리면 암호 만 있으면됩니다. 안전한 환경을 위해 두 가지 요소 인증이 일반적입니다.


네, 당신이 무슨 말을하는지 이해합니다. 그러나이 경우 중간에 man과 같은 것을 사용하여 비밀번호 인증을 해킹 할 수 있는지 확인하려고합니다.
srmark

특정 예제로 ssh의 경우 아니요, 암호 제공 섹션도 암호화되어 있으며 세션 중에 키가 변경됩니다 (내가 믿는 30 초). 그러나 암호와 암호를 반영한 ​​것은 아닙니다
Sirex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.