푸시 알림이 필요한 iOS 응용 프로그램의 경우 먼저 사용자에게 푸시 알림을 요청하는 권한을 요청해야합니다. 그런 다음 장치 토큰이 생성되고 이에 따라 원격 서버는이 토큰을 통해 사용자와 통신 할 수 있습니다.APN에 안전하게 장치 토큰 보내기
나는 비슷한 질문을 here 읽고 나는 그것이 충분하다고 생각하지 않는다. 아래 그림은 신뢰할 수있는 인증서이므로이 장치에서 발생하는 모든 트래픽을 볼 수 있습니다. Fiddler2뿐만 아니라 CertMaker와
, 나는 HTTPS 트래픽, 클라이언트가 아마 그들이, 그리고 곳으로 보내는 어떤 데이터를 알 수 있다는 뜻을 도청 할 수 있습니다.
제 질문은 SSL이 내 클라이언트가 원격 서버에 보내는 것을 보지 못하게하는 것이 안전하지 않다는 것을 알고 제 신청서에있는 비밀 키를 사용하여 간단하게 암호화해야합니까?
encrypt("device_token","secretkey_a0a0a0a")
(예 : Objective-C)?
누군가 내 애플리케이션에서 해당 키를 찾을 수 없었습니까? 나는 또한 this 질문을 읽고 비밀 키를 되 찾는 것이 가능할 것으로 보인다.
이에 대한 나의 계획은 다음과 같이 간다 : 아이폰 OS 응용 프로그램 내
- 이
activate
라는 임의의 문자열을 생성합니다. - 랜덤 문자열 및에 의한 토큰 (해시가 아님) 만 알고있는 비밀 키. (secretkey_a0a0a0)
- 생성 된 임의 생성 문자열 (활성)과 함께 암호화 된 문자열을 보냅니다.
- 서버 측 내에서
active
과 내 비밀 키를 사용하여 유효한 토큰을 해독 할 수 있는지 확인합니다. - 유효한 경우 내 데이터베이스에 토큰을 저장합니다.
사람들이 임의로 토큰을 입력하지 못하게합니다. 그렇지만 secretkey_a0a0a0
은 문자열 리터럴입니다. 이것은 응용 프로그램 바이너리 내에서 이것을 얻을 수 있습니다.
제 질문은이 비밀 키를 어떻게 보호합니까? 대답은 또한 사람들이 내 서버에도 유효하지 않은 토큰을 보내지 못하도록 막는 방법 일 수 있습니다.
암호화에 대해 들어 봤지만 리소스 파일에만 적용되지 않습니까?
어떻게 접근해야합니까?
당신은 편집증 환자입니다. SSL로 충분합니다. 앱이 손에서 벗어나면 앱이 깨질 수 있습니다. 수백만 달러 (아마도 수십억 달러)를 DRM에만 투자하여 수 시간 내에 부서지기를 바라는 모든 기업에게 물어보십시오. 정말로 더 잘할 수 있다고 생각합니까? – Kevin
정확히 왜 장치 토큰을 암호화 하시겠습니까? 누군가가 그것을 읽을 수 있다면 어떤 해로울 것입니까? –
서버 측의 유효성을 검사 할 수 있습니다. 사람들이 가짜 토큰을 보내지 못하도록하고 싶습니다. 누군가가 토큰을 보내면 즉시 데이터베이스에 추가됩니다. –