사용자가 API 키를 사용하여 서버에 요청을 보내는 iOS 애플리케이션을 구축 중입니다. 나는 누군가가 기본적으로 소스 코드를 볼 수 있습니다 리버스 엔지니어링에 대해 읽은소스 코드의 API 키를 숨기기
NSSTRING* secretAPIkey = @"12345secretKey";
: 나는 소스 코드 내부의 정적 문자열이 키가해야 할 때 문제가 발생합니다 입력해도.
내 솔루션 : 1. 여러 정적 문자열, 다음 하나
nsstring *1 = @"1";
nsstring *2 = @"2";
nsstring *complete [nsstring stringwithformat:@"%@%@",1,2];
and so on..
로 결합의 Info.plist에 저장
-
을.
- 모든 사용자가 동일한 API 키를 필요로하기 때문에 키 체인이 모든 응용 프로그램에서 전역인지는 확실하지 않습니다.
다른 해결책이 있습니까? 최선의 접근 방식은 무엇입니까?
먼저 방어하려는 공격자의 레벨을 정의하십시오. iOS 응용 프로그램이 Apple 키로 Apple에 의해 암호화된다는 것을 고려하면 아무도 나머지에서 이진을 검사 할 수 없습니다. 액세스 키를 얻으려면 iOS 장치가 jailbroken되어 있고 해킹 도구가 설치되어 있어야합니다. 이러한 도구를 사용하면 실행하기 전에 앱을 실행하고 중지 할 수 있으며 그 시점에 이진 파일을 검사 할 수 있습니다. 이것은 당신이 보호하고있는 공격자의 레벨입니까? – zaph