2012-09-27 3 views
0

클라이언트가 iPhone 응용 프로그램의 백엔드 서버를 수행하고 응용 프로그램을 구입 한 사용자 만 서버를 호출 할 수 있도록 요청했습니다. 문제는 응용 프로그램에 로그인 시스템을 추가하고 싶지 않기 때문에 응용 프로그램이 서버를 호출하지 않으면 누군가를 막을 수있는 완전히 안전한 방법이 없다고 생각됩니다. 어떤 경우에도 완전히 예방할 수는 없지만 응용 프로그램을 사용하지 않고 서버에 액세스하는 것이 어려울 정도로 충분합니다.클라이언트 응용 프로그램없이 서버에 연결하는 것을 방지하는 방법은 무엇입니까?

이것을 달성하는 가장 좋은 방법은 무엇입니까? 다시 말하지만, 연결을 완벽하게 보호 할 필요는 없으며 민감한 정보를 전송할 필요가 없습니다. 애플리케이션을 지불하지 않고 서버를 활용하고자하는 사람들에게 좀 더 복잡하게 만들고 싶습니다.

가장 간단한 것처럼 보이는 아이디어는 클라이언트에 저장된 키로 데이터를 암호화하여 서버에 알려진 것으로, 코드를 디 컴파일하고 키를 찾는 것만으로 메시지를 해독 할 수 있습니다 (물론 키 대신에) 6/12/24 시간마다 변경되는 키 목록을 넣을 수 있습니다).

이 합리적인 해결책이 될 수 있을까요?

답변

0

이것은 결코 불가능합니다. 클라이언트 - 서버 아키텍처의 특성에 오신 것을 환영합니다. 당신은 결코 클라이언트를 신뢰할 수 없습니다. 노출중인 기능이 안전한지 확인하십시오.

+0

솔직히 말해서 나는 이것에 대해 꽤 확신했다. 이제 문제는 고객에게 명확하게 전달하는 것이다. – Fabio

+0

@Fabio, 봉급 수표에 서명하고 이해하지 못하는 사람보다 더 나쁜 것은 거의 없다. 현대 보안의 가장 기본적인 개념조차도. – rook

0

자사의 유료 앱은 당신과 무료 응용 프로그램을 해제 할 수 잘 경우 모든 기능적으로 사용자까지 잠겨 수행하는 응용 프로그램 구매에 다음 따라서 장치가 아이폰 OS 장치임을 증명 서버에서 영수증을 확인할 수 있습니다 ? 클라이언트와 서버 사이에 키를 공유

0

갈 수있는 좋은 방법이 될 것으로 보인다. 그러나 저장된 키에만 의존하는 대신 UUID과 같은 고유 식별자와 조합하여 결합 된 키와 UUID 자체를 사용하여 서버로 보냅니다. 그 시점 사용자의 UUID에서

자신의 식별자 (사용자 이름)와 그의 토큰 (비밀번호)입니다 결합 된 열쇠가 될 것입니다. 그리고 이것은 로그인과 같은 메커니즘이 될 것입니다.

0

SSL 연결은 요청의 URL을 받고 다른 사람을 방지하기 위해 한 정도로되지 않는 이유는 무엇입니까? 또는 기본 인증을 사용하여 SSL 연결을 사용하는 것이 더 낫습니다.

관련 문제