SSH 키를 복사했는가, 에이전트를 전달했는가? 서로 다른 두 위험
서명은 키 파일이 아니며, 위임된 에이전트는 공개가 아닙니다. 프로토콜의 사실과 엔드포인트 신뢰 문제를 분리한 뒤 대응하십시오.
VPN을 통해 SSH 키를 사용하는 로그인이 개인 키를 네트워크 운영자에게 넘겼다는 뜻은 아니며, 그 안심은 사람들이 듣는 것보다 좁습니다. 공개 키 인증이 보내는 것은 공개 키와 클라이언트가 로컬에서 만드는 서명입니다. 에이전트 전달은 노출이 다른 다른 방식이며, 당신이 통제하지 않는 기계에 사용 가능한 인증 능력을 남길 수 있습니다. 당신이 져야 할 대응은 둘 중 어느 쪽이 실제로 일어났는지에 달려 있습니다.
공개 키 인증이 보내는 것
표준 공개 키 방식에서 클라이언트는 공개 키를 제시하고, 서버는 그 키를 받아들일지 결정하며, 클라이언트는 자신의 파일이나 에이전트에 남아 있는 개인 키로 챌린지에 서명합니다. 네트워크를 건너는 것은 공개 키와 그로부터 생긴 서명입니다. 그 교환 어디에도 서버, 터널, 경로 위의 누군가가 개인 자료를 보관해야 한다는 요구는 없습니다.
인증 명세가 그 증명을 정의하며, 개인 키는 요청의 필드가 아닙니다.
이것은 프로토콜에 대한 진술이지, 관련된 모든 엔드포인트의 인격 보증이 아닙니다. 호스트 신원 확인은 여전히 온전해야 합니다. 자신이 누구인지 증명할 수 없는 서버는 당신이 의도하지 않은 목적을 위해 서명을 모으고 있을 수 있기 때문입니다. 임대한 VM, 물려받은 배스천, 낯선 확장 기능을 실행하는 노트북은 세 가지 별개의 신뢰 질문입니다. 그것들을 진정으로 해결된 암호학적 질문과 분리해 두십시오.
에이전트 전달이 위임하는 것
에이전트 전달은 원격 호스트에서 당신의 기계에 있는 에이전트로 돌아오는 채널을 열어, 그 호스트의 프로세스가 개인 키를 전혀 보유하지 않고도 에이전트에 서명을 요청할 수 있게 합니다. 키는 있던 자리에 남고, 능력은 남지 않습니다. 원격 호스트에서 그 전달된 소켓에 닿을 수 있는 것은 무엇이든, 세션이 사는 동안, 로드된 신원 중 하나로서 인증 작업을 요청할 수 있습니다. 이것이 위임된 권한이며, 전달이 공개 키를 넘기는 것보다 좁은 정책을 받을 자격이 있는 이유입니다.
복사된 키 파일은 유출입니다. 전달된 에이전트는 허가이며, 둘은 서로 다른 대응을 필요로 합니다.
이름 붙인 필요와 이름 붙인 호스트에 대해서만 전달을 켜고, 구성이 말하는 것처럼 보이는 것이 아니라 클라이언트가 실제로 무엇을 하는지 확인하십시오. 유효한 설정이 중요합니다. 호스트 블록은 전역 기본값을 조용히 덮어쓰기 때문입니다. 같은 논리가 서버 쪽에도 적용되며, 배포가 결코 필요로 하지 않으면 전달을 완전히 거부할 수 있습니다.
대응을 고르기 전에 증거를 읽으십시오
개인 키 파일이나 동등한 서명 신원이 노출되었다고 판단되면, 대응은 조직의 절차를 통한 교체와 폐기, 그리고 그것을 신뢰했던 모든 서비스에서 수용을 제거하는 것입니다. 로컬 사본 하나를 지우는 것으로는 보이지 않는 사본이 무효가 되지 않습니다.
우려가 일시적인 에이전트 접근이라면 대응은 더 좁습니다. 불필요한 위임을 멈추고, 관련된 세션과 신원을 검토하며, 교체가 정당한지는 사고 책임자가 결정하게 하십시오. 여기서는 증거가 중요합니다. 관측된 유출이 없다고 해서 인증이 오용되지 않았다는 증거가 되지 않으며, 경로 변경만으로는 키 도난의 진단이 아닙니다. 어떤 구성 요소를 신뢰했는지, 전달이 켜져 있었는지, 실제로 무엇이 관측되었는지 적어 두십시오. 그런 다음 그 기록에 맞는 대응을 고르고, 가장 극적인 것을 고르지 마십시오.
ssh-add -l
ssh -G host.example | grep -i forwardagent
변경 전과 후에 실행해 비교가 의미를 갖게 하십시오. 앞서 수립된 세션은 지금 설정이 무엇을 말하든 부여받은 위임을 유지합니다.
서로 바꿀 수 없는 두 가지 통제
개인 자료를 보호하고, 누가 그 서명을 요청할 수 있는지 제한하고, 상대의 신원을 확인하는 것은 세 가지 관련 통제이며, 어느 것도 다른 것을 대신하지 않습니다. 호스트 키를 확인하지 않고 전달을 제거한 팀은 문제의 절반을 고쳤습니다. 경로가 바뀌어 키를 교체한 팀은 아무것도 고치지 않았습니다.
침해된 엔드포인트는 네 번째 질문입니다. 당신의 기계에 있는 특권 소프트웨어는 패킷을 관찰하는 것보다 훨씬 많은 일을 할 수 있기 때문입니다.
무언가를 만지기 전에 사고를 그 범주로 나누고, 각각에 책임자를 두십시오. 무엇을 신뢰했고, 무엇을 위임했고, 무엇을 확인했는지 짧은 기록을 남기십시오. 그 기록이 다음 검토를 또 다른 논쟁이 아니라 값싼 일로 만들기 때문입니다. 어떤 범주가 알 수 없다면, 양성 사례를 가정하지 말고 알 수 없음이라고 쓰십시오. 구분은 학문적이지 않고 실무적입니다. 자격 증명을 교체할지, 세션을 철회할지, 아니면 그냥 전달을 멈출지를 결정합니다.