Tamper proofing

템퍼 프루핑(Tamper proofing) 또는 템퍼 레지스턴스(Tamper resistance)라고 하는 기술은 소프트웨어의 위변조 방지 역공학 기술의 일종으로 디지털 콘텐츠의 관련 산업이나 전자상거래 또는 보호해야 할 소프트웨어가 있는 다양한 산업 분야에 적용된다.

템퍼 프루핑 기술은 프로그램에 변조 검증 코드를 삽입하여 소프트웨어가 불법으로 변조된 것이 확인된 경우 해당 소프트웨어의 정상적 작동을 방해한다. 이 때 변조 검증 코드의 용도는 프로그램이 변조되었는지를 탐지하고 변조가 탐지되었다면 프로그램이 실행되지 않게 하는 것이다. 이에 템퍼 프루핑 기술의 최근 기술 내용 및 적용 예를 살펴본다.

신기술 개요

어도비(Adobe)사는 템퍼 방지 비디오 렌더링 특허를 미국에서 2016년 3월에 등록 받아 템퍼 프루핑 기술을 비디오 콘텐츠에 적용하는 예를 보여줬다. 매체 프로그램에는 콘텐츠의 특징과 상업 광고를 정의하여 포함시키고, 해시 엔진을 미디어 파일의 선택된 블록 상에서 보안 토큰을 연산한다. 보안 토큰과 상응하는 메타데이터는 저장소에 저장하고, 콘텐츠의 특징으로 제공하기 전에 해시값은 다운로드된 매체 프로그램에 포함되도록 하여 템퍼 방지 를 수행한다. 얼굴 인식 분야 연구에서 50년 이상의 역사를 가진 모포트러스트(MorphoTrust)사는 최근 지문, 얼굴, 홍채 등 바이오 정보를 다루는 스타트업을 인수.합병하여 바이오 인식 토털 솔 루션 업체로의 도약을 꾀하고 있는데, 미국 내 스마트폰 운전면허증 도입을 위한 연구 과 정에서 ‘템퍼 프루핑을 위한 동적 디지털 워터마크’를 개발하고 2016년 8월에 특허 등록을 받았다. 시각적으로 최초의 시점 포인트에서 제시되는 제1의 디지털 워터마크를 생성하고, 제2 시간점에서 제시되는 제2의 디지털 워터마크를 생성한다. 이 때 생성되는 디지털 워터 마크의 휘도 변조와 색차 변조를 가지고 데이터의 동일성 여부를 식별한다. 이 기술은 스 마트폰 운전면허증의 사진을 살짝 움직이게 만들어 일반적으로 찍은 사진과 다르게 하는 연구의 일환으로 알려져 있으나, 적용 여부는 지켜봐야 한다.

모바일 광고 업체인 페이지페어(PageFair)사는 미국에서 2016년 9월에 안티-템퍼링 (Anti-tampering) 서버를 특허 등록 받았는데, 이는 웹 서버로부터 URL(Universal Resource Locators)을 수신하여 보호대상물(SW 혹은 콘텐츠)에 접근하는 것(템퍼링)을 방 지하는 기술이다. 그래서 안티-템퍼링 필터는 외부 서버(제3 서버)에서 수신한 URL과 연계 되어 생성된 고유 식별자를 이용하여 템퍼링을 방지한다.

한편, 현대자동차는 2016년 9월에 미국등록특허를 받았는데, 차량 모바일 기기에 대한 템 퍼 프루핑을 적용하였다. 차량 내에서 모바일 기기가 감지되면 사용 가능 여부를 표시하고, 모바일 기기의 기능이 작동되거나 제한되도록 하였다.

한국전자통신연구원은 한국에서 2015년 6월에 특허가 공개된 부정조작방지 장치에서, 부정 조작방지(Tamper-proof) 장치에 의한 애플리케이션 처리 예를 구현하였다. 애플리케이션 실행 시, 애플리케이션의 실행에 관계된 파일을 이용하여 제1 검증 해시값을 생성하고, 부정조작방지(tamper-proof) 장치에 저장된 애플리케이션의 무결성 값과 제1 검증 해시값이 일치하는 경우, 애플리케이션과 부정조작방지 장치 간 세션을 연결한다.

부정조작방지 장치에 애플리케이션이 실행될 때마다 랜덤(random)하게 생성되는 값을 애 플리케이션의 핸들값으로 등록하여 핸들값이 결합된 명령이 있는 경우, 핸들값에 대응하는 키 값을 이용해 암/복호화를 수행하여, 사용자가 비밀번호를 입력하지 않고도 부정조작방지 장치의 키 값을 이용하여 정보의 암/복호화를 수행할 수 있게 하였다.

시사점

디지털 워터마킹은 디지털 콘텐츠에 삽입되어 저작권 확인 및 증명에 이용되기도 하고, 영상의 위변조 판별에도 이용된다. 템퍼 프루핑은 소프트웨어의 위변조 판별에만 적용되는 것이 아니라, 이러한 영상의 위변조 판별, 모바일 단말기의 위변조 판별, 팩스 문서의 위변 조 판별 등에도 적용되고 있다. 이러한 템퍼 프루핑은 사용자에 의해 소프트웨어가 수정이 이루어졌는지를 검증하는데, 소프트웨어 내에서의 암호 키의 사용을 보호하기 위해 난독화(Obfuscation) 기법을 함께 사용하기도 한다. 난독화란 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술이다.

스마트폰의 사용이 더욱 광범위해지면서 위변조된 앱은 결제 시스템을 우회하거나 다른 프 로그램을 무력화시키거나 개인정보를 유출하는 등 위험성도 커져가고 있다. 템퍼프루핑과 같은 소프트웨어의 위변조 방지 기술과 더불어 위변조를 위한 시도는 끊임없이 이루어지고 있는바, 위변조 기술과 이의 대응 기술의 트렌드를 알고 지속적으로 적절히 대응할 수 있는 기술의 개발이 요구된다.