2012-11-26 2 views
6

에 부정적인 투표하는 것은 정말 문제 해결에 도움이되지 않는다는 것을 제쳐두고,안전한 앱 데이터는 아이폰

확인을 편집했다. 당신이 도움이되는 말을하지 않고 문제에 관심이 없다면, 페이지를 변경하십시오. 대신 아이디어가 또는 다른 방법을 알고 단순히 관심이 있다면 완벽하지 않거나 단순히 실험 아이디어 경우에도, 당신의 의견을 환영합니다

문제 :

내가 필요 iPhone 응용 프로그램에 응용 프로그램 데이터를 저장합니다.

우리는 처음에는 고전적인 NSDocumentDirectory 경로를 사용하여 데이터를 저장했습니다 ...하지만 "안전"한 방법은이 방법입니까?

jailbroken 장치를 고려하지 않고 (나는 지금이 문제에 관심이 없다) 모든 간단한 장치에서 모든 사용자가 간단한 iPhone 탐색 소프트웨어를 사용하여이 폴더로 이동하여 콘텐츠를 엉망으로 만들 수 있다고합니다. , 효과적으로 해킹.

이 경우 보안 된 일반 데이터 (이 경우 반드시 비밀번호는 아님)를 저장하는 데 가장 적합한 "장소"또는 "방법"은 무엇입니까?

이 경우에도 키 체인을 올바른 방법으로 사용하고 있습니까? 아니면 더 나은/다른 방법이 있습니까?

주 및 핵심 질문 :

내가 암호화하고 여기에

문제가 다르다 "콘텐츠를 난독 또는 보호"에 대해 내가 이야기하지 키 등으로 데이터를 보호에 대해 알고. 따라서 이렇게 넣으십시오.

"사용자가 파일 (암호화 된 데이터, sql 파일, 원하는 파일)이 저장된 폴더에 사용자가 액세스 할 수있는 방법을 피하고 어떤 방식 으로든 그들을 망칠 수 있습니다 (이 그들을 제거에 복사, 16 진수 편집기로 액세스하고 무엇이든 값을 수정 될 수 있음).

그것은 그들이 점과 무엇을 아니라, 을 대신 훨씬 더 제한적인 것은 확인 방법 사용자가 연락 할 수 없음

감사합니다.

+0

나는 아래 표를 얻는 데있어서 좌절감을 느낍니다 (특히 건설적인 의견을 거부하는 사람들에게서).하지만 투표가 감소하면 미래 방문자가 질문을하는 데 도움이됩니다. 우리 중 많은 사람들은 설명 할 수 없거나 논쟁의 여지가있는 투표를 가지고 있으며 내가 말할 수있는 것은 모두 그것이 씻겨 나옵니다. 고립 된 투표에 대해 걱정하지 마십시오. 이 경우에는 [FAQ 지침] (http://stackoverflow.com/faq)을 준수하지 않는다고 생각했다고 추측 할 수 있습니다. 나는 모른다. 이것이 왜 그렇게 투표되었는지에 대한 피드백을 원한다면 [Meta] (http://meta.stackoverflow.com/)에 대한 의견을 구할 수 있습니다. – Rob

+1

귀하의 질문에 대한 답변으로, 나는 솔루션이 일반적으로 암호화 및/또는 디지털 서명 또는 귀하의 응용 프로그램 데이터의 CRC를 도입하여 데이터가 변경되지 않았는지 또는 그렇게 할 수 있는지를 확인할 수있는 조합이라고 생각합니다. 이 상황을 확인하고 적절한 오류를 생성 할 수 있습니다. 액세스/변경을 막을 수는 없지만 적어도 액세스 및 변경을 식별하고 정상적으로 처리 할 수 ​​있다고 가정하는 것이 현명합니다. 하지만 일반적으로 암호화 과정은 파렴치한 사람들이 데이터를 읽지 못하도록 방지하고 변경 사항이 있는지 확인하는 기능을 모두 갖추고 있습니다. – Rob

+0

시간 내 주셔서 감사합니다. 투표에 대한 좌절감은 주제에 대해 충분히 알지 못하는 사람이 너무 자주 질문을하는 것이 분명한 것으로 생각하고, 그다지 분명한 사실이 없다고 생각할 때 어떤 노력 (또는 능력)도 없다는 사실에서 비롯됩니다. 진짜 질문을 대표한다. 평행선을 원한다면 C++에 대한 지식에서 누군가가 실제로 10/10라는 점수를 얻었을 때와 같을뿐입니다. 왜냐하면 그들이 알고있는 것이 실제로 필요하다고 생각하기 때문입니다. 알려진 :) 그리고 우리는이 ir가 거의 사실이 아니라는 것을 압니다. –

답변

4

암호화 알고리즘을 사용하여 데이터를 보호하고 sqlite db 또는 문서 사전에 파일을 저장할 수 있습니다.

이 응용 프로그램은 보안 키를 사용하여 데이터를 암호화하거나 해독하는 AES 알고리즘을 설명하는 application을 참조하십시오. 응용 프로그램의 저장소 AES256AndBase64에서

사용 도우미 클래스, 당신의 필수 파일 #import "NSString+AESCrypt.h".

사용 AES256EcryptWithKey:AES256DecryptWithKey: 방법/암호화 데이터를 해독 :

NSString* [email protected]"Steve Job"; 

NSLog(@"Normal String- %@",dummyString); 

NSString* [email protected]"apple"; 

NSString *encryptString = [dummyString 
           AES256EncryptWithKey:encrypt_decrypt_Key]; 

NSLog(@"Encrypt String- %@",encryptString); 

NSString *decryptString = [encryptString 
          AES256DecryptWithKey:encrypt_decrypt_Key]; 

NSLog(@"Decrypt String- %@",decryptString); 

을 아니면에서 iOS 5를 사용하는 경우 이상이 blog 봐 있습니다.

+0

안녕하세요 Mayur, 답변 주셔서 감사합니다,하지만 다른 문제를 해결하기 위해 노력하고 있습니다. 나는 그것을 더 잘 설명하기 위해 질문을 편집했다. 자세한 정보가 필요하면 알려주십시오. 하지만 본질적으로 내가 찾는 것은 데이터에 대한 모든 종류의 액세스를 거부하는 것입니다. –

0

iPhone에서 앱을 삭제 한 후에 키 체인 값이 지워지지 않습니다.

암호화는 1 가지 방법입니다. 또는 SHA 또는 MD5와 같은 해시 알고리즘을 사용하여 데이터를 해시 할 수 있습니다. 해싱 후 데이터와 해시 된 데이터를 모두 NSDocumentDirectory에 저장합니다. 그리고 데이터가 필요할 때 해시 된 데이터를 확인하여 변경되었는지 확인하십시오.

+0

귀하의 의견을 보내 주셔서 감사합니다 Arda,하지만 더 많은 솔루션을 찾고 있습니다. 내가 풀려고하는 문제를 명확히하기 위해 질문을 편집했습니다. 더 많은 정보가 필요하면 알려주세요. –