🔑 코인 투자 추천 링크 🔑
서명 재생 취약점
앨리스는 밥이 앨리스의 계정에서 밥의 계정으로 토큰을 전송할 수 있도록 트랜잭션에 서명함
밥은 이 서명을 여러 계약(이 경우 TokenWhale 및 SixEyeToken계약)에 반복해서 사용함
매번 앨리스의 계정에서 자신의 계정으로 토큰을 전송하도록 승인함
계약이 트랜잭션에 대한 서명 및 확인을 위해 동일한 방법을 사용하지만 리플레이 공격을 방지하기 위해 nonce를 공유하지 않기 때문에 가능함.
서명 재생 공격에 대한 보호가 누락되면, 동일한 서명을 여러 번 사용하여 함수를 실행할 수 있음
개선
서명 및 확인 프로세스에 nonce를 도입하여 한 번만 사용되는 번호를 사용함으로써 리플레이 공격을 방지할 수 있음.
테스트소스
https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/SignatureReplay.sol
서명 replay 부분
테스트
참고문서
https://web3sec.notion.site/Signature-replay-337cceadc6cb4a44ac8ca745e792d8ef
댓글