6

서명 된 인증서 앱을 알 수있는 방법이 있습니까?코드에서 iOS 개발자 인증서에 액세스하는 방법

다른 개발자 인증서로 사임하지 못하도록하고 싶습니다.

클라이언트 - 서버 애플리케이션이 있다고 가정 해 보겠습니다. 그리고 서버는 개발자 인증서와 연관된 고유 키을 유지합니다.

그래서 서버에 대한 모든 요청에 ​​대해이 키를 전달할 것이고, 앱이 다른 개발자의 인증서로 재 조립되면 서버는 이것을 알게 될 것입니다.

이것은 가능합니까? 아니면 퇴임을 막을 다른 방법이있을 수 있습니까?

답변

1

앱 번들에 포함 된 embedded.mobileprovision 파일의 데이터를 수동으로 구문 분석하여 앱 서명에 사용 된 인증서 및 프로비저닝 프로파일을 알 수 있습니다. 파일을 살펴보면 인증서 및 프로비저닝 프로파일에 대한 정보를 볼 수 있습니다. 당신이 아무도 할 수 있기 때문에이 작업을 수행해야 할 것입니다 이유를 잘 모르겠어요

그러나

NSString* bundleDirectory = [[NSBundle mainBundle] bundlePath]; 
NSString* db = [NSString stringWithFormat:@"%@/embedded.mobileprovision", bundleDirectory]; 
NSData* data = [NSData dataWithContentsOfFile:db]; 
// parse through the data to get your provisioning profile info. I'd recommend opening up the profile that is inside your .app to see how it is structured. 

: 여기

프로그래밍하여 앱 내에서 임베디드 프로파일 데이터를 얻는 방법의 예 앱의 번들 ID에 대해 제공 한 프로비저닝 프로파일과 일치하는 올바른 인증서가 없다면 앱에 다시 서명하십시오.

유일한 방법은 번들 ID를 소유 한 Apple 개발자 계정에 자격 증명을 부여하거나 인증서 및 프로비저닝 프로파일에 다른 사람이 액세스 할 수있는 권한을 갖는 것입니다.

후자가 발생한 경우 Apple 개발자 계정에서 해당 프로비저닝 프로파일을 취소하고 보안 위반을 해결하기 위해 새 프로파일을 만들어야한다고 생각합니다. 이렇게하면 개발자 계정에 액세스 할 수있는 한 클라이언트와 서버간에 코드를 작성하여 확인하는 대신 항상 이와 같은 보안 위반을 밟을 수 있습니다.

+0

무엇이 [this] (https://gist.github.com/RichardBronosky/2878446) – wiruzx

+0

나는 그걸 사용하지는 않았지만 그것이 어떻게 인증을 통과하고 Apple을 통해 상점에 제출할 수 있는지 모르겠습니다. 매장에두고 있다고 가정하면 목표입니다. 그게 가능한지, 아니면 누군가가 이런 식으로 처음으로 앱을 납치 한 경우에 분명히 관심을 가질 것입니다. – foggzilla

관련 문제