미래 자동차는 자율주행과 친환경의 2가지 축으로 움직이고 있다. 사람이 운전할 필요가 없고, 휘발유와 경유 같은 화석 연료 대신 전기와 수소를 에너지로 써서 환경 오염을 줄이는 방향이다. 특히 자율차는 인공지능(AI)의 발전과 맞물리며 미래 자동차의 꿈으로 불린다. 내가 차에 타면 원하는 곳까지 자동으로 운전해 데려다주고 나는 차 안에서 하고 싶은 일을 하면 된다. 자율주행차 개발이 당초 예상보다 늦어지고 있지만, 이런 꿈 같은 세상은 결국 올 것이라고 자동차 전문가들은 예상한다.
그러나 이런 생각을 한 번 해보자. 자율주행차의 핵심은 통신이다. 레이저를 쏘아서 반사되는 신호를 받아 해석해 진행 방향에 있는 사람이나 자동차들을 인식한다. 또 도로나 주변 시설이 자동차와 계속 통신을 하며 앞으로 주행할 전략을 세운다. 그런데 만약 해커가 이 통신에 침투해 거짓 정보를 주면? 그래서 고속으로 움직이는 자율주행차가 앞에 천천히 가는 대형 컨테이너 차량이 존재하지 않는다고 잘못 인식한다면? 커브길에서 도로 중앙선 정보를 해커가 거짓으로 입력한다면? 자율주행차는 살인무기가 되고 ‘자동차의 꿈’은 ‘자동차의 악몽’이 된다. 더구나 북한군 해커 부대는 한국의 통신망을 교란할 방법을 필사적으로 찾고 있지 않은가? 국토교통부가 시범 사업 중인 ‘스마트 도로(C-ITS)’ 프로젝트는 이같은 자동차의 통신 기능을 기반으로 하고 있는데, 과연 안전한가?
필자가 자동차 보안 소프트웨어 권위자인 심상규 아우토크립트(AUTOCRYPT) CTO(최고기술책임자)를 만나기로 한 것은 이러한 의문 때문이다. 심 CTO는 포스텍에서 정보보안으로 박사학위를 받았으며, 삼성전자 책임연구원, 보안 소프트웨어 회사인 펜타시큐리티시스템 CTO 등을 역임했다. 지난 2019년부터는 펜타시큐리티시스템이 자동차 전문 보안 소프트웨어 자회사인 아우토크립트를 만들면서 이 자회사의 CTO를 겸하고 있다.
심 CTO는 “현재 시범 사업중인 ‘스마트 도로’ 프로젝트가 2025년에는 전국으로 확대될 예정”이라며 “해커의 공격에 대비해 제도적인 보안 대비책이 필요하다”고 말했다. 인터뷰를 하러 지난 16일 오후 2시 서울 지하철 5호선 여의도역 4번 출구 근처에 위치한 유스홀딩스 빌딩 20층 아우토그립트 본사 회의실을 찾았다. 비가 내린 탓에 가는 길 도로는 젖어 있었고 하늘은 흐렸다. 심 CTO는 전형적인 ‘IT맨’ 답게 청바지에 운동화 차림으로 필자를 맞았다.
차량용 보안 소프트웨어 권위자
―어떤 일을 하나?
“자동차가 외부와 통신을 할 때 통신이 원래 목적대로 안전하게 이루어지도록 하는 보안 소프트웨어를 만들어 관련 업체에 공급하는 일을 한다.”
―이런 일을 하게 된 계기는?
“포스텍에서 정보보안을 전공해 박사학위를 받은 후에 2004년 보안 소프트웨어 회사인 펜타시큐리티시스템에 입사해서 본격적으로 보안 업계에서 일을 하고 있다. 2012년쯤에 현대차와 기아차 같은 자동차 제조회사들이 자동차 IT(정보기술)보안 문제를 해결하기 위해 보안 소프트웨어를 필요로 했지만, 제대로 된 보안 소프트웨어가 없었다. 펜타시큐리티가 현대차에게 시험적으로 보안 소프트웨어를 만들어 준 것이 계기가 되어, 2015년에 IoT(사물인터넷)에만 특화된 ‘IoT융합보안연구소’를 만들어 내가 소장을 맡게 됐다. 자동차 보안 문제를 전문적으로 연구하기 시작한 것은 이 때부터이다.”
―아우토크립트와는 어떤 관계인가?
“2019년에는 자동차 보안 사업을 펜타시큐리티시스템에서 인적 분할해 자회사 ‘아우토크립트’를 만들었다. 내가 공동 창업자 겸 CTO로 일하고 있다.”
점점 증가하는 차량 통신
자동차 보안 문제에 대해 본격적으로 물어보기로 했다.
―자동차 보안 소프트웨어라면 어떤 것인가?
“우리가 쓰는 자동차는 외부의 시스템과 네트워크(연결성)로 연결되어 있다. 이 네트워크가 외부의 방해를 받지 않고 제대로 이뤄지도록 하는 것이 보안 소프트웨어이다. 예컨대 노트북도 네트워크 기능이 안된다면 보안이 필요없다. 나도 외부로 못나가고 외부의 해커도 내 노트북에 못들어 온다. 하지만 일단 외부와 통신을 하는 순간 보안이 중요해진다. 자동차도 외부와 연결이 되기 시작하니까 해커가 들어올까봐 걱정이 되어 보안이 중요해진다.”
―자동차는 우리가 운전하고 다니는 기계 장치 아닌가? 자동차에서도 통신이 중요한가?
“사람들은 보통 자동차를 운전만 하니 네트워크를 인지하지 못하지만, 자동차에도 네크워크가 꽤 있다. 예컨대 자동차와 핸드폰이 블루투스로 연결되어 있는데 이것도 네트워크이다. 자동차의 텔레매틱스(telematics) 서비스 중 하나이다. 자동차 제조회사가 앱을 만들어서 스마트폰에서 자동차 기능을 이용할 수 있게 한다. 예를 들어 차 문을 원격으로 열고 닫게 한다든가, 여름에 차에 타기 전에 미리 차 에어컨을 켜놓는다든가 하는 것이다. 교통안전 정보나 지도 같은 네비게이션 시스템도 텔레매틱스이다. 텔레매틱스에도 핸드폰과 꼭같이 통신 모듈이 들어가 있다. 이 통신을 타고 해커들이 들어올 수 있다. 이 때문에 보안이 필요하다.”
―지금 사례로 든 것은 매우 초보적인 통신 수준이니 그리 중요한 것은 아닌 듯 하다.
“아니다. 자동차가 점점 진화하면서 이 네트워크가 다양해지고 있다. 지금 국토교통부에서 주도적으로 시행하고 있는 C-ITS(Cooperative-Intelligent Transport Systems, 차세대 지능형 교통체계)는 자동차와 자동차, 자동차와 도로 주변 시설의 직접 적인 통신을 기반으로 하고 있다. 정부는 2016년에 이 사업을 처음 시작해 서울, 제주, 울산, 광주 등에서 실증 사업을 하고 있다. 2027년에 완전자율주행 상용화를 목표로 디지털도로망 기반을 구축중인데, C-ITS 구축 거리를 지난해 647km에서 올해 953km, 2025년에는 1만2995km로 늘릴 계획이다. 이른바 ‘스마트 도로’ 개념으로, ‘한국판 뉴딜’ 사업의 일환이다.”
―어떤 개념인가?
“예를 들어 현대차나 기아차 본사에서 고객들에게 필요한 정보를 통신으로 내려 보내거나 차량을 원격으로 관리할 수 있도록 해주는 것을 텔레매틱스라고 하는데, 차량의 컨시어지(고객봉사) 서비스이다. C-ITS는 한 걸음 더 나아가 차와 차, 차와 도로 옆 통신시설인 RSU(road side unit, 노변 장치)가 통신을 한다.
그래서 만약 도로에 낙하물이 생기면 도로 주변의 CCTV가 이것을 감지해 얻은 정보를 RSU를 통해 주변을 통행하는 차량에 알려줄 수 있다. 자신의 차 뒤에 앰뷸런스가 달려오면 이 신호도 받아 길을 비켜줄 수도 있고, 도로 주변에 정차한 버스에 등하교 학생들이 갑자기 몰려 승하차를 하면 그 주변을 움직이는 차량의 운전자가 이 신호를 받아 운전할 때 조심하게 된다. 앞 자동차가 급정거할 경우에도 뒷 차가 이 정보를 받을 수 있다. 이런 모든 움직임은 차량과 차량, 차량과 노변 장치간의 통신을 전제로 한 것이다.”
자율주행차와 통신
―자율주행차의 경우에는 통신이 더 중요해지는 것 아닌가?
“그렇다. 예를 들어 자율주행차가 운전할 경우 전방 도로에 큰 장애물이 있다고 하자. 그런데 유조차가 앞을 막고 있어서 그 장애물을 인식하지 못하다가 갑자기 유조차가 옆으로 비키면서 장애물이 나타나면 대응할 시간 여유가 거의 없다. 만약 외부 통신을 통해 앞에 장애물 존재 여부를 미리 알 수 있다면 상황이 달라지지 않겠나?
또 자율주행차들이 비보호 좌회전 지역에 들어갔을 때 어떤 차가 먼저 좌회전할 지 서로 협의해 결정해야 한다. 이 때 차들끼리 통신을 하면서 서로 협상을 해야 한다. 이런 것을 하려면 자동차 vs 자동차(v2v), 자동차 vs 인프라스트럭처(v2I)의 통신이 필요하다.
심지어 전기차가 전기 충전을 할 경우에도 충전케이블의 한쪽에서는 전기가 차로 들어가지만, 다른 쪽에서는 결제 정보나 차량 진단 정보가 충전기로 들어간다. 차량이 10~20분 정도 충전한다면 그 시간 동안 차량 상태의 정보가 관련 회사들에 넘겨져서 차량 점검이 자동적으로 이뤄질 수 있다.”
―충전기의 한 케이블(전선) 안에서 그런 두가지 기능이 동시에 이뤄지나?
“눈으로 보면 그냥 하나의 케이블 같지만, 실제로는 안에 전기 케이블과 통신 케이블이 별도로 있다. 핸드폰 충전 케이블도 동시에 노트북과 통신선으로 쓸 수 있지 않나? 뜯어 보면 안에 전선 한 가닥만 들어 있는 것이 아니다.”
전기차 충전 때도 보안 필요
이야기는 자연스럽게 보안 소프트웨어가 전기차 충전 과정에서 하는 역할로 넘어갔다.
―전기차 충전 과정에서 차량 정보가 통신망을 통해 이동할 때에도 보안 소프트웨어가 작동하나?
“그렇다. 차량의 정보가 원래 의도와 달리 외부로 함부로 누출되지 않고, 외부의 해커가 함부로 침입할 수 없도록 막는 기능을 한다.”
―보안 소프트웨어를 어디에 장착하나?
“충전기의 양쪽 지점, 즉 차량과 충전기 양쪽에 우리가 만든 보안 소프트웨어를 탑재시킨다. 우리가 자동차 부품사나 제조사 등에 이 소프트웨어를 제공하면 부품사나 제조사가 차와 충전기를 만들 때 이 소프트웨어를 장착시킨다.”
―그러면 차와 충전기 양쪽에 같은 회사가 만든 같은 보안 소프트웨어를 장착해야 하나?
“꼭 한 회사에서 만들어야 하는 것은 아니다. 노트북 통신과 마찬가지로 보안 소프트웨어도 국제표준 기술이 있다. ISO, IEC, IEEE 같은 국제기구들이 보안 데이터 통신 규격의 표준을 만들고 있다. 국제표준 기술을 쓰면 어떤 회사가 만들던 간에 서로 통신이 된다. LG 컴퓨터를 쓰든, 삼성 컴퓨터를 쓰든 한 공간에서 컴퓨터 무선 네트워크가 모두 작동하는 것과 같은 원리이다.”
통신의 원리
심 CTO는 전자전기공학을 전공한 통신전문가이다. 그는 많은 IT 전문가들과 달리, 어려운 공학 원리를 일반인들에게 쉽게 설명하는 탁월한 재능을 갖고 있다. 그래서 독자들의 심층적인 이해를 돕기 위해 통신과 보안 소프트웨어의 공학적 원리에 대해 좀 더 깊이 들어가 보기로 했다.
―통신의 원리를 공학적으로 간단히 설명해 달라.
(심 CTO가 자리에서 일어나더니 전자 칠판에 A→HTTP→TCP→IP→Modem→Modem→IP→TCP→HTTP→B 도식을 그렸다.)
“예컨대 A가 어떤 사진 하나를 인터넷을 통해 B에게 보낸다고 하자. A는 그림을 ‘.jpg’나 ‘.png’ 같은 디지털 정보 파일로 전환한다. 그런 뒤에 웹 형태인 HTTP 디지털 데이터 형식으로 바꾼다. HTTP 양식에서 정하는 대로 헤더(header, 맨 윗부분에 자동으로 붙는 부분) 정보, 부수 정보, 그림 파일 정보, 기타 정보 등을 합치는 것이다. 이렇게 형성된 HTTP 디지털 데이터에 앞 뒤로 한번 더 식별 정보를 감싸면 TCP 패킷이 된다. 이 TCP 패킷에 다시 한번 외부 포장을 하면 특정 인터넷 프로토콜(IP)로 변환이 되면서 전송을 위한 정보 단위가 된다. 이 정보를 모뎀을 통해 통신선에 올리면 정보는 통신선을 타고 B의 모뎀으로 넘겨진다. B는 A 작업의 역순으로 정보를 해체해 마지막으로 사진 정보를 얻게 된다. 정보를 주고 받을 때 A와 B의 규격이 같아야 한다는 뜻이다.”
―언론에 많이 등장하는 LTE, 5G(세대), WAVE 같은 통신 방식은 위 순서도에서 어디에 위치하나?
“모뎀과 모뎀 사이에서 정보를 실어 나르는 전달 방식이다.”
(심 CTO는 A의 모뎀과 B의 모뎀 사이에서 일어나는 통신사들의 통신 방식에 대해서도 설명을 했으나, 독자들의 이해가 쉽지 않을 수 있다고 생각해 생략한다.)
보안 소프트웨어의 역할
통신 원리에 대한 이야기를 들었으니 다시 원래의 주제인 보안 소프트웨어로 돌아갔다.
―위의 순서도에서 보안 소프트웨어가 위치하는 지점은 어디인가?
“A가 사진 정보를 만들면 여기에 보안 소프트웨어를 장착해 HTTP 형태로 변환한다. 그런데 자동차 통신에서 사용될 때에는 HTTP 대신 자동차용 통신 형식이 사용된다.”
―보안 소프트웨어의 역할은?
“A와 B가 정보 파일을 주고 받을 때 B는 이게 A에서 왔다는 것을 알 수 있어야 한다. 이것이 디지털 인증이다. 보안 소프트웨어는 디지털 인증을 하는 프로그램이다. 그 뿐만 아니라 데이터가 훼손되지는 않았는지, 누군가 조작한 것은 아닌지 등의 우려를 해결해주는 기술이다.”
―은행 거래할 때에도 디지털 인증을 쓰는데, 디지털 인증은 모두 같은 원리인가?
“대체로 그렇다.”
―인증 원리를 공학적으로 간단히 설명해 달라.
“제일 손쉬운 것이 열쇠(key)를 만드는 것이다. 만약 A와 B가 정보를 주고 받을 때 A가 정보를 박스에 넣은 뒤에 열쇠로 자물쇠를 잠궈 보낸다고 하자. B가 A와 같은 열쇠를 갖고 있다면 이 박스를 쉽게 열고 정보를 얻을 수 있다. 그리고 이 정보가 같은 열쇠를 가진 A가 보냈다는 사실을 확인할 수 있다. 이것이 암호화 기능이다.”
암호화
―암호화는 어떻게 하나?
“수학 공식을 써서 만든다. 가장 간단한 형태로 설명해 보자. 입력값 X를 함수 F에 넣으면 출력값 Y를 얻는다고 할 때 함수 F에 키 값을 넣어 함수를 변형시킨다. 이 키 값이 보안의 핵심이다. 그래서 키 값을 해커가 쉽게 추정할 수 없고 탈취할 수 없도록 어렵게 만든다.
A와 B가 동시에 키 값을 알고 있을 경우 예컨대 먼저 B가 A에게 임의의 수를 만들어 보내면 A가 그 임의의 수를 암호화해 B에게 보낸다. B는 자신이 받은 암호화 정보를 해독해 원래 보낸 임의의 수를 얻을 수 있으면 A가 자신과 같은 키를 갖고 있다고 본다. 이렇게 한번 인증이 되면 통신이 유지되는 한 추가 인증은 할 필요가 없다. 일단 양자간에 이런 방식으로 통신 채널을 확보하면 고속으로 정보가 처리된다. 실제에서는 이보다 복잡한 연산들을 하지만, 이것이 기본 뼈대이다.”
―설명을 쉽게 해 준 덕분인지, 아우토크립토가 하는 일이 매우 단순해 보인다. 해커가 쉽게 보안을 뚫을 수 있지 않을까?
“설명은 매우 간단히 했지만, 실제로는 매우 복잡하다. 암호화 알고리즘은 국제규격으로 모두 공개되어 있다. 다만 이것을 얼마나 고속으로 작동할 수 있도록 만드느냐, 보안의 핵심인 키 값을 외부에 누출되지 않도록 어떻게 잘 보관할 수 있도록 하느냐 하는 이런 기술들이 보안업체마다 차이가 난다.”
―키 값을 잘 보관한다는 것이 무슨 뜻인가?
“키 값은 고정되어 있지 않고, 사용자 마다 다르거나 기기 마다 다르다. 예컨대 우리는 인터넷뱅킹을 위해 공동인증서를 발급받을 때 은행의 인증 서버에 접속해 나만의 고유한 키 값을 발급 받는다. 마찬가지로 자동차도 인증을 위해 자동차 제조사나 정부가 운영하는 인증 서버에 접속해 차량의 고유한 키를 발급 받는다. 이렇게 사용자나 자동차 등의 기기들에게 고유한 키를 생성해서 발급해주는 인증 서버도 아우토크립트가 제공하고 있다.”
해커의 차량 통신 공격법
통신과 보안의 기술 원리에 대해 충분히 설명 들었으니 원래의 주제인 자율차 해커 이야기로 화제를 한단계 전진시켰다. 먼저 정부가 추진중인 ‘스마트 도로’ 이야기부터 시작했다.
― ‘스마트 도로’ 사업인 C-ITS에서 아우토크립트가 하는 일은?
“자동차와 자동차 간의 통신, 자동차와 휴대폰 간의 통신, 자동차와 충전간의 통신 등에 반드시 들어가는 보안 소프트웨어를 만들어 현대차 같은 자동차 회사, 충전기 업체, 노변 설비 업체, 도로공사 등에 납품한다.”
―어떤 기능을 하는 소프트웨어들인가?
“해커가 자동차 통신망을 공격하는 방법은 여러가지가 있다. 먼저 자동차가 노변 장치 A와 통신을 한다고 하자. 해커는 자신이 새로 생긴 노변 장치 A라고 주장하며 접속하려고 한다. 그래서 직선 도로를 곡선 도로인 것처럼 정보를 전달하려고 시도할 수 있다. 잘못된 정보를 주는 것이다. 이런 것을 막기 위해 외부에 그 자동차와 원래의 노변장치 A를 동시에 아는 보안 서버를 만들어 인증을 제공해 줘야 한다. 우리는 이 인증 소프트웨어가 담긴 서버, 또 자동차나 노변기기 A에 들어가는 모듈 등 C-ITS 프로젝트에 필요한 보안 기술을 독점적으로 제공하고 있다.”
―여러 업체들에 공급되는 보안 소프트웨어는 모두 같은 인증 표준을 쓰나?
“C-ITS를 위해서는 모두 동일한 인증 표준을 사용하고 있다. C-ITS 외의 다른 통신에서는 또 다른 인증 표준을 쓴다. 자동차와 휴대폰, 자동차와 노변 시설이 통신할 때 통신 방식이 다르기 때문에 각각의 통신 방식에 맞춰 인증 방식도 달라지게 된다.”
―아우토크립트의 납품 실적은?
“2012년 이후 펜타시큐리티시스템과 아우토크립트 등의 이름으로 자동차 관련 업체에 100여건의 보안소프트웨어 제품을 납품했다. 올해 초에 시리즈 A 투자도 140억원 정도 받았다. C-ITS 보안 인프라는 전세계적으로 볼 때 한국이 앞서가고 있다. 미국과 유럽도 한국의 스마트 도로 보안 인프라를 유심히 지켜보고 있는 것으로 알고 있다.”
북한군 해커의 도발 가능성
―C-ITS 프로젝트가 2016년부터 벌써 6년째이다. 그동안 북한 해커가 침입을 시도한 적은 없나?
“아직은 없었던 것 같다. 그것을 막기 위해 우리가 보안 인증 시스템을 만들고 있는데, 북한이 이 인증 시스템을 통과하지 못하고 있는 것 같다. 실제로는 보안 시스템이 매우 복잡하게 얽혀 있어서 우회해 해킹하기가 쉽지 않다.”
―북한군 해킹 부대가 우리의 보안 시스템을 뚫을 정도의 암호화 알고리즘 수준을 갖고 있지 못하다는 뜻인가?
“암호화 알고리즘은 국제적으로 수식이 모두 공개되어 있다. 그래서 그들도 만들면 된다. 문제는 열쇠(key)인데, 열쇠를 잘 관리하는 것이 중요하다. 우리가 열쇠를 잘 관리해 북한군 해커가 열쇠를 탈취할 수 없다면 해킹이 어렵다.
예를 들어 자동차들이 어떻게 운행되고 있는지, 또는 인증이 어떻게 이뤄지고 있는지 수시로 모니터링하게 되면 한 차량에서 이상한 데이터를 보내올 때 네트워크에서 배제시켜 버릴 수 있다. 이상한 정보가 네트워크 전체로 퍼지기 전에 차단할 수 있는 것이다. 더 발전된 모니터링 기술을 개발 중이다.”
―북한군이 만약 키를 복제하면 어떻게 되나?
“복제를 못하도록 추가 기술이 붙고, 키 자체가 몇분에 한번씩 바뀌기 때문에 복제가 어렵다. 자동차 보안 소프트웨어의 경우 일반 PC에서 쓰는 것과는 차원이 다르다. 한두가지 보안 기술이 아니라 다양한 보안기술이 한꺼번에 들어간다. 시스템 보안 뿐 아니라, 데이터를 수신 받았을 때 정상인지 유해한지 판별하는 공격 탐지 기술, 보안 모니터링(보안 관제) 같은 기술이 종합적으로 들어간다. 해커가 인증 한 번 받았다고 시스템에 들어가 휘젓고 다닐 수 있는 것이 아니다.”
‘스마트 도로’ 사업은 안전한가?
―그렇다면 ‘스마트 도로’ 사업은 북한의 해커 공격에서 안전하다고 단언할 수 있나?
(잠시 생각하더니) “꼭 그렇게 단언할 수는 없다. 사람이 하는 일에 완벽한 일이나 불가능은 없기 때문이다. 하나의 기술로 완벽하게 모든 보안 문제가 해결되지는 않는다. 또 모든 기능을 다 갖춘 보안 기술을 장착하려면 차보다 보안기술 가격이 더 비싸진다. 보안은 모든 부분에서 일정 수준 이상을 유지해야 한다. 막아야 하는 100개의 구멍을 모두 막아야 한다. 그러나 현실적으로 100개 구멍을 모두 막는 것이 한계가 있으니 99개 정도를 단단하게 막고 있다. 그러니 예컨대 해커가 어떤 창을 들고 나오냐에 따라 막을 수도 있고, 막을 수 없기도 할 것이다.
C-ITS 사업은 무선 통신을 통해서 자동차들이 연결되어 있기 때문에 해커들이 들어올 가능성이 있다. 지금은 시범사업 단계이므로 해킹이 눈에 보이는 것은 없지만, 정부가 ‘디지털 뉴딜’ 일환으로 2025년까지 전국으로 스마트 도로를 확대해 깔겠다고 하니 진짜 보안을 잘 해야 한다. 전국을 커버하는 인프라를 새로 만들어 놨더니 해커들의 놀이터가 되면 난리가 나지 않겠나?”
―보안 전문가로서 볼 때 북한의 해킹 기술은 어느 수준인가?
“글쎄, 북한 사람들을 만난 적이 없어서…. 국가정보원에 문의해 보는 것이 좋지 않을까?”
―해커 방지를 위한 법적인 뒷받침은 충분히 되고 있나?
“기술 발전을 뒷받침할 법이나 제도가 만들어져야 한다. 기존의 도로법을 개정해 예컨대 ‘스마트 도로법’을 만들어야 한다.”