2011-02-25 5 views
3

웹 서비스에 액세스하고 정기적으로 콘텐츠를 다운로드하는 무료 모바일 앱을 개발 중입니다.이 인증 문제에 대한 해결책이 있습니까?

사용자가이 웹 서비스를 사용하기 위해 계정을 만들지 않게하고이 모바일 앱의 모든 사용자가 사용할 수 있어야합니다.

그러나 제 3자가 해당 웹 서비스에 액세스하고 웹 서비스에서 제공하는 데이터를 다시 사용할 수 없도록하려고합니다. 즉, 내가 쓰고있는 모바일 앱만이 서비스를 사용할 수 있어야하고 다른 사용자는 사용할 수 없어야합니다.

이 문제와 관련된 해결책이 있습니까? 앱이 서버

2) 서버에 처음 액세스를 시도

1)

이 응용 프로그램

3)에 임의의 숫자/코드를 전송 :

답변

4

난 당신이 뭔가를 할 수있을 것 같아요 응용 프로그램은 그것을 정교하게 만들고 비밀 방법으로 변환합니다 (비밀 암호로 병합하여 결과와 함께 "해시"를 만들 수 있습니다. "해시"는 변환 된 코드 문자열입니다). 4) 응용 프로그램에서 해시를 [편집 : (and orig 무작위 번호/서버에서받은 코드) < - 아니요, 원본과 코드화 된 문자열을 보내지 않는 것이 좋습니다. 차단하면 모든 사람이 서비스에 들어가기 위해 다시 보낼 수 있습니다 ... 더 좋습니다 원래의 문자열을 서버의 어딘가에있는 ID가 앱에서 해시를 기다리는 상태로 유지하기 위해

5) 서버는 동일한 비밀 방법을 사용하여 원래의 번호를 "해시"합니다 비밀 암호를 생성하고 결과로 "해시"를 만든 다음 응용 프로그램에서 얻은 암호와 같은지 확인합니다. 이 동일하다면

6) ... 서버는 이제 즉

... 당신의 웹 서비스에 대한 요청 앱에서 것을 알고 그것에 대한 액세스를 승인 : 당신의 모바일 앱 및 서버 무작위 수를 "해시"로 변환하는 방법을 알고 ... 문자열의 "해시"를 여러 메서드 (PHP, javaScript ...)로 가져 오는 방법이 많은 샘플이 있으므로 웹에서 검색하면됩니다.

+0

감사합니다. 그러나 해커가 내 앱 코드를 분해하고 내 앱의 비밀번호를 찾을 수 있습니다. 그러나 내 간단한 응용 프로그램이 충분해야합니다. – Behrang

+0

그래서 코드를 모호하게 만들면 공격자가 더 똑똑하고 결정적이어야합니다. 또한 장치와 서버 간의 트래픽을 모니터링 할 때 어떤 것이 추론되거나 단순히 추출 될 수 있는지 생각해보십시오. –

+0

새 덧글 추가/편집 – meronix

1

올바른 클라이언트가 웹 서비스에 연결되어 있는지 확인하기 위해 핸드 셰이크가 필요한 것 같습니다. 내가 생각할 수있는 가장 간단한 방법은 서버가 연결을 검사 할 때 설치 될 때 하드 코딩/생성 된 키를 갖는 것입니다.

유효한 키에 대해 서버와 대조하는 CD 키 및 최신 게임과 매우 유사합니다.

관련 문제