보안 및 신뢰성
FacilityOS는 잘못된 명령이나 유실된 측정값이 실제 결과를 초래하는 사이트를 위해 설계되었습니다. 아래 규칙은 절차에 맡기지 않고 플랫폼이 강제합니다.
모든 변경은 8단계를 거칩니다
- 요청
- 검증
- 승인
- 사전 점검
- 실행
- 재확인(read back)
- 확인
- 완료
- 변경을 요청한 사람은 그 변경을 승인할 수 없습니다.
- 장비가 수동 모드이거나 고장 상태이거나 데이터를 신뢰할 수 없을 때는 쓰기가 차단됩니다.
- 성공 여부는 재확인(read back)으로 결정합니다. 재확인이 없으면 결과는 "불확실"로 표시되며 "완료"로 표시되는 일은 없습니다.
- 비상 정지: 모든 역할이 눌러서 모든 쓰기를 즉시 중단할 수 있으며, 해제는 관리자만 할 수 있습니다.
인명 안전은 모니터링만 하며 제어하지 않습니다
화재 경보, 가스 모니터링 시스템의 차단, 가스 캐비닛 자동 차단, 비상 전원 절체는 항상 목록에 등재되거나 인증된 해당 시스템이 직접 수행합니다. FacilityOS는 이들을 모니터링하고, 예상된 연동이 제한 시간 내에 실제로 이루어졌는지 검증하며, 적절한 담당자에게 알립니다. 이 시스템을 대체하지 않으며 명령도 절대 보내지 않습니다. 전기 보호 계전기도 읽기 전용입니다.
보안 설계
- 비밀번호는 bcrypt로 저장하며, 로그인 실패 시 계정이 잠기고 요청은 IP별로 속도 제한되며, Microsoft Entra ID 싱글 사인온을 지원하고, 모든 권한은 서버에서 검사합니다.
- 플랫폼과 게이트웨이 사이는 TLS만 사용하며 게이트웨이마다 계정이 하나입니다. 게이트웨이로 보내는 모든 명령에는 Ed25519 서명과 리스 에포크(lease epoch)가 포함되어 재전송 공격과 오래된 노드에 의한 제어를 방지합니다.
- 장치 자격 증명과 알림 비밀 값은 암호화(X25519 + HKDF + AES-GCM)되며, API는 이를 절대 반환하지 않고 로그에도 나타나지 않습니다.
- 감사 로그는 변조 여부를 검증할 수 있는 해시 체인이며, 감사 테이블은 추가만 가능합니다.
- 웹 앱에는 Content Security Policy와 보안 헤더가 적용되며, 발신 알림은 내부 네트워크나 클라우드 메타데이터 주소에 도달할 수 없습니다(SSRF 방어).
- 세션은 2시간 동안 활동이 없으면 로그아웃됩니다.
- 여러 차례의 보안 검토를 완료했으며, 그 결과와 조치 내용을 기록해 두었습니다.
신뢰성
- 제어는 현장에 남습니다. 플랫폼 연결이 끊겨도 PLC와 DDC가 장비를 계속 운전합니다.
- 게이트웨이는 외부 방향으로만 연결하므로 사이트에서 인바운드 포트를 열 필요가 없습니다.
- 저장 후 전달: 장애 중 게이트웨이는 모든 측정값을 디스크의 내구성 저널(기본값 최대 30일 또는 2 GB)에 보관하고 밀린 데이터를 원래 순서대로 전송합니다. 유실되거나 중복 저장되는 값이 없으며, 넘치는 부분은 보고되고 공백으로 표시됩니다.
- 오래된 데이터는 stale로 표시되고 추세 그래프에서 공백으로 보이며, 값을 임의로 만들어 내지 않습니다.
- 자동 인계를 지원하는 다중 노드 주/대기 또는 액티브-액티브 운영의 고가용성, 백업 및 복원, Prometheus 메트릭.
안전장치를 갖춘 AI
AI 어시스턴트는 기본적으로 꺼져 있으며, 켜려면 플랫폼, 고객, 사이트 모두의 설정이 필요합니다. 전송되는 내용은 먼저 마스킹 처리되며 자격 증명이나 개인 정보를 포함하지 않습니다. API 키는 암호화되고 쓰기 전용이며, 모든 요청은 감사 기록됩니다. 공개 데모는 로컬 시뮬레이션만 사용합니다.