로컬 암호화 이슈
정의
- 개인 정보처럼 민감한 정보일 수도 있고, 민감한 정보가 아닐 수 있다. 정보를 저장해야 할 경우에는 어떠한 방법으로 저장해야 할 것인지 생각해야한다.
발생 위치
- com.andorid.insecurebankv2_preferences.xml, myShaeredPreferences.xml
영향
- 평문으로 저장하면 정보가 공격자에게 노출된다.
진단
“adb shell” 명령어로 인시큐어뱅크 앱의 데이터가 저장되는 곳으로 이동했다.

데이터 위치에 myShaeredPreferences.xml 파일과 insecurebankv2_preferences.xml 파일이 있다.

adb pull 명령어로 디렉터리의 myShaeredPreferences.xml 파일을 복사했다.

암호화되어 있는 사용자 아이디를 담고 있는 EncryptedUsername과 문자열 변수와 패스워드와 같은 superSecurePassword 문자열 변수가 보인다.

파일을 생성한 후 사용자의 이름과 패스워드를 변수에 저장하여 CryptoClass)로 암호화하는 것을 확인할 수 있다.

사용자 아이디는 base64로 인코딩되어 있으며 인코딩 값은 “ZGluZXNo”이다. 복호화 하면 dinesh이다.

Cryptoclass 파일로 이동한 후에 소스 코드를 보면 AES에서 사용하는 대칭키 내용을 확인할 수 있다.

대칭 키 값인 keyBytes 이고 textBytes 값을 받아 패스워드를 암호화한 후 aesEncryptedString 함수로 리턴한다.

대응방안
대칭키를 사용해 암호화하는 알고리즘에서 고유키가 제대로 보호하지 못하면 아무리 강력한 암호화 방법을 사용하더라도 데이터를 안전하게 보관하지 못한다.