Gartner는 2020년까지 전 세계적으로 208억 개의 연결된 기기가 있을 것으로 예측합니다. 사물인터넷(IoT)에서 연결되는 기기의 수가 증가함에 따라 서비스 제공업체는 새로운 수익원을 개발할 수 있는 기회를 얻습니다. 최종 사용자에게 IoT는 보안, 건강, 교육 및 기타 여러 분야에서 생산성과 품질을 획기적으로 향상시킬 수 있는 솔루션을 제공할 수 있는 잠재력을 가지고 있습니다. 이러한 기회를 활용하려면 서비스 제공자는 완벽한 데이터 보호, 개인정보 보호, 사용자 안전을 보장하는 동시에 최적의 고객 경험을 제공해야 합니다.
그러나 다양한 장치의 수가 많아질수록 네트워크 취약성도 커지며, 많은 장치가 해커와 서비스 거부 공격의 표적이 될 가능성이 있습니다. IoT 기기는 메모리, 스토리지, 컴퓨팅 리소스 면에서 제약을 받는 경우가 많습니다. 이러한 제한으로 인해 복잡하고 진화하는 보안 알고리즘을 지원하는 데 어려움이 있습니다. 이는 낮은 CPU 사이클에서 더 높은 처리 능력이 필요하기 때문입니다. 연결된 기기는 암호화 효과보다 수명이 짧을 수도 있습니다.
Heavy Reading의 수석 분석가인 Jim Hodges는 2016년 2월에 실시한 모바일 서비스 제공의 미래에 대한 조사 및 보고서에서 서비스 제공업체의 가장 큰 보안 문제는 분산 서비스 거부(DDoS) 및 봇넷 공격으로 인한 중단이라고 지적했습니다. 이러한 두려움에 이어 외부 공격자가 사용자의 신원을 스푸핑하여 트래픽을 조작하는 시스템 무결성과 관련된 위협이 뒤따릅니다.
IoT 보안에는 신원, 인증, 권한 부여라는 세 가지 개념이 기본입니다. 신원은 클라이언트의 이름을 지정하고 권한을 부여하는 것입니다. 인증은 클라이언트의 신원을 증명하는 것을 의미하고, 권한 부여는 클라이언트에게 부여된 권한을 관리하는 것을 의미합니다. 실시간 인텔리전스 분석을 위한 장치 데이터 수집을 더욱 활성화하려면 IoT 통신 프로토콜에 대한 합의도 필요합니다.
IoT 메시지 프로토콜에는 다음과 같은 고급 기능이 포함되어야 합니다.
오늘날 가장 인기 있는 IoT 메시지 프로토콜은 MQTT (Message Queue Telemetry Transport)입니다. MQTT는 제조, 운송/자산 추적, 에너지, 커넥티드 홈을 포함한 산업 분야에서 기본 전송 프로토콜로 사용됩니다. IBM, Microsoft, Amazon Web Services , Facebook Messenger를 비롯한 모든 회사는 빠른 메시지 전달과 장치 배터리 수명을 절약하기 위해 MQTT를 사용합니다.
MQTT와 같은 IoT 프로토콜은 장치 간의 안전하고 안정적인 통신에 사용됩니다. MQTT는 전송 제어 프로토콜(TCP)을 기반으로 하며 TLS(전송 계층 보안)로 보안을 강화할 수 있습니다. MQTT 프로토콜은 특정 IoT 애플리케이션에 대해 HTTP보다 훨씬 간단하고 작은 패킷 크기로 최적화된 낮은 컴퓨팅 및 메모리 요구 사항으로 설계되었습니다.
MQTT는 원래 1999년에 원격 센서를 위해 만들어졌지만 게시-구독 모델을 기반으로 하는 다양한 IoT 애플리케이션으로 새로운 생명을 얻었습니다. 장치/센서는 IoT 플랫폼(브로커)에 데이터를 "게시"하고 IoT 애플리케이션은 해당 사용 사례와 관련된 데이터를 "구독"합니다. 게시 및 구독된 데이터는 "주제"라고 하며, 이는 사용 사례 및 데이터 유형 범주를 기반으로 계층 구조로 구성할 수 있습니다. 장치와 플랫폼 간의 연결성과 통신은 각 사용 사례에 필요한 부하, 제어, 보안에 영향을 미칩니다.
리소스가 제한된 IoT 기기에 대한 프로토콜을 최대한 가볍게 유지하기 위해 MQTT는 TCP를 넘어서는 최소한의 보안을 제공합니다. MQTT에서는 추가 수준의 인증이 필요한 애플리케이션에만 TLS 프로토콜을 사용할 것을 권장합니다. 결과적으로 TCP에만 의존하는 MQTT 통신은 암호화되지 않고 중간자 공격을 받기 쉽습니다.
MQTT 프로토콜은 여러 가지 잠재적인 취약점을 가지고 있습니다. 예를 들어, 열려 있는 포트는 네트워크 및 장치 전체에 걸쳐 서비스 거부(DoS) 공격은 물론 버퍼 오버플로 공격을 실행하는 데 사용될 수 있습니다. 연결된 IoT 기기 수와 지원되는 사용 사례에 따라 "주제" 구조의 복잡성이 상당히 커질 수 있으며 확장성 문제가 발생할 수 있습니다. MQTT 메시지 페이로드는 이진법으로 인코딩되며, 해당 애플리케이션/장치 유형은 상호 운용이 가능해야 합니다. 또 다른 문제 영역은 일반 텍스트로 전송되는 MQTT 메시지 사용자 이름과 비밀번호와 관련이 있습니다.
MQTT 사양의 일부는 아니지만 IoT 플랫폼 브로커가 SSL/TLS 클라이언트 측 인증서를 사용하여 클라이언트 인증을 지원하는 것이 일반적이 되었습니다. SSL 및 TLS를 사용한 전송 암호화는 올바르게 구현하면 데이터를 보호할 수 있습니다. 위협으로부터 보호하려면 사용자 ID, 비밀번호 및 기타 자격 증명을 포함한 중요한 데이터는 항상 암호화해야 합니다.
TLS, SSL 및 기타 암호화 방법을 사용하는 데에는 상당한 오버헤드가 발생할 수 있다는 단점이 있습니다. 그러나 TLS 세션 재개와 같은 기술을 사용하면 TLS의 연결 비용 중 일부를 보상할 수 있습니다. 하드웨어 가속은 암호화로 인한 크기 패널티를 줄이는 또 다른 방법입니다. 제한된 장치에서 실행되는 복잡한 애플리케이션의 경우, 최적화된 암호화 라이브러리가 매우 유용할 수 있습니다. 애플리케이션 코드가 큰 경우 암호화 라이브러리를 사용하면 처리 메모리를 줄이고 성능을 높일 수 있습니다.
MQTT의 아키텍처는 브로커의 높은 가용성에 달려 있습니다. 많은 클라이언트가 데이터베이스 조회나 웹 서비스 호출과 같은 브로커 서비스를 사용하려고 할 때 클라이언트 인증에 X.509 인증서를 사용하면 브로커 측의 리소스를 절약할 수 있습니다. TLS와 같은 최첨단 보안 표준과 MQTT를 결합하고 X.509 인증서를 사용하면 보안과 성능을 향상하는 데 도움이 될 수도 있습니다.
사물인터넷은 서비스 제공자에게 중요한 새로운 사업 기회를 제공합니다. TLS를 사용하여 MQTT 메시징 프로토콜을 보호하는 것이 중요한 보안 고려 사항이기는 하지만, 다른 많은 공격 벡터 역시 악용될 수 있습니다. 서비스 제공자는 통신 경로에 대한 액세스에 대한 엄격한 장치 인증, 권한 부여 및 네트워크에서 시행하는 정책을 통해 종단 간 보안을 보장해야 합니다. 최적의 고객 경험을 제공하기 위한 서비스 제공자의 수익 흐름에도 안전과 개인정보 보호를 위한 데이터 암호화는 중요합니다.