19.7년마다 시간 초기화되는 GPS 오류, 이번 주에도 발생할 수 있다
2021-10-20 10:45
1024주마다 발생하는 GPS 오류…오는 2038년 11월 발생 예정
하지만, GPS 관련 오픈소스 버그로 올해 10월 24일에도 발생 가능성 있어
일부 기기는 2002년으로 3월로 시간 표시해...관련 서비스 패치 필요
하지만, GPS 관련 오픈소스 버그로 올해 10월 24일에도 발생 가능성 있어
일부 기기는 2002년으로 3월로 시간 표시해...관련 서비스 패치 필요
영국 IT 전문지 더레지스터에 따르면 오는 10월 24일, GPS를 기반으로 시간을 표시하는 일부 앱과 장치에서 2002년 3월로 시간이 되돌아가는 버그가 발생할 수 있다. GPSd(GPS service daemon)라는 오픈소스 때문이다.
GPSd는 GPS, AIS 등의 센서를 통해 정보를 얻고, 각종 기기나 애플리케이션에서 해당 정보를 보여주고, 표시 시간을 협정시와 동기화하는 오픈소스 소프트웨어다. 파이어폭스 등의 웹 브라우저는 물론, 안드로이드 스마트폰까지 이를 이용해 GPS 정보를 사용한다.
이번 버그에 대해 이해하기 위해서는 GPS에서 1024주(약 19.7년)마다 발생하는 시간 오류에 대해 알아야 한다. GPS가 처음 등장한한 1980년 당시에는 날짜와 시간을 주단위로 계산해 기록했으며, 기술 한계로 컴퓨터가 날짜 기록에 10비트만을 할당할 수 있었다. 때문에 1024주(2의 10제곱)를 넘어가는 날짜 기록은 1025주가 아니라 다시 1주가 된다. 마치 1999년에서 2000년으로 넘어가면서 발생한 밀레니엄 버그와 같다.
순서대로라면 다음 GPS 오류는 2038년 11월에 발생해야 한다. 하지만 올해 7월 24일, GPSd 관계자는 오류 수정을 위해 배포한 패치에서 버그가 있음을 발견했다. 1024주가 아닌, 10월 24일을 인식해 GPS 시간이 되돌아가는 버그로, 개발자의 코드 입력 실수다.
GPSd는 해당 버그를 수정한 버전을 발표했다. 버그가 발생한 버전은 3.20부터 3.22며, 이전 버전과 최신버전(3.23.1, 올해 9월 9일 발표)에서는 해당 버그가 발생하지 않는다. 해외 개발자 커뮤니티에서는 3.19로 되돌리면 된다는 의견도 있으나, 이는 함께 수정된 다른 버그나 보안 취약점을 되돌리는 셈이므로 권장하지 않는다.