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.htmlPublished at
2024-04-16 13:00:22Event JSON
{
"id": "c41a7f8db22e0233147a690224f3f7f18d11350e78be4a4935df2a712835e966",
"pubkey": "9dd290fae92114ece2d877970ff52a782f6f343428bbf541c8b9aab0e0b9948d",
"created_at": 1713272422,
"kind": 1,
"tags": [
[
"t",
"bitcoin"
],
[
"t",
"cryptography"
],
[
"r",
"https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html"
]
],
"content": "PuTTY vuln-p521-bias 보안 취약점\n\n서버 등 단말에 접속할 때 흔히 사용되는 PuTTY 라는 오픈소스 프로그램에서 치명적인 보안 취약점이 발견되었다. PuTTY는 ECDSA(타원곡선 전자서명 알고리즘)를 사용하는 인증 수단을 제공하는데, 이 수단에서 서명을 통해 개인키를 탈취할 수 있다는 사실이 밝혀진 것이다.\n\nPuTTY는 NIST P521 곡선(‘secp521r1’)을 사용하는 ECDSA를 인증 방법의 하나로 제공한다. (비트코인은 ‘secp256k1’ 곡선을 사용한다)\n\nECDSA에서 개인키로 서명할 때 ‘nonce’라는 무작위 값이 필요하다. 그러나, PuTTY에선 무작위 값이 아닌 결정적인 값을 생성해 ‘nonce’로 사용했고 이 점이 문제가 되었다.\n\nPuTTY는 SHA-512 해시값에 mod 연산을 하여 ‘nonce’ 값을 만들었는데, 이런 결정적인 값으로 서명하게 되면 서명에 편향이 생기고 그 편향들이 모이면 개인키를 추론할 수 있게 된다. 이 경우엔 약 60개의 서명만 있으면 개인키를 탈취할 수 있다고 한다.\n\n비트코인에서도 개인키와 서명에 ECDSA를 사용하니 이 취약점에서 교훈을 얻고 주의를 기울이면 좋을 것 같다.\n\n- 고품질의 난수 생성기가 있는 기기에서 개인키 및 거래(서명)를 생성하자.\n- 검증된 지갑을 사용하자.\n- 가능하다면 지갑의 서명부 코드를 검증하자. (특히, ‘nonce’ 생성 방식)\n- 주소의 재사용을 피하자.\n\n#Bitcoin #Cryptography\n\n참고: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html",
"sig": "f2fd300d6e3ea61e560af2c51813858eb143fb9e60cc7f056f93dc25692bd5d619ec9f1d07f22c59bfbf4b1137f8974acad8515c63fc276b0b9895f5b4a843c3"
}