2013-05-07 1 views
2

strings.xml에 내 비밀 키를 넣습니다. 나는 apktool과 리버스 엔지니어링에 의해 확인 내가 키가 난안드로이드에있는 strings.xml 파일에서 내 비밀 키를 보호하는 방법

# static fields  
.field public static final secretkey:I = 0x7f0a0035 

가 나의 키 문자열을 발견 한 후 볼인지 여부를 확인하기 위해 해당 파일에서 확인할 때 나는 R의 $의 string.smali로 내 strings.xml의 파일을 가지고 이 ID 또는 다른 프로세스에서 키를 가져올 수있는 가능성은 strings.xml 파일에서 내 비밀 키를 가져 오는 것입니다.

+2

에 당신은 또한 볼 수 있었다. 따라서이 응용 프로그램을 배포하려는 경우 누구나 동일한 작업을 수행하고 프로세스에서 사용자의 비밀 키를 발견 할 수 있습니다. – likeitlikeit

+0

암호화에는 아무런 요점도 없습니다. 왜냐하면 어떤 사람들은 더 영리해질 것이기 때문입니다. 어서 ... – FWeigl

+0

apktool과 같은 도구를 사용하면 apk에서 모든 리소스 파일을 가져올 수 있으며이 파일에는 string.xml 파일도 명확한 방법으로 포함되어 있습니다. – hardartcore

답변

1

당신은 strings.xml의 비밀 키를 저장 안

더 많은 보안 옵션은 다음과 같습니다 모드 된 SharedPreferences 또는 내부 스토리지 및 localY 물품. 대부분의 경우 전화로 키를 생성하는 것이 좋습니다. 그래서 모든 전화기에는 세 가지 키가 있습니다.

그러나 절대적인 보안이 없다는 것을 기억하면 뿌리깊은 전화 사용자는 그의 전화로 무엇이든 할 수 있습니다.

+0

내 알고리즘은 서버 측에서 정확히 같아야하는 두 개의 키와 메시지를 결합하여 암호화하는 프로세스로 개발되었습니다. 해독하기 어려운 프로세스이지만 문제는 응용 프로그램 자체에서 서버에 연결하는 동안 키 중 하나를 저장하는 것입니다. 몇 가지 분명한 제안을하십시오. –

0
  1. 시도해보십시오. 런타임에 키를 생성하십시오. 비트 조작/키를 섞어서이 작업을 수행 할 수 있습니다.

  2. 사용자 지정 암호화를 사용하고 런타임에 키를 해독합니다.

  3. 여유가 있다면 서버에서 키를 가져올 수 있습니다.

1

Igor은 strings.xml 또는 코드에 절대로 비밀 키를 저장하지 마십시오.

앱을 처음 실행할 때 전화로 생성하거나 서버에서 가져올 수 있습니다.

-1

이고르와 동의합니다.

당신이 인증 토큰 또는 유사한 무언가를 저장해야하고 당신은 적어도 영리한 당신을있는 그대로 다른 사람이 있다는 것을 예상해야한다

Account Manager