기본(내 경우에만) SSH 키의 비밀번호를 매일 사용하는 컴퓨터의 사용자 로그인 비밀번호와 동일하게 사용하는 것이 안전합니까? 내가 이 컴퓨터의 유일한 사용자라고 가정해 보겠습니다. 잠재적인 보안 위험은 무엇입니까?
답변1
일반적으로 말해서, 동일한 도메인 내에서(예: 동일한 그룹에서 관리하는 컴퓨터나 서비스 간에) 동일한 비밀번호를 사용하지 않는 한 비밀번호를 재사용하는 것은 좋지 않으며 컴퓨터/서비스 중 하나에 액세스할 수 있는 사람이 일반적으로 모두 액세스할 수 있습니다.
머신 A의 계정 비밀번호는 머신 A에서 사용되며 머신 A에 대한 액세스를 제어합니다. 머신 A의 SSH 개인 키에 대한 비밀번호는 머신 A에서 사용되며 다른 머신에 대한 액세스를 제어합니다. 두 시스템 모두에서 동일한 비밀번호를 사용하고 해당 비밀번호가 손상되면 시스템 A와 다른 시스템의 보안이 손상됩니다. 따라서 비밀번호를 공유하는 것은 보안에 해롭습니다.
머신 A의 계정 비밀번호는 머신 A에서 사용되며 머신 A에 대한 액세스를 제어합니다. 머신 B의 SSH 개인 키에 대한 비밀번호는 머신 B에서 사용되며 머신 A에 대한 액세스를 제어합니다. 두 대의 컴퓨터에서 동일한 비밀번호를 사용하면 A 또는 B에서 유출될 수 있습니다. 따라서 비밀번호를 공유하는 것은 보안에 해롭습니다.
백업을 통해서도 비밀번호가 유출될 수 있습니다. 예를 들어, 홈 디렉터리의 백업이 손상된 경우(또는 실수로 Github에 개인 키 파일을 업로드한 경우(첫 번째는 아닐 것임)) 공격자가 해당 키 파일에 액세스할 수 있습니다.OpenSSH 개인 키 파일 형식은 비밀번호 무차별 공격에 취약합니다.. OpenSSH 6.5부터는 새로운 형식이 있습니다 ssh-keygen -o
.느린 해싱의 올바른 사용, 그러나 OpenSSH 7.7부터는 기본적으로 사용되지 않습니다. 따라서 공격자가 키 파일에 액세스할 경우 비밀번호를 알아내 심각한 위험에 처하게 되어 키를 사용하고 키 없이 로그인할 수 있게 됩니다. 느린 해시를 사용하더라도 비밀번호가 너무 약하면 키 파일을 가진 공격자가 오프라인으로 비밀번호를 해독할 수 있습니다(즉, 사용하려는 전력량에 따라서만 제한됩니다).
이러한 이유로 SSH 키와 사용자 계정에 동일한 비밀번호를 사용하면 안 됩니다. 키 파일을 보호하고 싶지만 별도의 비밀번호를 기억하고 싶지 않은 경우에는 기억하기 쉽지 않은 비밀번호를 사용하시는 것이 좋으며,키체인에 보관하세요(이것그놈 열쇠고리느린 해싱을 사용합니다). ²
1Github 에서는 이제 주요 파일을 직접 업로드할 수 없게 된 것 같습니다.
²그리고 키링의 백업을 유출하지 않도록 주의하십시오. 그러나 사람들은 구성 파일(예: 및 ) 이 포함된 디렉터리를 백업하는 경향이 있으므로 이는 실제로 SSH보다 문제가 적습니다 ..ssh
config
authorized_keys
답변2
이 질문에 대한 대답은 실제로 컴퓨팅 환경에 따라 다릅니다. 이 질문을 소비자(가정) 사용자로 하시나요, 아니면 비즈니스 사용자(직장)로 하시나요? 후자의 목소리로 질문하는 경우 먼저 시스템 관리자 및/또는 회사의 내부 보안 정책에 문의하는 것이 좋습니다. 전반적으로 IA 실무자의 관점에서 볼 때 대답은 항상 '아니오'입니다. 비밀번호 관리자를 사용하고 veracrypt와 같은 앱을 사용하여 마스터 목록을 암호화하는 것이 좋습니다.
답변3
일반적으로 비밀번호를 재사용하는 것은 좋지 않고 안전하지 않은 생각입니다.
SSH 키의 목적을 고려하고 동일한 비밀번호 사용의 위험성과 단순성을 평가해야 합니다. 민감한 정보를 암호화하는 데 사용하시나요? 원격 테스트 서버에 접속하시겠습니까? 프로덕션 서버? 그것은 당신만이 평가할 수 있는 것입니다.
별도의 비밀번호를 갖는다는 것은 구현을 의미합니다.심층적인 방어: 누군가가 귀하의 비밀번호를 찾아 컴퓨터에 액세스하더라도 여전히 SSH 키를 사용할 수 없습니다.
답변4
우리 모두 알고 있듯이, 서로 다른 목적에 따라 서로 다른 비밀번호를 사용해야 합니다. 그러나 이 경우에는 위험이 낮다고 말하고 싶습니다. 최소한 워크스테이션에서 비밀번호를 통한 SSH 로그인이 비활성화되어 있으면 원격 공격자가 비밀번호를 알아도 아무런 이점이 없습니다.
이미 귀하의 비밀번호를 알고 있는 로컬 침입자가 있는 경우, 귀하가 다시 입력할 때 귀하의 비밀번호를 알아내기 위해 귀하를 감시할 무언가를 쉽게 설정할 수 있습니다. 어쨌든 많은 사용자가 ssh-agent
이를 실행하고 있으므로 침입자가 비밀번호를 전혀 요구하지 않고도 이를 사용할 수 있습니다. 따라서 다른 비밀번호는 여기서는 큰 도움이 되지 않지만 자녀, 시어머니 등과 같은 "알려진 비전문가" 공격자로부터 사용자를 보호할 수 있습니다.
더 흥미로운 시나리오는 원격 공격자(바이러스)가 비밀번호를 모르고 사용자 계정에서 코드를 실행하는 경우입니다. 그 사람이 당신의 비밀번호를 엿보는 것이 더 쉬운 것 같습니다. 하지만 이미 시스템에 액세스한 경우 시스템 비밀번호를 얻는 것이 여전히 중요합니까? 우분투처럼 기본적으로 sudo가 설정된 경우에는 sudo를 사용할 수도 있습니다.
또 다른 시나리오는 공격자가 파일 /etc/shadow
및/또는 암호화된 SSH 키(예: 백업 서버 침입)에만 액세스할 수 있는 경우입니다. 이론상으로 키 또는 섀도우 파일은 비밀번호를 추측하는 무차별 대입 공격에 비해 보안 수준이 낮을 수 있습니다. 이는 공격자 입장에서는 장점이기는 하지만, 장점이 낮다고 생각합니다.