iPhone 앱 번들에서 HTML 코드를 암호화하고 압축하여 첫 번째 시작시 포장을 풀기

StackOverflow https://stackoverflow.com/questions/612728

문제

내 클라이언트는 IP를 보호하기 위해 iPhone 번들의 의료 책에 대한 HTML 코드를 암호화/압축하려고합니다.

앱 번들을 위해이 파일을 준비하는 좋은 방법은 무엇이며, 앱의 첫 발사에서 암호 해독 및 압축을 제거하는 데 어떤 보완 라이브러리 (C, OBJ-C)를 사용해야합니까?

파일을 ~/문서로 복사 한 다음 작업하는 것이 최상의 솔루션처럼 보입니다. 생각?

도움이 되었습니까?

해결책

여기 몇 가지 생각이 있습니다.

책 텍스트가 모두 영숫자 데이터 인 경우 데이터를 ASCII로 저장하지 마십시오. 자체 이진 인코딩 형식으로 저장하십시오 (예 : 8 대신 5 비트를 사용하고 단어로 포장하십시오). 그것은 당신에게 약간의 압축, 약간 난독 화 및 매우 저렴한 (시계 사이클) 감압을 제공합니다. 당신은 즉시 액세스 할 수있는 데이터 형식을 가지고 있으며, 캐주얼 호기심 많은 해커를 텍스트에서 멀리 유지합니다. 시계 사이클은 나의 주요 관심사와 보안 두 번째입니다.

또 다른 아이디어는 일반적인 Blowfish 암호화에 대한 해독 키를 앱의 난독 화 형식으로 저장하는 것입니다. 예를 들어 복원하기 위해 홀수 작업이 필요한 2 ~ 3 개의 상수로 나뉩니다. 그러나 물론, 이제 Blowfish의 오버 헤드 또는 무엇이든 당신의 관심사가 될 것입니다.

완벽한 보안을 구현할 수 없으므로 (완벽 함이 매우 비쌉니다) IP 소유자는 전통적인 저작권 및 영업 비밀 기술을 사용하여 재산을 완전히 보호해야합니다. 당신은 해킹하기가 더 어려워졌지만, 도서관의 예약 된 부분에있는 선반에있는 책 만 부지런히 변호사에게 달려 있습니다 (사본은 없습니다!).

건배

다른 팁

이것은 매우 까다 롭습니다 ... 실제로 깨지기 어려워지는 것은 거의 불가능합니다. 추론 적으로 동기 부여 된 사람은 그것을 뚫을 수있을 것입니다. 당신은 그것을 조금 더 어렵게 만들 것입니다. 어쨌든, 당신은 분명히 번들 자체에 비밀 키를 저장할 수 없습니다. 서버에서 보안 채널을 통해 암호 해독 키를 안전하게 얻고 필요에 따라 사용해야합니다. 그럼에도 불구하고 탈옥을하는 사람은 아마도 달리기 프로그램을 통해 GDB를 실행하고 RAM +에서 비밀 키를 추출 할 수있을 것입니다. 본질적으로 디자인에 결함이 있습니다 ... 오프라인 액세스가 필요하지 않으면 안전한 Erver에서 필요에 따라 데이터를 가져 오는 것을 원할 수 있습니다. 적어도 정보 유출을 "스로틀"할 수 있습니다 ...

내가 당신이라면 문서를 암호화하고 필요에 따라 해독 할 것입니다. 탈옥 된 장치에서 해독 된 문서에 쉽게 액세스 할 수 있습니다.

암호화 기술에 대한 "보안 개요"문서 및 암호 운동 샘플 코드를 참조하십시오.

당신은 아마 그것을 좋아하지 않을 것이지만 가장 좋은 방법은 HTML을 사용하지 않는 것입니다. 해독 된 HTML을 UIWebView로 전달하면 악의적 인 사용자가 해당 레벨에서 훔치기 쉽고 암호화 알고리즘의 목적을 물리칩니다. 사용자 정의 도면 코드와 사용자 정의 암호화 백업 형식이있는 UIView 하위 클래스는 작업하기가 훨씬 더 어려울 것입니다.

에서 Mac OS X 및 iPhone OS 보안 서비스:

키 체인 서비스를 사용하여 소량의 데이터를 암호화하고 저장할 수 있습니다 ( 키 체인 서비스 참조그리고 키 체인 서비스 프로그래밍 안내서). Mac OS X에서 더 많은 양의 데이터를 암호화하거나 해독하려면 CSSM (Common Security Services Manager) 암호화 서비스 관리자를 사용할 수 있습니다. 이 관리자는 또한 디지털 서명을 작성 및 검증하고 암호화 키를 생성하며 암호화 해시를 생성하는 기능이 있습니다. iPhone OS에서 인증서, 키 및 신뢰 서비스 API는 암호화 키 생성, 디지털 서명 생성 및 검증 및 데이터 블록을 암호화하는 기능을 제공합니다. 보다 인증서, 키 및 신탁 서비스 참조.

그것은 항상 성능 (암호화가 자유롭지 않습니다)과 보안 (보안 및 기타 모든 것) 사이의 선택입니다. 그러나 새로운 것은 무엇입니까? 개별 파일을 충분히 작게 유지하면 암호 해독해도 속도가 느려지지 않을 수 있습니다. 또는 배경에 특정 파일이 해독 될 수 있도록 예측 암호 해독을 고려할 수 있습니다. 현재 보이는 파일에서 연결된 파일 등을 말하면 iPhone의 동시성이 꽤 흠이있을 수 있습니다 (모르겠습니다. 라이센스를 위해 현금을 줄이지 않았기 때문에). 또한 실제로 필요한 파일 만 암호화하여 성능 향상을 깨달을 수 있습니다. 인덱스/목차 또는 자주 액세스하는 파일이 실제로 암호화되어야합니까? 클라이언트가 걱정하는 IP로 계산됩니까?

압축의 경우 QuickLz (가장 빠른 엔진, 압축 비율이 높음)를 추천 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top