Governance and Infrastructure Control
=====================================
The cryptographic signing process described in this documentation ensures
that distributed release artifacts can be verified for integrity and
authenticity. However, cryptographic mechanisms alone are not sufficient
to guarantee trust.
The Shyft release model establishes a verifiable trust chain from
maintainer identity to installed software. This chain is described in:
:doc:`release-process`, :doc:`signing-keys`, and :doc:`package-verification`
In practice, the overall trustworthiness of a system depends not only on
what is verified, but also on how the surrounding infrastructure is
designed, operated, and governed.
Security mechanisms themselves — including inspection tools, monitoring
systems, and protective controls — may introduce additional complexity,
resource usage, and operational risk if not carefully managed. In
environments with strict requirements for availability, performance, or
deterministic behavior, such effects must be explicitly considered.
Well-governed systems tend to exhibit both improved security and improved
operational characteristics. By minimizing unnecessary components and
clearly separating trust boundaries, it is possible to achieve both strong
security guarantees and predictable, high-performance behavior.
For environments operating critical infrastructure — such as energy
market systems or grid operation tools — the governance of the systems
that produce and consume software releases is therefore equally important.
Two domains must be considered:
* Governance of the **release infrastructure**
* Governance of the **target deployment infrastructure**
These domains correspond to different parts of the Shyft trust chain and
must be governed independently.
Release Governance Model
------------------------
The following diagram illustrates the relationship between the source
repository, the controlled build infrastructure, the trusted signing
authority, and the operational deployment environment.
.. mermaid::
:align: center
flowchart TD
subgraph Source["Source Governance"]
A["Git repository
Signed commits and tags"]
end
subgraph Build["Controlled Build Infrastructure"]
B["Controlled build environment
Reproducible build"]
C["Unsigned release artifacts"]
end
subgraph Signing["Trusted Release Authority"]
D["Signing host
Nitrokey hardware key"]
E["Signed packages
+ PROVENANCE.txt"]
end
subgraph Deployment["Operational Infrastructure"]
F["Operators / deployment systems"]
G["Production energy systems"]
end
A -->|"checkout + verify"| B
B -->|"build artifacts"| C
C -->|"verify + approve"| D
D -->|"cryptographic signing"| E
E -->|"verified installation"| F
F -->|"deployment"| G
Release Infrastructure Governance
---------------------------------
The systems used to produce signed Shyft release artifacts must be
operated under strict governance and control.
The release process is designed to be executed entirely within a trusted
domain, where both build and signing operations are controlled and auditable.
Recommended practices include:
* Controlled build hosts operating under an approved build-host profile
* Use of minimal, version-controlled, and reproducible build images
* Verification of signed source tags before build
* Execution of builds in isolated environments (e.g., containers)
* Optional restriction of network access during the build step
* Hardware-backed private keys (e.g., Nitrokey or smartcards)
* Controlled physical and logical access to signing infrastructure
* Documented release procedures requiring operator authorization
* Auditable logs for build and signing operations
* Reproducible builds from signed source tags
The build environment should be treated as part of the trusted computing
base and must be provisioned, maintained, and audited accordingly.
Final release approval and promotion must remain governed and auditable.
In highly secured environments, the signing process may require the
presence of multiple operators ("two-person rule") before release
artifacts are approved.
The integrity of this environment directly affects the trustworthiness of
the signing process and the resulting release artifacts.
Key management and signing procedures are defined in:
:doc:`signing-keys` and :doc:`../security/identity/gpg-ssh-keys`
Target Infrastructure Governance
--------------------------------
The environments that deploy and execute Shyft should also be operated
under controlled governance.
Examples include:
* Physical security of servers and data rooms
* Controlled administrative access
* Separation of operational systems from general IT infrastructure
* Monitoring and audit logging of administrative actions
* Controlled update procedures for production systems
* Verification of software provenance and signatures before deployment
For operational technology (OT) environments, where Shyft may interact
with systems affecting power system stability, these governance controls
are essential.
Verification procedures for release artifacts are described in:
:doc:`package-verification`
Separation of Inspection and Trust
----------------------------------
Security inspection tools — such as vulnerability scanners, SBOM analyzers,
EDR systems, antivirus solutions, and network inspection devices — are
commonly used to improve visibility and detect potential risks.
However, these tools must not automatically be considered part of the
trusted computing base.
Many such tools:
* are complex and frequently updated
* may be closed-source or externally managed
* require elevated privileges
* may access or process large portions of the system state
If deployed directly within trusted environments, they can unintentionally
expand the trust boundary and introduce additional risk.
Principle
~~~~~~~~~
Security inspection and analysis should, where possible, be performed in a
**separate inspection domain**, distinct from the trusted release and
deployment environments.
In this model:
* The trusted domain is responsible for building, signing, verifying, and
executing software
* The inspection domain is responsible for analyzing artifacts and producing
reports
Artifacts may be exported from the trusted domain for inspection, but should
be **re-verified cryptographically** before being accepted back into a
trusted environment.
This separation preserves the integrity of the trust chain established by
the Shyft release process.
Application to Release Infrastructure
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For release infrastructure, this means:
* Build and signing environments should remain minimal and controlled
* External tools such as SBOM generators or vulnerability scanners should not
be required for producing release artifacts
* Inspection tools may analyze build outputs or images, but must not be able
to modify or influence the release process
Application to Target Infrastructure
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For deployment environments, this principle implies:
* Monitoring and inspection tools should be carefully governed and isolated
* Where possible, inspection should be performed using external systems or
dedicated analysis environments
* Real-time or inline inspection tools (e.g., EDR, antivirus) should be
evaluated with respect to their impact on system integrity and trust
boundaries
Network-based inspection may be implemented using controlled observation
points, such as mirrored traffic (SPAN) ports or one-way (data diode) taps,
allowing analysis without introducing bidirectional influence on the
protected systems.
Balanced Use of Security Tools
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This principle does not discourage the use of security inspection tools.
Rather, it provides guidance on how to use them safely:
* treat inspection tools as **untrusted or semi-trusted components**
* avoid making them part of the trusted release or execution path unless
explicitly governed
* ensure that cryptographic verification remains the final authority for
accepting artifacts
By maintaining a clear separation between **inspection** and **trust**, it is
possible to benefit from advanced security analysis without weakening the
overall security model.
Operational Considerations
~~~~~~~~~~~~~~~~~~~~~~~~~~
In addition to trust-boundary considerations, security inspection tools may
also affect system stability and performance.
Examples of potential impacts include:
* Increased resource usage (CPU, memory, I/O), which may be significant in
high-performance or latency-sensitive environments
* False positives leading to unintended quarantine or blocking of critical
system components
* Behavioral changes following rule or signature updates
* Interference with normal system operation, particularly in tightly
controlled or deterministic execution environments
For systems operating under strict availability or performance requirements,
these effects must be carefully evaluated.
In such environments, it is often preferable to:
* perform inspection in separate analysis domains
* avoid inline or real-time modification of system state
* treat inspection results as advisory rather than authoritative
This approach helps ensure that security mechanisms do not inadvertently
impact the reliability of the systems they are intended to protect.
Relationship to the Shyft Release Model
---------------------------------------
The Shyft release model described in this documentation provides a
transparent and verifiable software supply chain based on:
* Signed source revisions
* Controlled and reproducible build environments
* Hardware-backed cryptographic signing
* Verifiable release artifacts and provenance
Together, these elements establish a complete trust chain from
maintainer identity to installed software.
However, the ultimate trustworthiness of a deployment depends on how
organizations operate their infrastructure and governance processes.
Organizations deploying Shyft in critical infrastructure environments
are encouraged to integrate the described release process into their
own governance and security frameworks, including:
* Controlled build infrastructure operated within their trust domain
* Independent verification of release artifacts
* Auditable deployment and update procedures
Future versions of this documentation will provide guidance on how these
principles can be implemented in physical and network infrastructure,
including separation of administrative, release, control-plane, and
application environments, as well as dedicated inspection domains.
These infrastructure patterns are intended to reinforce the trust boundaries
described here.
See also:
* :doc:`release-process`
* :doc:`signing-keys`
* :doc:`package-verification`
* :doc:`../security/index`