SSH 비밀번호 인증이 보안 위험 인 이유는 무엇입니까? 기반 인증을 위해 암호

OpenSSH 구성에 대한 대부분의 안내서는 키 기반 인증을 위해 암호 인증을 비활성화하는 것이 좋습니다. 그러나 필자의 의견으로는 암호 인증은 중요한 이점이 있습니다. 키없이 절대 어디에서나 연결할 수 있다는 것입니다. 항상 강력한 암호를 사용하면 보안 위험이 없어야합니다. 아니면해야합니까?



답변

암호 또는 키 기반 인증에 대한 장단점이 있습니다.

예를 들어, 키 기반 인증은 암호 인증보다 안전합니다. 다른 경우에는 보안 기반이 덜 안전합니다. 어떤 경우에는 더 편리하고 다른 경우에는 덜 편리합니다.

키 기반 인증을 수행 할 때 암호로 키를 보호 해야합니다 . ssh-agent가 실행 중이 아니면 (ssh-agent가 매번 암호문을 입력하지 않아도 됨) 편의상 아무것도 얻지 못했습니다. 보안은 논란의 여지가 있습니다. 이제 공격 경로가 서버에서 귀하 또는 귀하의 계정 또는 개인 컴퓨터로 옮겨졌습니다. (…)-침입하기 쉬울 수도 있고 아닐 수도 있습니다.

이것을 결정할 때 상자 밖에서 생각하십시오. 보안 측면에서 얻었는지 느슨하게하는지 여부는 나머지 환경 및 기타 조치에 따라 다릅니다.

편집 : 아, 방금 당신이 홈 서버에 대해 이야기하는 것을 보았습니다. 나는 항상 “비밀번호”또는 “키가있는 USB 스틱”과 같은 상황에 있었습니까? 나는 전자로 갔지만 SSH 수신 포트를 22가 아닌 다른 포트로 변경했습니다. 그러면 모든 네트워크 범위를 강제하는 모든 불쾌한 스크립트 키디가 무차별 적으로 중지됩니다.


답변

ssh 키를 사용하면 비밀번호 로그인에 비해 고유 한 기능이 하나 있습니다. 허용 된 명령을 지정할 수 있습니다. ~/.ssh/authorized_keys서버에서 파일을 수정하여 수행 할 수 있습니다 .

예를 들어

command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

특정 키와 함께`/usr/local/bin/your_backup_script.sh ‘명령 만 허용합니다.

키에 허용되는 호스트를 지정할 수도 있습니다.

from="yourclient,yourotherclient", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

또는 두 가지를 결합하십시오.

from="yourbackupserver", command="/usr/local/bin/your_backup_script.sh", ssh-rsa auiosfSAFfAFDFJL1234214DFAfDFa...

키를 사용하면 특정 계정의 암호를 공개하지 않고도 서버에 일부 사용자 (예 : 컨설턴트)에게 임시 액세스 권한을 부여 할 수도 있습니다. 컨설턴트가 작업을 마치면 임시 키를 제거 할 수 있습니다.


답변

네트워크 내에서만 비밀번호 인증을 허용하여 두 가지 이점을 모두 누릴 수 있습니다. 끝에 다음을 추가하십시오 sshd_config.

PasswordAuthentication no
Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

답변

질문에 부분적으로 응답했습니다. 공격자가 연결할 수있는 곳이 많을수록 무차별 공격 (DDoS 고려)을 통해 서버에 침입 할 가능성이 높아집니다.

또한 비밀번호 길이와 키 크기 (보통 수천 비트)를 비교하십시오.


답변

비밀번호로 로그인하면 비밀번호가 서버로 전송됩니다. 이는 서버 운영자가 SSHD를 수정하여 비밀번호에 액세스 할 수 있음을 의미합니다. 공개 키 인증을 사용하면 모든 공개 키만 서버로 이동하므로 개인 키를 얻을 수 없습니다.


답변

ssh 키는 사용자의 암호에 대한 중간 공격을 방지합니다.

키로 로그인을 시도하면 서버는 공개 키를 기반으로 챌린지를 구성하여 클라이언트로 보냅니다. 암호를 해독하고 보낼 적절한 응답을 구성합니다.

개인 키는 서버로 전송되지 않으며 청취하는 사람은 단일 세션을 가로채는 것 외에는 아무것도 할 수 없습니다.

암호를 사용하면 자격 증명이 생깁니다.

내 솔루션은 USB 키의 암호화 된 파티션에 적합한 형식의 휴대용 ssh 키를 사용하는 것입니다.
키를 잃어 버렸을 때 키를 쉽게 넣을 수 있습니다 .
내가 액세스 할 수있는 서버를 제한
하고 여전히 가지고 다닐 수 있습니다

마운트 소프트웨어를 설치하는 데 어려움이 있지만 (truecrypt)


답변

@MartinVejmelka가 말한 것처럼 그것은 절충입니다.

키 기반 인증을 사용하는 이유는 키가 현재 또는 미래의 무차별 강제력 보다 훨씬 높기 때문에 자신의 PC에서 가져 오거나 USB 스틱 또는 이와 유사한 키를 가져야하기 때문입니다.

비밀번호에는 다음과 같은 문제가 있습니다.

  • 짧으면 무차별적일 수 있습니다
  • 그것이 길면 쉽게 잊혀진다
  • 어깨 서핑을 할 수 있습니다

키는 수십배 더 길며 어떤 시점에도 표시되지 않으므로이 세 가지 문제를 피할 수 있습니다.