🇰🇷 한글 설명
SSH.NET 라이브러리의 2020.0.0 및 2020.0.1 버전에서 X25519 키 교환 시 암호학적으로 안전하지 않은 System.Random을 사용하여 클라이언트 개인키를 생성하는 취약점이 발견되었습니다. 이로 인해 공격자가 통신 내용을 도청하여 암호화된 데이터를 복호화할 수 있습니다.
💡 쉬운 설명
암호 키를 만들 때 예측하기 쉬운 무작위 숫자를 사용하여 보안이 매우 취약해진 상태입니다. 해커가 이 숫자를 알아내면 여러분의 비밀 대화 내용을 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
SSH.NET is a Secure Shell (SSH) library for .NET. In versions 2020.0.0 and 2020.0.1, during an `X25519` key exchange, the client’s private key is generated with `System.Random`. `System.Random` is not a cryptographically secure random number generator, it must therefore not be used for cryptographic purposes. When establishing an SSH connection to a remote host, during the X25519 key exchange, the private key is generated with a weak random number generator whose seed can be brute forced. This allows an attacker who is able to eavesdrop on the communications to decrypt them. Version 2020.0.2 contains a patch for this issue. As a workaround, one may disable support for `curve25519-sha256` and `
[email protected]` key exchange algorithms.
📍 영향받는 시스템
SSH.NET versions 2020.0.0 and 2020.0.1
⚔️ 공격 벡터
통신을 도청하여 취약한 난수 생성기를 통해 생성된 개인키를 추측하고 암호화된 트래픽을 복호화함
🛡️ 대응 방법
SSH.NET 버전을 2020.0.2 이상으로 업데이트하거나, curve25519-sha256 관련 키 교환 알고리즘을 비활성화함
🔧 검증 코드
출력된 SSH.NET의 버전이 2020.0.0 또는 2020.0.1인지 확인하여 취약 여부를 판단합니다.
dotnet list package | grep SSH.NET