Why Nostr? What is Njump?
2024-04-16 13:00:22

sogoagain on Nostr: PuTTY vuln-p521-bias 보안 취약점 서버 등 단말에 접속할 때 흔히 ...

PuTTY vuln-p521-bias 보안 취약점

서버 등 단말에 접속할 때 흔히 사용되는 PuTTY 라는 오픈소스 프로그램에서 치명적인 보안 취약점이 발견되었다. PuTTY는 ECDSA(타원곡선 전자서명 알고리즘)를 사용하는 인증 수단을 제공하는데, 이 수단에서 서명을 통해 개인키를 탈취할 수 있다는 사실이 밝혀진 것이다.

PuTTY는 NIST P521 곡선(‘secp521r1’)을 사용하는 ECDSA를 인증 방법의 하나로 제공한다. (비트코인은 ‘secp256k1’ 곡선을 사용한다)

ECDSA에서 개인키로 서명할 때 ‘nonce’라는 무작위 값이 필요하다. 그러나, PuTTY에선 무작위 값이 아닌 결정적인 값을 생성해 ‘nonce’로 사용했고 이 점이 문제가 되었다.

PuTTY는 SHA-512 해시값에 mod 연산을 하여 ‘nonce’ 값을 만들었는데, 이런 결정적인 값으로 서명하게 되면 서명에 편향이 생기고 그 편향들이 모이면 개인키를 추론할 수 있게 된다. 이 경우엔 약 60개의 서명만 있으면 개인키를 탈취할 수 있다고 한다.

비트코인에서도 개인키와 서명에 ECDSA를 사용하니 이 취약점에서 교훈을 얻고 주의를 기울이면 좋을 것 같다.

- 고품질의 난수 생성기가 있는 기기에서 개인키 및 거래(서명)를 생성하자.
- 검증된 지갑을 사용하자.
- 가능하다면 지갑의 서명부 코드를 검증하자. (특히, ‘nonce’ 생성 방식)
- 주소의 재사용을 피하자.

#Bitcoin #Cryptography

참고: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html
Author Public Key
npub1nhffp7hfyy2weckcw7tslaf20qhk7dp59zal2swghx4tpc9ejjxsuqxcf8