2012-03-09 2 views
2

원격 SSL 인증에 사용되는 암호 변수가있는 경우 소스 코드에 안전하게 저장합니까?Objective C 소스 코드의 중요한 정보 보호

NSString * password = @"password"; 

더 좋은 방법이 있습니까?

업데이트 : 혼란을 드려 죄송합니다, 하지 대신, 나는 우리의 자신의 백엔드를 호출하는 데 사용되는 암호를 저장하고, 사용자 암호를 저장 오전, 모든 응용 프로그램은 동일한 암호를 사용합니다.

답변

2

내 새 응답 :

이되지 시도 기간을 백 엔드에 액세스 할 정적 암호를 사용 할 수 있습니다. 원하지 않는 사람이 암호가 무엇인지 결정하면 어떻게됩니까? 왜 사용자 이름 & 암호를 사용하지 않습니까?

앱만 백엔드 서버에 액세스 할 수 있도록 공개 키 또는 내장 인증서를 사용할 수도 있습니다.

내 원래 대답 : 당신은 키 체인을 알고 싶어처럼

는 소리.

http://maniacdev.com/2011/07/tutorial-how-to-use-the-ios-keychain-to-store-names-and-passwords/

그리고 here is a related question that talks about the security of Keychain under iOS :

는 여기에 대해 이야기 튜토리얼입니다.

당신은 프로그램을 모든 사용자에 대해 저장 정적 암호를 가지고 있지만, 대신 각 사용자가 인증을 위해 그/그녀의 계정 & 암호를 설정 한 후 저장이 안 그 키 체인 물건.

+0

나는 내 질문을 업데이트했다. 대신 사용자 비밀번호를 저장하지 않고 대신 백엔드에 전화 할 비밀번호를 저장하고있다. 사용자는 그것을 모르고있다. – Howard

+0

원래 질문이 조금 더 명확하면 좋았을 것입니다. 나는 내 대답을 수정했다. –

+0

감사합니다. 그러나 공개 키를 사용하더라도 사용자가 쉽게 발견 할 수 있습니까? 코드에서 숨길 수있는 더 나은 방법이 있다면 생각하고 있습니다. 나는 그것을 할 수있는 완벽한 방법을 가질 필요가 없다. 단지 문자열로 저장하는 것이 좋을 것이다. – Howard

0

NO!

앱을 빌드하십시오. 터미널로 이동하여 strings을 입력 한 다음 실행 파일을 터미널로 드래그하고 Enter 키를 누릅니다. 비밀 번호 암호가 일반 텍스트로 표시됩니다.

해시를 저장해야합니다.

+0

실행 파일을'strings' 터미널로 드래그했지만로드가 계속되면 아무 것도 볼 수 없습니다. – Howard

1

응용 프로그램 내에 포함 된 텍스트는 쉽게 추출 할 수 있습니다. 이 문제를 해결할 실제 방법은 없습니다. strings 도구를 사용하면 누구나 앱에 정적으로 포함 된 모든 텍스트 콘텐츠를 볼 수 있습니다. 그러나 문자열을 여러 개의 정적 문자열로 나눠서 올바른 순서로 연결하면 앱에 포함 된 비밀번호를 리버스 엔지니어링하는 것이 훨씬 어려울 것입니다.

필자는 유사한 질문 (How Safe is Information Contained within iPhone App Compiled Code)을 살펴보고 특히이 질문에 대한 나의 대답을 통해 내가 의미하는 바를 자세히 설명 할 것을 권합니다. (니므롯의 그 질문에 대한 논평 또한 흥미 롭다.)