Challenge Response Protocol
서비스 요청시 무결성 보장 기법에 대해 공부하던중 Challenge Response Protocol에 대해 알게 되었다.
Challenge Response Protocol이란 무엇일까?
이러한 기법이 나오게 된 배경에는 해커들의 악의적 공격 기법이 있다.
그중 하나로 재전송 공격(Replay Attack)이 있다.
재전송 공격이란 해커가 이전에 전송된 메시지를 가로채서 나중에 다시 전송하여 원래의 메시지와 동일한 자격 증명을 얻을 때 발생하며, 잠재적으로 다른 페이로드나 명령이 포함되어 있는 메시지를 다시 보내 공격 및 소유권을 탈취하는 행위를 말한다.
라인의 기술 블로그를 읽던중 규모가 커질수록 Man in the Middle Attack이나, 재전송 공격 시도가 늘어난다고 한다. 이러한 공격은 특히나 금융권에서는 문제가 될 수 있기에 방지하는게 중요하다고 생각한다.
이러한 공격 기법을 막기 위한 방법으로 나온게 바로 Challenge Response Protocol이다.
https://csrc.nist.gov/glossary/term/challenge_response_protocol 이곳에서 공식 문서를 확인 할 수 있다.
프로토콜의 대략적인 흐름은 다음과 같다.
유저가 요청을 하면 클라이언트와 서버는 one-time 유효성을 갖는 Challenge를 생성하여 공유하고 이를 이용해 무결성을 검증하는 기법이다. 즉 재전송시 Challenge 이미 변조가 되므로 공격자는 소유권을 탈취하지 못하게 되는것이다.