📢 대니월드 공식 홈페이지가 'TradingRoom'으로 변경되었습니다
모든 최신 시황과 교육 자료를 가장 빠르게 받는 방법!
지금 아래 버튼을 클릭해 이메일 구독을 완료해 주세요.
서명 재생 취약점
앨리스는 밥이 앨리스의 계정에서 밥의 계정으로 토큰을 전송할 수 있도록 트랜잭션에 서명함
밥은 이 서명을 여러 계약(이 경우 TokenWhale 및 SixEyeToken계약)에 반복해서 사용함
매번 앨리스의 계정에서 자신의 계정으로 토큰을 전송하도록 승인함
계약이 트랜잭션에 대한 서명 및 확인을 위해 동일한 방법을 사용하지만 리플레이 공격을 방지하기 위해 nonce를 공유하지 않기 때문에 가능함.
서명 재생 공격에 대한 보호가 누락되면, 동일한 서명을 여러 번 사용하여 함수를 실행할 수 있음
개선
서명 및 확인 프로세스에 nonce를 도입하여 한 번만 사용되는 번호를 사용함으로써 리플레이 공격을 방지할 수 있음.
테스트소스
https://github.com/SunWeb3Sec/DeFiVulnLabs/blob/main/src/test/SignatureReplay.sol
서명 replay 부분

테스트


참고문서
https://web3sec.notion.site/Signature-replay-337cceadc6cb4a44ac8ca745e792d8ef
댓글