마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Keystore에 있는 각종 key들은 역컴파일시 확인할수 있는 방법이 있나요?

0 추천
saredpreferences로 데이터 저장시 간단한 PBE기반 암호화를 거쳐서 저장하게 되는데

이때 사용되는 시크릿key 스트링이 역컴파일시 그대로 노출되는 문제가 발생했습니다.

그래서 생각해본 대안이, keystore에 있는 privatekey를 해싱하여 key로 만든 후, 이 key를 secret key로 쓰는 방안을 생각해봤는데, 이 private key는 역컴파일시 확인할수 없는게 맞나요? 그리고 추가적으로 역컴파일한 코드를 다른 컴퓨터에서 빌드될 경우 원래 keystore는 어떻게 되는건가요?
gearex2003 (220 포인트) 님이 2016년 8월 18일 질문

1개의 답변

0 추천

 keystore에 있는 privatekey를 해싱하여 key로 만든 후, 이 key를 secret key로 쓰는 방안을 생각해봤는데, 이 private key는 역컴파일시 확인할수 없는게 맞나요?

=> app에는 keystore에서 public key정보만 들어갈 뿐 privatekey 정보는 들어가지 않기 때문에 역컴파일시 확인할수 없습니다만. Privatekey자체를 app에서 모르니 secret key로 사용하는 것도 불가능합니다.

 

해킹을 하면 다른 keystore로 서명을 하여 app 자체의 public key가 달라지기 때문에

특정 key를 private key로 암호화 한 후 public key로 복호화 한 값을 "secret key" 로 사용하는 건  가능합니다. 단지 이것도 "secret key" 를 알아만내면 하드코딩으로 넘길 수 있는 부분이라.

보안이 중요한 어플이라면 가급적이면 NDK를 사용하여 native에서 암호화 처리를 하시는게 좋을 듯 합니다.

익명사용자 님이 2016년 8월 18일 답변
...