jtcbrule/openc2-compatibility

OpenC2 protocol negotiation details; optional trust on first use

jtcbrule opened this issue · 0 comments

OpenC2 protocol negotiation details are incomplete, especially over untrusted networks.

A simple possibility is to require that the security orchestrator and actuator recognize/validate each other's certificates beforehand. Another possibility is to use an OpenC2 alert followed by an OpenC2 command to perform a handshake.

  • Actuator sends an alert to an orchestrator via an HTTPS POST to signal that it wishes to join the orchestrator's network, trusting the orchestrator's public key on first use.
  • Orchestrator issues a command to the actuator via an HTTPS POST, querying the actuator for its supported profiles, serializations and communications protocols. Orchestrator trusts the actuator's public key on first use.
    • The HTTP response contains the actuator's supported profiles, serializations and communications protocols
  • Orchestrator issues a command to specify how all subsequent communication is to be performed.