암호 알고리즘에 대한 취약점
인코딩을 통해 계정 비밀번호와 같은 민감 데이터를 감추어 보내는 것
취약하다고 알려진 알고리즘 : RC2, RC4, RC5, MD4, MD5, SHA1, DES, 3DES
- 취약점 진단 과정
- loginActivity.java 파일에서 아이디는 base64 비밀번호는 aes 암호화 하는 것 확인 가능
- 위 코드에서 주의 깊게 봐야 할 클래스는 CryptoClass
- AES에 사용된느 키 값을 String 변수에 그대로 넣는 방식으로 하드코딩하여 취약점 노출
- 코드 내부에 상수 형태로 암호화키를 노출하면 모바일에서 자바 언어 특징으로 인해 암호화키를 노출할 위험성이 커짐
- 키 값을 노출하고 싶지 않을 때는 해시 함수를 사용하는 것이 안전, 키값을 외부 디렉터리에서 불러오면 안전
- 초기화 벡터에 전부 0을 넣어 취약점 생성
- 초기화 벡터 값이 같은 경우 비슷한 두 개의 평문을 암호화했을 때 앞부분의 블록들이 서로 같아지는 문제점이 노출
- 전부 0으로 초기화 시킬 경우 초기화백터값이 노출되어 공격자가 암호문을 유추할 수 있음
- 초기화 벡터를 설정할 때는 가능한 한 암호 알고리즘이 사용되기 직전에 걔산하여 사용하고 사용한 직후에는 0으로 채우는 것이 안전
- AES/CBC/PKCS5Padding : 초기화 벡터는 AES 알고리즘 사용, CBC 모드로 운용, PKCS5 방식으로 패딩 사용
- 솔트값 없이 사용할 경우 노출 위험성 증가
- 취약점 대응방안
- 표준화 된 알고리즘 사용
'정보보안 > 안드로이드해킹' 카테고리의 다른 글
안드로이드 모의해킹) 안전하지 않은 로깅 메커니즘 (0) | 2020.09.08 |
---|---|
안드로이드 모의해킹) 메모리 내 민감한 정보 저장 (0) | 2020.09.03 |
안드로이드 모의해킹) 안전하지 않은 웹 뷰 실행 (0) | 2020.07.28 |
안드로이드 모의해킹) 안전하지 않은 콘텐츠 프로바이더 접근 (0) | 2020.07.28 |
안드로이드 모의해킹) 루팅 탐지 및 우회 (0) | 2020.07.28 |
댓글