보안 공부/Web 보안

웹 보안관점에 멱등성(idempotent) 이란?

H.J.World 2025. 1. 7. 22:10
728x90
반응형

 

멱득성(idempotent) 이란 ?

멱등성(Idempotency)은 수학이나 전산학에서 연산을 여러 번 반복해도 결과가 달라지지 않는 성질을 의미합니다. 컴퓨터 과학의 다양한 분야에서 중요한 개념으로 활용되며, 특히 소프트웨어 개발과 데이터베이스 관리에서 중요한 역할을 합니다.

  • 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지닙니다.
  • 서버의 상태도 동일하게 남습니다.
  • 클라이언트가 의도한 효과에만 적용됩니다.

 

위와 같은 특징을 가지고 있고, 이러한 특성을 사용해서 이용 할 수 있는 분야는 아래와 같습니다.

  • 은행 거래 시스템: 중복 이체를 방지하고, 데이터 일관성을 유지하는 데 필수적입니다.
  • API 설계: API를 사용하는 클라이언트가 예측 가능한 결과를 얻을 수 있도록 보장합니다.

 

보안적인 관점이나, 취약점 점검에 관한 관점에서 살펴보면 자동화공격과 같은 항목을 조치하거나 방어하는 곳에서 사용 할 수 있습니다.

 

HTTP Method 와 연계시켜서 살펴보면 아래와 같습니다.

메서드 멱등성 여부
GET O
DELETE O
PUT O
TRACE O
OPTIONS O
HEAD O
CONNECT X
POST X
PATCH X

 

멱등성과 보안

멱등성은 보안에서 중요한 원칙으로 작용할 수 있으며, 특히 다음과 같은 상황에서 적용됩니다.

(1) 재요청 방어

  • 클라이언트가 동일한 요청을 여러 번 전송했을 때, 서버는 멱등성을 보장함으로써 중복 요청으로 인한 보안 문제를 방지할 수 있습니다.
  • 예를 들어, 결제 시스템에서 동일한 요청이 두 번 처리되어 금액이 이중으로 청구되는 문제를 막기 위해 멱등성을 구현합니다.

(2) 무작위 공격 방어

  • 공격자가 Replay Attack(재전송 공격)을 시도하는 경우, 멱등성은 동일한 요청이 서버에서 이미 처리되었음을 인지하고 추가 처리를 방지합니다.
  • 이 과정에서 요청마다 고유한 IDnonce(한 번만 사용되는 값)를 활용해 멱등성을 유지하도록 설계할 수 있습니다.

 

 

멱등성을 구현할 때의 보안 고려사항

(1) 요청 추적

  • 요청마다 고유한 요청 ID를 부여하고, 이를 기반으로 멱등성을 관리합니다.
  • 중복 요청에 대해 서버는 동일한 ID로 이미 처리된 요청임을 확인하고 추가 처리를 중단합니다.

(2) 상태 검증

  • 멱등성을 유지하려면 서버는 요청의 상태를 저장하고 관리해야 합니다. 상태 기반 검증은 불필요한 요청 실행을 방지하는 데 도움을 줍니다.

(3) Replay Attack 방어

  • 요청 데이터에 타임스탬프암호화 서명을 포함하여 동일 요청을 반복적으로 사용하는 공격을 차단합니다.

(4) 응답 결과의 무결성

  • 서버는 동일 요청에 대해 항상 동일한 응답을 반환해야 하므로, 응답 무결성을 검증하는 로직도 필요합니다.
728x90
반응형