1. 서 론
군사목적으로 개발된 위성항법시스템인 GPS는 민간용으로 개방된 이후 여러 분야에서 활용이 증가되고 있다. GPS 신호는 20,200km 상공에서 전송되기 때문에 지상에서의 세기가 -160dBW로 매우 낮아 여러 가지 전파 간섭의 영향을 받기 쉽다. GPS 신호의 수신을 방해하는 의도적인 간섭으로 재밍(jamming)과 기만(spoofing)이 있다. 재밍은 GPS 신호와 동일한 주파수 대역의 신호를 GPS 신호보다 강한 세기로 발생시켜 GPS 수신기로 하여금 GPS 신호의 신호획득 및 추적을 정상적으로 수행할 수 없도록 하는 방식이다. 재밍 신호는 GPS보다 강한 신호를 전송해야 하기 때문에 오랜 시간 동안 교란을 하기 어렵지만 광범위한 지역에 대해 영향을 줄 수 있다. 기만은 GPS 위성 신호와 같은 신호를 이용하여 수신기로 하여금 오동작을 유도하는 방식이다. 기만신호는 수신기가 정상적인 동작을 수행하도록 하기 때문에 기만 여부에 대한 판단이 어려워 더 치명적인 결과를 초래할 수 있다. 현재 일반 상용GPS 수신기에는 기만신호에 대하여 대응하는 기능이 포함되어 있지 않아 이에 대한 감지 및 대응 기법에 대한 연구가 필요한 상황이며 [1,2] 기만 대응에 대한 기법은 [3,4]에 정리되어 있다.
기만은 그 정확성에 따라서 초급, 중급, 고급 기만으로 분류할 수 있으며 중급 이상의 기만은 신호처리로 검출해 내기 어렵다. GPS기만 검출에 대한 연구는 많이 있지만 가속도계를 사용한 기만 검출에 대한 연구발표는 아직 없다. 따라서 본 논문에서는 GPS 수신기와 결합된 IMU 가속도계 센서를 이용하여 기만신호를 검출하는 방법을 제안하고 그 결과에 대해서 분석해보고자 한다. 표적 수신기가 기만당하여 공격자가 원하는 방향으로 이동하도록 제어되고 있다고 가정하여 기만상황에 대한 GPS 데이터를 생성하고 가속도 값을 계산하여 IMU 가속도계 센서값과의 비교를 통해 기만신호를 검출하는 방법을 사용한다.
2장에서는 본 연구에서 사용할 기만신호 검출 개념을 설명하고 3장에서는 기만신호 검출을 위해 가속도계를 사용할 수 있는지는 검토해 본다. 4장에서는 가속도계를 사용한 기만신호 검출 알고리듬을 제안하고 5장에서는 시뮬레이션을 통하여 제안한 알고리즘에 대한 성능을 확인하고 6장에서 결론을 맺는다.
2. GPS 기만신호 검출
GPS 수신기에 대한 기만이 성공적으로 동작하면 수신기는 잘못된 정보에 대한 신호획득, 추적과정을 거쳐 실제 경로와 다른 경로에 대한 정보를 제공하게 된다.
그림 1에서처럼 정상적인 동작을 하고 있는 수신기는 수신한 GPS 정보로부터 계산된 가속도 값과 IMU 가속도계의 센서값의 차이가 오차범위 내에서 유지되지만, 특정 시점에 기만 정보를 수신하고 있는 수신기는 기만 신호로부터 계산된 가속도 값이 가속도계 센서값과 오차범위를 벗어나게 될 것이다. 이 점을 이용하면 GPS 수신기와 IMU 가속도계와 결합하여 기만신호를 쉽게 감별해 낼 수 있다.
그림 1가속도 정보를 이용한 기만신호 검출 방법 Fig. 1 Spoofing signal detection method by using Acceleration
GPS 정보를 이용해서 속도를 계산하는 방법으로는 GPS 정보로부터 구해진 정확한 위치해의 시간 미분을 이용하는 방법과 칼만 필터링 기법을 이용해서 위치해와 속도해를 계산하는 방법, 반송파의 도플러 주파수를 이용해서 속도를 계산하는 방법과 위성과 수신기간의 상대속도를 이용해서 결정하는 방법들이 있다. 이렇게 구한 속도해를 이용하여 구한 가속도 값을 IMU 가속도계 센서값과 RMSE 오차를 계산하여 오차의 구간값과 구간 평균값을 이용하면 기만당하는 시점에서 두 값의 차이가 급격하게 커지는 점을 이용하여 기만신호를 감별해 낼 수 있다.
3. GPS 기만신호 검출을 위한 가속도계 사용 가능성 검토
본 장에서는 IMU의 가속도계를 사용하여 GPS의 기만신호를 검출할 수 있는지 가능성을 검토해 본다.
3.1 원운동 궤적 및 가속도계와 GPS의 측정값 비교
연구에 사용한 원운동은 속력 60km/hr, 반지름 663.1m인 궤적이다. 원운동의 속도 및 가속도는 NED(north-east-down) 좌표계로 표현되었고 5분 30초 동안 0.01초 마다 계산하였다. 그림 2는 생성한 원운동 궤적과 속도, 가속도 값을 보여주고 있다.
그림 2원운동의 궤적, 속도 및 가속도 (참값) Fig. 2 Trajectory, velocity and acceleration of circular motion (True value)
그림 2의 궤적에 대해서 생성된 GPS 정보에 칼만필터를 적용하여 사용자 속도를 계산하고 이 값을 시간 미분하여 가속도를 계산한다. 그림 3은 원운동 궤적에 대한 가속도계 센서값을 나타내며, 사용한 센서는 MEMS용 저급 가속도계이며 5,000ug(바이어스), 10,000ppm(환산계수오차)의 오차를 갖는다.
그림 3가속도계 센서출력 Fig. 3 Accelerometer sensor output
그림 4는 생성한 원운동 궤적에 대하여 칼만필터의 속도, 가속도 계산 결과를 보여주고 있다. GPS 정보와 칼만필터를 이용하여 계산된 속도값에는 오차가 포함되어 있고 이를 시간미분하면 그림 4-(b)처럼 가속도 오차값이 커지게 된다. 따라서 GPS의 출력 속도값을 단순 미분해서는 사용할 수 없음을 알 수 있다
그림 4GPS 정보를 이용한 속도, 가속도 계산 결과 Fig. 4 Calculation result of velocity, acceleration using GPS information
3.2 저주파대역 필터를 사용한 GPS의 가속도 값 개선
GPS의 속도를 단순 미분하여 가속도를 구하면 그림 4-(b)처럼 잡음이 많이 발생하므로 저주파 대역 필터를 사용하여 측정값을 N-point average 하여 사용한다
그림 5는 칼만필터에서 계산된 속도값과 이를 시간미분한 가속도값을 후처리한 결과를 보여주고 있다. 그림 5-(a)를 보면 속도를 100-point average한 결과는 그림 2-(b)의 참값과 거의 유사한 것을 확인할 수 있다. 그림 5-(b)는 칼만필터의 속도 계산값을 시간미분한 가속도 결과를 100-point average한 결과이고, 그림 5-(c)는 칼만필터의 속도 계산값을 100-point average한 결과를 이용하여 시간미분하여 구한 가속도 결과로서 두 경우 모두 후처리를 하지 않은 그림 4-(b)보다는 오차가 많이 감소하였다. 그러나 상당한 크기의 잡음이 남아 있음을 볼 수 있다. 그림 5-(d)는 칼만필터의 속도 계산값을 100-point average한 결과를 이용하여 가속도를 계산하고 그 결과값을 다시 100-point average한 결과로서 속도만 또는 가속도만을 후처리한 것에 비해서 오차값이 더 줄어든 것을 확인할 수 있다.
그림 5GPS 정보를 이용한 속도 및 가속도 계산 후처리 결과 (100 point average) Fig. 5 Postprocessing result of velocity, acceleration by using GPS information (100 point average)
그림 6은 500-point average 후처리 결과를 보여주고 있는데, 100-point의 경우보다 더욱 참값에 가까워지는 것을 확인할 수 있다. 그러나 실시간에 사용하기에는 더 긴 시간 지연이 요구된다.
그림 6GPS 정보를 이용한 속도 및 가속도 계산 후처리 결 과 (500 point average) Fig. 6 Postprocessing result of velocity, acceleration by using GPS information (500 point average)
3.3 원운동 궤적에 대한 RMSE (Root Mean Square Error) 계산 결과
GPS 정보로부터 계산된 가속도 값의 유효성을 확인하기 위하여 GPS에서 계산된 가속도 값과 가속도계 센서값의 RMSE 값을 계산하였다. 이때 칼만필터의 초기 수렴시간을 고려하여 10초 이후의 시간의 데이터를 사용하였다. 그림 7은 수치미분으로 구한 가속도 값을 10-point 후처리한 결과(a)와 속도 10-point 후처리 결과를 이용한 가속도 10-point 후처리 결과(b)에 대한 RMSE 값을 보여주고 있다. RMSE 계산은 0.1초마다 한번씩 하였고 오차값이 계속 증가하지만 시간이 지날수록 오차변화량은 감소하는 것을 확인할 수 있다.
그림 7원운동의 궤적에 대한 RMSE 결과 (10 sample data) Fig. 7 RMSE value of circular motion trajectory (10 sample data)
그림 8은 속도, 가속도에 대하여 100-point 후처리 한 결과를 이용한 RMSE 계산 결과를 보여주고 있다. 후처리 데이터 양이 커짐에 따라 오차값이 줄어들고 더 빨리 수렴하는 것을 확인할 수 있다.
그림 8원운동의 궤적에 대한 RMSE 결과 Fig. 8 RMSE result of circular motion trajectory
위 결과에서 정상적인 GPS 정보로부터 계산된 가속도는 일정부분의 오차 범위 이내에서 실제 가속도 값과 유사한 값으로 구해지는 것을 확인할 수 있다. 기만상황에서의 수신기의 GPS의 정보로부터 구해지는 가속도값은 기만 시점 이후부터는 IMU로 결합된 가속도계 센서값과 오차범위 이상의 차이를 보이게 되는 점을 이용하면 기만상황을 검출할 수 있다.
4. N by N-point average and M-point window 기만 신호 검출 알고리듬
본 장에서는 IMU의 가속도계를 사용한 GPS의 기만신호 검출 알고리듬을 제안한다. 먼저 GPS의 속도출력에 대한 용어를 간단히 정의하고자 한다.
정의 1. GPS의 속도출력을 N번 average하고 미분 후에 가속도를 N번 average하는 것을 GPS N by N-point average 가속도라고 한다.
그림 9는 GPS N by N-point average 가속도를 계산하는 방법과 가속도계 센서를 이용하여 기만신호를 검출하는 판별 알고리듬을 보여주고 있다.
그림 9IMU 가속도계 센서를 이용한 GPS 기만신호 검출 알고리듬 Fig. 9 GPS spoofing signal detection algorithm by using IMU accelerometer sensor
먼저 GPS N by N-point average 가속도를 구하고 이 값과 가속도계의 출력의 차의 크기를 Ek라고 한다. Ek의 시계열 값 M개의 표준편차 σk를 구하고 3배의 값을 판단경계값(threshold)으로 한다. 가우시안 분포에서 3σ는 경고오류(false alarm)가 0.135% 되는 값이다. Ek가 판단경계값 보다 크면 이상신호가 있는 것이며 이것이 10번 계속 반복하면 기만신호가 있는 것으로 판정한다.
그림 10과 11은 이상신호가 발생하기 전후의 판단경계값을 구하기 위한 데이터 Ek의 윈도우에 대한 것이다. 이상신호가 발생하기 전에는 그림 10처럼 표준편차 σk를 구하는 M-point 윈도우가 계속 한 칸씩 이동한다. 이상신호가 발생한 후에는 발생 전의 판단경계값을 고정시키기 위해서 그림 11처럼 표준편차 σk를 구하는 윈도우를 정지시킨다. 이상신호 발생 후에 Ek가 한 번이라도 판단경계값을 넘지 못하면 다시 M-point 윈도우가 계속 한 칸씩 이동한다.
그림 10이상오차 발생 이전의 에러 판별값 계산 Fig. 10 Calculation of discrimination value before error occurred
그림 11이상오차 발생 이후의 에러 판별값 계산 Fig. 11 Calculation of discrimination value after error occured
5. 가속도계를 사용한 GPS 기만신호 검출 알고리듬 성능 분석
5.1 실험환경
INS Toolbox를 이용하여 사용자 위치 정보를 생성하고 시속 60km의 속도로 원운동하는 궤적과 방향변속을 하는 직선운동 궤적을 생성한다. 원운동 궤적에 대한 가속도계 출력을 구하고 이를 정상적인 신호의 참값으로 사용한다. 원운동 도중에 기만신호가 들어오는 것으로 가정하고 기만신호는 직선운동으로 가정한다. 이렇게 만들어진 경로에 대한 GPS 정보로부터 가속도 값을 계산한 다음 가속도계 센서값과 함께 기만신호 검출에 사용한다. 이때 GPS 정보는 궤적의 위치에 따라 GPS Toolbox로 생성하는데 칼만필터를 사용하여 속도를 출력으로 제공한다. GPS와 가속도계는 측정값은 100Hz이다. 사용한 가속도계는 MEMS용 저급 가속도계로 5,000ug(바이어스), 10,000ppm(환산계수오차)의 오차를 갖는다.
5.2 기만신호로 사용될 직선운동 궤적
기만신호에 사용하는 궤적은 직선운동을 하다가 두 번의 90도 방향변속을 하는 궤적이다. 그림 12는 기만신호에 사용하는 방향변속을 하는 직선운동에 대한 궤적과 이 궤적에서의 가속도계 센서 값을 보여주고 있다.
그림 12기만신호 궤적 정보 Fig. 12 Trajectory information of spoofing signal
그림 13은 기만신호로 생성한 궤적에 대하여 GPS 정보를 이용하여 가속도를 계산한 결과를 보여주고 있다. 원운 동과 마찬가지로 속도값을 후처리한 결과를 이용하여 가속도를 계산하는데 참값에 유사하게 계산되는 것을 확인할 수 있다.
그림 13GPS 50 by 50-point average 가속도 Fig. 13 GPS 50 by 50-point average acceleration
5.3 기만신호에 대한 실험 결과
정상 동작 중에 기만당하는 실험을 위하여 5분 30초의 원운동 궤적 중에서 3분 30초 지점에서 기만신호가 동작하는 것으로 가정한다. 기만시점 이후에도 IMU 가속도계 센서는 실제 원운동에 대한 가속도 값을 제공해주기 때문에 이를 이용한 RMSE 계산 결과를 모니터링 하면 특정 시점이후로 오차범위 이상의 가속도 계산 오차가 발생하는 것을 확인할 수 있다. 그림 14는 원운동 도중에 기만당하여 직선운동을 하는 사용자에 대한 궤적, 속도, 가속도 정보를 보여주고 있다. 3분 30초 (210초) 지점에서 기만상황이 발생하여 GPS로 구한 속도, 가속도 값이 급격하게 변하는 것을 확인할 수 있다.
그림 14정상 동작에서 기만발생에 대한 GPS의 궤적, 속도, 가속도 정보 Fig. 14 Trajectory, velocity and acceleration information of GPS on spoofed situation
그림 15는 정상동작에서 기만이 발생한 상황에 대해서 GPS 정보로 구한 가속도 값과 IMU 가속도계 센서값을 이용한 RMSE 계산 결과를 보여주고 있다. GPS 출력속도의 100 by 100-point average한 결과로서 기만 시점에서 RMSE 값이 급격하게 커지는 것을 확인할 수 있다. RMSE 값은 그림 9의 알고리듬에서 윈도우 크기 M=10을 사용하여 구한다. RMSE 값을 모니터링 하면서 이러한 급격한 변화량이 정상 동작에 대한 GPS 가속도 계산의 오차범위를 벗어나는 순간을 찾아냄으로서 기만신호를 검출 할 수 있다.
그림 15GPS 출력속도의 100 by 100-point average의 RMSE 결과 (M=10) Fig. 15 100 by 100 point RMSE average result of GPS velocity (M=10)
5.4 기만신호 판단
기만당하는 시점 이후로 각 방향 성분의 가속도 오차의 값이 크게 변하는 순간을 찾아내기 위해서 과거 N개의 오차값에 대하여 평균값과 1σ 값을 계산하여 3σ (=Th) 이상의 오차가 발생할 때마다 카운트를 하여 10개 연속인 경우에 기만 여부를 판단하였다. 그림 16(a)는 정상적인 원운동 궤적에 대한 가속도 오차와 1σ 값을 보여주고 있다. 그림 16(b)는 현재 오차의 과거 10개 오차에 대한 3σ 비율을 보여주고 있다. 이 값이 1이되면 이상신호가 감지되는 것이다.
그림 16정상 원운동 궤적에 대한 오차 특성 Fig. 16 Error characteristics of normal circulation movement
그림 17은 기만신호 발생시 신호에 대한 3σ 오차 비율값을 보여주고 있다. 1을 넘어가는 구간이 연속적으로 10번 이상 반복되면 기만신호를 선언하게 되는데 이 시점이 15444 샘플 포인트로 확인되었다. 3σ 오차 비율의 결과를 보면 기만시점 이후에 일정 시간이 지나 오차 비율이 감소하는 것을 확인할 수 있는데 이것은 현재시점 이전의 과거 데이터에 대하여 기준을 정하는 방식으로 인해 생기는 문제로서 기본 샘플 데이터 수를 늘이거나 기만 감별 이후의 시점의 비교 구간은 기만 이전의 최종값으로 대체하는 방식등으로 변경 가능하다.
그림 17기만당한 신호에 대한 3σ 오차 비율 Fig. 17 Ratio of 3σ to error on spoofed situation
6. 결 론
본 논문에서는 IMU 가속도계 센서를 이용하여 GPS 기만신호를 감별하기 위한 알고리듬을 제안하였다. GPS 출력으로 칼만필터를 사용하여 가속도를 계산하고 이 값을 가속도계 센서값과 비교함으로서 이상신호를 검출하고 이상신호가 계속 발생하는지를 체크하여 기만신호를 감별하였다. 정상적인 운동중에 위치기만을 당하고 있는 상황을 만들기 위해 INS Toolbox를 이용하여 두 가지 궤적과 이에 대한 GPS 정보를 생성하였다. 이 데이터를 칼만필터링 기법에 적용하여 사용자의 속도, 가속도 값을 계산한 다음 정상 궤적에 대하여 생성된 IMU 가속도게 센서값과 비교 하였다. GPS 정보를 이용한 가속도 계산은 칼만필터의 속도 계산값을 N by N-point 후처리하여 정확도를 개선하였다. 계산된 가속도값의 유효성을 확인하기 위하여 원운동에 대하여 GPS 정보를 이용한 가속도 계산값과 IMU 가속도계 센서값을 비교하고 M-point window 기만신호 검출 알고리듬을 사용하여 기만당하는 시점을 찾아 낼 수 있었다. 이 시뮬레이션 결과를 이용하면 정상 동작 중에 기만당하여 잘못된 GPS 정보를 수신하고 있는 상황에 대하여 기만 검출이 가능하다는 것을 확인할 수 있었다. 추후에는 M-point window의 윈도우 크기 M의 설정과 경계값 Th의 설정에 대한 연구와 이에 대한 성능분석에 대한 연구가 필요하다고 본다.
참고문헌
- Mi-young Shin, Sung-Lyong Cho, Jun-Oh Kim, ki-Won Song, Sang-Jeong Lee, "Analysis of GPS Spoofing Characteristics and Effects on GPS Receiver", The Korea Institute of Military Science and Technology, vol. 13, no. 2, 2010. 4, pp. 296-303.
- SungLyong Cho MiYoung Shin, SangJeong Lee, Chansik Park, "Performance Comparison of Anti-Spoofing Methods using Pseudorange Measurements", The Korea Institute of Military Science and Technology, vol13, no 5, pp.793-800, 2010.10
- H. Wen, P. Y. Huang, J. Dyer, A. Archinal and J.Fagan, "Countermeasures for GPS signal spoofing", Proc. of the 18th International Technical Meeting of the Satellite Division of The Institute of Navigation, pp. 1285-1290, 2005.
- S.K Jeong, Taehee Kim, Cheon Sig Sin, Sanguk Lee, "Technical Trends of Smart Jamming for GPS Signal", Electronics and Telecommunications Trends, vol 27, no 6, 2012.12
피인용 문헌
- GPS spoofing detection using accelerometers and performance analysis with probability of detection vol.13, pp.4, 2015, https://doi.org/10.1007/s12555-014-0347-2
- Efficient spoofing identification using baseline vector information of multiple receivers vol.22, pp.4, 2018, https://doi.org/10.1007/s10291-018-0779-x
- Robust acquisition at GPS receivers in unsafe locations using complex wavelet transform pp.1752-2706, 2018, https://doi.org/10.1080/00396265.2018.1483597