- OpenSSH는 양자 컴퓨터의 공격에 대비한 포스트-양자 암호 알고리듬을 지원함
- 9.0 버전 이후 기본적으로 sntrup761x25519-sha512 알고리듬, 10.0부터는 mlkem768x25519-sha256을 기본 연결 방식으로 적용함
- 10.1 버전 이후에는 비포스트-양자 키 교환 사용 시 경고 메시지가 노출되는 변경점이 있음
- 대부분의 기존 서명 알고리듬(RSA, ECDSA 등)도 향후 지원이 추가될 예정임
- 기존 트래픽을 안전하게 보호하려면 서버와 클라이언트 모두 포스트-양자 알고리듬 적용이 필요함
OpenSSH와 포스트-양자 암호화의 도입
OpenSSH는 양자 컴퓨터의 공격에도 안전한 여러 키 합의 알고리듬을 지원함
모든 SSH 연결에서 이러한 알고리듬 사용을 권장함
OpenSSH 9.0(2022년)부터 sntrup761x25519-sha512를 통해 기본적으로 포스트-양자 키 합의(KexAlgorithms)를 제공했고, 9.9 버전부터는 mlkem768x25519-sha256를 추가함
mlkem768x25519-sha256은 OpenSSH 10.0부터 기본 암호 방식으로 지정됨
포스트-양자 알고리듬 도입을 촉진하기 위해 OpenSSH 10.1부터 양자 내성 키 합의를 사용하지 않는 경우 다음과 같은 경고가 표시됨
** WARNING: connection is not using a post-quantum kex exchange algorithm. **
This session may be vulnerable to "store now, decrypt later" attacks.
The server may need to be upgraded. See https://openssh.com/pq.html
이 경고는 기본적으로 나오지만, ssh_config(5)의 WarnWeakCrypto 옵션으로 비활성화할 수 있음
배경
양자 컴퓨터란 정보를 양자 상태로 인코딩해 계산하는 장치임
기존 컴퓨터로는 불가능한 특정 수학 문제를 빠르게 해결할 수 있음
많은 암호화 알고리듬의 수학 원리는 양자 컴퓨터로 쉽게 풀릴 수 있는 문제에 뿌리를 두고 있음
충분히 강력한 양자 컴퓨터(암호적으로 의미 있는 수준)가 등장할 경우, 이 암호화 체계들이 깨질 위험성 있음
특히 키 합의와 디지털 서명에 쓰이는 알고리듬들이 가장 타격을 받음
아직 이러한 양자 컴퓨터는 실현되지 않았지만, 전문가들은 5~20년 내 또는 2030년대 중반에 등장할 것으로 전망함
SSH 연결의 프라이버시 보장은 키 합의 암호화에 달림
공격자가 키 합의 알고리듬을 깨면 모든 세션 내용 복호화 가능
더불어 실시간이 아니어도, 암호 세션을 저장해 두었다가 미래에 양자 컴퓨터가 생기면 복호화하는 '** store now, decrypt later**' 공격이 가능함
OpenSSH는 이 공격 대응을 위하여 포스트-양자 암호화 지원을 공고히 하고 있음
FAQ
Q: ssh에서 경고가 떴다는 안내를 받음, 어떻게 해야 함?
- OpenSSH 10.1 이상에서 양자 인증 안전하지 않은 암호화 사용 시 사용자에게 경고함
- 이런 경우, 연결된 서버가 포스트-양자 키 교환 알고리듬(mlkem768x25519-sha256, sntrup761x25519-sha512)을 제공하지 않음을 의미함
- 최선은 서버를 OpenSSH 9.0 이상(후자는 9.9 이상)으로 업데이트하고, KexAlgorithms에서 관련 알고리듬이 비활성화되어 있지 않은지 확인하는 것임
- 만일 서버 업데이트가 불가하거나, 위험을 감수하겠다면 ssh_config(5)에서 WarnWeakCrypto 옵션으로 경고만 숨기는 것도 가능함
- 필요시 다음처럼 특정 호스트에 한해 조치 적용 권장
Match host unsafe.example.com WarnWeakCrypto no
Q: 아직 양자 컴퓨터가 없는데도 왜 미리 대비하는가?
- 앞서 언급된 "store now, decrypt later" 공격 때문임
- 오늘 보낸 트래픽도 나중에 복호화될 위험성이 있으므로 미리 포스트-양자 안전 연결이 권장됨
Q: 서명 알고리듬도 위험하다 했는데, 왜 이슈가 아닌가?
- 현재 대부분의 서명 알고리듬(RSA, ECDSA 등) 역시 양자 컴퓨터로 무력화될 수 있음
- 다만 이 경우, 기존 트래픽이 저장됐다 나중에 복호화되는 일이 없음
- 서명 알고리듬 관련 시급 사항은, 양자 컴퓨터 등장이 가까워지면 기존 서명키를 퇴역시키는 것임
- OpenSSH는 추후 포스트-양자 서명 알고리듬도 지원 예정임
Q: 양자 컴퓨터는 그냥 불가능할 거라 생각하는데, 이게 왜 중요한가?
- 일부는 양자 컴퓨터가 실현 불가라 생각하지만, 현재 기술 장벽은 기초 물리학이 아닌 엔지니어링 문제임
- 만약 양자 컴퓨터가 가능하면, 오늘의 조치가 막대한 사용자 데이터를 보호하는 결과임
- 만에 하나 필요 없던 대비라 해도, 수학적으로 더 강력한 암호화로의 이행에 불과함
Q: 포스트-양자 알고리듬도 혹시 취약하지 않은가?
- OpenSSH 역시 조심스럽게 접근하고 있음
- 최근 수년간 집중적으로 검토된 알고리듬만 선정했지만, 새로운 공격 방법이 발견될 가능성 존재함
- 이를 대비해 안전 여유폭이 넉넉한 알고리듬만 채택, 혹시 예상보다 약하더라도 실전 수준의 보안성 확보 가능성 높음
- 또한 OpenSSH의 포스트-양자 알고리듬은 전부 "하이브리드" 방식임
- 예: mlkem768x25519-sha256는 ML-KEM(포스트-양자)과 기존 ECDH/x25519(클래식) 알고리듬을 결합
- 이로써 포스트-양자 알고리듬이 미래에 무력화되어도 최소한 기존 수준의 보안성은 유지됨