배경:
REST 웹 서비스에 대한 인증 체계를 설계하고 있습니다. 이것은 "실제로"안전 할 필요는 없지만 (개인 프로젝트에 가깝습니다) 가능한 한 운동 / 학습 경험처럼 최대한 안전하게 만들고 싶습니다. 번거롭지 않고 SSL 설정 비용이 들기 때문에 SSL을 사용하고 싶지 않습니다.
이 SO 질문은 나를 시작하는 데 특히 유용했습니다.
- RESTful 인증
- REST API / 웹 서비스 보안을위한 우수 사례
- 최고의 SOAP / REST / RPC 웹 API의 예? 그리고 왜 그들을 좋아합니까? 그리고 무엇이 문제입니까?
Amazon S3 인증의 단순화 된 버전을 사용하려고 합니다 ( OAuth는 좋아 하지만 내 요구에 너무 복잡해 보입니다). 재생 공격을 방지하기 위해 서버에서 제공 하는 임의로 생성 된 nonce 를 요청에 추가하고 있습니다.
질문을하려면 :
S3와 OAuth는 모두 선택된 몇 가지 헤더와 함께 요청 URL에 서명합니다. 둘 다 POST 또는 PUT 요청에 대한 요청 본문 에 서명하지 않습니다 . URL과 헤더를 유지하고 요청 본문을 공격자가 원하는 데이터로 바꾸는 중간자 공격에 취약하지 않습니까?
서명 된 문자열에 요청 본문의 해시를 포함 시켜서 이것을 막을 수있는 것처럼 보입니다. 안전한가요?