블로그 목록
successIoT 보안인증KISA펌웨어 무결성상호 인증

보안인증은 부품을 고르는 날 시작됩니다: KISA 라이트 등급 사전 대응기

인증은 보통 제품을 다 만든 뒤에 준비합니다. 기능이 먼저고 인증은 그다음이라는 순서가 자연스럽기 때문입니다. 그런데 저장 데이터 보호나 디버깅 인터페이스 차단처럼 하드웨어 구조에 걸리는 항목은 그 순서로는 붙지 않습니다. 요구사항 정의 단계에서 보안 항목만 따로 떼어 낸 이유와, 그렇게 해서 잃은 것을 적습니다.

OpenIoT

OpenIoT 플랫폼팀

조회 24
보안인증은 부품을 고르는 날 시작됩니다: KISA 라이트 등급 사전 대응기

개발 중인 스마트폰 근접 인식 아파트 출입 단말기를 대상으로 한국인터넷진흥원(KISA) IoT 보안인증 라이트(Lite) 등급 사전 대응 작업을 하고 있습니다. 진행 중인 일이라 취득 결과가 아니라 대응 방식을 적습니다.


발주 조건에 인증이 들어 있었습니다

이번 과제에서 인증이 등장한 방식이 조금 달랐습니다. 만들고 나서 「인증도 받아 볼까」가 아니라, 처음부터 수행 범위에 들어와 있었습니다.

발주 조건에 들어간다는 것은 성격이 다릅니다. 있으면 좋은 항목일 때는 일정에 따라 조절할 수 있지만, 조건이 되는 순간 그 항목을 못 맞추면 제품이 아예 납품되지 않습니다. 개발사 입장에서는 기능 목록의 한 줄이 아니라 착수 전에 확인해야 할 전제가 됩니다.

그래서 착수 시점에 먼저 한 일은 기술 검토가 아니라 역할을 가르는 일이었습니다. 인증은 개발사가 대신 받아 주는 것이 아니라 발주처 이름으로 받는 것이고, 개발사가 할 수 있는 일은 심사에 낼 수 있는 상태로 제품과 문서를 만들어 두는 데까지입니다.

여기를 흐려 두면 나중에 서로 다른 것을 기대하게 됩니다. 「인증을 받아 준다」와 「인증을 받을 수 있는 상태로 만들어 준다」는 계약상 완전히 다른 약속이라, 착수 시점에 문서로 갈라 두는 편이 안전합니다.

항목수행 주체산출물
인증 요구사항을 제품 설계에 반영오픈아이오티요구사항이 반영된 하드웨어와 펌웨어
기술문서 작성오픈아이오티심사에 제출할 문서
시험용 기기 준비오픈아이오티심사용 단말기
본심사 신청발주처신청 접수
인증 수수료발주처납부

통상 순서대로 가면 하드웨어를 다시 뜯게 됩니다

역할을 가르고 나서 다음으로 정한 것은 언제 시작하느냐였습니다. 통상적인 순서는 기능을 먼저 만들고 인증은 나중에 준비하는 것이고, 일정 압박이 있을 때 뒤로 미루기도 쉬운 항목입니다.

요구 항목을 훑어보니 그 순서로 가면 안 되는 것들이 섞여 있었습니다. 저장 데이터 보호나 디버깅 인터페이스 차단처럼 하드웨어 구조와 직접 연결되는 항목입니다. 이미 선정한 칩과 회로 구성이 기준을 충족하지 못하면, 그 시점에는 하드웨어를 다시 설계하는 수밖에 없습니다.

두 경로의 차이는 마지막이 아니라 첫 칸에서 이미 갈립니다. 되돌리는 시점에는 기판을 다시 뜨고 시제품을 다시 만드는 일정이 그대로 추가되므로, 비용이 처음 설계 비용과 크게 다르지 않습니다.

전부 앞당긴 것이 아니라 걸리는 것만 골랐습니다

그렇다고 인증 항목을 전부 개발 초기에 봐야 하는 것은 아닙니다. 소프트웨어로 채울 수 있는 항목은 나중에 붙여도 되고, 실제로 그렇게 진행하는 편이 효율적인 경우도 있습니다.

가르는 기준은 그 항목이 어디에 걸려 있는가였습니다. 화면과 서버에 걸린 항목은 뒤로 미뤄도 되지만, 칩과 회로에 걸린 항목은 부품을 고르는 순간 이미 결정됩니다. 저희가 요구사항 정의 단계에서 한 일도 전체를 앞당긴 것이 아니라, 하드웨어에 걸리는 항목만 골라내 앞으로 옮긴 것입니다.

골라낸 항목은 별도 목록으로 관리했습니다. 기능 요구사항과 한 덩어리로 묶어 두면 일정이 밀릴 때 가장 먼저 뒤로 가는데, 화면 하나를 미루는 것과 칩 선정 기준을 미루는 것은 되돌리는 비용이 전혀 다릅니다.

목록을 나눠 두면 「이번에 뺄 것」을 고를 때 보안 항목이 후보에 오르지 않습니다. 관리 기법이라기보다는 사람이 급할 때 하는 판단을 미리 막아 두는 장치에 가깝습니다. 일정이 빠듯한 날에 이 항목을 뺄지 말지 논의하는 상황 자체를 만들지 않는 것이 목적이었습니다.


키를 꺼낼 경로를 아예 없앴습니다

단말기에는 인증되지 않은 펌웨어의 실행을 제한하는 기능과, 저장 영역 전체를 암호화하는 기능이 들어갑니다.

이 항목들이 필요한 이유는 이 기기가 놓이는 자리 때문입니다. 출입 단말기는 건물 밖 벽면에 붙고, 서버실에 들어가 있는 장비와 달리 누구나 손을 댈 수 있습니다. 물리적으로 떼어 가는 상황을 예외가 아니라 기본 조건으로 놓고 설계해야 합니다.

떼어 간 단말기에서 무엇을 얻을 수 있느냐가 실제 질문입니다. 저장 영역이 그대로 읽히면 등록된 사용자 정보와 통신에 쓰는 값이 함께 나가고, 그 값으로 다른 단지의 단말기까지 시도해 볼 수 있게 됩니다. 한 대를 뜯은 결과가 한 대로 끝나지 않는 구조가 되는 셈입니다.

부품 후보를 살펴보던 자리입니다. 기능과 단가만 보고 고르던 자리에 인증 요구사항이 먼저 들어오면서, 후보를 추리는 기준 자체가 달라졌습니다.

부품 후보를 살펴보던 자리입니다. 기능과 단가만 보고 고르던 자리에 인증 요구사항이 먼저 들어오면서, 후보를 추리는 기준 자체가 달라졌습니다.

암호화 키는 한 번 기록하면 변경하거나 읽어낼 수 없는 칩 내부 보안 영역에 넣도록 설계했습니다. 키를 소프트웨어가 읽을 수 있는 자리에 두면, 그 소프트웨어를 뚫는 순간 암호화 전체가 의미를 잃습니다. 한 번만 기록되고 그 뒤로는 손댈 수 없는 영역에 넣으면 그 경로가 처음부터 없습니다.

보안을 세게 걸수록 문이 늦게 열립니다

암호 연산은 전용 하드웨어로 넘겼습니다. 이 결정이 나온 배경에는 보안과 편의의 정면 충돌이 있었습니다.

암호화를 강하게 걸수록 연산이 늘고, 연산이 늘면 문이 늦게 열립니다. 출입 단말기는 문 앞에서 사람이 기다리는 장비라 그 지연이 그대로 체감되고, 애초에 이 제품은 카드를 대는 2초를 이기려고 만드는 것이었습니다. 보안을 지키느라 카드보다 느려지면 제품의 존재 이유가 사라집니다.

연산을 전용 회로로 넘기는 것은 이 충돌을 소프트웨어가 아니라 부품 선정으로 푸는 방식입니다. 다시 말해 개발이 끝난 뒤에는 고를 수 없는 선택지이고, 이런 항목이 하나둘 쌓이면서 인증 대응을 앞으로 당겨야 한다는 결론이 나왔습니다.


암호화만으로는 막히지 않는 공격이 있습니다

통신 구간에서는 스마트폰과 단말기가 상호 인증을 거친 뒤 출입 신호를 주고받게 만들었습니다. 여기에 재전송과 위조, 변조를 막는 절차를 따로 붙였습니다.

따로 붙인 이유가 있습니다. 통신을 암호화하는 것만으로는 재전송 공격이 막히지 않습니다. 내용을 읽지 못해도 오간 신호를 통째로 복사해 두었다가 그대로 재생하면, 받는 쪽에서는 정상적인 요청과 구분되지 않기 때문입니다.

같은 신호를 다시 보내도 두 번째에는 열리지 않습니다. 출입 설비에서 이 항목이 중요한 이유는 공격자가 문 앞에 서 있을 수 있기 때문입니다. 신호를 한 번 가로채 두었다가 나중에 그대로 다시 보내는 방식은 값비싼 장비 없이도 시도할 수 있는 공격에 가깝습니다.

서버에 있는 데이터를 노리는 공격과 달리, 출입 단말기를 노리는 공격은 목표가 아주 단순합니다. 한 번만 열면 됩니다. 안에 든 정보를 빼내려는 것이 아니라 문을 여는 것이 목적이므로, 정상 신호를 그대로 흉내 내는 것만으로 충분해집니다.


앞당긴 값은 부품 선택지와 착수 속도입니다

고른 쪽의 대가를 적어 두겠습니다.

인증 기준을 앞에 놓으면 부품 선택지가 좁아집니다. 기능만 보면 더 싸거나 더 빠른 칩이 있어도, 보안 요구를 충족하지 못하면 후보에서 빠집니다. 단가가 올라가는 만큼은 그대로 제품 원가에 남습니다.

요구사항 정의 단계도 길어집니다. 기능 목록을 먼저 확정하고 시작하는 편이 착수는 빠른데, 보안 항목을 따로 뽑아 부품 후보와 대조하는 작업이 앞에 붙으면 첫 몇 주가 문서 작업으로 갑니다. 그 시간을 나중에 재설계로 돌려받는다는 판단이었을 뿐, 착수 시점만 보면 느린 방식이 맞습니다.

발주처 입장에서도 눈에 보이는 진척이 늦어 보일 수 있는 구간입니다. 화면이 나오기 시작하는 시점이 뒤로 밀리는데, 그동안 무엇을 하고 있는지가 문서로만 남기 때문입니다.

작성 중인 기술문서입니다. 화면이 나오기 시작하기 전까지 남는 결과물이 이 문서라, 발주처 눈에는 진척이 늦어 보이는 구간이기도 합니다.

작성 중인 기술문서입니다. 화면이 나오기 시작하기 전까지 남는 결과물이 이 문서라, 발주처 눈에는 진척이 늦어 보이는 구간이기도 합니다.

확인된 범위도 정확히 적겠습니다. 저희가 하는 일은 인증 요구사항의 설계 반영과 기술문서 작성, 시험용 기기 준비까지이고, 본심사 신청과 인증 수수료는 발주처가 진행합니다. 라이트 등급을 취득했다는 뜻이 아닙니다.

설계 단계에서 인증 기준을 반영한 판단이 실제로 얼마의 비용을 아꼈는지도 수치로 제시하지 않습니다. 재설계를 피했다는 것은 일어나지 않은 일이라 계산할 근거가 없고, 심사 결과가 나오기 전까지는 기준을 충족했다고 단정할 수도 없습니다. 사전 대응을 잘한 것과 심사를 통과하는 것은 다른 일이며, 후자는 저희가 판정할 수 있는 영역이 아닙니다.


다음은 기기 유형별로 다시 정리하는 일입니다

이번에 만든 목록을 다른 기기에도 쓰려고 정리하고 있습니다. 다만 출입 단말기에서 뽑은 항목이 그대로 옮겨지지는 않는데, 밖에 노출되는 기기와 실내에 두는 기기, 사람이 만지는 기기와 설비에 붙는 기기는 지켜야 할 항목이 서로 다르기 때문입니다.

예를 들어 저장 영역 암호화는 뜯어 갈 수 있는 기기에서 무겁게 걸리는 항목이지만, 배전반 안에 들어가는 기기라면 우선순위가 달라집니다. 목록을 그대로 복사하면 필요 없는 항목에 원가를 쓰고 정작 필요한 항목을 빠뜨리게 됩니다.

인증 요구사항은 회로와 펌웨어, 통신 구조에 동시에 걸립니다. 저장 영역 암호화 하나만 봐도 어느 칩을 쓰느냐, 펌웨어가 키를 어떻게 다루느냐, 통신 구간에서 무엇을 주고받느냐가 전부 함께 걸립니다. 세 영역을 각각 다른 곳이 맡으면 항목 하나를 확인하는 데 세 번 물어봐야 합니다. 다음 과제에서는 기기 유형별로 무엇이 하드웨어에 걸리는지부터 먼저 정리해 두려고 합니다.


IoT 서비스,
지금 바로 시작하세요

디바이스 연결부터 대시보드까지 올인원

무료 플랜으로 부담 없이 체험