21.7 보안, 접근 제어 및 네트워크 최적화

21.7 보안, 접근 제어 및 네트워크 최적화

수십만 개의 노드가 연결된 완벽한 스마트 팩토리 인프라와 관제 대시보드도 단 한 번의 외부 침입이나 악의적인 제어 패킷 탈취에 의해 치명적인 피해를 볼 수 있다. 분산 네트워크의 라우터는 데이터를 신뢰성 있게 전달하지만, 그 ’전송’이 해커의 트래픽을 허용하는 수단이어서는 안 된다.

본 절에서는 Zenoh의 자체 ACL(Access Control List) 기능과 TLS(Transport Layer Security) 암호화를 활용하여 누가 어떤 토픽에 어떻게 접근할 수 있을지 엄격히 통제하는 보안 매커니즘을 구성한다. 아울러 보안 설정으로 야기될 수 있는 네트워크 오버헤드를 극복하고 대규모 데이터 처리 성능을 튜닝하며, 생존(Liveliness) 모니터링 기술을 접목하여 견고한 무결점 네트워크를 증명하라.

1. TLS를 이용한 엔드투엔드 데이터 암호화 적용

클라우드의 메인 라우터와 공장 측 에지 라우터 간 통신은 외부 인터넷망을 거칠 확률이 높으므로 TLS 적용은 필수적이다.

첫째, 인증기관(CA)과 라우터용 TLS 인증서를 발급한다. OpenSSL 등을 사용하여 ca.crt, server.crt, server.key를 생성하고 메인 클라우드 라우터(zenohd) 환경에 마운트하라.

// cloud_config.json5
{
  listen: {
    endpoints: ["tls/0.0.0.0:7447"] // TCP 기반에서 TLS 구성으로 업그레이드
  },
  transport: {
    link: {
      tls: {
        certificate: "/cert/server.crt",
        private_key: "/cert/server.key",
        verify_hostname: false 
      }
    }
  }
}

둘째, 에지 단말(C/Rust 기반) 클라이언트의 TLS 접속 구성이다. 에지 노드는 동일한 라우터 CA 루트 인증서를 신뢰하도록 설정 빌더를 조정하고, tls/<cloud-router-ip>:7447 엔드포인트로 연결해야 한다. 패킷 스니핑 공격이 들어오더라도 데이터는 복호화 불가능한 쓰레기 값으로 변질되어 무결성이 성립된다.

셋째, 고성능 로밍을 위한 QUIC 프로토콜의 도입이다. TLS가 보안을 챙기지만, TCP의 헤드 오브 라인 블로킹(Head-of-Line Blocking) 문제로 인해 이동하는 로봇(AMR) 환경에서는 빈번한 통신 지연이 발생할 수 있다. UDP 기반의 QUIC 프로토콜은 기본적으로 TLS 1.3 암호화를 포함하며 핸드셰이크 라운드트립이 더 짧다. 라우터 엔드포인트를 quic/10.0.0.1:7447로 전환하는 것만으로 보안과 연결 안정성을 동시에 확보하라.

2. Zenoh ACL을 적용한 역할 기반 접근 제어(RBAC)

내부망이 완벽히 보호된다는 가설을 배제하라. 악의적 기기가 /amr/robot_1/cmd_vel 제어 토픽을 직접 퍼블리시하여 로봇을 조종하는 참사를 막기 위해, 라우터 측에서 정책적으로 권한을 축소해야 한다.

첫째, 모든 클라우드 및 안개(Fog) 라우터의 구성 파일(zenohd.json5)에 접근 제어(Access Control) 속성을 활성화하라. 인증서 CN(Common Name)이나 토큰을 기반으로 클라이언트를 식별하고, 명시된 리소스 경로에만 작동 권한을 차등적으로 양도해야 한다.

## zenohd.json5
access_control: {
  enabled: true,
  rules: {
    # 대시보드 관리자 계정 - 모든 경로 조회/제어 권한 
    admin_user: {
      "**": "rw"
    },
    # 엣지 센서 노드 - 오직 /factory 하위 센서에 쓰기 권한 존재, 스니핑(Read) 불가 권한 
    edge_sensor_cert: {
      "/factory/zone_A/sensor/**": "w"
    }
  }
}

둘째, 최소 권한 원칙(Least Privilege)이다. 신뢰할 수 없는 엔드포인트(MCU 등)에게는 가장 좁은 권한만을 할당하여, 하나의 칩이 해킹당하더라도 구조적으로 망의 횡적 이동 공격(Lateral Movement)을 단절시켜야 한다.

셋째, 동적 ACL 업데이트 기능이다. Zenoh는 운영 도중에도 메인 데몬의 재개방(Reboot) 없이 라우터 관리자 공간(admin_space)을 통해 동적으로 규칙을 갱신할 수 있다. 이상 행동을 보이는 노드의 인증서 권한을 0으로 만들어 스니핑을 즉각 격리(Isolation) 처리하라.

3. Liveliness 토큰을 활용한 이상 노드 감지 및 네트워크 자가 복구

디지털 보안만큼이나 중요한 것이 시스템의 자가 복원력(Resilience)이다. 공장 구석에서 장애물과 충돌한 센서가 통신 단절을 겪거나 해킹 공격으로 인해 AMR의 브리지 연결이 정지될 시, 관제 시스템은 이를 1~2초 내로 파악해야 한다. 이를 파악하지 못하고 정상 연산 주기를 기다리다가는 공정 스케줄이 교착된다.

Zenoh가 제공하는 Liveliness(생존) 토큰 메커니즘을 적용하여 시스템의 회복력을 격상시켜라.

첫째, 에지 단말 노드의 Liveliness 생존 토큰 발급 선언이다. 배터리 모니터링 데몬이나 센서 라우팅 코드가 세션을 맺을 때 다음과 같이 고유 토큰을 활성화한다.

let token = session.liveliness()
    .declare_token("factory/zone_A/sensor/motor_1/alive")
    .res()
    .unwrap();

이 토큰은 세션이 유지되는 한 망 전역에 “alive” 상태를 전파한다. HTTP 폴링과는 달리 인프라 코어 소켓과 연계 모니터링되므로 대역폭 낭비 오버헤드가 없다.

둘째, 클라우드 관제 백엔드의 Liveliness 옵저버(Subscribe) 결속이다. 백엔드 시스템은 데이터 토픽과 분리하여 factory/**/aliveamr/**/alive 생존 상태만을 실시간으로 구독하는 옵저버 데몬을 상주시켜야 한다. 기기 하드웨어 파쇄 또는 무선 전파 범위 이탈 등으로 인해 통신이 단선되면 라우터가 즉각 연결 유실을 판독하고 관제 시스템 측으로 Drop 이벤트를 퍼블리시한다.

셋째, 자가 치유(Self-healing) 로직 연계다. Drop 이벤트를 받은 백엔드는 긴급 알람을 팝업시킴과 동시에, 오프라인 상태에 빠진 로봇에게 명령되었던 “작업(Task)“을 가상 큐에서 인가 취소하고 인근의 유휴 로봇(Stand-by AMR)으로 즉각 재할당(Re-assign)해야 한다. 이처럼 개별 노드는 실패(Failure)를 겪을지언정, 시스템 아키텍처망 전체는 절대 연쇄 중단되지 않는 견고한 무결함 분산 시스템을 구축하라.

4. QoS(Quality of Service) 통제를 통한 제어 명령 지연(Latency) 최소화

모든 네트워크 패킷에는 그에 합당한 계급이 존재해야 한다. TLS가 도입되거나 데이터 혼잡이 발발할 경우 전체 트래픽 처리 대역폭에 지연율(Latency)이 가중된다. 이때 긴급 정지(E-Stop) 명령 페이로드는 라우팅 병목을 뚫고 모세의 기적처럼 1순위로 선행 돌파해야 한다.

첫째, Zenoh 우선순위(Priority) 및 혼잡 제어(Congestion Control) 플래그의 강제 설정이다. 클라우드의 Node.js 관제 서버에서 E-Stop 명령을 퍼블리시할 때 옵션을 극단적으로 튜닝하라.

// 긴급 정지 메시지 발행 설정
session.put(`command/robot/${robotId}/estop`, "STOP")
  .priority(1) // 1~8 중 가장 최상위 네트워크 버퍼 우선순위 부여
  .congestionControl(zenoh.CongestionControl.Drop) // 네트워크 적체 시 과거 데이터를 버리고 최신값만 밀어붙임
  .reliability(zenoh.Reliability.Reliable); // 수신 상대측 ACK는 받을 때까지 보장

둘째, 트래픽 차별과 큐 바이패스(Bypass) 메커니즘이다. Priority(1) 마킹을 획득하고 슈팅된 우선순위 패킷은 중간 라우터 단의 송수신 메모리 버퍼 레이어 큐에서 다른 모든 평범한 감시 패킷(예: 카메라 텔레메트리, 온도 리포팅)들을 새치기하여 제일 먼저 발송 소켓으로 옮겨진다. 이러한 QoS 엔지니어링 룰을 정교하게 심사 적용해야만 생명과 안전을 직결 짓는 치명적 제어 명령의 실시간 도달성을 담보해 낼 수 있다.