놀라운 FPS를 사용하고 있으며 자바 코드에 비밀 키를 저장해야합니다. 그러나 누군가가 내 apk를 디 컴파일하여 키를 찾을 까봐 두렵습니다. apk를 직접 디 컴파일하여 키를 찾을 수는 없지만 VM 전문가는 아닙니다. 어떤 도움이 필요합니까?안드로이드 키 저장, 두려움 디 컴파일
답변
암호화 키를 응용 프로그램에 넣을 수없고 비밀로 유지할 수는 없습니다. 하나의 결정적인 프로그래머가 디 컴파일하여 키를 찾으면 그것을 세계와 공유 할 수 있습니다.
비대칭/공개 키 암호화가 원하는 솔루션입니다. 공용/개인 키 쌍을 작성한 다음 공개 키를 응용 프로그램에 넣고 개인 키를 직접 보유하십시오. 그런 다음 두 가지 작업을 수행 할 수 있습니다
- 애플리케이션 수 암호화 만 개인 키를 사용하여 암호를 해독 할 수있는 공개 키를 사용하여 메시지.
- 메시지는 개인 키를 사용하여 응용 프로그램의 공개 키를 사용하여 인증 할 수 있습니다.
사실. 하지만 앱에 개인 키나 공개 키를 넣으면 그 키를 사용하여 키를 해독 할 수 있습니다. –
@Patrick Boos : 공개 키로 개인 키를 계산할 수 없다는 점이 비대칭 암호의 핵심입니다. 이것이 작동하는 방식은 개인 키 (누군가와 공유하지 않고 서버에서만 사용)를 사용하여 서버에서 * 암호화 *하고 클라이언트의 앱에 * public * 키가있는 것입니다 해독 할 수있다; 또한 클라이언트의 응용 프로그램은 * public * 키로 서명하고 서버는 개인 키를 사용하여 확인합니다. 공개 키는 자유롭게 공유 할 수 있습니다. – Piskvor
@Piskvor 공개 키 암호화를 안전하게 유지하려면 개인 키가 비밀로 유지되어야합니다. 하지만 누군가가 응용 프로그램에 개인 키를 저장 한 경우 (예 : 디 컴파일) 그런 다음 공개 키로 인코딩 된 모든 비밀 데이터를 읽을 수 있습니다 (정확히 원래 응용 프로그램과 동일). 이것을 막을 수있는 방법이 있습니까? – Piotr
결정된 사람이 귀하의 키를 추출 할 수 있으며 실제로 그것에 대해 할 수있는 것이별로 없습니다. 어떻게 든 키를 난독 화하려고 시도 할 수 있지만 (키를 결정하는 방법에 대한 기준을 높임) 키를 가져 오지 못하게 할 수 있습니다.
그러나 비밀 키를 저장해야하는 이유에 따라 Asymmetric Key Cryptography을 사용할 수 있습니다. 개인 키를 안전하게 유지하면서 암호화 (해독이 아닌) 또는 인증 목적으로 제한 될 수있는 공개 키를 저장할 수 있습니다.
공개 키는 암호화 및 서명 확인에만 유용합니다. –
사람들이 어떤 프로그램을 디 컴파일하는 것을 "정말로"막을 수는 없습니다. 보안 모델은이를 고려하는 것이 좋습니다. :-) –
웹 서버 (키)에서로드하는 경우 다른 사람이 요청을 할 수 없도록하려면 어떻게해야합니까 (디 컴파일이라고 가정) –
http://en.wikipedia.org/wiki/Public-key_cryptography 요청을 인증하는 데 유용 할 수 있습니다. –