스마트시티

스마트시티는 문제해결이다

스마트시티는 문제해결이다

 

스마트시티

 

스마트시티, 이 말을 들은지도 한참 전이라 이미 낡은 느낌이 든다. 문서에 ‘스마트시티’라 적혀 있으면 굳이 다른 말을 찾아보기도 한다. 적당히 대체할 만한 말은 아직 없다. 브로드밴드, 유비쿼터스 등 전대 용어들과 비교도 해 볼 일인데, 말만 다르지 그게 그거라는 냉소도 흔히 볼 수 있다. 물론 그렇진 않다.

1990년대 초고속 통신망, 2000년대 유비쿼터스 U-City 그리고 2010년대 스마트시티, 꽤 오래된 역사다. 그런데 쭉 보면 뒤로 갈수록 점점 구체성은 떨어진다. 브로드밴드에 비해 유비쿼터스는 보다 추상적 개념이고 스마트시티는 더 애매한 말이다. 그렇게나 요란했음에도 아직도 스마트시티의 구체적 뜻 정의가 없다는 건 참 이상한 일이다. 뜻도 모를 용어를 이미 낡았다고 여길 만큼 썼던 거다.

스마트시티란 정말 무엇인가, 이제라도 깊게 생각해 볼 문제다. 고민의 가치는 충분하다. 스마트시티는 ‘문제해결’이기 때문이다.

 

스마트시티란?

 

위키피디아는 스마트시티의 뜻을 ‘다양한 유형의 전자 데이터 수집 센서를 사용하여 자산과 자원을 효율적으로 관리하는 데 필요한 정보를 제공하는 도시 지역’이라 풀었다. 그외에도 나름의 정의들은 많다. ‘첨단 정보통신기술을 이용해 도시의 모든 인프라를 네트워크화한 미래형 첨단도시’도 스마트시티고, ‘경제, 이동성, 환경, 인간, 생활, 행정 등 다양한 주요 분야에서 우수하고 지속가능한 경제 발전과 높은 삶의 질을 창출하는 발전된 도시’도 스마트시티, ‘도시에 ICT 신기술을 접목하여 각종 도시문제를 해결하고 삶의 질을 개선할 수 있는 도시 모델’도 스마트시티다.

이렇듯 스마트시티에 대해 일반적이고 보편적으로 받아들여질 만한 정의는 없이 다분히 문학적이다 싶은 표현만 분분하다. 스마트시티를 이루고자 하는 사람마다 다르게 말한다. 국가마다 다르고 도시마다 다르다. 그렇다면 스마트시티란 미래의 어떤 도시를 지향하는 방향성의 이름이겠다. 이런 도시가 되면 좋겠어요, 희망인 것이다. 미래 멋진 신세계의 첨단 도시, 그런 왠지 좀 공허한 말은 잠시 치워 두고 보다 구체적으로 생각해 보자.

현재 가장 두드러진 스마트시티의 기술적 유의미는 ‘데이터 분석을 통한 도시 기능의 개선’이다. 도시 곳곳에 설치된 센서를 통해 수집한 데이터를 클라우드로 모아 분석한 결과를 바탕으로 각종 서비스를 제공하는 일이다. 그래서 스마트시티 등 모호한 말 대신 ‘도시 데이터 플랫폼’이라 부르자는 주장도 있다. 꽤 타당하다 싶지만 모든 방향성을 다 담은 말은 아니다.

 

그런데, 스마트란?

 

어쩌면 ‘스마트’란 말에서부터 혼돈이 생긴 것 같기도 하다. 스마트의 뜻? 똑똑한 것, 즉 인텔리전트. 그럼 그 나름의 기술개발 방향이 있을 것이다. 아니면 요즘 유행에 맞춰 인공지능, 사람이 하던 일을 기계로 대신하는 것. 그 나름의 방향도 있을 것이고. 그러니 스마트시티란 말의 어색함은 애초에 잘못 놓인 애매한 용어의 함정 아닌가 싶기도 하다.

도대체 스마트란 무엇인가! 정말 궁금한데 혹시 본토 영어 뉘앙스를 몰라서 애매한 건가 싶어 미국인 친구에게 물었다. 도대체 ‘스마트’란 무엇인가? 그는 간단히 “인터넷에 연결된 것”이라 답했다. 덧붙여 “기존엔 인터넷에 연결되지 않았던 것이 인터넷에 연결된 것”이란 첨언도. 꽤 많은 것들이 정리되는 깔끔한 정의에 감탄했다.

그렇다면 스마트는 과정의 뜻일 것이다. 모두 다 연결되면 사라질 말이기 때문이다. 모든 폰이 ‘스마트’ 폰이 되면 굳이 스마트 폰이라 부를 이유가 없으니, 그건 그냥 폰이다. 당연히 인터넷에 연결되어 있다고 믿는 PC를 굳이 스마트 PC라 부르지 않듯. 즉, 스마트란 ‘인터넷 연결 과정 중에 있다’는 뜻이겠다.

그럼 스마트시티의 가장 중요한 일은 ‘연결’이라 하자. 도시를 인터넷에 연결하고, 수집한 데이터를 분석해 이로운 인사이트를 얻고, 그에 따라 도시 활동을 최적화한다. 그 일을 함에 있어 발생하는 나머지 문제들은 각 문제 성질에 따라 해결하면 될 일이다. 간단한 이치다. 기존에 기업과 기관 시스템에 대해 늘 해 왔던 일이고, 도시란 게 워낙 크다 보니 좀 더 복잡할 뿐이다. 무엇이 복잡한가.

 

스마트시티 = 도시 OT + IT + 블록체인

 

연결은 목표, 그 목표에 이를 수단을 보다 기술적 시각으로 보자면 스마트시티는 물리적 도시를 움직이는 운영기술 ‘OT(Operational Technology)’와 정보기술 ‘IT(Information Technology)’의 결합으로 볼 수 있다. 스마트시티의 핵심기술은 IT와 OT의 결합, 즉 사물인터넷 ‘IoT’다. 그 성질에 따른 문제와 해법을 살펴보자.

도로, 철도, 항만, 공항, 수자원, 정보통신, 에너지, 환경, 유통, 문화관광, 과학기술, 교육, 국방, 주택, 복지, 산림 등 모든 사회기반시설은 제각각 방대한 규모의 OT를 운용한다. 그런데 살펴보면 깜짝 놀랄 정도로 옛날 기술을 쓰고 있다. 이더넷은 고사하고 전기신호로 동작하는 체계도 있다. 시설 성격상 막중한 보안 문제 때문이기도 하지만, 대개는 구식 레거시 시스템 혁신의 업무 연속성 문제다. 이에 IT를 접목하는 일이 쉽진 않지만 지금껏 늘 해 오던 일이니 그리 심각한 문제는 아니다.

IT 측면에서 스마트시티란 수많은 사람과 사물이 끊임없이 상호작용과 정보교환을 하는 초연결 환경이다. 그걸 모두 중앙 시스템이 개입해 처리하는 건 불가능 수준의 비효율이다. 어떻게든 무리해서 처리한다더라도 프라이버시 침해와 정보독점 등의 부작용이 따르고, 그럼 그 문제를 또 해결해야 한다. 따라서 규모가 어느 정도 선을 넘으면 차세대 신뢰기술 블록체인 연결이 필연적이다. ‘단말-중앙-단말’ 연결의 규모 한계를 ‘단말-단말’ 연결로써 해결한다. 이는 전례 없는 일이라 사회적 합의 등 난관이 적지 않을 것이다. 해결은 가능하다.

이렇듯 스마트시티란 도시를 인터넷에 연결하고, 도시 OT와 IT를 결합하고, 기존 기술의 규모 한계를 블록체인 기술로 극복하는 일이다. 기술적으로는 그러하다. 하지만 단지 방법일 뿐 그게 스마트시티의 뜻이라 하기엔 목적성을 충분히 설명하진 못한다.

 

스마트시티는 문제해결

 

스마트시티는 이미 좋은 도시를 더 좋은 도시로 만드는, 그런 한가한 일이 아니다. 자칫 도시의 운명에 치명적으로 작용할 수도 있는 온갖 문제들을 해결하기 위한 일이다. 미래에 발생할 위험이 있거나 이미 발생해 수습 곤란한 문제들의 해결과 대책 마련이 스마트시티의 가장 중요한 목적이다.

해결해야 할 문제들은 다양하다. 일반적으로는 공공자원의 운영 효율을 최적화하고 보다 고품질의 시민 ‘서비스’를 제공하는 것이 가장 중요한 일이고, 더 많은 기업과 투자를 유치하고 도시 거주 시민과 관광객 등 방문자를 유입해 도시의 수입을 높이는 ‘경제성’ 또한 스마트시티의 임무다. 도시 유지와 성장에 따른 환경적 영향에 대한 실효성 있는 대책을 마련함으로써 도시의 건강 수명과 ‘지속가능성’도 보장해야 한다. 도보, 자가용, 대중교통, 자전거 등 이동수단 종류를 불문하고 도시 내 그리고 도시 간 이동성을 최적화하는 ‘모빌리티’ 문제도 급선무다. 다시 말해 스마트시티란 서비스, 경제성, 지속가능성, 모빌리티 등 도시의 여러 문제들을 해결하기 위한 기술적 방법의 총체다.

스마트시티의 뜻을 생각할수록 ‘Livability’란 말의 뜻이 무겁게 다가온다. 거주 적합성이나 적주성쯤의 의미다. 그런데 그 말이 가장 구체적으로 쓰이는 건 축산업 분야다. 가축의 생존율. 스스로를 짐승으로 비하하는 듯해 찝찝하지만 그 뜻은 유의미할 듯싶다. 오늘날 도시는 너무나 살기 괴로운 양계장이나 축사 같은 것이 되어 가고 있으니까.

스마트시티는 문제해결이다. 일단 교통, 쓰레기, 생활, 이 3가지 문제만 생각해 보자. 당장 해결하지 않는다면, 아니 이거 너무나 끔찍한 세상 아닌가. 스마트시티는 여유롭고 한가하게 추진할 일이 아니라, 아주 중요하고 시급하고 절박한 1등급 당면 과제다.

그림3

머신러닝 접목한 보안, 실용화 돌파구 찾다

머신러닝 접목한 보안, 실용화 돌파구 찾다

 

이세돌 9단이 알파고에게 패한 뒤 바둑계, 처음엔 정말 패닉이었다. 무려 ‘바둑의 신’ 운운하며 공포에 시달렸다. 조바심에 떠밀려 인공지능(AI)이 펼치는, 뭔지 제대로 파악도 못한 신수신형을 열심히 따라하기도 했지만, 정작 AI의 무기인 살벌한 형세 판단과 수읽기 역량은 없으니 ‘뒤가 없는’ 속수가 난무한 시기도 있었다. 하지만 이젠 거의 안정된 듯하다. AI 바둑 연구도 꽤 깊어져 인간은 기계 아닌 인간으로서 포기할 지점이 어딘지 조금은 알게 된 듯도 하다.

AI 덕분에, 초일류와 초격차 개념은 옅어져 평준화된 일류들이 호각을 다툰다. 자타공인 초일류인 중국의 커제마저 ‘힘들어졌다’고 말한다. ‘누구의 치세’라며 1인자를 영웅시하는 관전 재미는 흐릿해졌지만, 완전한 난전을 보는 다른 재미가 생겼다. 게임의 성질이 달라졌을 뿐 바둑은 여전히 아주 재밌는 그리고 훌륭한 게임이다. 바둑과 함께 최고의 추상전략 게임 양대산맥 중 하나인 체스는 이미 옛날에 겪은 일이다. 그럼에도 체스는 여전히 아주 훌륭한 지적 유희이며 여전히 아주 많은 사람들이 즐긴다. 기계와 더불어 산다는 게 뭐 그리 깜짝 놀랄 일은 아닌 것이다.

그렇게 AI와 머신러닝이라는 도구는 우리 일상 가까이 다가왔다. 충격이 컸지만 도구는 도구일 뿐, 잘 쓰면 될 일이다. 오늘은 보안을 위해 쓸 방법에 대해 알아보자. 보안 이야기지만 거의 일반론이므로 분야 가리지 않고 적용할 만한 영감을 얻을 수 있으리라 기대한다.

 

보안이란

보안은 정상과 비정상을 구별하는 일이다. ‘정상’은 안전한 선의의 접근과 이용 즉 ‘화이트’다. ‘비정상’은 위험한 악의적 침입과 악용 즉 ‘블랙’이다. 이를 구별하기 위해 보안전문가는 전문가적 직관으로 ‘비정상이란 무엇인가’ 특징을 정의한다. 다시 말해 정상이란 ‘비정상이 아닌 것’이다.

그림1

직관이라 해도 오직 감각에 의존하는 건 물론 아니고 근거는 있다. IBM X-Force, Abuse IP DB 등의 평판 자료와 애플리케이션 문법 오류 및 허점 분석 자료 그리고 이상행동 등을 연구한 결과다. 지나치게 넓은 범위 접근을 시도할수록, 영업일과 업무시간 등 접근 시간대가 불분명하고 불규칙할수록, 접근 시도 폭증 등 행동의 강도가 급증할수록 이상행동, 비정상일 가능성이 높다고 판단한다. 그 모두를 종합해 “비정상은 이렇다, 이렇다, 이렇다, …” 식으로 특징(Feature)를 정의하고 그 특징에 해당하는 것들을 비정상으로 분류한다.

그러나 문제는, 이쯤은 해커들도 다 안다는 사실이다. 해커란 것은 보안전문가의 거울 이미지라, 그들도 웬만한 비정상의 특징쯤은 다 알고 있다. 보안 프로그램의 가장 열정적 사용자가 해커라는 말도 농담이 아니다. 어차피 다 걸려들 시도를 하는 건 바보짓 그리고 낭비니까 이것저것 다 돌려 본 뒤 침입을 시도한다. 그리고 보안전문가라고 늘 완벽할 수는 없으니 보안 실패는 늘 발생한다. 비정상을 정상으로 분류한 ‘미탐’과 정상을 비정상으로 분류한 ‘오탐’을 줄이기 위한 끊임없는 노력일 뿐이다. 결국 보안이란 미탐과 오탐을 최소화하는 최선의 특징을 정의하는 일이다. 아주 치열한 공방전이다.

 

보안의 (인간적) 한계

그렇잖아도 아주 힘들었던 일이 더 힘들어졌다. 먼저, 데이터 양이 너무 많아졌다. 분류를 위해 특징을 분석하는 일도 그렇게 추출한 특징으로 정상/비정상을 분류하는 일도 힘들어졌다. 기존과 형태가 아예 다른 비정형 데이터가 많아짐에 따라 기존 정형적 방법론이 무색해지기도 했다. 양도 많고 교묘히 변화한 변종들도 많아져 보안은 점점 더 어려워지고 있다. 인력의 한계에 이르렀다 해도 과언이 아닐 지경이다.

그런데, 너무 비정상에만 집중하는 것 아닌가 근본적 의문도 든다. 정상의 정의를 ‘비정상이 아닌 것’이라 하니, 그 비정상의 양상이 복잡해질수록 구별이 어려워지는 건 당연한 일이다. 그렇다면 발상을 바꿔, 정상의 특징을 찾아내고 비정상의 정의를 ‘정상이 아닌 것’이라 하면 되지 않을까. 비정상이 얼마나 교묘히 모습을 바꾸고 정체를 감춰 정상인 척 침입을 시도하더라도 그건 어쨌든 정상은 아닐 테니까. 앞뒤 순서만 바꾼 말장난 같지만 이는 상당히 보안의 핵심에 근접한 의문일 수도 있다. 확실히 이상한 비정상에 비해 딱히 정상의 특징이란 걸 찾는 일이 어려웠을 뿐.

특징 추출과 정상/비정상 분류에 있어 인력의 한계, 정상의 특징 분석의 어려움, 그 두 가지가 머신러닝에 대해 기대할 만한 기계의 역할이다. 이에 대해 살펴보자. 주의할 점은, 아래 내용은 상식적 이해를 위해 추상화, 일반화한 것이라 기술적 엄격성은 낮다. 기술적 이해를 바란다면 다른 자료를 찾아볼 일이다. 다행히 아주 많다.

 

분류와 군집

보안에 유용한 머신러닝의 기능은 ‘분류(Classification)’와 ‘군집(Clustering)’ 두 가지다.

그림2

분류란 학습 전에 교육한 군집별 특징 정의에 따라 데이터를 학습하고 이후 입력되는 데이터에 대해 그 소속을 예측하는 일이다. 데이터 항목화에 최적화된 일이라 보안에 적용한다면 정상/비정상 구별에 용이해 멀웨어 식별과 스팸 탐지 등의 일에 적합하다. 하지만 학습 전에 정상/비정상 특징을 교육하는 ‘교사학습(Supervised learning)’인 까닭에 가르치지 않은 그리고 아직 알려지지 않은 이상행동에 대응이 어려워 기존 업무의 자동화 정도로 그치고 만다.

군집은 유사 데이터의 특징을 분석해 데이터를 복수의 배타적 군집으로 분류하는 일로서, 로그 데이터 등 데이터 분석에 적합하다. 하지만 학습 전에 가치와 정오를 판단하는 기준을 가르치지 않는 ‘비교사학습(Unsupervised learning)’이기 때문에 스스로 분석한 특징에 따라 군집을 나눌 뿐 정상/비정상 구별 작업에는 미흡하다. 응용한다면 분류를 위한 군집의 특징을 추출할 수 있는 가능성은 있지만 아직까지 실용화 단계의 연구는 없었다.

 

교사학습과 비교사학습

그럼 ‘군집’을 통해 추출한 특징으로 ‘분류’를 하면 끝날 일 아닌가. 가능한 일이다. 구체적 방법론 모색에 앞서 중요한 차이점인 교사학습과 비교사학습에 대해 알아보자.

그림3

‘교사학습’은 분류하려는 각 데이터 군집의 특징 정답(Label data)을 지도한 후에 학습을 시킨다. 위 그림을 보면, “이건 개” “이건 고양이” 특징을 지도한 뒤 각각의 차이를 학습하고 이후 입력되는 데이터를 개와 고양이로 분류하는 일을 한다. 보안에 적용한다면 정상/비정상 분류에 적합하고 그 결과의 정오 판정은 용이하겠지만, 학습 전에 정상/비정상 특징을 지도해야 한다는 점이 크게 아쉽다.

‘비교사학습’은 유사한 데이터를 계속 학습함으로써 해당 데이터 군집의 공통된 특징을 도출하는 일이다. 위 그림을 보면, 고양이 데이터를 반복 학습해 고양이의 공통된 특징을 도출하고 이후 입력된 데이터가 고양이 군집에 속하는지 여부를 판단한다. 학습 전 지도 없이도 군집의 특징을 추출한다는 점에서 보안의 정상/비정상 특징 정의를 자동화할 가능성이 있다고 볼 수 있다.

그런데 기계는 어떻게 어떤 군집의 특징을 찾는 걸까.

 

기계가 추출하는 특징

비교사학습으로 데이터 군집의 특징을 추출하는 일을 수행하는 신경망 ‘오토인코더(Autoencoder)’의 예를 통해 알아보자.

그림4

오토인코더는 어떤 이미지의 특징을 유지한 채 추상화하며 축소한다. 이를 다시 확장했을 때도 원 이미지 복구가 가능하도록 최적의 ‘특징 표현(Abstract feature)’을 찾는다. 특징 유지 없이 그냥 축소만 한다면 확장했을 때 완전히 다른 이미지가 되고 말겠지만 특징에 따라 축소하기 때문에 다시 확장하더라도 원래 이미지의 특징이 유지된다.

그리고 계속해서 같은 ‘고양이’ 군집에 속하는 여러 이미지를 학습, 즉 인코딩과 디코딩을 반복해 고양이에 대한 특징 정의를 계속 교정하면서 “고양이는 이렇다, 이렇다, 이렇다, …” 식의 추상 특징 정확도를 점차 높인다. 충분한 학습을 마치고 나면 ‘고양이란 무엇인가’ 질문에 대한 거의 확실한 기계 나름의 대답을 갖게 된다.

그림5

이후에 ‘고양이’에 해당하는 이미지를 입력하면 이는 고양이의 특징에 부합하므로 축소하고 확장한 뒤에도 원본 이미지가 유지된다. 즉, “이것은 고양이다”란 뜻이다. 반면 고양이가 아닌 이미지를 입력하더라도 이미 학습한 ‘고양이’의 특징에 따라 축소하고 확장해버리므로 입력한 이미지와 출력된 이미지가 달라진다. 즉, “이것은 고양이가 아니다”란 뜻이다.

이러한 성질을 보안에 적용해 본다면, 정상 데이터를 반복 학습해 ‘정상’ 군집의 공통된 특징을 추출할 수 있을 것이다. 그리고 그 특징에 따라 정상/비정상을 분류할 수도 있을 것이다.

 

머신러닝과 보안

보안을 위한 최적의 머신러닝 방법은 비교사학습으로 도출한 특징으로 정상/비정상을 분류하는 일이다. 아주 간단해 보이지만 몇 가지 문제가 있다.

그림6

첫째, 머신러닝 특히 비교사학습은 이미지 분석엔 용이하지만 텍스트 분석이 어렵다. 텍스트 분석은 언어 사전(dictionary)의 학습과 전체 맥락(context) 분석이 필요하므로 기계적 이해에는 텍스트보다 사전과 맥락이 불필요한 이미지 분석이 용이한 것이다. 그런데 보안이 다루는 데이터는 거의 대부분이 텍스트다.

둘째, 교사학습을 이용한 정상/비정상 분류는 유용하지만 기계에게 가르칠 특징 도출이 어렵다. 앞서 보안의 인간적 한계에 해당하는 일이다. 인력으로는 감당을 못해서 기계를 쓰려는 건데 기계를 쓰려면 인력이 필요한, 모순이다. 따라서 데이터의 복잡도가 높아질수록 인간적 이해에 한정되는 교사학습은 한계에 이른다. 이때 비교사학습을 이용한 특징 도출이 해법이 될 수 있겠지만, 역시나 텍스트 분석의 어려움 때문에 활용이 제한된다.

셋째, 정상과 얼마나 달라야 비정상인가? 기준의 문제다. 이는 머신러닝 기술 외 전문가적 판단이 필요한 일이다. 머신러닝을 동원하더라도 보안전문가의 전문성은 여전히 필수적이다. 머신러닝 기술과 보안 기술이 적절한 지점에서 만나야 풀릴 일이다.

그러나 늘 그랬듯 문제는 해결된다.

그림7

먼저 텍스트 분석 어려움의 문제. 2015년, 뉴욕대 얀 르쿤(Yann LeCun) 교수 연구팀은 텍스트 데이터의 알파벳을 이미지로 변환하고 교사학습 머신러닝으로 학습함으로써 문서를 서지학적으로 분류하는 일에 성공했다. 허무하다 싶을 정도로 간단해 보이기도 하지만 발상의 문제겠다. 그런데 보안의 대상인 HTTP 데이터도 텍스트, 그렇다면 유사한 방법으로 머신러닝을 이용할 수 있지 않을까.

2017년, 정보보안 전문기업 ‘펜타시큐리티’와 ‘클라우드브릭’은 공동으로 HTTP 트래픽을 이미지로 변환하고 교사학습 머신러닝으로 학습해 정상/비정상으로 분류하는 일에 성공했다. 위 첫째 문제가 해결되었다.

그림8

이어서 2018년에는 이미지로 변환한 HTTP 트래픽을 비교사학습 신경망 오토인코더를 이용해 정상 특징을 도출해 정상/비정상 분류하는 일에 성공했다. 위 둘째 문제도 해결되었다.

그리고 같은 해, 보안전문가로서 정상/비정상 기준을 수식화함으로써 셋째 ‘정상과 얼마나 달라야 비정상인가’ 문제까지 모두 해결해 이 방법을 완전히 실용화했다.

비교실험 결과, 인간이 추출한 정상/비정상 특징을 적용한 탐지에 비해 오토인코더를 이용해 기계가 특징을 추출한 방식이 월등히 높은 보안 성공률과 효율을 보였다. 위 내용은 ‘IEEE (Institute of Electrical and Electronics Engineers)’에 등재된 ‘Anomaly Detection for HTTP Using Convolutional Autoencoders‘ 논문을 통해 확인할 수 있다.

안개가 걷히고, 길이 보인다.

이미지 1

블록체인과 IoT가 결합된 미래는 필연이다

블록체인과 IoT가 결합된 미래는 필연이다

 

이미지 1

 

미래 세상의 구조에 관여할 기술 중 가장 중요한 것 하나만 고르라면, 사물인터넷(IoT) 시대에 데이터를 처리할 컴퓨팅의 ‘끝점’ 아닐까 싶다. 본격적인 컴퓨팅이 일어나는 최말단의 위치가 어디인가에 따라 세상의 구조가 완전히 달라지게 될 것이기 때문이다.

어떤 기기가 얼마나 생산되고 유통되어 얼마나 많은 에너지를 소모하며 얼마 동안 지속될지, 이 물음의 답을 구할 때 가장 큰 변수가 컴퓨팅의 끝점이다. 클라우드 컴퓨팅, 에지 컴퓨팅, 포그 컴퓨팅, IoT, 블록체인 등 요즘 기술 유행어의 운명도 그 대답에 따라 결정된다.

그에 대한 대답을 생각해 보자. 복잡한 문제이므로 쉽게 결론을 낼 수는 없는 일이다. 어떤 결론을 내든 성급할 것이다. 그러니 올바른 결론으로 나아가기 위해 고려할 점을 하나씩 짚어보자.

 

끝점은 어디에?

IoT 환경의 컴퓨팅 끝점 위치에 대해 두 가지 서로 다른 입장이 있다.

먼저, 인터넷에 연결된 기기를 모두 다 컴퓨팅이 가능하게 만드는 건 아주 심각한 낭비라고 말하는 사람들이 있다. 어느 정도 적당한 범위의 네트워크 커버리지를 지정하고 그 범위에 속한 단순 기기들의 그룹에 대해 하나의 에지 컴퓨팅 체계를 갖춰야 한다는 주장이다. 지금의 게이트웨이를 보다 스마트한 거점 기기로 개선하고 연결된 나머지 기기들은 단순하고 값싼 저전력 저연산 사양을 유지하는 방식이 효율적이라는, 실용적 입장이다.

반대로, 인터넷에 연결된 모든 기기를 제각각 완전한 컴퓨팅이 가능하게 만들어야만 원론적으로 참된 IoT 세상 구현이 가능하다고 말하는 사람들도 있다. 단순 기기라 하더라도 충분한 연산력을 갖춰야 자체적으로 유의미한 데이터를 판별해 낼 수 있고 그래야만 스토리지에 모이는 데이터의 총합도 데이터로서 유의미할 것이라는 뜻이다. 그렇다면 엄청난 물량의 컴퓨팅 장치가 필요하다는 뜻이니, 주로 부품 그리고 시스템 제조사의 입장이긴 하다.

실용과 원론, 적당히 타협하면 될 일일까. 결정에 있어 중요한 변수는 또 있다.

 

+500억 개의 사물

함께 고려할 건 인터넷에 연결된 사물의 수 문제다. 미국 시장조사업체 ‘주니퍼리서치(Juniper Research)’는 현재 200억 개 가량인 IoT 장치의 수가 2022년엔 500억 개가 넘을 것으로 전망한다. 현재 증가 추세 그리고 가장 밀접한 환경요인인 5G 확산 속도 등 상황으로 보아 상당히 신빙성 있는 전망이라 생각된다. 그렇다면 500억 개 이상의 기기를 가정하고 위 질문에 대한 대답을 찾아야 한다. 인터넷 연결의 수준과 컴퓨팅의 수준도 높아질테니 이는 단순히 수의 문제만은 아니다.

그리고 에너지. 위 첫번째 입장으로는 단순 센서가 자체 판단 없이 막 모아서 막 보내기만 하는 데이터는 통신 비용이 크고, 두번째 입장의 보다 스마트한 기기가 제각각 처리해 보내는 데이터는 연산 비용이 클 것이다. 둘이 얼추 비슷할 것이라 간주하면 간단하겠지만, 그러기에 500억이란 수는 너무 크다. 클라우드 컴퓨팅이 대세가 된 오늘날 초거대 데이터 센터의 에너지 문제도 기존 예상보다 훨씬 더 심각하더라는 불길한 전례도 있다.

이것저것 따져서 첫째냐 둘째냐 하나 고르라, 그런 문제도 아니다. 기기마다 성질과 요구 내용이 다르다. 자체적으로 여유로운 전산력을 갖춰야만 하는 기기가 있다. 소비재 중에서는 자동차. 스마트 시티의 가장 중요한 요소인 자동차는 달리는 컴퓨터 그리고 데이터 센터가 되어야만 한다. 이는 무조건 필수다. 그리고 스마트 홈의 중심을 두고 경쟁하는 TV나 냉장고도 이에 해당되겠다. 스마트 팩토리, 스마트 빌딩 등의 시설도 당연히 자체적으로 하나의 큰 거점을 이뤄야만 한다.

컴퓨팅 끝점 논쟁에서 어떤 결론이 나든, 큰 그림은 어느 정도 그려져 있고 이미 복잡하다.

 

에지 컴퓨팅만으로 감당 어려워

500억 개가 넘는 사물이 인터넷에 연결된 세상, 상상해 보면 너무나 방대하다. 과연 감당할 수 있을까.

잠깐, 에지 컴퓨팅의 필요에 대해 짚어보자. 에지 컴퓨팅의 필요는 클라우드 컴퓨팅의 곤란함 때문에 생겨났다. 데이터를 한데 모으면 좋겠다 싶어서 일단 모았는데, 모으고 나니 이래저래 좋긴 좋은데, 이게 너무 커져버렸다. 지금도 하나의 중앙이 모든 부분들을 다 관리할 수 없는 상태다. 그래서 중앙을 분산하는 에지 컴퓨팅 필요가 절실해졌다. 거기에다 500억 개가 넘는 IoT 기기들까지 더해질 판이니 중앙이 처리해야 할 데이터는 양에서부터 도저히 감당할 수 없는 지경에 이르고 만다.

더 분산해 에지 그리고 포그 컴퓨팅을 훨씬 더 많이 적용하기만 하면 규모 한계 문제가 해결될까. 아무리 낙관적으로 생각해 봐도 그리 되진 않을 것 같다. 500억이란 수는 그리 만만한 수가 아니다. 애초에 중앙 관장 방식의 한계로 볼 일이다. 지금도 규모 폭증에 따른 네트워크와 시스템 확장성 문제가 심각하고 통합 작업 등 노동 비효율에 따른 비용 문제도 엄청나다. 그 와중에 엄청난 수의 기기가 추가되고 계속해서 는다면, 인력으로 도저히 감당할 수 없다.

따라서 이미 너무나 크고 점점 더 커지는 네트워크를 수동이 아닌 자동으로 강화할 방법이 절실하다. 그 해법으로 가장 효과적일 거라 전망되는 기술이 바로 분산 원장 기술(Distributed Ledger Technology)인 ‘블록체인’이다. 블록체인 체계에서 기기마다 내장된 ‘스마트 컨트랙트(Smart Contract)’가 절차 자동화 소프트웨어로서 기능해, 사물 간 소통을 맡아 규모 문제 해결의 단초가 된다.

기존 중앙 집중 환경에서는 중앙의 권한으로 모든 사물을 일일이 확인하고 인증함으로써 전체를 관리한다. 모든 통신의 중개자로서 통신 요청을 받아 승인과 확인을 거친 뒤 다른 사물과 연결한다. 하지만 블록체인으로 연결된 사물들은 서로 소통을 통해 인증하고 직접 통신한다. 중개자가 없어도 된다. 이로써 전체 메시 네트워크는 규모와 무관하게 스스로 안전하게 강화되는 구조를 이룰 수 있다. 아무리 생각해 봐도 규모 한계 문제 해법은 현재로선 이뿐인 듯싶다.

 

블록체인 + IoT = BIoT

사물인터넷 시대에 데이터를 처리하는 ‘끝점은 어디인가’ 질문에 대한 대답은 산업구조에 큰 영향을 미칠 것이다. 하지만 이는 누가 더 많은 돈을 벌 것인가의 문제에 가깝고, 정말 세상을 바꿀 것은 끝점이 어디든 그에 연결된 사물 간의 소통 방식이다. 규모 한계의 사실상 유일한 해법이기 때문이다. 수많은 사물들이 서로 통신하며 하나의 유기체를 이룬다. 그 방대한 체계를 움직일 수 있는 방법, 현재로선 블록체인이 유일한 해법이다.

컴퓨팅의 끝점 문제에 있어 우선 고려할 점들을 살펴보았다. 물론 아직 결론을 낼 수는 없다. 아주 중요한 문제이므로 이해관계자들이 치열하게 고민하고 논쟁해 최선의 결론을 찾아야 할 일이다. 다만 확실한 건, 미래 IoT 세상은 블록체인 아니면 달리 도저히 굴러갈 방법이 없다는 사실이다. ‘블록체인+IoT=BIoT’는 필연이다.

블록체인의 이해 0

블록체인의 이해, 지갑의 오해

블록체인의 이해, 지갑의 오해

 

괜히 길고 복잡하게 말할 것도 없이 곧 닥칠 근미래는 사물인터넷 그리고 블록체인 기술 기반으로 작동하는 스마트 사회일 것이다. 특히 블록체인. 블록체인 기술에 대한 정확한 이해 없이는 그 어떤 미래 전망도 제대로 옳을 수 없다.

블록체인의 이해엔 블록체인 지갑의 이해가 필수적이다. 그런데 ‘지갑’이란 말은 너무 익숙하기 때문에 오히려 잘못된 오해가 많아, 지갑의 오해가 블록체인의 이해를 방해한다. 이에 지갑의 오해를 살펴봄으로써 블록체인에 대한 이해도를 높여 보자.

 

오해1) 지갑에 돈을 넣어 둔다?

 

우리 일상에서 ‘지갑’이란 화폐, 신용카드, 신분증 등을 넣어 보관하고 휴대하기 위한 작은 물건이다. 그러다 보니 ‘블록체인 지갑’이나 ‘암호화폐 지갑’이라고 하면 암호화폐를 넣어 보관하고 휴대하는, 호주머니 속 진짜 지갑 같은 물체를 떠올린다. 비트코인이나 이더리움 등 암호화폐 그리고 그 화폐의 장부인 블록체인이 지갑 안에 들어 있을 것 같다. 그러나 암호화폐 지갑 안에는 암호화폐도 블록체인도 없다. 암호화폐 지갑은 블록체인 분산원장에 기록되는 거래 트랜잭션 데이터를 생성하고 서명하는 데 쓰이는 비공개키, 즉 내 열쇠를 보관하고 관리하기 위한 도구다. 어쩌면 지갑보다 ‘열쇠고리’가 더 어울리는 말이다 싶기도 하다.

 

블록체인의 이해 1

 

그렇다면 암호화폐는 지갑이 아니라 어디에 있을까. 참여자 모두가 공유하는 블록체인 속에 있다. 내 자산, 만약 비트코인이라면 내 키와 연결된 주소의 UTXO 합, 이더리움이라면 내 키와 연결된 계좌의 밸런스를 뜻하는 내 자산은 블록체인에 기록되어 있다. 그러다 혹시 지갑 안에 넣어 둔 키를 잃어 버린다면? 암호화폐가 사라지는 게 아니라 열쇠를 잃어버리는 거라, 즉 소유권을 증명할 방법을 잃게 되는 것이다. 그렇기 때문에 암호화폐 관리에 있어 가장 중요한 일은 키 관리다. 암호화폐 지갑이란 바로 그 키 관리를 하기 위한 도구다.

 

진실1) 지갑에는 열쇠를 넣어 둔다.

 

 

오해2) 지갑은 사적인 물건이다?

 

‘사적’이란 말은 개인의 사사로운 일을 뜻하니, 간단히 말해 사람지갑이라는 뜻이다. 그렇지 않다. 사물에 탑재되는 ‘사물지갑’도 있다. 사물지갑은 다가오는 ‘블록체인+IoT=BIoT’ 시대의 기술 저변이다. 사물과 사물이 서로 사물인증 그리고 사물결제를 통해 소통함으로써 스마트 사회가 동작하는 기반이 되는 것이다. BIoT 시대 사물들은 제각각 지갑을 통해 서로 연결되고 서로의 신분을 확인하고 소통한다. 사물 1개당 지갑 1개씩을 가지는 것도 아니다. 대규모 조립산업 특성상 하나의 사물이 여러 지갑을 가지고 있을 필요도 있다. 예를 들어 아주 복잡한 사물인 자동차를 보자.

 

블록체인의 이해 2

 

자동차 내부는 극단적으로 강력한 특허들의 전쟁터다. 각 부품들이 모여 마치 하나같이 서로 긴밀히 통하면 좋겠지만 엄격한 특허 때문에 그럴 수 없다. 따라서 부품과 부품이 서로 거래 형식으로 소통할 수밖에 없다. 그래서 자동차라는 1개의 사물이라도 그 내부에서는 여러 개의 지갑들이 서로 정보와 이해를 주거니 받거니 거래함으로써 동작한다. 그 소통의 중심에는 무엇이 있을까, 이 문제 또한 아주 치열해 특허 전장에서 그나마 중립적으로 보이는 배터리가 비무장지대 DMZ로서 중심에 서게 될 거라는 주장도 있다. 어떤 타협과 결론이 나든 규모와 방식이 아주 다양한 여러 형상의 사물지갑은 필요하다. ‘사물결제’라 하면 지갑의 오해와 마찬가지로 돈을 주고 받는 거래로 오해할 수도 있으니 ‘사물결정’의 뜻으로 이해해도 되겠다. 물론 사물은 사람의 완전한 통제 하에 있다.

 

진실2) BIoT 시대, 사물인증과 사물결제가 일어나는 사물지갑도 있다.

 

오해3) 지갑은 내 호주머니에 넣어 둔다?

 

이 또한 개인 사용자에 한정된 내용이다. 개인 사용자가 아닌 기업이 사용하는 대규모 엔터프라이즈 지갑도 있다. 맡은 바 역할 규모가 크다 보니 모든 기능이 내장된 어플라이언스 타입의 장비 형상이다. 앞서 살펴본 ‘지갑’이란 말에 따른 오해를 불식하고자 ‘블록체인 KMS(Key Management System)’나 키를 위탁해 관리한다는 뜻으로 ‘키 커스터디 서버’ 등 보다 거창한 이름으로 불리기도 하지만 기술의 본질은 역시 지갑이다. 사용자 키를 위탁 보관하는 암호화폐 거래소용 지갑뿐 아니라, 블록체인 기반으로 금융 서비스를 제공하는 ‘블록체인 핀테크 서비스’ 운영에 있어 엔터프라이즈 지갑은 필수도구다.

 

블록체인의 이해 3

 

블록체인 핀테크 서비스는 오늘날 흔히 볼 수 있는 인터넷뱅킹이나 모바일뱅킹과 같은 형태로 블록체인 기반 금융 서비스를 제공한다. 자산을 위탁 관리하는 커스터디 등 서비스 자체가 강력하게 요구하는 보안성 필요뿐 아니라, 개인 사용자에게 있어 가장 번거롭고 또 위험하기도 한 문제인 키 관리 및 책임 부담을 덜어주기 위한 멀티 인증 등 편의성 필요도 엔터프라이즈 지갑을 통해 해결할 수 있다. 그러기 위해 엔터프라이즈 지갑은 단순히 개인 지갑을 잔뜩 쌓아 두기만 하는 수준을 넘어 기업정보보안의 핵심인 키 관리 서버 KMS 등급의 규모와 보안성을 갖추도록 설계한다. 서비스 영역 바깥에서 키를 안전하게 보관하기 위한 콜드 지갑도 필수다.

 

진실3) 블록체인 핀테크 서비스를 위한 대규모 엔터프라이즈 지갑도 있다.

 

 

그림1

‘제로 트러스트’의 구체적 방법

제로 트러스트’의 구체적 방법

 

“아무도 믿지 마라!”, ‘제로 트러스트(Zero Trust)’ 보안론이 유행이다. 2010년 시장조사업체 ‘포레스터 리서치’의 애널리스트 존 킨더박(John Kindervag)이 기본 모형을 제시하고, 미국 역사상 최악의 정보보안 사고 중 하나로 기록된 인사관리처(OPM) 개인정보 유출 사건을 분석한 2015년 연방정부 보고서를 통해 공식화된 용어다.

제로 트러스트. 시스템 외부와 내부를 따로 나누지 않고 모든 곳이 위험하다고 전제하고, 적절한 인증 절차 없이는 그 누구도 믿어서는 안 되며, 누구든 시스템에 접근하려면 권한을 부여하기 전에 재차 신원을 확인해야 한다는, 어찌 보면 원래 그랬어야 했던 당연한 이야기가 새삼스럽게 요란한 것 같기도 하다. 하지만 이렇듯 깔끔하게 용어 하나로 딱 정리되니 그 계몽적 집중 효과는 기대해 볼 만하겠다.

 

제로 트러스트’ 방법?

 

주로 거론되는 ‘제로 트러스트’ 방법론은 보안을 바라보는 관점과 정책에 집중된다. 시스템 전체를 한꺼번에 지켜야 할 하나의 큰 덩어리로 보지 않고 모든 부분들을 ‘미세-분할(micro-segmentation)’ 요소로 나누고, 각 요소에 대해 ‘과립형 경계 시행(granular perimeter enforcement)’ 방식으로 보안을 적용해야 한다는 ‘제로 트러스트’ 모형은 보안의 관점과 정책 문제다.

 

그림1

 

위험은 시스템 바깥에만 존재하고 내부는 안전하다는 전제로 세운 기존 보안정책은 위험하니 당장 폐기하라고 경고하고, 외곽 경계 차단 방식의 보안은 전혀 효과 없다는 사실이 숱한 보안사고들을 통해 증명되었는데도 아직도 ‘내부는 무조건 안전해야만 해’ 고집하는 안일한 태도를 지적한다. 혹독한 현실을 똑바로 직시함으로써 시스템의 안이든 밖이든 모든 게 다 위험하니 철저히 대비해야 한다는 것이 ‘제로 트러스트’ 모형의 핵심 메시지다. 적절하다. 하지만 구체적으로 뭘 어떻게 하라는 말인지 뜻은 다소 모호하다.

제로 트러스트 보안의 실제 적용 방법으로 오케스트레이션, 애널리틱스, 스코어링 등이 열거된다. 여러 보안도구 및 보안체계를 종합해 분석함으로써 전체적 보안조치의 효율을 높이고 수준을 제고하자는 취지의 ‘오케스트레이션’, 데이터 분석을 통한 위협 탐지 ‘애널리틱스’, 전체 시스템을 이루는 각 부분들의 보안 수준을 점수화해 관리함으로써 전체 보안수준을 높이자는 ‘스코어링’ 등은 주로 보안관리 측면에 초점을 맞춘 방법들이다. 요긴한 방법들이긴 하나 ‘제로 트러스트’의 기본 모형인 미세-분할과 과립형 경계 시행 원칙을 구체화한 방법이라고 보기는 어렵다.

 

그렇다면 제로 트러스트의 구체적 방법은 뭘까. 우선 제로 트러스트의 원래 의미를 되짚어 보자.

 

제로 트러스트’, 그 뜻에 따른 구체적 방법

 

지금까지 대부분의 기업들은 마치 성을 짓듯 네트워크 바깥 경계선(perimeter)에 벽을 쌓는 방식의 보안조치를 통해 외부로부터의 침입 방지에만 최우선 집중하는 보안을 고집해 왔다. 그 까닭은 뭘까. 순전히 업무 편의 때문이다. 시스템 내부는 무조건 안전하다고 믿어야만 그 울타리 안에서 내부자들의 자유로운 활동이 가능하고 번거롭고 불편한 보안정책이 업무를 방해하지 않는다고 생각하기 때문이다. 하지만 그러한 시스템은 일단 침입하기만 하면 이후 데이터 유출을 막을 방법이 없다.

보안조치를 네트워크 바깥 경계선(perimeter)이 아니라 모든 ‘유의미(relevant)’한 데이터 각각의 바깥 경계선(microperimeter)에 적용해 데이터를 과립 형태로 보호하자는, 즉 미세-분할 그리고 과립형 경계 시행을 적용하자는 것이 바로 ‘제로 트러스트’ 보안이다. 그럼 그 뜻에 따라 구체적 방법을 살펴보자.

 

1) 지능형 WAF: 패킷 아닌 데이터 단위 분석 웹 보안

 

그림2

 

웹은 가장 많은 보안사고가 발생하는 가장 위험한 지점이다. 따라서 최우선 방어해야 한다. 웹을 통한 침입에 대비해 데이터 단위 분석이 가능한 웹 보안을 적용한다. 기존 바깥 경계선 보안의 대표적 도구인 방화벽과 IPS는 데이터 단위 분석이 불가능하므로 웹을 오가는 패킷이 데이터로 합쳐진 뒤, 즉 유의미 분석이 가능한 상태로 만들고 나서 데이터 분석을 통해 악의적 침입을 차단한다. 분할해 경계를 감시할 과립형 요소의 단위가 무엇이냐의 문제다. ‘유의미’ 기준에 따라 패킷이 아니라 데이터다. 이를 위해 의미 및 구문 분석이 가능한 논리 엔진을 탑재한 ‘지능형 웹 어플리케이션 방화벽(intelligent WAF)’ 이용을 권장한다.

 

2) 컬럼 단위 암호화: 암호화 내용 공개 범위 최소화해야 안전

 

그림3

 

데이터 암호화는 너무나 당연한 일이다. 무조건 해야만 한다. 그 방법이 문제일 뿐. 암호화의 왕도는 최소 범위를 최소 인원에게 최단 시간 동안 노출하는 것이다. 많은 데이터를 많은 사람에게 오래 노출하면 할수록 위험하다. 이를테면 데이터베이스 전체 암호화를 적용했다고 가정해 보자. 업무시간 전체에 걸쳐 내부 사용자 전원에게 암호화되지 않은 상태로 내용을 공개해야만 업무가 가능하다. 전체 암호화 방식은 그 자체로 보안성이 취약한 것이다. DB 내용 중 암호화가 필요한 비밀정보의 양은 그리 많지 않다. 그리고 대개 일정한 컬럼 형태로 군집을 이룬다. 비밀정보만 컬럼 단위로 암호화해 두고 나머지는 평문 상태로 자유롭게 이용하되, 암호화한 내용이 필요한 경우 제한된 사용자 그리고 제한된 시간에 한정해 공개하는 ‘컬럼 단위 암호화’ 방식이 가장 안전하고 효율적이다. 제로 트러스트의 미세-분할 방향성에도 부합한다.

 

3) 클라우드 환경 유리: 자체 설비 관리 부담에 따른 권한 오남용

회사가 자체 보유한 하드웨어 관리 부담에 따른 ‘인간적’ 보안사고가 아주 빈번하다. 하드웨어를 기준으로 한 보안정책은 대개 서버 관리자, 시스템 관리자 등 직책과 임무로서 지정되기 때문에 인간적 잘못이 발생할 위험이 크다. 업무 편리, 담당자 부재시 상황 대응, 보안의식 낮음 등의 이유로 권한 관리가 실패한다. 단지 “불편하다”는 이유로 임의로 서버 접근 권한을 아무에게나 부여해 버리는 사례도 빈번하다. 보안정책을 원론적으로 적용하고 보다 투명하게 관리할 수 있다는 점에서 클라우드 환경이 오히려 보안에 유리하다고 볼 수 있다. 웹보안, 데이터 암호화 등 필수적 기업정보보안 도구들은 기존 전산 환경뿐 아니라 클라우드 환경도 충분히 지원하고 있다. 반면, 클라우드는 클라우드의 보안 위험성이 따로 존재하므로 주의를 요한다. 이에 대해서는 우선 클라우드 보안 전문기업의 컨설팅을 받아 보길 권한다.

 

4) 사용성 저하 방지: 보안 수준은 높이되 사용자 불편은 줄여야

데이터 접근은 엄격히 제한하되, 사용자 편의성은 낮아지지 않아야 한다. 절차가 너무 복잡하면 효율이 급격히 저하된다. 그에 따라 불편이 핑계인 편법이 만연하게 되는데, 이를 단지 개인의 보안의식 부족 탓으로만 모는 지적은 결국 쓸데없는 헛된 말로 그치고 마는 게 현실이다. 인간은 뭐든 조금이라도 불편하면 무조건 편한 방법을 찾기 마련이니까. 통합인증 SSO(Single Sign On) 등 시스템 접근 도구를 이용해 편의성과 사용성을 높이되, 그것만으로는 안전하지 않으니 추가로 보안성까지 충족하게끔 보강된 ‘보안 SSO(Secure SSO)’ 사용을 권한다.

 

여기에 앞서 열거한 오케스트레이션, 애널리틱스, 스코어링 등 보안관리 정책까지 더해야지 제로 트러스트 보안론에 충실한 보안을 제대로 적용했다고 할 수 있다. 하지만 ‘제로 트러스트’란 어떤 방향성이니, 애초에 방법론 완성이란 게 없는 일이다. 취지에 맞게끔 구체적 방법을 설계하고 적절한 도구를 배치하고 엄격한 정책을 적용하고 또 계속 보완해 갈 일이고, 그 기준은 ‘미세-분할’과 ‘과립형 경계 시행’ 원론이다. 다시 말해, 보안의 기본에서 찾을 일이다.

5G의 위험과 불만…보안과 공정

 

5G 시대가 열렸다. 큰 맘 먹고 비싸게 샀는데 제대로 터지지도 않는다는 소비자 불만이 뜨겁지만, 4G 도입기에도 마찬가지였다. 그리 뜨겁게 좌충우돌하며 기술은 확산되다 곧 안정되고 어느새 자연스럽게 일상으로 받아들여지게 될 것이다. 그때쯤 6G가 등장하고 또 뜨거워지겠지만.

일반 확산에, 우려는 있다. 5G 대표선수가 아직은 좀 멀게 느껴지는 사물인터넷(IoT)이기 때문이다. 5G는 단순히 통신 속도 향상이 목적인 기술이 아니다. 물론 속도가 이론상 20배 정도로 빠르다지만 그보다는 저지연성이 기술의 핵심이다. 4G의 20ms에서 1ms까지 획기적으로 줄어든 ‘랙타임’에 따른 가장 큰 변화를 IoT 분야에서 가장 두드러지게 체감할 수 있다.

따라서 지금껏 동작 지연에 따른 위험 때문에 실용화되지 못했던 중장비 원격조종이나 위험물 원격처리 등 위험 작업의 원격화, 그리고 역시 저지연성이 필수적인 원격의료와 로봇 수술 등 의료계 활용도가 높으리라 전망된다. 실시간이란 말이 일반적 의미인 동시성이 아니라 순서 정확성과 절차 엄격성의 뜻으로 통하는 공장에서의 쓸모도 주목할 만하다. 특히 스마트카, 자율주행차 등 모빌리티 혁명이 5G 시대의 가장 두드러진 변화일 거라 예상된다.

 

그러나 위 열거한 용도는 일반 사용자에게 해당하는 일이 아니다. 그래서 일반 사용자는 5G 등장에 따른 획기적 변화를 당장은 직접 체감하기 어렵다. 구글과 애플이 엄청난 자본을 투자하고 있는 게임 구독 서비스가 상용화될 때쯤에야 대중은 비로소 5G 효과를 제대로 느끼게 될 것 같다. 대중에게 4G의 인상이 동영상 실시간 스트리밍 서비스였다면, 5G의 인상은 게임 플레이 스트리밍 서비스가 되리라 예상한다. 각종 서비스의 정적 이용이 동적 이용으로 변하는 것이다. 직접 체감 기회는 다소 늦어질지 몰라도 뭔가 확실히 달라졌음은 곧 체감하게 될 것이다.

5G의 위험: 보안

그런데 5G의 태생적 위험이 있다. 구조적으로 보안에 취약하다. 분야별 그리고 용도별로 서로 폐쇄적이던 기존 망 구조와 달리, 5G는 개방형으로 설계되어 용도에 따른 분산 구조로 적용된다. 대역을 쪼개 여러 분야에 분산해 적용하는 네트워크 슬라이싱 방식이다. 하나의 망을 통신, IoT, VR, 자율주행 등 가상 전용망으로 나눠 통신한다. 이리저리 분리하긴 하지만 어쨌든 결국 한 바구니에 담는 방식이다. 따라서 일반 기지국에서도 모든 종류의 데이터가 오가게 된다.

그래서 벌어진 것이 요즘 한창 요란한 화웨이 안보위협 논쟁이다. 망이 분야별로 폐쇄적일 때는 혹시 장비 해킹이 일어나더라도 해당 분야의 피해에 그치고, 보안 조치를 분야마다 최적화해 적용하는 일도 비교적 간단하다. 하지만 5G 환경에서는 장비 해킹을 통해 모든 종류의 데이터를 건드릴 위험성이 있고 이는 심지어 국가안보와 정보전쟁 문제로까지 이어진다는 것이 미국 등 서방국가들의 주장이다. 예비역 장성 등 미국사회 주요인사 일각에서는 “중국이 IoT 네트워크를 장악하면 상대국가 전체를 무기화할 수 있다” 등 거친 발언이 나오는 것도 아주 틀린 말이라 할 수는 없으니, 이 논쟁은 앞으로도 한동안 계속될 듯싶다.

그러니 국내외 통신사들도 하나같이 ‘보안이야말로 5G 사업의 경쟁력’이라고 말한다. 5G와 IoT 덕분에 서비스는 아주 화려해지겠지만, 보안이 무너지면 원격의료나 자율주행차 등 사람 목숨이 걸린 사고로까지 이어질 수 있기 때문에 사업 전체가 송두리째 위기를 맞게 될 위험이 있다. 그래서 보안 리스크 관리가 다른 그 무엇보다도 중요한 사업 경쟁력이 된다. 5G 보안 해법으로 KT는 블록체인을, SKT는 양자암호를 내세우는데, 결국엔 모든 기술이 복합적으로 통합 적용되어야 할 것이다. 블록체인과 암호화, 5G 보안의 두 가지 핵심 키워드다. 물론 IoT 보안 또한 당연히 필수다. 5G는 즉 IoT니까.

5G의 불만: 공정

소비자에게 체감 기회 지연과 함께 5G 여론을 험하게 만들 것으로 예상되는 건, 공정함에 대한 불만이다. 한껏 화려한 5G 서비스를 자유롭게 이용하려면 엄청난 양의 데이터 통신이 필요하다. 서비스가 아무리 멋지더라도 합리적 가격에 이용할 수 있어야지 만족할 텐데, 데이터 양이 너무 크기 때문에 데이터 이용 요금 문제가 쉽게 풀 수 없는 난제가 된다. 단지 값이 싸냐 비싸냐하는 문제가 아니다. 요금의 정당성 문제도 있다. 이를테면, 자동차를 보자.

5G 시대 자동차는 ‘데이터 드리븐 카’다. 데이터 통신에 전적으로 의존해 주행한다. 그리고 주행 중에 생산되는 드라이빙 데이터는 각종 서비스를 만드는 재료로 쓰인다. 데이터는 5G 시대 자동차 관련 업계 전체를 움직이는 연료인 셈이다. 따라서 사용자의 드라이빙 데이터, 즉 나의 운전 기록 데이터에는 확실한 금전적 가치가 있다. 그런데 그 데이터 비용 그리고 그 데이터로 만든 서비스 비용을 모두 다 내야 한다면? 사용자 입장에서는 어째 억울한 기분이다. 내 데이터를 상품 원료로 제공하는데 그 데이터로 만든 상품을 내 돈 내고 사야 하다니, 확실히 공정하지 않다.

드라이빙 데이터뿐만이 아니다. 사용자가 생산하는 모든 종류의 데이터 저작권 문제가 소비자 불만이 될 수 있다. 데이터 생산자에게 정당한 권리를 제대로 챙겨 줘야만 비로소 거래가 공정해질 텐데 아직은 그 방법이 미비하다. 사용자 데이터가 원료인 산업 분야를 분류하고 불량 데이터를 걸러내고 정제한 데이터가 데이터 마켓에서 거래되어야 해결될 일이다. 이때 블록체인 기술이 해법이 될 수 있다. 블록체인을 통해 산업재 데이터에 데이터 생산자 명의와 가격표를 붙여 거래하는 것이다. 데이터 값 결정은 시장 자체의 동작에 맡겨도 될 일이다.

보안칼럼_안전한 암호화폐 지갑

암호화폐 지갑이란?

 

완벽한 암호화폐 보안, 절대 쉬운 일 아니다. 세상에 숱한 암호화폐 지갑 제조사들이 자기네 지갑만 쓰면 완벽하게 안전하다고 주장하지만 실상과는 거리가 있다. 이에 안전한 암호화폐 지갑에 대해 알아보기로 하고, 우선 암호화폐 지갑이 뭔지부터 살펴보자.

 

암호화폐 지갑이란?

일상에서 ‘지갑’은 화폐, 신용카드, 신분증 등을 넣고 휴대하는 물건이다. 그래서 ‘암호화폐 지갑’이라 하면 흔히 암호화폐를 보관하는 진짜 지갑 같은 물건을 떠올린다. 비트코인이나 이더리움 등 암호화폐가 지갑 안에 들어 있을 것 같다. 그러나 암호화폐 지갑 안에는 암호화폐가 없다. 암호화폐 지갑은 블록체인 분산원장에 기록되는 거래 트랜잭션 데이터를 생성하고 서명하는 일에 사용되는 비공개키를 보관하고 관리하기 위한 도구일 뿐이다.

그림1

그럼 암호화폐는 지갑이 아니라 어디에 있는 걸까? 참여자 모두가 공유하는 블록체인 안에 있다. 내 자산, 비트코인이라면 내 키와 연결된 주소의 UTXO 합, 이더리움이라면 내 키와 연결된 계좌의 밸런스, 그러한 내 자산은 블록체인에 들어 있다. 혹시 지갑 안에 보관하는 키를 잃어버리면 암호화폐가 사라지는 것이 아니라 내 자산의 소유권을 증명할 수 없게 되는 것이다. 그렇기 때문에 암호화폐 자산 관리에 있어 가장 중요한 일은 키 관리다. 암호화폐 지갑이란 바로 그 키 관리를 하기 위한 도구다.

 

암호화폐 거래 증명과 암호화 기술

암호화폐 거래 즉 트랜잭션은 모두 ‘공개키 암호화’ 방식을 이용해 서명해야만 유효한 것으로 인정된다. 공개키 암호화 방식이란 개인키 그리고 그 개인키에 대응하는 공개키의 쌍으로 이루어지는 암호화 과정이다. 암호화폐 거래 시 개인키로 서명한 트랜잭션을 공개키로 검증함으로써 거래의 주체가 확실하다는 사실을 검증한다.

그림2

[ Public-key cryptography : https://en.wikipedia.org/wiki/Public-key_cryptography  ]

 

개인키는 절대 남에게 공개하지 않고 은밀히 관리해야 하기 때문에 ‘비공개키’라고도 한다. 256 비트의 랜덤 숫자를 일반적으로 사용하는 내 개인키가 외부로 노출될 경우 나 아닌 다른 사람이 나인 척 유효한 서명을 할 수 있게 된다. 이는 다시 말해 내 자산을 모두 다 가져가 버릴 수 있다는 뜻이다. 따라서 개인키를 안전하게 관리하는 일이 암호화폐 지갑의 제1의 목적이다.

공개키는 말뜻 그대로 공개되어 있는 키다. 개인키를 통해 공개키를 쉽게 생성할 수는 있지만, 개인키의 소유자가 아닌 사람이 공개키로부터 개인키를 생성하는 일은 불가능하다. 따라서 공개키가 일반에 공개되어 있더라도 쌍을 이루는 개인키가 없는 한 아무나 그 공개키를 이용할 수 없는 성질을 이용한 것이 공개키 암호화 방식이다. 그러한 성질에 따라 공개키에 SHA-256 일방향 암호화를 반복해 적용하는 이중 해싱 인코딩 등을 적용해 암호화폐 주소를 만든다. 일방향 암호화로 공개키를 통해 주소를 생성하지만 주소 즉 공개키로부터 개인키를 알아내는 일은 불가능하다.

 

암호화폐 지갑 기술의 발전사

인류 문명의 발전사는 결국 온갖 도구의 편리한 이용을 향한 연구개발의 역사 아닌가 싶다. 암호화폐 지갑도 날이 갈수록 점점 더 편리해졌는데, 그 변화는 암호화폐 지갑 기술에 대한 아주 중요한 의미를 담고 있으니 간략하게나마 살펴보자.

앞서 암호화폐 거래는 개인키와 공개키 쌍에 대한 검증을 통해 증명된다 했다. 그렇다면 개인키와 공개키 각각 1개씩만 갖고 있으면 거래를 막 해도 되는 걸까. 그렇진 않다. 거래 트랜잭션에는 거래자 명의와 주소 그리고 공개키 정보가 기록된다. 그리고 모든 트랜잭션은 나 말고도 누구나 간단히 조회할 수 있기 때문에, 같은 키와 주소를 계속 사용하면 내 자산 규모나 거래 내역 등이 모두 다 노출된다. 이는 개인의 프라이버시 침해 문제라 이를 피하고 사용자 편의를 향상하는 방법이 지속적으로 개선되어 왔고, 그 변화가 암호화폐 지갑 기술의 발전사라 할 수 있다.

최초의 암호화폐 지갑은 주소와 키 재사용을 피하기 위해 기본 100개 이상의 개인키를 무작위로 생성하고 코인별 그리고 용도별로 다른 개인키와 공개키를 사용했다. 이로써 프라이버시 노출 문제는 피할 수 있었지만 모든 거래에 대해 사용된 키를 저장하고 관리해야 하는 불편함이 컸다. 키를 무작위로 생성하기 때문에 이를 ‘랜덤 지갑(Random Wallets)’이라 한다. 아래 결정성 지갑과 대비해 ‘비결정성 지갑(Nondeterministic Wallets)’이라고도 부른다.

랜덤 지갑의 불편함을 해소하기 위해 개발된 것이 ‘결정성 지갑(Deterministic Wallets)’이다. 결정성 지갑은 다수의 난수표로부터 하나를 골라 난수를 생성하는 랜덤 시드 값을 이용하기 때문에 ‘시드 지갑(Seeded Wallets)’이라고도 부른다. 결정성 지갑은 날것의 무작위 키를 생성하지 않고 하나의 시드 값으로 순차적으로 키를 생성한다. 따라서 시드를 안전하게 보관하기만 하면 언제든 시드로부터 개인키를 순차적으로 재생성할 수 있기 때문에 거래에 사용된 모든 키를 백업하고 관리하는 불편함 문제를 해소한 지갑이다.

 

그림3

[ BIP-0032 : https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki ]

 

하지만 완전히 편리해진 건 아니다. 암호화폐 종류는 다양하고 한 사용자가 여러 주소를 가질 수도 있는데 결정성 지갑만으로는 그 복잡다단한 환경 전체를 모두 다 관리할 수가 없다. 그래서 ‘계층 구조 결정성 지갑(Hierarchical Deterministic Wallets)’ 개념이 제안되었다. 줄여서 ‘HD 지갑’이라고도 부르는 계층 구조 결정성 지갑은 마스터 시드로부터 개인키를 계층적으로 생성하고 관리함으로써 하나의 지갑으로 여러 화폐 그리고 주소를 관리할 수 있게 되었다. HD 지갑 기술은 ‘BIP-0032’란 이름의 형식으로 사실상 표준화되었고, BIP-0032 이후 BIP-0043 그리고 BIP-0044 등을 통해 계층 구조를 보다 정교화하는 등 기술을 보강해 왔다.

 

니모닉 코드, 사람이 읽을 수 있는 시드

HD 지갑에서는 마스터 시드만 있으면 모든 키를 재생성함으로써 지갑 전체를 복원할 수 있다. 하지만 16진법 32자리 무작위 텍스트로 출력되는 마스터 시드를 기억하고 보관하는 건 결코 쉬운 일이 아니다. 시드 값이 사람이 읽을 수 있는 단어가 아니기 때문이다. 그래서 사용 편리와 사용자 실수 예방을 위해 시드 값을 사람이 읽을 수 있는, 사전에 나오는 일상 단어로 표현해 줄 필요가 있다.

‘니모닉(Mnemonic) 코드’가 바로 그 역할을 맡는다. 일반 텍스트 단어로 표현되는 니모닉 코드는 암호화폐 지갑 사용자가 난해한 기술에 대한 이해 없이도 지갑을 편리하게 사용할 수 있도록 돕는다. ‘BIP-0039’ 형식으로 정리된 니모닉 코드는 임의의 값을 사전에 정의된 일상적 단어 리스트에 매핑한다. 니모닉 코드는 해시 함수를 재귀적으로 반복하는 키 스트레칭 과정을 거쳐 마스터 시드를 생성하고, 그 마스터 시드는 HD 지갑 동작의 바탕이 된다.

니모닉 코드는 흔히 볼 수 있는 단어의 조합으로 구성되기 때문에 왠지 보안적으로 불안해 보이기도 하지만 이는 착각일 뿐이다. 니모닉 코드에 대한 가장 단순한 그러나 강력한 무작위 대입(Broute-force) 공격을 한다더라도 목적을 달성하는데 12개 니모닉 사용 시 2의 128승의 조합이 필요하고 50% 확률로 찾으려 해도 2의 127승의 시도가 필요하다. 즉 니모닉 코드 해킹을 위한 노력보다 암호화폐 채광 쪽이 더 경제적 판단이라, 해커 입장에서도 니모닉 코드 해킹하려고 애쓰기보다 차라리 부지런히 채광이나 하는 게 낫다.

 

동작은 하는 지갑, 안전하진 않다

위 기술들만 있으면 지갑을 만들 수 있다. 모두 공통 표준 기술로 일반에 공개되어 있기 때문에 기술에 대한 깊은 이해 없이도 가져다 쓰기만 하면 어쨌든 지갑을 만들 수는 있다. 오류만 없다면 지갑은 제대로 동작할 것이다. 하지만 안전한 지갑이라 할 수는 없다.

안전한 암호화폐 지갑은 단지 지갑만의 문제가 아니다. 지갑이 아무리 튼튼하더라도 암호화폐는 눈 깜짝할 새 어디론가 사라질 수 있다. 숱한 암호화폐 해킹 사고들이 위 기술들이 없어서 일어난 게 아니다. “쇠사슬은 가장 약한 고리만큼 약하다”는 보안의 오래된 격언은 여전히 옳다. 앞으로도 계속해서 유효할 것이다.

안전한 암호화폐 지갑은 안전한 암호화폐 환경 전체를 이루고 그 안에서 동작해야만 가능하다. 안전한 암호화폐 지갑을 위해서는 앞서 간략히 살펴본 1)암호화폐 지갑 기술과 2)암호화 등 보안 기술 그리고 그러한 이해를 바탕으로 한 3)안전한 환경 전체를 설계하고 구축하는 보안 아키텍처 기술, 3가지가 모두 다 필요하다. 특히 2)의 심도 깊은 이해는 3)의 필수다. 

2017-06-14-1497416430-1422267-50_00-thumb

자동차회사=소프트웨어회사?

 

2017-06-14-1497416430-1422267-50_00-thumb

 

 

자동차회사 기술자들과 자동차보안 관련 회의를 할 때, 예전에 비해 분위기가 많이 달라졌음을 느낀다. 중공업 특유의 하드함이 접근을 거부하는 높은 벽 같아 왠지 답답했는데, 요즘은 많이 소프트해진 느낌이다. “자동차회사는 소프트웨어 개발사” 선언 전후로 확실히 달라진 것 같으니, 말이라는 것이 사람의 마음에 미치는 영향은 정말 크구나, 새삼 놀란다. 그리고 오늘날 자동차의 기술적 성질을 볼 때 이는 매우 긍정적인 변화라 생각된다.

그런데 대화가 원론적 수준에서 실무적 수준으로 넘어갈 때쯤, 확실한 변화에 도달하기엔 아직은 갈 길이 좀 멀구나 싶은 생각도 든다. 머리로는 ‘그래, 소프트웨어야’ 라고 생각을 고쳤다 하더라도 몸에 달라붙은 버릇을 바꾸기는 여간 쉬운 일이 아닌가 보다. 여전히 자동차산업은 소프트웨어가 아니라 하드웨어 조립산업으로 인식된다. 그러니 어떤 문제에 대해서든 조립의 단위인 부품 위주로 사고하려는 버릇이 남아 있다. 자동차보안 문제 또한 어떤 부품의 어떤 기능 정도로 생각하는 경향이 있다. 소프트웨어적으로 볼 때 이는 상당히 잘못된 인식이다. 이에, 현장에서 자주 듣는 질문에 답함으로써 ‘자동차=소프트웨어’ 등식을 다시 한 번 생각해 보자.

 

“자동차 부품에 어떤 보안 기능을 탑재해야 하나?”

원론적으로 말하자면, 보안이란 ‘기능’이 아니다. 소프트웨어 세계에서는 보안을 필요에 따라 추가하는 부가적 기능으로 보지 않는다. 언제나 보안을 고려해 시스템을 ‘설계’해야 한다. 보안을 무시하는 개발자는 결국 큰 문제를 일으키고 만다. 결정적으로, 보안과 관련된 기능이 있다고 해서 그 소프트웨어가 저절로 안전해지는 것도 아니다. 총체적으로 안전한 시스템을 설계하는 것이 보안적으로 가장 중요한 일이다.

실무적으로 보더라도, 보안 기능이 필요한 부품이 있고 아닌 부품이 있다. 크게 자동차 ‘내부(Internal)’ 통신 영역과 ‘외부(External)’ 통신 영역으로 나눠 보자면, 내부통신 영역에 해당하는 부품들은 대체로 특별한 보안 기능을 따로 추가할 필요가 없다. 주로 CAN(Controller Area Network)으로 통신하며 자동차 주행에 관련된 각종 장치들을 제어하는 내부 ECU(Electronic Control Unit)들이 여기에 해당한다. 그것들은 보안 기능 추가가 아니라 외부의 위험으로부터의 ‘격리’가 필요한 것들이다. 보안 기능은 CCU(Communication Control Unit)를 통해 자동차 외부와 통신하는 영역에 탑재하고 철저하게 관리하는 것이 일반적으로 적절한 설계다. 외부통신과 직접 관계되는 텔레매틱스(Telematics)나 인포테인먼트(Infotainment) 등이 여기에 해당한다.

특히 ECU 중 구동장치나 제동장치 등 자동차의 주행과 직접 관계되는 부품들은 애초에 주어진 바 각각의 목적에만 충실한 단순 사칙연산만을 수행하는 것이 소프트웨어적으로 오히려 안전하다. 단순해야 할 것은 단순해야 한다는 뜻이다. 안전하게 설계된 시스템이라면, 미국의 자동차 보안 및 사생활 보호 ‘SPY CAR(The Security and Privacy in Your Car)’ 법안에서도 언급하듯 보안이 꼭 필요한 영역과 보안이 불필요한 영역을 안전하게 ‘분리’한 시스템이라면 MCU 등의 부품에는 암호화나 키 관리 등 보안 기능을 따로 탑재할 필요가 없다. 오히려 괜한 복잡성 때문에 예기치 못한 오작동 등 위험성만 높아질 뿐이다.

 

“커넥티드 카 때문에 모든 부품에 보안 기능을 탑재해야 한다던데?”

아니, 오히려 안전을 위해서라도 피해야 할 일이다. ‘커넥티드 카’란 무선통신을 통해 내비게이션, 원격제어, 인포테인먼트, 자율주행 등의 서비스로써 자동차를 단순한 운송수단을 넘어 정보통신기기로 변화하게 만드는 기술을 통칭하는 개념이다. 앞서 말했듯 대체로 자동차 외부통신에 관계된 문제다. 내부통신 영역과 분리해 생각해야 한다.

간단히 말하자면, 커넥티드 카 보안이란 자동차 내부의 ECU 간의 통신을 외부통신으로부터 격리함으로써 안전하게 지키는 일이다. 즉, 자동차 외부에서 내부 장치를 임의로 조작할 수 없어야 한다는 뜻이다. 그렇기 때문에 커넥티드 카 때문에 “모든” 부품에 보안 기능이 탑재되어야 한다는 말은 별 의미가 없는 말이다. 정확히 분석된 보안적 필요에 따라 꼭 필요한 보안 기능을 꼭 필요한 적재적소에 적절하게 적용하는 일, 즉 안전한 시스템 설계야말로 자동차의 소프트웨어적 무결성을 이루는 올바른 방법이다.

“그렇다면 왜들 그리 보안부품을 사야 한다고 말하는가?”

일단은 자동차보안 기술 전반에 대한 이해 부족 때문이라고 생각되고, 부품기업들의 사업 전략적 필요 또한 의심해 볼 수 있겠다. 전장(電裝, E/E, Electrical/Electronic Components) 산업이 자동차 산업의 미래라는 말은 조금도 과장이 아니다. 자동차 제조원가에서 전장부품이 차지하는 비율은 현재 35% 정도에서 곧 50%를 넘으리라 예상된다. 그러니 이를 두고 전 세계적으로 경쟁이 아주 치열하다. 해당 시장의 기존 강자들뿐 아니라 후발주자인 세계적 전자기업들이 막강한 자본력을 무기 삼아 점점 더 커지는 전장 시장을 노리고 덤벼든다. 이를테면 한국의 ‘삼성전자’가 미국의 오디오 전문기업 ‘하만(Harman)’을 80억 달러에 인수한 것도 전장 사업의 미래 가치 때문이다. 그러니 자동차회사 입장에서도 그런 부품회사들에게 사업적으로 종속되지 않기 위해서라도 전장부품을 직접 생산하는 계획을 세울 수밖에 없는 처지다. 그렇기 때문에 기존 제품들과 다른 기술적 특수성이 과장되는 것일 뿐, 그 특수성이 실제로 필요한 것인지와는 전혀 무관한 이야기다. 자동차보안 기술적으로 보더라도, 불필요한 연산을 괜히 낭비할 뿐이다.

 

“커넥티드 카 시대를 대비해 자동차회사는 어떤 일을 해야 하나?”

무조건 보안이다. 즉, 안전한 시스템의 설계다. 10년 뒤 가장 중요한 IT 기술은 자동차보안일 거라 전망한다. 소셜 네트워크, 클라우드 컴퓨팅, 빅 데이터, IoT 등 온갖 요란한 기술들보다 자동차보안이 훨씬 더 중요하다. 다른 것들에 비해 자동차보안은 사람의 목숨이 걸려 있는 일이기 때문이다. 천 번 만 번 잘했다더라도 혹시 단 한 번 잘못하면 기업의 존망까지 위태로워질 수 있다. 커넥티드 카는 하드웨어적으로 그리고 소프트웨어적으로 일단 안전해야 한다. 편의성 등 여타 성질들은 모두 다 안전성 한참 뒤에 놓인다.

그리고, 소프트웨어적 무결성에 도전해야 한다. 과거 자동차는 ‘기계장치’였지만 미래 자동차는 ‘전자장치’다. 지금도 차량 1대에 100개 정도의 ECU와 1억 줄 정도의 코드가 탑재된다. 고가의 차량일수록 탑재된 전장부품의 수가 많고 더 많은 코드를 넣었다고 자랑 아닌 자랑을 하기도 한다. 하지만 통계적으로만 보자면 상업용 소프트웨어는 일반적으로 코드 1,000줄에 7개의 버그를 가지고 있다. 그렇게 보자면 자동차에는 10만 개의 버그가 있다고 가정할 수 있다. 지금도 끊임없이 발생하는 원인을 알 수 없는 온갖 사고들이 이와 무관하지 않을 것이다. 그러니 소프트웨어 개발사가 그러하듯, 소프트웨어로서의 퀄리티 관리와 프로그램의 동작에는 변화 없이 프로그램 내부의 구조를 개선하는 리팩토링 등 사후 확인 작업을 통해 소프트웨어적 최적화에 집중할 것을 권한다. 그런 일들을 제대로 해내기만 해도 현재 원인 불명의 문제들이 대폭 해소되리라 예상한다.

그리고 거듭 강조하는 바, 기존의 하드웨어 조립산업의 패러다임으로부터 벗어나야 한다. 자동차회사는 소프트웨어 개발사로서 자동차를 ‘안전한 시스템’으로 ‘설계’하는 일에 집중해야 한다. 그 일은 부품회사 등 다른 누군가가 대신 해 줄 수 없는 일이다. 지금껏 자동차는 비싼 부품과 싼 부품으로 완제품의 가격을 조절했다. 그래서 값이 10배 이상 차이 나는 제품군이 성립 가능했다. 10배 비싸지만 10배 더 좋은 오디오는 가능하다. 하지만 10배 안전한 보안은 가능한가? 가장 비싼 차보다 10배 싸다고 해서 10배 불안한 자동차를 팔 것인가? 안전 때문에라도 자동차보안 문제는 부품 기준 사고방식으로 풀 수 있는 문제가 아니다. 부품과 무관하게 안전한 소프트웨어 시스템을 설계하고 이를 싼 차와 비싼 차에 모두 적용해야 할 일이다.

“자동차회사는 소프트웨어 개발사”, 정말 그렇게 되기를 기대하고 응원한다.

OLYMPUS DIGITAL CAMERA

사물인터넷도 대기업의 몫인가

 

2017-12-13-1513150747-2514564-61_00-thumb

 

우선, 오해가 있다. 어떤 사물을 인터넷에 연결하기만 하면 ‘사물인터넷’ 된다는 오해.

웹 검색기에 IoT, 스타트업, 사물인터넷, 창업 등 검색어 넣어 보면 온갖 화려한 미사여구로 치장한 글이 엄청 뜬다. 사물인터넷으로 스타트업 육성, IoT 스타트업 이렇게 시작하라, 뜨거운 사물인터넷 창업 열기 등, 아주 뜨겁다. 정부도 마찬가지다. 사물인터넷이야말로 소자본 창업이 용이한 미래산업이므로 우리 모두 창조적으로 뭐 어쩌고저쩌고.. 그런데,

IoT는 정말 소자본 스타트업에 어울리는 사업일까?

결론부터 말하자면, 지금은 그렇지 않다. 그래선 안 된다.

 

IoT는 삼위일체

 

1)디바이스, 2)어플리케이션, 3)클라우드, 이 3가지 요소가 합해 IoT를 이룬다.

어플리케이션이란 말은 그냥 ‘인터넷’으로 바꿔 읽어도 무방하다. 요즘 어플리케이션은 거의 전부가 웹 어플리케이션이니까. 이름부터 ‘사물인터넷’이니 사물도 있고 인터넷도 있어야 하니 1)과 2)는 당연해 보인다. ‘사물’이 ‘인터넷’보다 먼저 나오고 실물이 눈에 딱 보이는 구체성까지 더해져 더 중요해 보이지만 실은 ‘인터넷’이 더 중요하다.

달리 말해, 드론 산업과 마찬가지다. 드론은 눈에 딱 보이는 물건이라서 ‘드론 산업’ 그러면 누구나 드론이라는 사물만 떠올리지만, 그래서 “드론은 중국이 세계 최고!”라며 “한국은 이제 어쩌지,,” 겁도 내고 그러는데, 드론 업의 본질은 날개 4장 달린 납작한 비행 물체를 가장 싸게 만드는 단순 산업공학적 경쟁이 아니라, 국가 규모의 3차원 좌표망 위 특정 위치에 추상적 데이터가 아닌 구체적 사물이 안정적으로 위치 그리고 이동하게끔 만드는 일과 그 관제, 그리고 안전이다. 물건 싸게 만들기만을 두고 경쟁하지 않아도 된다는 뜻이다.

그럼 1과 2)는 그렇다 치고, 3)클라우드는? 그 또한 필수 요소다. 사물로부터 수집한 정보를 클라우드를 통해 취합해 종합하고 분석함으로써 제품의 성능을 개선하고 사용자에게 필요한 서비스를 제공한다. 그게 없다면 사물인터넷이란 고작 어떤 물건에다 전화기를 통해서 켜고 끌 수 있는 원격 스위치를 붙이는 일에 불과할 테니까. 그 스위치마저도 안전이 필수적인 스위치라면 함부로 막 붙일 수도 없고.

 

IoT 보안도 삼위일체

 

1)디바이스, 2)어플리케이션, 3)클라우드가 IoT의 필수요소이므로,
1)디바이스 보안, 2)어플리케이션 보안, 3)클라우드 보안 또한 IoT 보안의 필수요소다.

문제는 그 3가지 보안이 서로 다른 성질의 기술을 요구하므로 기술 연구개발의 성격 또한 다른데, 대기업 규모라면 각각 따로 전담 팀을 운영해 별 문제 없겠지만 소규모 기업 형편으로는 감당하기 어려운 일이다. 모든 팀 다 짜려면 이미 작은 기업이 아니게 되니까. 그래서,

IoT는 정말 소자본 스타트업에 어울리는 사업일까?

지금은 그렇지 않다는 것이다. 그리 함부로 막 덤벼들 일이 아니다. 또 그래서도 안 된다. IoT는 기존 흔한 IT와 달리 사람과 직접 접촉하는 사물을 다루는 기술이기 때문에 안전 문제가 훨씬 더 치명적이다. 따라서 IoT는 “선보안-후연결” 원칙이 필수적이다. 정보만 오가는 IT 사고는 터져도 돈 좀 잃고 회사 상대로 법 두고 다투면 될 일이지만, 사물을 다루는 IoT 사고는 사람 목숨이 위험할 수도 있다. 낮잠 자다가 로봇 청소기에 머리카락이 빨려들어가 119 구조대가 출동한 일쯤은 웃으며 나누는 옛날 이야기처럼 차라리 귀여운 수준의 사고일 수도 있다.

1)디바이스 보안, 2)어플리케이션 보안, 3)클라우드 보안 등, IoT 보안의 삼위일체의 어느 한 요소도 절대 허술해선 안 된다. 그런데도 쉽게 “IoT는 소규모 창업!” 떠드는 어수선한 풍토가 정말 우려스럽다. 그 와중에 인터넷 카메라 등 아직은 고작 태동기 수준에 머물러 있는 IoT 사물들은 온갖 사고를 터뜨리고 있다. 정말 위험한 상황이다.

그렇다고, 포기해야 하나. IoT마저 대기업의 몫이란 말인가. 다행히 그렇진 않다.

 

IoT 개발은, IoT 플랫폼

 

IT 이야기에 흔히 등장하는 ‘플랫폼’이란 용어는 승강장이라는 원래 말뜻을 넘어서 시스템을 구성하는 골격의 뜻으로 여러 산업 분야에서 두루 쓰인다. 여러 사람이 쉽게 이용하는 공용 기반시설 정도의 뜻인데, 이를테면 공장의 생산 과정 전반에서부터 어떤 IT 어플리케이션이 동작하는 바탕이 되는 OS 등 환경까지 전반적으로 일컫는 말이다.

말하자면 산업공학적 합리의 흐름에 따라 정착된 용어인데, 대량생산을 위한 절차 그리고 절차의 자동화를 고민하는 과정을 통해 개념이 각각의 분야에서 점차 구체화되었다. 이에 따라 요즘은 윈도우, macOS, 안드로이드, iOS 등 운영체제나 인터넷 익스플로러, 크롬 등 브라우저까지 플랫폼이라 불리고 있고, 개발 편리를 위해 어떤 언어를 위한 환경을 제공해 주는 보조 어플리케이션도 개발 플랫폼이라 불린다

IoT에도 그런 플랫폼이 있다. IoT가 오늘날 IT 업계의 가장 뜨거운 유행인 만큼 여러 회사들이 경쟁적으로 훌륭한 IoT 플랫폼 서비스를 제공한다. 그러한 플랫폼을 이용하면 작은 회사들도 필요한 모든 기술력을 자체적으로 보유하지 않고도 HTTP 등 프로토콜을 이용해 디바이스를 다른 디바이스 그리고 웹 서비스에 연결하고, 데이터를 주고받으며 상호작용하고, 수집한 데이터를 처리하고, 그 처리 결과에 기반한 서비스를 운영하는 등의 사물인터넷 사업을 훌륭히 운영할 수 있다.

그럼 작은 회사도 IoT 플랫폼 이용해 간편하게 개발하면 될 일 아닌가. 문제는,

 

IoT 보안은, IoT 보안 플랫폼

 

IoT 플랫폼이 제공하는 서비스 사양을 자세히 들여다보면 보안 부분은 어째 좀 부실하다. 이는 클라우드 컴퓨팅 서비스의 보안 부실과도 비슷한 현상이다. 필요한 기능을 모두 다 제공해 주는 것 같지만 유독 보안 부분만은 부실한 것. 플랫폼 서비스 제공자마다 ‘공동책임모델’ 등의 엄격하고 딱딱한 용어를 쓰며 슬쩍 피하려 든다는 느낌이다. 아마도 사고 발생 시 법적 책임 문제 등 여러 복잡한 사정의 이유가 따로 있겠지만 이유야 어쨌든,

상업용 IoT 플랫폼들이 제공하는 IoT 보안은 그 자체만으로는 충분하지 않다. 특히 IoT 보안의 가장 기본이라 할 수 있는 인증서 운영 정책의 단순함에서부터 우려가 크다. IoT 사물에 있어 인증서는 여권과 같다. 사물은 인증서를 여권처럼 지닌 채 인터넷 세계를 여행한다. 그리고 그 여권을 검사하는 일은 인증기관(CA)이 맡는데, 그 체계가 전반적으로 부실한 것이다.

어느 정도의 복잡함은 불가피하다. 디바이스의 종류와 성질에 따라 적용하는 보안 방법론은 완전히 달라져야 한다. 이를테면 기능이 단순하고 제자리에 고정된 스마트 전등의 위험성과 아주 복잡하고 빠르게 달리는 스마트 자동차의 위험성은 하늘과 땅만큼 먼데 그 둘에다 같은 수준의 인증서를 사용할 수는 없잖은가.

IoT 보안에 있어 사물 그리고 사용자를 인증하는 일은 가장 먼저 일어나고 또 가장 중요하다. 그리고 그 중요성은 앞으로 IoT 기술이 점차 발전해 사람:사물 연결을 넘어 사물:사물 연결로 향해 갈수록 더욱 커질 것이다. 인터넷 사용 과정에 사람이 끼면 그 사람의 주의 집중을 강제해 사고를 예방하고 경고에 따르지 않았다는 이유로 문제의 상당한 책임이 사용자에게 있다고 우길 수도 있지만 ‘사물:사물’ 연결은 책임을 떠넘길 사람도 없으니, 이는 IoT 사업자 입장에서는 전에 비해 훨씬 더 커진 사업적 리스크다. 그래서라도 더욱, 선보안-후연결.

잘 짜여진 IoT 보안 플랫폼이 절실하다. 특히 IoT가 적용되는 여러 환경에 대응하는 다양한 인증서를 관리하고 인증기관(CA) 역할도 맡아 처리하는 일을 기반으로 잘 짜여진 IoT 보안 플랫폼이. 기존 IoT 플랫폼이 그 일까지 해 준다면 참 편하겠다만, 앞서 짐작해 본 ‘어른의 사정’ 때문에 아마도 요원한 일일 듯싶다. 세계는 이미 위험 신호를 계속 보내고 있는데 아무도 듣지 않는다. 큰 걱정이다.