[flutter] 플러터에서 device_info 패키지를 활용하여 앱의 보안 수준을 높이는 방법

소개

보안은 모바일 앱 개발의 중요한 측면 중 하나입니다. 특히 앱이 실행되는 디바이스의 정보를 수집하고 처리하는 경우에는 보안에 더욱 신경을 써야 합니다. 이때 플러터에서는 device_info 패키지를 사용하여 디바이스의 고유 식별자와 같은 중요한 정보를 안전하게 처리할 수 있습니다.

device_info 패키지란?

device_info 패키지는 플러터 앱에서 현재 실행 중인 디바이스의 정보를 가져올 수 있게 해주는 패키지입니다. 이 패키지를 사용하면 디바이스의 고유 식별자, 운영체제, 모델명 등의 정보를 알아낼 수 있으며, 이를 활용하여 앱의 보안 수준을 높일 수 있습니다.

device_info 패키지 사용 방법

  1. device_info 패키지를 pubspec.yaml 파일의 dependencies에 추가합니다.
dependencies:
  device_info: ^2.0.0
  1. 패키지를 import 합니다.
import 'package:device_info/device_info.dart';
  1. 디바이스 정보를 얻기 위한 메서드를 작성합니다.
Future<void> getDeviceInfo() async {
  DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
  if (Platform.isAndroid) {
    AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
    // 안드로이드에서 사용할 수 있는 정보(androidInfo로 접근 가능)
    print('Device Model: ${androidInfo.model}');
    print('Android ID: ${androidInfo.androidId}');
    // ...
  } else if (Platform.isIOS) {
    IosDeviceInfo iosInfo = await deviceInfo.iosInfo;
    // iOS에서 사용할 수 있는 정보(iosInfo로 접근 가능)
    print('Device Name: ${iosInfo.name}');
    print('Device ID: ${iosInfo.identifierForVendor}');
    // ...
  }
}
  1. 앱 실행 시 해당 메서드를 호출하여 디바이스 정보를 얻어옵니다.
...

void main() {
  runApp(MyApp());
  getDeviceInfo();
}

...

보안 수준을 높이기 위한 활용

device_info 패키지를 사용하면 다양한 디바이스 정보를 알 수 있으므로, 이를 활용하여 앱의 보안 수준을 높일 수 있습니다. 예를 들어, 앱에 인증 기능이 있는 경우, 디바이스의 고유 식별자를 사용하여 중복 가입을 방지할 수 있습니다. 또한, 모델명이나 운영체제 버전 등을 체크하여 앱을 루팅 또는 탈옥한 디바이스에서의 실행을 방지할 수도 있습니다.

다만, 디바이스 정보를 활용하는 경우 개인정보 보호와 관련해 주의해야 합니다. 민감한 개인정보나 보안에 취약한 정보는 안전하게 처리하여 사용자의 프라이버시를 보호해야 합니다.

결론

device_info 패키지를 활용하여 플러터 앱의 보안 수준을 높일 수 있습니다. 디바이스의 고유 식별자와 관련된 정보를 사용하여 중복 가입 등의 문제를 방지하거나, 루팅 또는 탈옥 디바이스에서의 실행을 막을 수 있습니다. 개인정보 보호에 주의하며, 적절하게 디바이스 정보를 활용해보세요.