2012-10-30 2 views
1

ios에 대한 응용 프로그램이 있습니다. 마지막으로 우리는 코드 명을 작성했지만 실행 파일 자체에 추가 보안 검사를 추가하고 싶습니다.ios 응용 프로그램에 대해 코드화 된 응용 프로그램 인증서 정보를 얻는 방법

사과가 사과에 서명했다는 것을 알고 있습니다. 내 사과에서 사과 정보를 얻는 방법은 무엇입니까? 애플 공개 키 또는 다른 뭔가?

+0

나는 이것을 불법 복제 탐지 용으로 가정하고 있습니까? 아니면 iOS 앱이 충족해야하는 엄격한 보안 기대치가 있습니까? iOS는 매우 역동적 인 플랫폼이라는 것을 알아야하며 커널 수준을 모니터링하고 계측을 수행하는 코드를 실행하지 않고도 높은 수준의 보안을 보장 할 수있는 방법은 거의 없습니다. – yfrancis

답변

1

당신은 애플의 Fairplay DRM에 대한 가정을하지 말아야한다. 당신이 그것을 검증하려고한다고 가정 할 때, 애플의 키를 가지고 있지 않으면 이것을 할 수있는 방법이 없다. 그러나 내가 생각하는 침해/불법 복제에 대한 다른 지표들이있다. 당신이 찾고있는.

앱이 변조되었는지 확인하는 방법은 여러 가지가 있습니다. Apple의 Fairplay DRM이 안전하다고 가정 해 보겠습니다. 그러면 암호화되지 않은 상태에서 앱이 실행되는 것을 감지하면 조작 된 것일 가능성이 높습니다. 해적판 일 가능성이 큽니다. LC_ENCRYPTION_INFO 세그먼트 (here에 대한 자세한 내용)의 cryptid 비트를 확인할 수 있습니다. 그러나 불법 복제 도구는 요즘 훨씬 정교하며 많은 사람들이 런타임에 cryptid 값을 패치합니다. 로드 된 라이브러리를 확인하기 위해 dyld_* API를 사용하고 해커가 cryptid로드되면 앱이 손상되었을 수 있습니다. 그들은 물론 라이브러리의 이름을 바꿀 수 있으며 다시 사각형으로 돌아갑니다. 앱이 실행되는 동안 그들은 항상 디스크의 cryptid 비트의 값을 변경할 수 있으며 앱이 종료되면 다시 전환 할 수 있습니다.

그래서 여러 가지 방법으로 탐험 할 수 있지만 실제로는 할 수있는 일이 없습니다. 애플은 기술 및 법적 조치를 통해 jailbreaking을 막으려 고 노력했지만 실패했다. 그리고 당신이 탈옥 수있는 한, 당신은 바이너리를 이러한 방식으로 조작 할 수 있습니다.

+0

예 내 앱이 점심 식사를하는 동안 내 앱이 인증서 정보로 변조되었음을 확인하고 싶습니다. 인증 정보를 확인하고 사용자에게 알림을 표시 할 수 있습니다. – user1773004

+0

인증서에 의해 당신은 정말로 그 서명되고 암호화되었는지를 확인해야한다고 생각합니다. 어떤 경우에는 cryptid check이 작동 할 것입니다. 그러나 내가 말했듯이, 이것은 'DYLD_INSERT_LIBRARIES'를 통한 동적 코드 개입과 같은 다른 코드가 프로세스 내에서 실행되지 않는다고 보장 할 수 없습니다. 당신이 해적들과 고양이와 마우스 게임을하고 싶지 않다면 이것은 아마도 가장 혼자 남겨진 것들 중 하나입니다. – yfrancis

+0

아시다시피 애플 스토어에 제출하기 전에 제 개인 키로 코드를 서명했습니다. 애플은 사용자가 앱을 다운로드 할 때 userinfo로 앱을 암호화했습니다. 다른 앱 스토어에서 다운로드 한 앱을 보호하고 싶습니다. – user1773004

관련 문제