문제

몇 가지 요구 사항이있는 휴식 서비스를 연구하고 있습니다.

  1. 안전해야합니다.
  2. 사용자는 요청을 위조 할 수 없어야합니다.

현재 제안 된 솔루션은 이와 같이 보이는 사용자 정의 인증 헤더를 갖는 것입니다 (이것은 Amazon 웹 서비스가 작동하는 것과 같은 방식입니다).

Authorization: MYAPI username:signature

내 질문은 서명을 형성하는 방법입니다. 사용자가 서비스에 로그인하면 요청에 서명하는 데 사용할 수있는 비밀 키가 제공됩니다. 이렇게하면 다른 사용자가 자신을 대신하여 요청을 제출하는 것을 막을 수 있지만 요청을 막을 수는 없습니다.

이 서비스를 사용하는 응용 프로그램은 iPhone 응용 프로그램이므로 추가 서명을 수행 할 수있는 응용 프로그램에 공개 키가 포함될 수 있다고 생각했지만 이는 두 개의 서명이 있어야합니다. 사용자 키와 앱 키의 경우?

모든 조언은 대단히 감사 할 것입니다. 나는 처음으로 이것을 올바르게 얻고 싶습니다.

도움이 되었습니까?

해결책

이 권리를 수행하는 가장 간단한 방법은 HTTPS 클라이언트 인증을 사용하는 것입니다. Apple의 사이트에는 다음에 있습니다 이 주제에 대해.

편집 : 인증을 처리하려면 각 사용자의 서버에 별도의 리소스 (URI)를 만들고 사용자 가이 리소스를 조작 할 수 있도록 허용합니다.

편집 (2014) : Apple은 지난 6 년 동안 포럼 소프트웨어를 변경했습니다. 실이 이제 있습니다 https://discussions.apple.com/thread/1643618

다른 팁

대답은 간단합니다. 할 수 없습니다. 최종 사용자에게 솔루션을 배송하자마자 전달하는 서버를 공격 할 수 있습니다. 이 문제의 가장 일반적인 버전은 플래시 게임에서 하이 스코어 목록으로 속이는 것입니다. 넌 할 수있어 더 어렵다 클라이언트에 어떤 종류의 암호화를 임베드하고 코드를 난독 화함으로써 ... 그러나 모든 컴파일 및 난독 화 된 코드는 모든 사람이 압축 및 반포 화되지 않을 수 있습니다. 그것은 당신이 잠재적 인 공격자를 위해 얼마나 많은 시간과 돈을 기꺼이 지출하는지의 문제입니다.

그래서 당신의 관심사입니다 ~ 아니다 사용자가 시스템에 결함이있는 데이터를 보내지 않도록하는 방법. 사용자를 방지하는 방법입니다 손상 당신의 시스템. 결함이있는 데이터에 의해 수행 된 모든 손상이 사용자에게만 영향을 미치도록 인터페이스를 설계해야합니다.

무슨 일이야 HTTP 다이제스트 인증?

여기에는 더 나은 논의가 있습니다.

REST API / 웹 서비스 보안을위한 모범 사례

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top