IoT 디바이스에서 UART 보안: RSA 키 교환부터 AES 암호화까지
최신 마이크로컨트롤러에 내장된 암호화 블록으로 개발자는 이제 UART처럼 전통적으로 내장 보안이 없는 레거시 인터페이스를 포함하여 모든 통신 채널을 보호할 수 있습니다.
IoT 시스템의 유명 데이터 유출로 훌륭한 제품을 제공하는 것만으로는 부족함이 명확해졌습니다. 디바이스는 경쟁력을 유지하기 위해 엔드투엔드 암호화를 제공해야 합니다.
많은 프로토콜이 네이티브 보안을 내장하지만, UART는 보드 레이트만 알면 읽거나 변조할 수 있는 평문 무응답 인터페이스로 남아 있습니다. 도청과 주입을 방지하려면 엔드포인트 자체가 데이터를 암호화하고 인증해야 합니다.
대칭 및 비대칭 보안
암호화 보호는 일반적으로 대칭 및 비대칭 알고리즘 두 범주로 나뉩니다. 대칭 키(송신자와 수신자가 공유)는 빠른 암호화를 제공하지만 키를 안전하게 교환해야 합니다. 비대칭 키 쌍은 한 쪽이 공개 키로 대칭 키를 암호화하면 대응하는 개인 키 보유자만 해독할 수 있게 하여 이 문제를 해결합니다.
RSA는 키 교환을 위한 가장 일반적인 비대칭 방식이며, AES는 효율성과 낮은 리소스 풋프린트로 인해 데이터 암호화의 주력입니다.
공개 키 및 개인 키 암호화
RSA의 수학적 복잡성은 강력한 보안을 보장하지만 상당한 연산 능력이 필요하며, 이는 임베디드 실시간 시스템에서 비용이 많이 들 수 있습니다. 대부분의 IoT 디바이스에 대해 하이브리드 접근 방식(RSA로 AES 키 교환, 이후 AES로 대량 데이터)은 속도와 보안의 최적 균형을 제공합니다.
실제로 수신자는 RSA 키 쌍을 생성하고 공개 키를 공유합니다. 송신자는 무작위 AES 키를 생성하고 수신자의 공개 키로 암호화하여 다시 보냅니다. 수신자는 개인 키로 AES 키를 해독하고, 이후 모든 메시지는 해당 키로 암호화됩니다.
그림 1: RSA를 사용한 AES 키의 보안 교환. (출처: Infineon)
의도한 수신자만 개인 키를 보유하므로 공격자는 채널을 가로채도 AES 키를 복구할 수 없습니다. 이후 모든 통신은 도청과 변조로부터 보호됩니다.
펌웨어 대 하드웨어 구현
암호화 알고리즘을 펌웨어만으로 구현하는 것은 리소스가 많이 소모됩니다: CPU 사이클을 소비하고, 지연 시간을 늘리며, 전력 소비를 증가시킵니다. 최신 MCU는 전용 암호화 가속기로 무거운 연산을 특수 하드웨어 블록으로 오프로드하여 풋프린트와 비용을 크게 줄임으로써 이를 완화합니다.
Infineon의 PSoC 6 MCU는 이 접근 방식을 예시합니다. 내장 암호화 엔진은 AES, DES, TDES, RSA, SHA, CRC를 지원하여 개발자가 더 강력한 프로세서 없이도 견고한 보안을 배포할 수 있게 합니다.
진정한 난수
무작위성은 키 생성에 필수적입니다. 결정론적 펌웨어는 예측 가능한 키를 생성하여 무차별 대입 공격을 가능하게 할 수 있습니다. PSoC 6의 6개 링 오실레이터 같은 진정한 난수 생성기(TRNG)는 물리적 노이즈를 도입하여 예측 불가능한 키를 생성합니다.
16바이트 AES 키의 경우 TRNG는 128비트 난수를 생성하여 2^128 가능한 키를 만드는데, 이는 무차별 대입의 범위를 훨씬 벗어납니다. 또한 매 재부팅마다 키를 재생성하면 손상된 키의 노출 기간을 제한합니다.
무결성 및 진위성 보장
UART에 ACK가 없다는 것은 메시지가 완전하거나 손상되지 않았음을 보장하는 본질적인 메커니즘이 없음을 의미합니다. 이를 해결하기 위해 암호화 전 각 메시지에 암호화 해시(SHA)를 추가합니다. 수신자는 복호화 후 해시를 재계산하여 수신된 값과 비교합니다. 불일치는 변조 또는 전송 오류를 나타내며 메시지를 폐기하게 합니다.
그림 2: 해시는 보안 교환 중 메시지 무결성을 보장합니다. (출처: Infineon)
추가 진위성을 위해 송신자는 개인 키로 메시지에 서명할 수 있습니다. 수신자는 송신자의 공개 키로 서명을 검증하여 메시지가 정당한 출처에서 왔음을 보장합니다.
RSA, AES, TRNG, SHA를 MCU의 암호화 블록에 통합함으로써 개발자는 전통적으로 보호되지 않던 UART 인터페이스를 성능이나 비용 저하 없이 보호할 수 있습니다.
—Harigovind A 및 Rakshith M B, 선임 애플리케이션 엔지니어, Infineon Technologies
>>> 이 기사는 원래 자매 사이트인 EDN에 게시되었습니다.