OpenSSH는 양자 컴퓨터 공격에 안전하다고 여겨지는 여러 암호학적 키 합의 알고리즘을 지원하며, 모든 SSH 연결에서 이러한 알고리즘 사용을 권장합니다.
OpenSSH는 양자 컴퓨터의 공격에 대해 안전하다고 여겨지는 여러 암호학적 키 합의 알고리즘을 지원합니다. 우리는 모든 SSH 연결이 이러한 알고리즘을 사용할 것을 권장합니다.
OpenSSH는 9.0 릴리스(2022년 4월)부터 기본적으로 포스트 양자 키 합의(KexAlgorithms)를 제공해 왔으며, 처음에는 sntrup761x25519-sha512 알고리즘을 통해 이를 제공했습니다. 보다 최근에는 OpenSSH 9.9에서 두 번째 포스트 양자 키 합의인 mlkem768x25519-sha256을 추가했고, 이는 OpenSSH 10.0(2025년 4월)에서 새로운 기본 방식이 되었습니다.
이 더 강력한 알고리즘으로의 전환을 장려하기 위해, OpenSSH 10.1은 포스트 양자 키 합의 방식이 아닌 것이 선택되면 다음 메시지로 사용자에게 경고합니다:
** 이 세션은 "지금 저장하고 나중에 복호화" 공격에 취약할 수 있습니다. ** 서버를 업그레이드해야 할 수 있습니다. https://openssh.com/pq.html 참조
이 경고는 기본적으로 표시되지만, ssh_config(5)의 WarnWeakCrypto 옵션을 통해 비활성화할 수 있습니다.
양자 컴퓨터(QC)는 정보가 양자 상태로 인코딩된 상태에서 계산을 수행할 수 있는 장치입니다. 이러한 장치는 기존의 "고전적" 컴퓨터로는 다루기 어려운 특정 문제를 빠르게 해결할 수 있습니다.
여러 암호 알고리즘을 떠받치는 수학은 양자 컴퓨터가 효과적으로 풀 수 있다고 여겨지는 문제들에 포함됩니다. 이는 충분히 강력한 양자 컴퓨터(일명 "암호학적으로 의미 있는" 양자 컴퓨터)가 그것들을 깨뜨릴 수 있음을 의미합니다. 가장 큰 영향을 받는 것은 키 합의와 디지털 서명에 사용되는 암호 기술이며, 둘 다 SSH에서 중요한 역할을 합니다.
다행히도 암호를 깨뜨릴 만큼 충분한 성능의 양자 컴퓨터는 아직 발명되지 않았습니다. 이 분야의 발전 속도에 근거한 암호학적으로 의미 있는 양자 컴퓨터의 등장 시점 추정치는 5년에서 20년 사이이며, 많은 관측자들은 2030년대 중반에 등장할 것으로 예상합니다.
SSH 연결의 전체 프라이버시는 암호학적 키 합의에 달려 있습니다. 공격자가 키 합의를 깨뜨릴 수 있다면 전체 세션을 복호화하고 들여다볼 수 있습니다. 공격자는 이 공격을 실시간으로 수행할 필요가 없습니다. 지금 암호화된 SSH 세션을 수집해 두었다가 나중에 양자 컴퓨터에 접근할 수 있게 되면 복호화하면 됩니다. 이를 "지금 저장하고 나중에 복호화" 공격(또는 "지금 수집하고 나중에 복호화")이라고 합니다.
다행히도 양자 컴퓨터로 공격할 수 없는 것으로 이해되는 다른 기초 수학 문제에 의존하는 개선된 "포스트 양자" 암호 알고리즘이 고안되었습니다.
OpenSSH는 "지금 저장하고 나중에 복호화" 공격을 방지하기 위해 수년간 포스트 양자 키 합의를 지원해 왔으며, 2022년에 릴리스된 OpenSSH-9.0부터 기본값이 되었습니다.
ssh로부터 이 페이지를 보라는 경고를 받았습니다. 무엇을 해야 하나요? 위에서 언급했듯이, OpenSSH 10.1은 양자 컴퓨터에 안전하지 않은 암호 기술을 사용하는 연결에 대해 사용자에게 경고하기 시작했습니다. 이런 경고를 받았다면, 연결한 서버가 SSH 프로토콜용으로 표준화가 진행 중인 두 가지 포스트 양자 키 합의 알고리즘 가운데 하나를 제공하지 않았다는 뜻입니다: mlkem768x25519-sha256 및 sntrup761x25519-sha512 이상적인 해결책은 이들 중 적어도 하나를 지원하는 SSH 구현을 사용하도록 서버를 업데이트하는 것입니다. OpenSSH 9.0 이상 버전은
sntrup761x25519-sha512를 지원하고, 9.9 이상 버전은 mlkem768x25519-sha256을 지원합니다. 서버가 이미 이러한 버전 중 하나를 실행 중이라면, KexAlgorithms 옵션이 이들의 사용을 비활성화했는지 확인하십시오. 서버를 업데이트할 수 없거나, 양자에 안전하지 않은 암호 기술을 계속 사용하는 위험을 감수하길 원한다면, ssh_config(5)의 WarnWeakCrypto 옵션을 통해 경고를 숨길 수 있습니다. 우리는 이를 선택적으로 수행할 것을 권장하며, 예를 들면 다음과 같습니다:
Match host unsafe.example.com WarnWeakCrypto no-pq-kex 양자 컴퓨터는 아직 존재하지 않는데, 왜 이렇게까지 수고해야 하나요? 위에서 언급한 "지금 저장하고 나중에 복호화" 공격 때문입니다. 오늘 전송되는 트래픽은 포스트 양자 키 합의를 사용하지 않는 한 나중에 복호화될 위험이 있습니다. 서명 알고리즘은 어떤가요? 그것들도 위험하다고 했잖아요 맞습니다. 현재 널리 사용되는 대부분의 서명 알고리즘(RSA와 ECDSA 포함)은 양자 컴퓨터에 의해 깨질 수 있습니다. 그러나 이 상황에서는 기존 트래픽에 대한 위험은 없습니다(즉, 이에 대응하는 "지금 저장하고 나중에 복호화"는 없습니다). 서명 알고리즘과 관련된 유일한 시급성은 암호학적으로 의미 있는 컴퓨터가 현실이 되기 전에 모든 고전적 서명 키가 미리 폐기되도록 보장하는 것입니다. OpenSSH는 앞으로 포스트 양자 서명 알고리즘 지원을 추가할 예정입니다. 나는 양자 컴퓨터가 결코 나오지 않을 것이라고 믿습니다. 이건 시간 낭비입니다 어떤 사람들은 기존 양자 컴퓨터의 규모를 암호학적 문제를 다룰 수 있을 정도까지 키우는 과제가 실질적으로 극복 불가능하다고 봅니다. 그것도 하나의 가능성입니다. 하지만 암호학적으로 의미 있는 양자 컴퓨터로 가는 대부분의 장벽은 근본 물리학의 문제가 아니라 공학적 과제로 보입니다. 우리가 양자 컴퓨터의 실용성에 대해 옳다면, 방대한 양의 사용자 데이터를 보호하게 될 것입니다. 우리가 틀렸더라도, 우리가 하게 되는 일은 더 강한 수학적 기반을 가진 암호 알고리즘으로 옮겨가는 것뿐입니다.
이 포스트 양자 알고리즘들은 새롭습니다. 정말 깨지지 않았다고 확신할 수 있나요? 우리도 이 점을 경계하고 있습니다. 포스트 양자 키 합의 알고리즘은 지난 몇 년간 집중적인 암호학적 검토를 많이 받았지만, 새로운 공격이 발견될 가능성은 있습니다. 이를 방어하기 위해 우리는 충분한 안전 여유를 가진 포스트 양자 알고리즘을 선택했습니다. 이는 기대보다 약한 것으로 드러나더라도, 여전히 목적에 적합하다고 여겨질 만큼 충분히 강할 가능성이 높다는 뜻입니다.
또한 OpenSSH가 구현한 모든 포스트 양자 알고리즘은 포스트 양자 알고리즘과 고전적 알고리즘을 결합한 "하이브리드"입니다. 예를 들어
mlkem768x25519-sha256은 포스트 양자 키 합의 방식인 ML-KEM과, 과거 OpenSSH가 선호하던 기본값이었던 고전적 키 합의 알고리즘 ECDH/x25519를 결합합니다. 이는 미래의 암호 분석에 의해 포스트 양자 알고리즘이 완전히 깨지는 것으로 드러나더라도, 결합된 하이브리드 알고리즘이 이전의 최선의 고전적 알고리즘보다 _더 나빠지지 않음_을 보장합니다.