[android] 안드로이드 위치 정보 보안 측면
안드로이드 기기에서 위치 정보는 많은 애플리케이션에서 사용되고 있습니다. 하지만 위치 정보를 취급할 때 보안 문제도 주의해야 합니다. 안드로이드에서 위치 정보 보안을 강화하기 위한 몇 가지 가이드라인이 있습니다.
1. 권한 관리
애플리케이션이 위치 정보에 접근하려면 사용자로부터 권한을 받아야 합니다. 안드로이드 6.0 (마시멜로)부터는 런타임 권한 요청을 통해 사용자에게 권한을 요청해야 합니다.
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity,
new String[] { Manifest.permission.ACCESS_FINE_LOCATION },
MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
}
2. 보안 프로토콜 사용
앱이 위치 정보를 전송할 때 안전하게 전송하기 위해 HTTPS 프로토콜을 사용해야 합니다. 민감한 위치 정보가 유출되는 것을 방지하기 위해 SSL/TLS를 이용한 보안 접속을 권장합니다.
3. 사용자 권한 다시 확인
애플리케이션이 실행 중에는 위치 정보에 대한 사용자 권한이 변경될 수 있습니다. 따라서 위치 정보에 접근하는 부분에서 사용자 권한을 체크하는 코드는 주기적으로 실행되어야 합니다.
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 권한이 허용된 경우
} else {
// 사용자가 권한을 거부한 경우
}
return;
}
}
}
안드로이드에서 위치 정보 보안은 사용자의 프라이버시를 보호하는데 중요한 역할을 합니다. 개발자는 애플리케이션을 작성할 때 이러한 보안 측면을 고려하여 안정성을 높이는 작업이 필요합니다.
Reference
- 안드로이드 개발자 가이드: 안드로이드의 위치 서비스 사용하기
- 안드로이드 개발자 가이드: 안드로이드 6.0 런타임 권한 요청
- OWASP Mobile Security Project: Location Privacy