2011-12-19 3 views
7

나는 android 응용 프로그램을 통해 웹 서비스에 요청해야합니다. 웹 서비스는 필요에 따라 설계 할 수 있습니다.안전한 웹 서비스 요청

어떤 접근 방식을 선택하든 해킹하고 싶은 사람은 내 안드로이드 앱 코드 (매우 어렵지는 않음)를 리버스 엔지니어링해야하며 은 내가하는 일을 정확히 볼 수 있습니다. , wheather 나는 데이터를 암호화하고, 하드 코딩 된 암호 또는 그와 관련된 다른 솔루션을 사용합니다.

100 % 안전 할 해결책이 있습니까?

+0

이것 좀보세요. 나는 그들이 같은 것을 요구하고 있다고 생각한다 : http://stackoverflow.com/questions/2320937/securing-communication-from-android-to-a-web-service – eboix

+0

나는이 질문을하기 전에이 대답을 읽었지만 - 나는 애플 리케이션 리버스 엔지니어링의 문제를 해결한다고 생각하지 않습니다. –

+0

당신은 데이터를 암호화하고, 키의 해시를 db에 저장하고, db를 암호화 할 수 있습니다. 해킹하기가 더 어려워 야합니다 – Mal

답변

6

100 % 안전하지는 않습니다. 공격자가 할 일을 더 어렵게 만들면됩니다. 것들 당신은 고려할 수 :

  • 암호화 - 암호화 된 채널을 통해 귀하의 요청을 전달하는 기본 스니핑을 중지합니다 (이 MITM으로 반박 할 수있다)

  • 난독 - 그들이 때 열심히 당신의 의도를 이해할 수 있도록 앱이 손상되었을 때 통지와 함께 처리 할 수있는 기능 - 앱이

이의 두 번째 부분 디 컴파일 완화이다. 이를 처리하는 일반적인 방법은 처음 실행될 때 각 클라이언트에 고유 한 토큰을 할당 한 다음이를 서비스 호출시마다 인수로 전달하는 것입니다.

누군가가 앱을 디 컴파일하여 서비스 호출 방법을 파악한 경우 악의적 인 요청이 어디에서 왔는지 모니터링하고 의심스러운 행동 (즉, 동일한 키의 여러 요청)을 모니터링 할 수 있습니다 서로 다른 IP 주소를 통해). 거기에서 키를 막기 시작할 수 있습니다.

+1

+1 좋은 답변, 최선을 다하겠습니다. 최악의 상황에 대비하십시오 – amelvin

+0

보기 http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –

2

"해킹"이 걱정 되긴하지만 보안 토론의 기반이 위험을 정의하고 있습니다.

무엇으로부터 보호하려고합니까?

예를 들어 공격자가 다른 사람의 서버 연결을 읽는 것을 방지하려고합니까?

이 시나리오에서 간단하고 안전한 솔루션은 대칭 암호화 키에 비대칭 키 교환을 사용하거나이 작업을 수행하는 기존 프로토콜 (예 : HTTPS)을 사용하는 것입니다. 중간자 공격 (man-in-the-middle attack)을 방어하기 위해 서버의 개인 키 (HTTPS를 사용하는 경우 인증서)를 내장합니다. 앱을 리버스 엔지니어링하면 공격자가 여기에 도움이되지는 않습니다.

관련 문제