2012-10-16 6 views
2

iOS 앱을위한 REST 서비스를 설계 중이다. iOS 앱에서 요청한 내용 만 허용되도록 RESt 서비스를 안전하게 만들 수있는 방법이 궁금합니다.인증없이 REST 서비스 보안하기

나는 공유 된 비밀을 사용하려고 생각했지만 요청을 조사 할 때 노출되는 문제가 여전히 남아 있습니다.

또 다른 방법은 원하는 해결책이 아닌 OAuth를 사용하는 것입니다. 몇 가지 요청에서 토큰을 교환하는 대신 실제 요청에서 인증 할 수 있기를 원합니다.

내가 생각할 수있는 유일한 해결책은 시간 기반 암호화입니다. 공유 비밀은 서버에서 요청이 특정 기간 동안 만 유효한 시간 기반 암호화됩니다.

답변

0

실제로이 방법을 사용할 수는 있지만 일종의 로그인 메커니즘을 사용하는 것이 가장 좋지만 누군가가 인증을 포함하여 앱을 스푸핑하려고 시도하는 것을 막지는 못합니다.

당신은 클라이언트를 신뢰할 수 없지만 OAuth와 같은 것을 사용하면 적어도 사람들이 시도하는 것을 막을 수 있습니다. 앱이 인앱 구매를 사용하는 경우 액세스 권한이있는 계정을 인증 한 다음 해당 경로를 따를 수 있습니다. 그러나 그 이외에 말하자면 '완벽한'해결책이 없습니다.

3

HTTPS와 같은 SSL로 보호 된 프로토콜을 통해 사용자의 요청을 보이지 않게하고 (중간자 공격으로부터 보호하기 위해 서버 인증서를 사용하는 경우) 스니퍼가 요청을 볼 수 없습니다. 앱이 작동 할 수 있습니다.

물론 누군가가 정말로 원한다면 앱을 리버스 엔지니어링하여 안에 저장된 비밀을 찾을 수 있습니다. 사람들의 은행 계좌와 연결되는 무언가를 만들고 있다면 귀찮게하지 마십시오. 사소한 해킹이나 서비스 거부를 막기 위해 작은 보호 계층을 추가하려는 경우에는 합리적인 접근 방법처럼 들립니다.

+0

iOS에서 신뢰할 수있는 것으로 알려진 SSL 인증서를 구입하면 서버에 인증서를 설치할 수 있으며 iOS의 https 연결은 "그냥 작동합니다". 그렇게하면 삶이 훨씬 쉬워지며 Brian Kelly의 말처럼 비밀을 찾기 위해 앱을 뒤집는 사람에 대해서만 걱정할 필요가 있습니다. –