CHERIoT(체리엇)이 MMU(Memory Management Unit) 없이도 강력하고 사용하기 쉬운 소프트웨어 격리(isolation)를 제공하여 임베디드 시스템 보안에 새로운 접근법을 제시하고 있습니다. 기존 시스템들이 메모리 보호를 위해 MMU에 의존했던 것과 달리, CHERIoT은 하드웨어 지원 캐퍼빌리티(capability)를 활용해 각 소프트웨어 구획(compartment)이 서로의 메모리에 접근할 수 없도록 엄격하게 분리합니다. 이는 자원 제약이 심한 마이크로컨트롤러(MCU) 환경에서 특히 유용하며, 보안 취약점의 공격 범위를 획기적으로 줄일 수 있습니다.
CHERIoT의 핵심은 '계층적 불신'이 아닌 '상호 불신'을 바탕으로 한 설계입니다. 이는 사실상 '커널 공간'이라는 개념이 없음을 의미합니다. 기존 모놀리식 커널에서는 사용자 공간이 커널에 핸들을 넘기면 커널이 내부 테이블에서 실제 상태 포인터를 찾아 처리했지만, CHERIoT에서는 각 구획이 자신의 할당 캐퍼빌리티를 직접 전달하여 메모리를 확보하고 봉인된(sealed) 포인터를 반환합니다. 이 봉인된 포인터는 변조를 감지하고 원래 자료구조의 포인터를 복원할 수 있어, 전역 동기화 없이도 안전하게 데이터에 접근할 수 있습니다. 예를 들어, TCP/IP 구획은 소켓 상태를 이런 방식으로 공개하고, TLS(Transport Layer Security) 구획은 호출자 대신 소켓을 만들어 자체 구조체에 담은 뒤 불투명하고 타입 안전한 포인터만 반환함으로써 호출자가 원시 소켓에 접근할 수 없도록 보장합니다.
이러한 접근 방식은 신뢰 경계(trust boundary)의 API 설계를 근본적으로 변화시키며, 일반적인 라이브러리 경계와 훨씬 유사하게 만듭니다. 각 구획은 독립적인 실행 흐름을 가지며, 다른 구획의 버그가 내 데이터에 영향을 미치지 않도록 완전한 격리가 가능해집니다. 이는 특히 IoT(사물 인터넷) 기기처럼 보안이 중요하지만 자원이 제한적인 환경에서 해킹 공격의 파급력을 최소화하고, 시스템 전체의 견고성을 높이는 데 크게 기여할 것입니다. 개발자들은 더 안전하고 모듈화된 소프트웨어를 구축할 수 있게 되며, 복잡한 보안 메커니즘 구현 부담을 줄일 수 있습니다.