diff options
| author | Stefan Schumacher <public@cryptomancer.de> | 2026-05-05 17:53:09 +0200 |
|---|---|---|
| committer | Stefan Schumacher <public@cryptomancer.de> | 2026-05-05 17:53:09 +0200 |
| commit | dc79114e67cf4343d21152c52af1b936b581755e (patch) | |
| tree | 3ae1fee65b915ca36e60f8822c22caeb4b1058ea /README.html | |
| parent | 6c779fd161e8d2957dfec041139d45c4ecc86697 (diff) | |
Pages Versionpages
Diffstat (limited to 'README.html')
| -rw-r--r-- | README.html | 234 |
1 files changed, 227 insertions, 7 deletions
diff --git a/README.html b/README.html index 5bf5ec8..166f8de 100644 --- a/README.html +++ b/README.html @@ -5,6 +5,7 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="Asciidoctor 2.0.26"> +<meta name="author" content="Stefan Schumacher"> <title>Security Architecture Notes and Patterns</title> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"> <style> @@ -434,15 +435,231 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b @media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} </style> </head> -<body class="article"> +<body class="article toc2 toc-left"> <div id="header"> <h1>Security Architecture Notes and Patterns</h1> +<div class="details"> +<span id="author" class="author">Stefan Schumacher</span><br> +<span id="email" class="email"><a href="mailto:public@cryptomancer.de">public@cryptomancer.de</a></span><br> +<span id="revnumber">version 0.0.1,</span> +<span id="revdate">2026/01/03, Entwurf</span> +</div> +<div id="toc" class="toc2"> +<div id="toctitle">Table of Contents</div> +<ul class="sectlevel1"> +<li><a href="#_from_gnupg_keysigning_party_to_reproducile_builds_according_to_slsa4">1. From GnuPG Keysigning Party to Reproducile Builds according to SLSA4</a></li> +<li><a href="#_dfd_keysigning_simple">2. DFD: Keysigning Simple</a></li> +<li><a href="#_seq_keysigning_with_id_check_and_wot">3. SEQ: Keysigning with ID check and WoT</a></li> +<li><a href="#_netbsd_releng_attack_stride">4. NetBSD RelEng Attack STRIDE</a></li> +<li><a href="#_supply_chain_levels_for_software_artifacts">5. Supply-chain Levels for Software Artifacts</a> +<ul class="sectlevel2"> +<li><a href="#_slsa_l1">5.1. SLSA L1</a></li> +<li><a href="#_reproducible_builds_slsa_l4">5.2. Reproducible Builds SLSA L4</a></li> +<li><a href="#_motivationbusiness_layer_risksecurity_overlay">5.3. Motivation/Business Layer: Risk/Security Overlay</a></li> +</ul> +</li> +<li><a href="#_links">6. Links</a></li> +</ul> +</div> </div> <div id="content"> +<div id="preamble"> +<div class="sectionbody"> +<div class="paragraph"> +<p>This is the pages version of Stefan Schumacher’s Codeberg Repository at <a href="https://codeberg.org/0xKaishakunin/Architecture" class="bare">https://codeberg.org/0xKaishakunin/Architecture</a></p> +</div> +<div class="paragraph"> +<p>It contains several architecural patterns and exercises with PlantUML with regards to modeling trust and zero trust architecture patterns</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_from_gnupg_keysigning_party_to_reproducile_builds_according_to_slsa4">1. From GnuPG Keysigning Party to Reproducile Builds according to SLSA4</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>I am trying to model implicit and explicit trust in Zero Trust Architecture diagrams for Threat Modeling.</p> +</div> +<div class="paragraph"> +<p>So I need to bring together the Blue Team/White Hat perspective and the Red Team/Black Hat stuff.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_dfd_keysigning_simple">2. DFD: Keysigning Simple</h2> +<div class="sectionbody"> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.png" alt="100 GnuPG Keysigning DFD"> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_seq_keysigning_with_id_check_and_wot">3. SEQ: Keysigning with ID check and WoT</h2> +<div class="sectionbody"> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.png" alt="100 GnuPG Keysigning SEQ KSP WoT"> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_netbsd_releng_attack_stride">4. NetBSD RelEng Attack STRIDE</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>The ISO Image is built, signed and uploaded to the WWW server, as well as the Signature file and checksums.</p> +</div> +<div class="paragraph"> +<p>Evil Black Hat hacks the webserver, and swaps the ISO image for a manipulated one with a valid Signature.</p> +</div> +<div class="paragraph"> +<p>The manipulated Signature verifies the fake-integrity of the manipulated ISO image, but not the authenticity.</p> +</div> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/300-NetBSD-RelEng-STRIDE.png" alt="300 NetBSD RelEng STRIDE"> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_supply_chain_levels_for_software_artifacts">5. Supply-chain Levels for Software Artifacts</h2> +<div class="sectionbody"> +<div class="sect2"> +<h3 id="_slsa_l1">5.1. SLSA L1</h3> +<div class="paragraph"> +<p>A simple threat model for SLSA Level 1:</p> +</div> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.png" alt="200 ThreatModel SLSA1 DownloadSig"> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_reproducible_builds_slsa_l4">5.2. Reproducible Builds SLSA L4</h3> +<div class="paragraph"> +<p>Modeling Trust, Trust Anchors and Boundaries and Attack Vectors for SLSA4:</p> +</div> +<div class="paragraph"> +<p>The whole process draws heavy inspiration from those implemented by NetBSD, Debian, NixOS and the Tor Browser!</p> +</div> <div class="olist arabic"> <ol class="arabic"> <li> -<p><code>GetPlantUML-CheatSheets.sh</code></p> +<p>general goals</p> +<div class="olist loweralpha"> +<ol class="loweralpha" type="a"> +<li> +<p>Build process produces identical artefacts (bit-for-bit) from the same source and inputs</p> +</li> +<li> +<p>independent parties can rebuild and verify outputs match the original → verify freedom from insider threat!</p> +</li> +<li> +<p>require a deterministic build environments</p> +</li> +<li> +<p>all build steps, dependencies, and tooling are tightly controlled and audited</p> +</li> +</ol> +</div> +</li> +<li> +<p>security goals:</p> +<div class="olist loweralpha"> +<ol class="loweralpha" type="a"> +<li> +<p>detect tampering in build pipelines or artefacts</p> +</li> +<li> +<p>prevents hidden backdoors introduced during compilation or packaging by a malicious insider</p> +</li> +<li> +<p>ensure integrity of supply chain, dependencies and build tools</p> +</li> +<li> +<p>enables independent verification without trusting the original builder</p> +</li> +<li> +<p>drastrically reduce insider and supply chain attack surface</p> +</li> +</ol> +</div> +</li> +<li> +<p>Zero Trust:</p> +<div class="olist loweralpha"> +<ol class="loweralpha" type="a"> +<li> +<p>never trust, always verify!</p> +</li> +<li> +<p>verifiable evidence (rebuild && compare)</p> +</li> +<li> +<p>eliminates implicit trust in build pipeline</p> +</li> +<li> +<p>build system considered untrustworthy</p> +</li> +<li> +<p>combine with signed artefacts and attestation frameworks for full supply chain integrity</p> +</li> +</ol> +</div> +</li> +</ol> +</div> +<div class="sect3"> +<h4 id="_the_whole_implementation">5.2.1. The whole implementation</h4> +<div class="ulist"> +<ul> +<li> +<p>Trust Boundaries: Rectangles</p> +</li> +<li> +<p>Attack Vectors: Red Arrows</p> +</li> +</ul> +</div> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/201-ThreatModel-SLSA4-ReproducibleBuilds.png" alt="201 ThreatModel SLSA4 ReproducibleBuilds"> +</div> +</div> +<div class="ulist"> +<ul> +<li> +<p>Trust Anchor: Green Anchor</p> +</li> +</ul> +</div> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/202-ThreatModel-SLSA4-ReproducibleBuilds-TrustAnchor.png" alt="202 ThreatModel SLSA4 ReproducibleBuilds TrustAnchor"> +</div> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_motivationbusiness_layer_risksecurity_overlay">5.3. Motivation/Business Layer: Risk/Security Overlay</h3> +<div class="imageblock"> +<div class="content"> +<img src="PlantUML-ModelingTrust/GnuPG-WoT-Download/203-SLSA4-ReproducibleBuilds-L1-Motivation.png" alt="203 SLSA4 ReproducibleBuilds L1 Motivation"> +</div> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_links">6. Links</h2> +<div class="sectionbody"> +<div class="olist arabic"> +<ol class="arabic"> +<li> +<p><a href="GetPlantUML-CheatSheets.sh">GetPlantUML-CheatSheets.sh</a></p> <div class="olist loweralpha"> <ol class="loweralpha" type="a"> <li> @@ -452,21 +669,21 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </div> </li> <li> -<p><code>PlantUML-ModelingTrust</code></p> +<p><a href="PlantUML-ModelingTrust/README.html">PlantUML-ModelingTrust</a></p> <div class="olist loweralpha"> <ol class="loweralpha" type="a"> <li> -<p>Modeling Trust/Risk/Trust Anchors, Chains, and Boarders in Archimate</p> +<p>Modeling Trust/Risk/Trust Anchors, Chains, and Boarders in Archimate, some TextBook patterns</p> </li> </ol> </div> </li> <li> -<p><code>PlantUML-ModelingTrust/GnuPG-WoT-Download/</code></p> +<p><a href="PlantUML-ModelingTrust/GnuPG-WoT-Download/README.html">PlantUML-ModelingTrust/GnuPG-WoT-Download/README.html</a></p> <div class="olist loweralpha"> <ol class="loweralpha" type="a"> <li> -<p>A GnuPG Key Signing Party and Download Signatures (SLSA1) modeled in Archimate</p> +<p>A GnuPG Key Signing Party and Download Signatures (SLSA1) as well as Reproducible Builds SLSA4 modeled in Archimate</p> </li> </ol> </div> @@ -474,9 +691,12 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b </ol> </div> </div> +</div> +</div> <div id="footer"> <div id="footer-text"> -Last updated 2026-02-23 08:18:20 +0100 +Version 0.0.1<br> +Last updated 2026-05-05 17:52:48 +0200 </div> </div> </body> |
