NetGuard의 저자로서 저는이 분야에서 직접 경험했습니다.
로컬 VPN 기반 방화벽의 단점은 (Android) Linux 커널이 소켓 기반 연결을 통해 모든 트래픽 유형을 전달할 수 없기 때문에 모든 트래픽 유형을 처리 할 수 없다는 것입니다. 예를 들어 일부 제조업체의 IP 호출에 사용중인 IPsec이 있습니다. 이것에 대한 부분 (IPsec이 아닌) 솔루션은 원격 VPN 서버를 사용하여 트래픽을 전달하는 것이지만 많은 사람들이 개인 정보를 현명하게 받아 들일 수 없으며 추가적인 복잡성과 추가 배터리 사용이있을 수 있습니다. 실제로 TCP 및 UDP 트래픽 처리는 NetGuard 사용자의 99,9 %에게 충분합니다. Android 5부터는 애플리케이션이 VPN으로 라우팅되는 것을 제외 할 수 있습니다 (VPN 구현 애플리케이션은 이것이 필수인지 선택인지 결정). 모든 트래픽을 전달할 수 없어서 발생하는 문제를 해결하는 데 사용할 수 있습니다. 또 다른 옵션은 NetGuard가 일부 제조업체의 IP 호출을 '수정'하는 데 사용하는 주소 (범위)를 제외하는 것입니다.
또 다른 단점은 패킷을 검사하고 전달해야하기 때문에 일부 처리가 필요하기 때문에 트래픽을 전달하면 모바일 장치에서 배터리 사용량이 증가한다는 것입니다. Linux 커널에 통합 된 iptables를 사용하는 것이 배터리 친화적이므로 더 효율적입니다.
일반적으로 Android는 시스템 응용 프로그램 및 구성 요소의 트래픽을 포함하여 모든 트래픽을 VPN으로 라우팅하지만 제조업체는 특정 트래픽 유형을 제외하기로 결정하여 VPN 기반 방화벽으로 얻을 수있는 보안을 줄일 수 있습니다.
NetGuard는 광고 차단을 제공하기위한 DNS 요청을 제외하고는 데이터 자체를 분석하지 않지만 개인 정보 보호 문제가 발생할 수 있습니다. 그럼에도 불구하고 기술적으로 볼 때 이것은 iptables로 가능한 것 이상의 데이터 스트림에 대한 상태 전체 검사가 가능하기 때문에 VPN 기반 방화벽의 장점입니다 (여전히 그렇게 호출하려는 경우). 관련된 처리로 인해 배터리 사용 비용이 발생할 수 있습니다. SSL 스트림을 검사하려면 로컬 MiT 공격이 필요합니다.
또 다른 단점은 안드로이드가 VPN 체인을 허용하지 않기 때문에 방화벽이 그러한 서비스 자체를 제공하거나 다른 VPN에 전달 또는 프록시 메커니즘을 제공하지 않는 한 로컬 VPN을 사용하여 방화벽을 구현하면 실제 VPN 서비스를 사용하지 못하게됩니다 신청.
마지막으로 VPN 기반 방화벽은 실행할 방화벽 VPN 서비스를 제공하는 응용 프로그램에 따라 다릅니다. 이것은 사소한 것처럼 보이지만 일부 제조업체 Android 버전 / 변형은 메모리가 부족한 상태에서 프로세스를 너무 적극적으로 종료하기 때문에 (IMHO는 Android가 VPN 서비스를 제공하는 응용 프로그램을 종료하면 버그입니다).
마지막으로 안드로이드 기기의 루팅은 점점 더 어려워지고 있으며 VPN 기반 방화벽은 많은 사람들에게 유일한 선택입니다. Google은 언제라도 시스템 기반 방화벽을 추가 할 것으로 기대하지 않습니다. 광고 수익에 큰 영향을 미칠 수 있기 때문입니다. iOS에는 시스템 기반 방화벽이 있습니다.
질문이 있으면 알려 주시면 답변을 드리겠습니다.