GNSS 재밍 및 스푸핑 감지

GNSS 간섭은 다음 두 가지 카테고리로 분류할 수 있습니다.

  • 재밍
  • 스푸핑

재밍 공격은 GNSS와 동일한 주파수 범위에서 강력한 무선 신호를 브로드캐스트하는 방식으로 이루어지며, 이로 인해 GNSS 위성에서 브로드캐스트되는 상대적으로 약한 신호가 가려질 수 있습니다. 이로 인해 휴대전화를 비롯한 GNSS 수신기가 위치를 계산하지 못할 수 있습니다.

스푸핑 은 실제 GNSS 신호인 척하는 가짜 신호가 브로드캐스트되는 더욱 정교한 공격입니다. 이러한 가짜 신호는 GNSS 수신기를 속여 실제와 매우 다른 위치 또는 시간을 계산하도록 할 수 있으며, 이는 지도 및 내비게이션 앱이 사용자에게 잘못된 정보를 제공하도록 혼동을 일으키기에 충분합니다.

GNSS 스푸핑 또는 재밍 정보

신호 강도 또는 반송파 대 잡음비 (C/N0)와 휴대전화의 GNSS 라디오의 자동 게인 제어 (AGC)는 간섭을 나타내는 좋은 지표가 될 수 있습니다.

스푸핑 또는 재밍이 관찰되면 AGC가 낮아지는 경향이 있습니다. 라디오가 강력한 전파를 수신하면 수신된 신호의 전력을 조정하기 위해 증폭기 (AGC)의 게인을 낮춥니다.

간섭을 나타내는 신호 강도 비교
그림 1. 간섭이 발생하면 AGC가 낮아지고 (빨간색 영역), 간섭이 제거되면 정상 수준으로 다시 증가합니다 (녹색 영역). (이미지 출처: https://doi.org/10.33012/navi.537)

하지만 C/N0의 동작은 재밍 이벤트와 스푸핑 이벤트 간에 다릅니다. 재밍 이벤트의 경우 라디오에서 관찰되는 노이즈가 정상보다 훨씬 강하므로 반송파 대 잡음비의 분모가 증가하고 C/N0 값이 낮아집니다. 스푸핑의 경우 반대로 위성에서 나오는 실제 신호를 가릴 만큼 큰 가짜 신호가 브로드캐스트되므로 전반적인 신호 강도가 강하고 따라서 C/N0이 증가합니다.

GNSS 스푸핑 또는 재밍 확인

Spoof/Jam 탭을 사용하여 GnssLogger 앱에서 환경이 C/N0 및 AGC에 미치는 영향을 실시간으로 살펴볼 수 있습니다.

실시간 AGC 및 C/N0 플롯

Spoof/Jam 탭에는 각 GNSS 별자리 및 대역 (예: 'GPS L1' 또는 'G:L1:', 'Galileo E5a' 또는 'E:E5A:')의 AGC 및 C/N0의 실시간 그래프가 표시됩니다.

각 GNSS 별자리 및 대역의 AGC 및 C/N0 그래프
그림 2. 휴대전화를 Wi-Fi 라우터 옆에 두면 AGC와 C/N0이 모두 낮아집니다 (빨간색 타원). 각 별자리 및 대역의 상위 3개 신호의 평균이 점선으로 표시됩니다. 각 별자리 및 대역의 AGC(단일 값)가 실선으로 표시됩니다. 플롯의 빨간색 원으로 표시된 섹션은 휴대전화를 Wi-Fi 라우터 옆에 두면 AGC와 C/N0이 모두 낮아지고 따라서 간섭이 관찰되는 방식을 보여줍니다.

스푸핑 및 재밍의 실시간 확인

AGC 및 C/N0의 실시간 플롯 아래에 앱은 GNSS 간섭과 관련된 조건을 식별하는 일련의 자동 데이터 확인을 표시합니다.

스푸핑 및 재밍으로 인해 발생할 수 있는 조건의 증거를 표시하는 UI
그림 3. 자동 확인은 스푸핑 및 재밍으로 인해 발생할 수 있는 조건 을 식별할 수 있습니다.

Jamming checks 섹션에서 앱은 가장 최근 10개의 C/N0 및 AGC 에포크의 평균이 이전 50개의 에포크와 비교하여 변경되었는지 확인합니다. C/N0과 AGC가 동시에 감소하면 GNSS 재밍의 증상일 수 있습니다. 이 상황이 감지되면 카드에 FAIL 메시지와 함께 추가 정보가 표시됩니다.

GNSS 간섭으로 인해 발생할 수 있는 조건
그림 4. GNSS 간섭으로 인해 발생할 수 있는 조건이 감지되었음을 나타내는 실패입니다.

Spoofing checks 섹션의 첫 번째 카드도 C/N0과 AGC를 확인하지만 C/N0의 동시 증가 와 AGC의 감소를 찾습니다.

두 번째 스푸핑 관련 확인은 기기에서 계산된 GNSS 시간과 네트워크 시간 프로토콜 (NTP) 서버에서 인터넷을 통해 가져온 시간 (네트워크 시간 - GNSS 시간) 간의 1초 넘는 차이를 찾습니다. 큰 차이는 계산된 GNSS 시간이 유효하지 않음을 나타낼 수 있습니다.

도움말, 유용한 정보 및 주의사항

GnssLogger의 Spoof/Jam 기능을 사용할 때 유의해야 할 사항은 다음과 같습니다.

  • 실험용 기능입니다. 다양한 Android 기기의 AGC 특성에 관해 자세히 알아볼수록 스푸핑 및 재밍 변경에 사용되는 정확한 알고리즘이 업데이트될 수 있습니다.
  • 이 기능은 모든 스푸핑 및 재밍을 포착하지 않습니다. 실시간 그래프와 데이터 확인을 통해 데이터 속성을 실시간으로 더 쉽게 발견할 수 있지만 모든 스푸핑 또는 재밍 사례를 감지할 만큼 강력하지는 않습니다.
  • 이 기능은 C/N0 및 AGC의 변경사항을 감지하도록 설계되었습니다. 스푸핑 또는 재밍이 있는 상태에서 앱을 열고 C/N0과 AGC가 일정하게 유지되면 스푸핑 및 재밍이 감지되지 않습니다.
  • NTP 서버가 반드시 안전한 것은 아닙니다. 네트워크 시간도 스푸핑될 수 있습니다.

공개 문제 추적기를 사용하여 Spoof/Jam 기능에 관한 의견을 제공하세요.