안심하고 빠른 인증 방법을 제공하는 것이 가능한지 궁금합니다. 나는 고객의 서버에 유효한 SSL 인증서에 의존 할 수 없기 때문에REST (ful) SSL 및 HMAC없이 간단한 인증?
SSL은 옵션이 아닙니다. 또한 HMAC는 요청의 본문에 서명해야하므로 실제로 사용할 수 없지만 본문은 큰 파일 일 수 있습니다. 또한 JavaScript/AJAX로 인증이 가능해야합니다.
나는 정말 간단하다고 생각했습니다.
HEADER : X-인증 : 타임 스탬프 : 사용자 이름 : SHA256 하나의 문제 기능 (타임 스탬프 : 암호)
서버가 사용자 암호를 알고 해시를 확인할 수 있습니다, 타임 스탬프 만 허용하는 데 사용됩니다 요청은 예를 들어 일어났다. 10 초 전에. 재생 창이 극도로 작아서 서버 측에 세션이 없습니다.
해시가 손상된 경우 공격자는 암호를 알고 무제한 액세스 할 수 있습니다.
대안
HEADER를 사용하는 것입니다 : X-인증 : 타임 스탬프 : 사용자 이름 : HMAC (비밀번호, '타임 스탬프 + 요청 방법 + 동사')
갈 수있는 방법은 무엇입니까? 나는 보안 전문가가 아니며 서버에 세션을 저장하는 것이 더 좋을 수도 있지만 (RESTful은 아님)? 당신이 당신의 자신의 메커니즘을 발명 할 수 있도록
HTTP 다이제스트 인증의 일부 기능을 모방하려는 것 같습니다. SSL을 사용하지 않는다면 (브라우저가 기본적으로 지원하는 대신) 일부 스크립트에 의해 브라우저에 전달되는 인증 메커니즘은 MITM 공격에 효과적으로 취약하다는 것을 기억하십시오. – Bruno