전자 종이 디스플레이를 사용하여 중요 IoT 노드의 심각한 오류 및 보안 손상 표시

작성자: Bill Giovino

DigiKey 북미 편집자 제공

보안 시스템에서는 네트워크상에 있는 개별 장치의 기능보다 네트워크 전반의 보안과 안전이 더 중요합니다. 따라서 사물 인터넷(IoT) 및 산업용 IoT(IIoT) 노드의 사용이 점점 증가하고 있습니다. 이는 IoT 노드에서 손상이 감지되거나 복구할 수 없는 펌웨어 오류가 발생할 경우, 가장 안전한 조치는 최대한 빨리 노드 전력을 차단하여 발생 가능한 위험한 결과로부터 노드와 네트워크를 보호해야 한다는 의미입니다.

하지만 노드 전력을 차단하면 휘발성 메모리의 내용이 모두 손실됩니다. EEPROM 또는 플래시와 같은 비휘발성 메모리에 디버그 데이터를 저장하려면 시간과 전력이 소비되며, 손상이 발생할 위험이 커집니다. 또한 전원을 켜는 시퀀스도 손상된 경우 전원을 켜고 데이터를 다시 읽는 지점에서 시스템이 손상되어 데이터를 신뢰하지 못할 수 있습니다.

이 기사에서는 전력 차단 이벤트의 원인을 시각적으로 나타내어 기술자가 적절할 조치를 취할 수 있도록 전자 종이 디스플레이(EPD)를 IoT 또는 IIoT 노드에 손쉽게 연결하여 마지막 알려진 오류를 표시하는 방법을 설명합니다. 그런 다음 Pervasive DisplaysDisplay Visions에서 제공하는 전자 종이 디스플레이의 예를 제공하고, 해당 디스플레이를 마이크로 컨트롤러에 연결한 후 전력을 거의 또는 전혀 소비하지 않고 진단 정보를 제공하도록 구성할 수 있는 방법을 살펴봅니다.

고보안 IoT 및 IIoT 노드

IoT 및 IIoT 노드 설계자는 호스트 마이크로 컨트롤러의 적절한 작동을 보장하기 위해 더욱 정교한 보안 방법을 마련해야 할 책임이 커졌습니다. 일반적으로 차단되어야 할 세 가지 보안 위협이 있습니다.

  1. 마이크로 컨트롤러 펌웨어 오작동
  2. 센서, 키패드, 직렬 주변 장치 또는 다른 외부 장치의 잘못된 입력 데이터
  3. 악의적인 사용자의 작동

설치된 펌웨어의 코딩 오류, 잘못된 계산, 마이크로 컨트롤러의 하드웨어 오작동(매우 드문 경우) 등 다양한 이유로 마이크로 컨트롤러 펌웨어 오작동이 발생할 수 있습니다. 올바르게 작성된 펌웨어는 일반적으로 하위 루틴 및 기능에 대한 입력을 삭제하여 오작동을 감지합니다. 펌웨어가 잠기거나 루핑되는 극단적인 경우 감시 타임아웃은 오류 제어 하위 루틴으로 벡터링하거나 마이크로 컨트롤러를 하드 리셋하여 펌웨어를 복구합니다.

입력 데이터가 잘못된 경우(예: 외부 센서가 오작동하거나 변조된 경우) 범위를 벗어난 데이터는 응용 코드에서 제대로 반영되지 않을 수 있습니다. 예를 들어 사람이 거주하는 제어실의 주위 온도 센서에서 매우 높은 250°F를 잘못 등록한 경우 센서 오작동 또는 악의적 변조에 해당할 수 있습니다. 펌웨어 프로그래머가 부주의하게 높은 온도에 맞게 온도 측정치를 코딩하지 않아 잘못된 데이터 로깅과 같은 사소한 오작동이 발생하거나, 침투자의 보안 데이터 액세스와 같은 심각한 오작동이 발생하거나, 제어 알고리즘 계산 오류와 같이 장비 고장이나 심각한 부상으로 이어질 수 있는 중대한 오작동이 발생할 수도 있습니다. 즉, 다양한 부정적인 결과가 발생할 수 있습니다.

악의적인 사용자는 IoT 노드가 오작동하도록 만들려는 고의적인 의도를 가졌다는 점에서 차이가 있습니다. 해킹 시도로 인한 오작동은 보안 루틴에서 침입으로 감지될 수 있지만, 펌웨어 오작동이나 잘못된 외부 입력 데이터로 위장될 수도 있습니다. 주위 온도가 250°F로 높게 측정되는 경우 악의적인 사용자가 침입 방법을 테스트하기 위해 높은 온도 측정치로 펌웨어 테스트 동작을 실시할 수 있습니다. 예를 들어 250°F의 높은 주위 온도가 측정되어 화재로 잘못 평가될 경우 도어가 자동으로 잠금 해제될 수 있습니다.

펌웨어 오작동에 대한 반응

오류의 원인에 상관없이 고보안 IoT 및 IIoT 노드용 마이크로 컨트롤러 펌웨어는 결함을 용납해선 안 됩니다. 모든 결함을 코딩하고 차단해야 합니다. 하위 루틴과 기능에 대한 입력을 삭제하고 모든 센서 입력 데이터를 검증해야 합니다. 알려진 실행 시간을 기반으로 하여 지나치게 오래 걸리는 잠긴 코드나 루핑된 코드를 감지하기 위해 감시 타이머를 프로그래밍해야 합니다.

고보안 IoT 또는 IIoT 노드에서 펌웨어 오작동이 감지될 경우 오작동이 우발적인지 고의적인지 여부에 상관없이 펌웨어는 이벤트를 최대한 빨리 차단해야 합니다. 일반적인 조치에는 오작동 보정이 포함됩니다. 오작동 센서가 범위를 지속적으로 벗어날 경우 해당 센서에서 잘못된 데이터를 보정하여 대체할 수 있도록 펌웨어가 "림프 모드"로 전환될 수 있습니다. 잘못된 결과를 반환하는 펌웨어 루틴을 다시 시작할 수 있습니다. 대체적으로 네트워크를 통해 오류 코드를 전송하여 네트워크 호스트에 문제를 알립니다.

하지만 일부 고보안 IoT 또는 IIoT 노드에서는 보정 또는 대처가 불가능하거나 금지되는 특별한 종류의 오작동이 있습니다. 여기에는 물리적 변조 감지, 내부 체크섬 실패, 일부 내장형 자체 시험(BIST) 오류를 비롯하여 손상된 펌웨어나 해킹된 시스템으로 인한 모든 고장이 포함될 수 있습니다. 이러한 고보안 상황에서 유일한 옵션은 노드 전력을 즉각적이고 안전하게 차단할 수 있어야 합니다. 네트워크 호스트는 노드가 네트워크 요청에 응답하지 않을 경우 노드 전력이 차단되었는지 확인합니다. 호스트에 오류 보고서를 보내지 않고 노드 전력을 차단하고, 노드에서 네트워크 재시작 명령을 무시할 경우 치명적인 고장이 발생한 것이므로 노드를 물리적으로 검사하여 원인을 파악하도록 기술자를 즉시 파견해야 합니다.

하지만 노드 전력이 차단되면 모든 휘발성 메모리와 상태 데이터가 즉시 지워집니다. 따라서 전원 차단 원인을 진단하는 것이 매우 어렵습니다. 필요에 따라 노드 전력을 차단하기 전에 EEPROM 또는 플래시 메모리와 같은 비휘발성 메모리에 진단 데이터를 저장할 수 있습니다. 문제는 이러한 유형의 메모리에 기록하는 데 많은 시간이 걸리고, 이 시간 동안 노드를 활성 상태로 유지해야 하므로 추가적인 피해가 발생할 수 있다는 것입니다.

전자 종이를 사용하여 심각한 오류 진단

EPD는 매우 적은 전력을 소비하며 노드 전력을 차단하기 직전에 오류 및 진단 정보를 저장하여 표시하는 데 사용될 수 있습니다. 노드 전력이 차단될 경우 EPD는 전력을 사용하지 않고 며칠 또는 몇 주 동안 디스플레이 이미지를 유지할 수 있습니다. 디스플레이의 정보는 기술자에게 전원 차단 이유를 시각적으로 보여주어, IoT 노드를 켜는 것이 안전한지 세부 분석을 위해 네트워크를 차단해야 할지 여부를 결정할 수 있도록 도와줍니다.

진단 정보를 표시하는 데 적합한 EPD의 예로는 Pervasive Displays의 E2271CS091 EPD 모듈이 있습니다. 이 모듈은 SPI 직렬 인터페이스를 사용하여 호환되는 모든 마이크로 컨트롤러를 연결하며 고대비 2.71인치 디스플레이를 탑재하고 있습니다(그림 1).

Pervasive Displays의 E2271CS091 EPD 모듈 이미지그림 1: E2271CS091 EPD 모듈에는 해상도가 264픽셀 x 176픽셀인 고대비 2.71인치 디스플레이가 탑재되어 있습니다. 또한 시야각이 넓고 SPI 인터페이스를 통해 모든 호환되는 마이크로 컨트롤러에 연결됩니다. (이미지 출처: Pervasive Displays)

E2271CS091 EPD 모듈은 117dpi에서 기본 해상도가 264픽셀 x 176픽셀인 활성 매트릭스 박막 트랜지스터(TFT) 디스플레이를 사용합니다. 따라서 기술자가 진단하는 데 도움이 되는 많은 정보를 디스플레이에 포함할 수 있습니다. 반사 방지 화면은 약 180˚의 넓은 시야각을 제공하여, 비정상적인 실장 위치에서도 디스플레이를 쉽게 볼 수 있습니다. EPD에는 3.0V 전원 공급 장치가 필요합니다.

호스트 마이크로 컨트롤러는 디스플레이의 24핀 리본 커넥터에 있는 SPI 인터페이스를 통해 EPD에 데이터를 전송합니다. SPI 데이터 통신은 호스트 마이크로 컨트롤러에서 EPD로의 단방향 통신입니다. EPD에서 호스트 마이크로 컨트롤러로의 역방향 통신은 리본 커넥터의 "장치 사용 중" 핀을 통해서만 가능하므로, 인터페이스가 매우 간단하고 표시되는 진단 데이터에 대한 신뢰도가 향상됩니다.

오류 또는 해킹 시도가 감지되고 노드 전력을 차단해야 할 정도로 오류가 심각할 경우 먼저 펌웨어, 감시 또는 기타 방법으로 오류를 차단해야 합니다. 그런 다음 EPD에 데이터를 전송하는 오류 로깅 루틴에 제어권을 전달해야 합니다. 이 오류 로깅 루틴은 데이터의 중단이나 손상을 방지하기 위해 가장 우선적으로 수행해야 하는 작업입니다. 신뢰성을 극대화하기 위해 외부 하위 루틴이나 기능을 호출하지 않고 오류 로깅 루틴을 완전 자급형으로 운영하는 것이 좋습니다. 펌웨어 업데이트 후에도 코드 무결성이 보장되도록 오류 로깅 루틴을 영구적으로 쓰기 보호되는 플래시에 저장하는 것이 좋습니다.

EPD를 오류 데이터로 업데이트하기 전에 호스트 마이크로 컨트롤러는 먼저 SPI 인터페이스를 통해 EPD에 소프트 리셋 명령을 전송하여 디스플레이를 지워야 합니다. 그런 다음 흑백 디스플레이를 일련의 바이트 시퀀스로 전송합니다. 여기서 바이트의 각 비트는 EPD의 픽셀을 나타냅니다. 시퀀스가 완료된 후 오류 로깅 루틴에서 마이크로 컨트롤러의 전원을 차단할 수 있습니다. 이는 아키텍처와 제조업체에 따라 다르므로 마이크로 컨트롤러 제조업체마다 차단 방법이 다릅니다. 보안상의 이유로 제조업체에서는 요청된 경우에 한해 문서화되지 않은 방법으로 마이크로 컨트롤러의 전원을 차단할 수 있습니다. 필요에 따라 외부 회로를 사용하여 마이크로 컨트롤러의 전원을 차단할 수 있지만, 그러면 시스템의 복잡도가 커지고 신뢰성이 감소됩니다. 따라서 마이크로 컨트롤러의 펌웨어 전원 차단 제어가 선호됩니다.

EPD를 사용한 개발을 지원하기 위해 Pervasive Displays는 B3000MS034 EPD 확장 키트를 제공합니다(그림 2). 이 키트에는 40핀 및 26핀 커넥터가 필요한 다른 Pervasive Display EPD용 커넥터와 24핀 EPD 디스플레이용 커넥터가 있는 확장 기판이 포함되어 있습니다. 확장 기판은 Texas InstrumentsLaunchPad 개발 및 평가 키트와 호환되지만, 다른 개발 키트에도 사용할 수 있습니다. 20핀 브리징 케이블을 20핀 90˚ 헤더 커넥터에 연결할 수 있습니다. 이때 확장 기판에 납땜한 후 개발 중에 EPD에 대한 제어 신호를 모니터링할 수 있습니다.

Pervasive Displays의 E2271CS091 EPD 모듈용 확장 키트 이미지그림 2: Pervasive Displays E2271CS091 EPD 모듈용 확장 키트의 확장 기판에는 디스플레이의 24핀 리본 케이블용 24핀 커넥터가 포함되어 있습니다. 또한 브리징 케이블과 90˚ 20핀 헤더 커넥터가 있습니다. (이미지 출처: Pervasive Displays)

다른 EPD 옵션에는 Display Visions EA EPA20-A가 있습니다(그림 3).

Display Visions의 EA EPA20-A EPD 이미지그림 3: Display Visions EA EPA20-A EPD는 전력을 연결하지 않고 디스플레이 상태를 유지할 수 있는 172픽셀 x 72픽셀 디스플레이입니다. (이미지 출처: Display Visions)

이 EPD는 172 x 72 그레이 스케일 디스플레이를 포함하며 SPI 인터페이스를 사용하여 호스트 마이크로 컨트롤러와 통신합니다. EPD는 단일 3.3V 전력 공급이 필요한 초저전력 모듈이며 디스플레이 교체 중에 40mW만 소모합니다. Display Visions EA EPA20-A EPD는 전력을 공급하지 않고도 디스플레이를 유지할 수 있습니다.

결론

심각한 펌웨어 오류 또는 위협이 감지된 경우 이에 응답하여 고보안 IoT 및 IIoT 노드에서 전원을 차단해야 하는 경우가 있습니다. 그러면 호스트 마이크로 컨트롤러의 내부 상태를 비롯한 모든 휘발성 데이터가 손실될 수 있습니다. 하지만 전원을 차단하기 전에 상태 및 진단 데이터를 연결된 EPD에 전송하여 며칠 또는 몇 주 동안 표시할 수 있습니다. 이렇게 하면 기술자가 전원 차단의 원인을 파악하고 향후에 예방 조치를 취하며 필요에 따라 노드와 네트워크를 보호 및 보안하는 데 필요한 정보를 확보할 수 있습니다.

DigiKey logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Bill Giovino

Bill Giovino

Bill Giovino는 시러큐스 대학(Syracuse University)에서 전자 공학 학위를 취득한 전자 엔지니어이며, 설계 엔지니어링에서 현장 애플리케이션 엔지니어링은 물론 기술 마케팅에 이르기까지 바로 투입 가능한 몇 안 되는 실력자 중 하나입니다.

Bill은 25년 이상 STMicroelectronics, Intel, Maxim Integrated를 비롯한 다양한 회사의 기술 및 비기술 담당자를 대상으로 신기술을 홍보해 왔습니다. STMicroelectronics 재직 중 Bill은 마이크로 컨트롤러 업계에서 회사의 초기 입지를 다지는 데 공헌했습니다. Infineon에서는 미국 자동차 업계에서 회사 최초로 마이크로 컨트롤러 설계를 성공으로 이끌어 내는 역할을 했습니다. Bill은 직접 설립한 CPU Technologies의 마케팅 컨설턴트로 일하면서, 많은 업체들이 실적이 저조한 제품의 실적을 개선하는 데 도움을 주고 있습니다.

Bill은 최초의 전체 TCP/IP 스택을 마이크로 컨트롤러에 배치하는 것을 비롯하여 사물 인터넷을 조기에 수용한 바 있습니다. Bill은 '교육을 통한 판매'라는 메시지와 온라인을 통한 제품 홍보에 있어 커져 가는 명확하고 분명한 의사 소통의 중요성 전달에 전념하고 있습니다. Bill은 LinkedIn의 인기 그룹인 Semiconductor Sales & Marketing Group의 중재자이며, B2E에 유창합니다.

게시자 정보

DigiKey 북미 편집자