2013-03-12 2 views
3

그래서 Android 용 UrbanAirship과 통합되었습니다..properties 파일에 키를 저장하는 것은 나쁜 습관입니까

샘플 코드는 .properties 파일을 사용하여 API 키와 비밀 정보를 저장합니다. 이 파일은 APK를 확장 한 후 쉽게 액세스 할 수 있으므로 상당히 놀라운 것으로 나타났습니다.

중요한 데이터를 앱에 저장하는 것에 대해 논쟁을 시작할 생각이 없습니다. 이 키를 저장하는 것이 용납 될 수 없는지 알고 싶습니다.

그렇다면 더욱 안전하지만 간단합니다. 나는 현재 자신의 API 키를 전역 변수 파일에 정적 변수로 저장하고 있습니다.

답변

2

APK 내용이 암호화되어 있지 않으므로 .properties 파일에서 문자열을 컴파일 된 클래스보다 쉽게 ​​쉽게 추출 할 수 있습니다. Globals 클래스 내에서 암호화하여 저장하면 추출하기가 조금 더 어려울 수 있지만 사용자가 비밀로 유지할 것을 기대하지 마십시오.

0

키를 메모리에로드하는 보안 방법이 필요한 경우 런타임에 보안 채널을 통해 키를 자신의 서버에 요청하십시오. 프로그램에서 액세스 할 수있는 공유 환경 설정/데이터베이스에 키를 저장하더라도 루팅 된 장치는 모든 파일에 대한 액세스 권한을 가지고 있기 때문에이를 해결합니다. Class/Dex 파일은 언제든지 리버스 엔지니어링 할 수 있습니다.

dexguard과 같은 도구도 확인하십시오. 그것은 proguard보다 더 난독 화와 보안 기능을 제공합니다.

0

도시 비행선과 관련하여; .properties 파일에 입력하는 키와 비밀은 기본적으로 분석 호출 용이며 실제 "푸시"는 아닙니다. API 호출에 대해서도 마스터 비밀이 부여됩니다. 이것은 보호해야하는 앱 보안 값입니다. 이것이 Urban Airship이 앱 키와 마스터 비결을 요구하는 기기에서 푸시하는 것을 꺼리는 이유입니다. Urban Airship의 앱 키와 비밀번호 만 저장하는 경우 보안 문제가 없습니다.

관련 문제