1
|
<?plantuml 1.2026.1?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="DESCRIPTION" height="893px" preserveAspectRatio="none" style="width:1670px;height:893px;background:#FFFFFF;" version="1.1" viewBox="0 0 1670 893" width="1670px" zoomAndPan="magnify"><defs/><g><g class="header" data-source-line="10"><text fill="#888888" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="422.9104" x="1233.095" y="14.9659">Threat Model - Reproducible Builds according to SLSA Level 4</text><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="220.4198" x="1435.5856" y="29.7579">using independent GnuPG signatures and keys</text><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="262.5298" x="1393.4757" y="43.3779">as well as Reproducible Builds according to SLSA Level 4</text><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="414.2194" x="1241.786" y="56.9979">corresponding to the Tor Browser release process, as well as NixOS, Debian and NetBSD</text><text fill="#888888" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="112.6295" x="1543.3759" y="74.8938">2026-02-23 06:52</text></g><!--cluster Maintainer--><g class="cluster" data-qualified-name="Maintainer" data-source-line="46" id="ent0009"><rect fill="#FFF6F6" height="112" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:1;" width="452" x="327.93" y="542.9958"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="77.2377" x="515.3111" y="559.9617">Maintainer</text></g><!--cluster Independent build pipelines\n(at least 2)--><g class="cluster" data-qualified-name="Independent build pipelines.n.at least 2." data-source-line="51" id="ent0012"><rect fill="#FFF6F6" height="187" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:1;" width="211" x="881.11" y="536.9958"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="195.9572" x="888.6314" y="553.9617">Independent build pipelines</text><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="73.2617" x="949.9791" y="573.0296">(at least 2)</text></g><!--cluster Download artefacts--><g class="cluster" data-qualified-name="Download artefacts" data-source-line="56" id="ent0015"><rect fill="#FFF6F6" height="205" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:1;" width="153" x="1228.19" y="546.9958"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="137.0875" x="1236.1463" y="563.9617">Download artefacts</text></g><!--cluster Operational environment\n(of the downloader)--><g class="cluster" data-qualified-name="Operational environment.n.of the downloader." data-source-line="64" id="ent0020"><rect fill="#FFF6F6" height="244" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:1;" width="497.11" x="597.08" y="86.9958"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="178.1633" x="756.5533" y="103.9617">Operational environment</text><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="137.9275" x="776.6713" y="123.0296">(of the downloader)</text></g><!--entity Source--><g class="entity" data-qualified-name="Maintainer.Source" data-source-line="47" id="ent0010"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="102.6697" x="661.26" y="580.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="82.6697" x="671.26" y="605.8917">Source Code</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="43.1618" x="671.26" y="624.9596">(in Git)</text></g><!--entity Tag--><g class="entity" data-qualified-name="Maintainer.Tag" data-source-line="48" id="ent0011"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="123.1516" x="343.93" y="580.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="100.9536" x="353.93" y="605.8917">Git Release Tag</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103.1516" x="353.93" y="624.9596">(GnuPG-signed)</text></g><!--entity B1--><g class="entity" data-qualified-name="Independent build pipelines.n.at least 2..B1" data-source-line="52" id="ent0013"><rect fill="#FFF6F6" height="39.0679" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="61.1738" x="955.53" y="668.4658"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.1738" x="965.53" y="693.4317">Pipe A</text></g><!--entity B2--><g class="entity" data-qualified-name="Independent build pipelines.n.at least 2..B2" data-source-line="53" id="ent0014"><rect fill="#FFF6F6" height="39.0679" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="61.3278" x="955.45" y="594.4658"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41.3278" x="965.45" y="619.4317">Pipe B</text></g><!--entity A1--><g class="entity" data-qualified-name="Download artefacts.A1" data-source-line="57" id="ent0016"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="96.4397" x="1255.97" y="677.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64.7078" x="1265.97" y="702.8917">Artefact A</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.4397" x="1265.97" y="721.9596">(Checksum)</text></g><!--entity A2--><g class="entity" data-qualified-name="Download artefacts.A2" data-source-line="58" id="ent0017"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="96.4397" x="1255.97" y="584.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="64.8618" x="1265.97" y="609.8917">Artefact B</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.4397" x="1265.97" y="628.9596">(Checksum)</text></g><!--entity Keys--><g class="entity" data-qualified-name="Operational environment.n.of the downloader..Keys" data-source-line="65" id="ent0021"><rect fill="#FFF6F6" height="77.2038" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="199.0313" x="613.08" y="144.3958"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="173.8513" x="623.08" y="169.3617">Known public signing keys</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="150.0654" x="623.08" y="188.4296">(obtained from at least</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="175.3913" x="626.72" y="207.4976">2 independent trust paths)</text></g><!--entity Rebuild--><g class="entity" data-qualified-name="Operational environment.n.of the downloader..Rebuild" data-source-line="66" id="ent0022"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="125.8396" x="649.68" y="256.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="105.8396" x="659.68" y="281.8917">Rebuild pipeline</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95.5776" x="659.68" y="300.9596">(Reproducible)</text></g><!--entity Policy--><g class="entity" data-qualified-name="Operational environment.n.of the downloader..Policy" data-source-line="67" id="ent0023"><rect fill="#FFF6F6" height="77.2038" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="184.1494" x="894.04" y="155.3958"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="116.2835" x="904.04" y="180.3617">Verification policy</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="160.5094" x="907.68" y="199.4296">(organisational measure</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81.6617" x="907.68" y="218.4976">from BSI TR)</text></g><!--entity User--><g class="entity" data-qualified-name="User" data-source-line="34" id="ent0002"><ellipse cx="1304.1848" cy="212.4258" fill="#008000" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M1304.1848,220.4258 L1304.1848,247.4258 M1291.1848,228.4258 L1317.1848,228.4258 M1304.1848,247.4258 L1291.1848,262.4258 M1304.1848,247.4258 L1317.1848,262.4258" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="80.5697" x="1263.9" y="278.8917">Downloader</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="56.1958" x="1263.9" y="297.9596">(Verifier)</text></g><!--entity Net--><g class="entity" data-qualified-name="Net" data-source-line="35" id="ent0003"><ellipse cx="405.5049" cy="362.4258" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M405.5049,370.4258 L405.5049,397.4258 M392.5049,378.4258 L418.5049,378.4258 M405.5049,397.4258 L392.5049,412.4258 M405.5049,397.4258 L418.5049,412.4258" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53.7318" x="372.78" y="428.8917">Internet</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65.4497" x="372.78" y="447.9596">(Insecure)</text></g><!--entity NTP1--><g class="entity" data-qualified-name="NTP1" data-source-line="36" id="ent0004"><ellipse cx="1304.1878" cy="345.9658" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M1304.1878,353.9658 L1304.1878,380.9658 M1291.1878,361.9658 L1317.1878,361.9658 M1304.1878,380.9658 L1291.1878,395.9658 M1304.1878,380.9658 L1317.1878,395.9658" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.3357" x="1262.02" y="412.4317">NTP Server 1</text></g><!--entity NTP2--><g class="entity" data-qualified-name="NTP2" data-source-line="37" id="ent0005"><ellipse cx="1304.1878" cy="459.9658" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M1304.1878,467.9658 L1304.1878,494.9658 M1291.1878,475.9658 L1317.1878,475.9658 M1304.1878,494.9658 L1291.1878,509.9658 M1304.1878,494.9658 L1317.1878,509.9658" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.3357" x="1260.2" y="526.4317">NTP Server 2</text></g><!--entity Attacker--><g class="entity" data-qualified-name="Attacker" data-source-line="38" id="ent0006"><ellipse cx="66.4658" cy="569.4258" fill="#FF0000" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M66.4658,577.4258 L66.4658,604.4258 M53.4658,585.4258 L79.4658,585.4258 M66.4658,604.4258 L53.4658,619.4258 M66.4658,604.4258 L79.4658,619.4258" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="54.7818" x="6" y="635.8917">Attacker</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="120.9315" x="6" y="654.9596">(Insider / External)</text></g><!--entity Keyserver1--><g class="entity" data-qualified-name="Keyserver1" data-source-line="42" id="ent0007"><ellipse cx="405.5118" cy="231.9658" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M405.5118,239.9658 L405.5118,266.9658 M392.5118,247.9658 L418.5118,247.9658 M405.5118,266.9658 L392.5118,281.9658 M405.5118,266.9658 L418.5118,281.9658" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.5237" x="367.25" y="298.4317">Keyserver 1</text></g><!--entity Keyserver2--><g class="entity" data-qualified-name="Keyserver2" data-source-line="43" id="ent0008"><ellipse cx="405.5118" cy="117.9658" fill="#F1F1F1" rx="8" ry="8" style="stroke:#181818;stroke-width:0.5;"/><path d="M405.5118,125.9658 L405.5118,152.9658 M392.5118,133.9658 L418.5118,133.9658 M405.5118,152.9658 L392.5118,167.9658 M405.5118,152.9658 L418.5118,167.9658" fill="none" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="76.5237" x="367.25" y="184.4317">Keyserver 2</text></g><!--entity Log--><g class="entity" data-qualified-name="Log" data-source-line="61" id="ent0018"><rect fill="#FFF6F6" height="58.1358" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="159.9855" x="1498.1" y="461.9258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="139.9855" x="1508.1" y="486.8917">Git Transparency Log</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="125.1455" x="1508.1" y="505.9596">(tamper-hardened)</text></g><!--entity Ledger--><g class="entity" data-qualified-name="Ledger" data-source-line="62" id="ent0019"><rect fill="#FFF6F6" height="77.2038" rx="2.5" ry="2.5" style="stroke:#550000;stroke-width:0.5;" width="171.8154" x="1492.19" y="633.3958"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="151.8154" x="1502.19" y="658.3617">Distributed ledger with</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="131.9635" x="1505.83" y="677.4296">Merkle Tree records</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="79.2677" x="1505.83" y="696.4976">(Blockchain)</text></g><!--link NTP1 to Log--><g class="link" data-entity-1="ent0004" data-entity-2="ent0018" data-link-type="dependency" data-source-line="70" id="lnk24"><path d="M1346.78,394.4358 C1389.26,412.2458 1450.4365,437.8963 1501.1565,459.1563" fill="none" id="NTP1-to-Log" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1506.69,461.4758,1499.936,454.3076,1502.0787,459.5429,1496.8434,461.6856,1506.69,461.4758" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30.069" x="1414.69" y="413.0228">Time</text></g><!--link NTP2 to Log--><g class="link" data-entity-1="ent0005" data-entity-2="ent0018" data-link-type="dependency" data-source-line="71" id="lnk25"><path d="M1348.57,490.9958 C1388.61,490.9958 1443.03,490.9958 1491.7,490.9958" fill="none" id="NTP2-to-Log" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1497.7,490.9958,1488.7,486.9958,1492.7,490.9958,1488.7,494.9958,1497.7,490.9958" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="30.069" x="1414.69" y="486.8928">Time</text></g><!--link Keyserver1 to Keys--><g class="link" data-entity-1="ent0007" data-entity-2="ent0021" data-link-type="dependency" data-source-line="73" id="lnk26"><path d="M444.22,253.1058 C486.07,242.1358 549.4863,225.5081 607.0163,210.4181" fill="none" id="Keyserver1-to-Keys" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="612.82,208.8958,603.0996,207.3101,607.9836,210.1644,605.1294,215.0483,612.82,208.8958" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="53.612" x="512.58" y="214.1028">retrieves</text></g><!--link Keyserver2 to Keys--><g class="link" data-entity-1="ent0008" data-entity-2="ent0021" data-link-type="dependency" data-source-line="74" id="lnk27"><path d="M444.22,153.1958 C486.07,157.8658 549.3269,164.9114 606.8569,171.3214" fill="none" id="Keyserver2-to-Keys" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="612.82,171.9858,604.3183,167.0138,607.8508,171.4321,603.4324,174.9646,612.82,171.9858" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="53.612" x="512.58" y="155.8928">retrieves</text></g><!--link Source to B1--><g class="link" data-entity-1="ent0010" data-entity-2="ent0013" data-link-type="dependency" data-source-line="76" id="lnk28"><path d="M764.35,624.5758 C820.53,640.7158 903.4334,664.5285 949.4334,677.7485" fill="none" id="Source-to-B1" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="955.2,679.4058,947.655,673.0755,950.3945,678.0247,945.4453,680.7643,955.2,679.4058" style="stroke:#181818;stroke-width:1;"/></g><!--link Source to B2--><g class="link" data-entity-1="ent0010" data-entity-2="ent0014" data-link-type="dependency" data-source-line="77" id="lnk29"><path d="M764.35,610.7458 C820.53,611.5758 903.2007,612.7871 949.2007,613.4671" fill="none" id="Source-to-B2" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="955.2,613.5558,946.2601,609.4232,950.2005,613.4819,946.1419,617.4223,955.2,613.5558" style="stroke:#181818;stroke-width:1;"/></g><!--link B1 to A1--><g class="link" data-entity-1="ent0013" data-entity-2="ent0016" data-link-type="dependency" data-source-line="79" id="lnk30"><path d="M1017.13,689.7958 C1072.15,693.1058 1183.5308,699.8056 1249.5508,703.7756" fill="none" id="B1-to-A1" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1255.54,704.1358,1246.7963,699.6028,1250.549,703.8357,1246.3161,707.5884,1255.54,704.1358" style="stroke:#181818;stroke-width:1;"/></g><!--link B2 to A2--><g class="link" data-entity-1="ent0014" data-entity-2="ent0017" data-link-type="dependency" data-source-line="80" id="lnk31"><path d="M1017.13,613.9958 C1072.15,613.9958 1183.52,613.9958 1249.54,613.9958" fill="none" id="B2-to-A2" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1255.54,613.9958,1246.54,609.9958,1250.54,613.9958,1246.54,617.9958,1255.54,613.9958" style="stroke:#181818;stroke-width:1;"/></g><!--link A1 to Log--><g class="link" data-entity-1="ent0016" data-entity-2="ent0018" data-link-type="dependency" data-source-line="82" id="lnk32"><path d="M1352.82,706.9758 C1386.43,704.6858 1430.88,696.7858 1462.19,672.9958 C1484.98,655.6758 1477.46,640.5458 1492.19,615.9958 C1512.37,582.3658 1534.4579,550.272 1552.2379,525.322" fill="none" id="A1-to-Log" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1555.72,520.4358,1547.2394,525.4438,1552.8183,524.5077,1553.7544,530.0865,1555.72,520.4358" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="63.1801" x="1398.19" y="668.8928">Checksum</text></g><!--link A2 to Log--><g class="link" data-entity-1="ent0017" data-entity-2="ent0018" data-link-type="dependency" data-source-line="83" id="lnk33"><path d="M1352.86,592.4258 C1396.96,572.4858 1457.4134,545.1389 1506.3734,522.9889" fill="none" id="A2-to-Log" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1511.84,520.5158,1501.9914,520.5811,1507.2845,522.5767,1505.2889,527.8699,1511.84,520.5158" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="63.1801" x="1398.19" y="541.0328">Checksum</text></g><!--link A1 to Ledger--><g class="link" data-entity-1="ent0016" data-entity-2="ent0019" data-link-type="dependency" data-source-line="85" id="lnk34"><path d="M1352.65,725.4058 C1384,735.0758 1425.85,743.1758 1462.19,733.9958 C1481.31,729.1658 1495.4388,723.3218 1512.7088,713.9318" fill="none" id="A1-to-Ledger" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1517.98,711.0658,1508.1625,711.8507,1513.5873,713.4542,1511.9839,718.879,1517.98,711.0658" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="63.1801" x="1398.19" y="729.8928">Checksum</text></g><!--link A2 to Ledger--><g class="link" data-entity-1="ent0017" data-entity-2="ent0019" data-link-type="dependency" data-source-line="86" id="lnk35"><path d="M1352.86,624.1658 C1391.17,632.3358 1440.0822,642.7633 1485.9022,652.5433" fill="none" id="A2-to-Ledger" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1491.77,653.7958,1483.8032,648.0052,1486.8801,652.7521,1482.1333,655.829,1491.77,653.7958" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="63.1801" x="1398.19" y="630.3128">Checksum</text></g><!--link Tag to Source--><g class="link" data-entity-1="ent0011" data-entity-2="ent0010" data-link-type="dependency" data-source-line="88" id="lnk36"><path d="M467.51,609.9958 C524.2,609.9958 601.66,609.9958 654.81,609.9958" fill="none" id="Tag-to-Source" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="660.81,609.9958,651.81,605.9958,655.81,609.9958,651.81,613.9958,660.81,609.9958" style="stroke:#181818;stroke-width:1;"/></g><!--link Net to User--><g class="link" data-entity-1="ent0003" data-entity-2="ent0002" data-link-type="dependency" data-source-line="90" id="lnk37"><path d="M438.57,402.6958 C538.34,401.1458 851.65,391.4158 1102.19,330.9958 C1160.05,317.0458 1218.1148,292.834 1257.9448,274.594" fill="none" id="Net-to-User" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1263.4,272.0958,1253.5518,272.2063,1258.854,274.1776,1256.8827,279.4799,1263.4,272.0958" style="stroke:#181818;stroke-width:1;"/></g><!--link Attacker to B1--><g class="link" data-entity-1="ent0006" data-entity-2="ent0013" data-link-type="dependency" data-source-line="91" id="lnk38"><path d="M127.21,621.8558 C178.25,631.6958 253.71,645.5558 319.93,654.9958 C563.18,689.6758 854.9304,689.5827 949.0904,688.5327" fill="none" id="Attacker-to-B1" style="stroke:#FF0000;stroke-width:1;"/><polygon fill="#FF0000" points="955.09,688.4658,946.046,684.5664,950.0903,688.5215,946.1352,692.5659,955.09,688.4658" style="stroke:#FF0000;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="82.7841" x="498.08" y="670.0928">compromises</text></g><!--link Attacker to Net--><g class="link" data-entity-1="ent0006" data-entity-2="ent0003" data-link-type="dependency" data-source-line="92" id="lnk39"><path d="M127.33,573.2258 C199.03,529.1958 311.3474,460.216 367.5174,425.716" fill="none" id="Attacker-to-Net" style="stroke:#FF0000;stroke-width:1;"/><polygon fill="#FF0000" points="372.63,422.5758,362.8676,423.8777,368.3695,425.1926,367.0545,430.6945,372.63,422.5758" style="stroke:#FF0000;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="49.647" x="209.93" y="460.0628">controls</text></g><!--link Attacker to Tag--><g class="link" data-entity-1="ent0006" data-entity-2="ent0011" data-link-type="dependency" data-source-line="93" id="lnk40"><path d="M127.33,609.9958 C188.24,609.9958 276.17,609.9958 337.49,609.9958" fill="none" id="Attacker-to-Tag" style="stroke:#FF0000;stroke-width:1;"/><polygon fill="#FF0000" points="343.49,609.9958,334.49,605.9958,338.49,609.9958,334.49,613.9958,343.49,609.9958" style="stroke:#FF0000;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="153.0881" x="157.93" y="605.8928">compromises private key</text></g><!--link User to Rebuild--><g class="link" data-entity-1="ent0002" data-entity-2="ent0022" data-link-type="dependency" data-source-line="98" id="lnk41"><path d="M1263.56,255.2158 C1163.01,260.8458 903.3606,275.3701 781.8506,282.1801" fill="none" id="User-to-Rebuild" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="775.86,282.5158,785.0697,286.0059,780.8522,282.236,784.6221,278.0185,775.86,282.5158" style="stroke:#181818;stroke-width:1;"/></g><!--link User to Log--><g class="link" data-entity-1="ent0002" data-entity-2="ent0018" data-link-type="dependency" data-source-line="99" id="lnk42"><path d="M1344.93,283.8358 C1359.07,295.0258 1374.99,307.8958 1389.19,319.9958 C1445.76,368.2058 1504.8975,422.9271 1541.6975,457.5071" fill="none" id="User-to-Log" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1546.07,461.6158,1542.2504,452.5378,1542.4263,458.1919,1536.7721,458.3677,1546.07,461.6158" style="stroke:#181818;stroke-width:1;"/></g><!--link Keys to Policy--><g class="link" data-entity-1="ent0021" data-entity-2="ent0023" data-link-type="dependency" data-source-line="100" id="lnk43"><path d="M812.39,186.9958 C838.93,188.0758 861.5048,188.9948 887.6248,190.0448" fill="none" id="Keys-to-Policy" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="893.62,190.2858,884.7879,185.9275,888.624,190.085,884.4666,193.9211,893.62,190.2858" style="stroke:#181818;stroke-width:1;"/></g><!--link Rebuild to Policy--><g class="link" data-entity-1="ent0022" data-entity-2="ent0023" data-link-type="dependency" data-source-line="101" id="lnk44"><path d="M775.89,264.8858 C810.8,253.0558 849.3071,240.0104 888.0771,226.8804" fill="none" id="Rebuild-to-Policy" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="893.76,224.9558,883.9525,224.0541,889.0242,226.5596,886.5187,231.6313,893.76,224.9558" style="stroke:#181818;stroke-width:1;"/></g><!--link Policy to User--><g class="link" data-entity-1="ent0023" data-entity-2="ent0002" data-link-type="dependency" data-source-line="102" id="lnk45"><path d="M1078.54,211.0658 C1139.8,222.4958 1211.5017,235.8859 1257.6217,244.4859" fill="none" id="Policy-to-User" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="1263.52,245.5858,1255.4057,240.0038,1258.6047,244.6692,1253.9393,247.8682,1263.52,245.5858" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="100.1911" x="1111.19" y="214.1128">ACCEPT / REJECT</text></g><g class="caption" data-source-line="30"><text fill="#000000" font-family="sans-serif" font-size="18" font-weight="bold" lengthAdjust="spacing" textLength="543.7407" x="556.1323" y="777.2377">Threat Model - Reproducible Builds according to SLSA Level 4</text></g><g class="footer" data-source-line="18"><text fill="#888888" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="86.6457" x="1343.3879" y="799.4776">Advantages:</text><ellipse cx="1207.7509" cy="809.6995" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="356.9197" x="1214.2509" y="814.2695">Consistency between source code and binaries through Reproducible Builds</text><ellipse cx="1253.8858" cy="823.3195" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="264.6497" x="1260.3858" y="827.8895">No single trust anchor -> at least 2 independent builders</text><ellipse cx="1185.7959" cy="836.9395" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="400.8296" x="1192.2959" y="841.5095">Subsequent manipulation detectable through checksums in the Git Transparency Log</text><ellipse cx="1236.9508" cy="850.5595" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="298.5198" x="1243.4508" y="855.1295">Insider attacks made more difficult through multiple signatures</text><ellipse cx="1122.916" cy="864.1795" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="526.5894" x="1129.416" y="868.7495">Key misuse detectable through checksums in the Git Transparency Log and temporal correlation via timestamps</text><ellipse cx="1323.3108" cy="877.7995" fill="#888888" rx="2.5" ry="2.5"/><text fill="#888888" font-family="sans-serif" font-size="10" lengthAdjust="spacing" textLength="125.7999" x="1329.8108" y="882.3695">Each box is a trust boarder</text></g><?plantuml-src fLRRRXit47tdLmni58cB2Ac590y1Ma1IRCEDxHYMsfUc3zJkI4jubzoINDb6qN_l6Ux5agK0lUX10ZdtcJE7AdaLAJhoPbr4oetdB1fdLRWtjjPULoGtsgvBfZyLqLHdzsll6flFNEay7P-Vdtyu_o0IvtFstUtxzp_We_xQycDT_BQByzaCoghDec0DJ-f7MXIUTQHhbtD98xhZshkyoSmIoKmRK-Q1T9OXhh5hAM9-DP_G5M-W_KurGMwDpRbcVDb85xQvlQ1WrbR7nZECRKxt_1IK3lJ0PKdu_NT1S0z7jREzD1PC2nGrzUuXi4VtIjQ12Kup3k4DROMwCOzVvc_e4o-DjYcP6uxJ-ITKJj_bElBheoTyHjVNepodelXOLKSd2iLq3UhQjNBehBHhac-qZNhDuQFwdcRE1XCYs-o9bXmVc2q5r_YCAKD3KxobiTeRT28M6CYwE5GzNDquacRYAlecH9Xc1MeS_KIOZjGNQRpJwQLOiXVRURCC_4SZjvMsfcvABG2ZdAC0I-BqmRE2i_lGL06-KYClJAI5rpO0GQcEAxU6oqiK1ky87W6b0ByeftAUWT_LocHD6GUV5GwcHf3diSF3PtwYoeG6W_clUQJ-HQvgvtL92GTTPHkZAPgAGzHLBT7ET5RGqZsI0PIw5YwTbdMHQNRpmoVJTLg-_uby-EmzAPr5JEheatkmfHFKVBMlVsLlLeRzoP6Wy1U1wV651pvwxKkBX2n7wABNdA5hhIxmsUlSB6vfpdu3uzDMjhWzFI0SKoyTzz99cbjAfH_bMpfxb9YwR0FrAdHynxbwrHakf7MS0zfLPU8GkJtYV4hVLXtlgevfw0t04BOB6SvmjwSotbKHD-gP8O-kjS466il-A77TbcZUxjuC8qNXG1PGrHRRIdQr1N9t7NSiz1eMYRr60cFEMplS9z9yjhfykODKcvfBv1FWuNbPJ_QokuKUJPBRwUa1qRGLZLy4x755saTUeLjXp_Eaaz04ASowrUgcVFeDrUc-wil8XtOILh9px4U5RDVGAA6DxQH1Yzui6y57oVaQOtqmiVXgwPhzFJGMM0R92_k5lj7hQUco-wp0N3j_oMWddI-8cjOVPC1sOxop5QQ0ZDmgSKW-RE1-ypzR2AbkbgN94b79Lil39ERBXAUSLjvL0zyYgrt6RLcbrh489mD4TwFSyIuau7oRLrgpJcdNiYMChAMtsY7B9scBysimUkZBhf0Oc0AIbEfqVacBkzRhRRAH2GfBq0WlXr3eHrg09-Lk_F9ERMsXYEG8cMTC3ZGNrDOA7fIhRjz424HldyPAJLkl0E2qjGU-r6Gxinv-QZ8-T3iej_WveBydKDZN9EhsNO5DqraOM0sCD_fDEE_tb3RCCrTXHdYiKDC17V4XIZPwLnxKaAWxRl1Vn6pmxq8GfbwzVJjmP5jHgx_6zW3GqDxeqkJFpoVjc8p_cObIwPKHtHvWmuKiPvgU73gWz53Tkcf_XduXtcGsExjTuEcuE_lvRBRu6m00?></g></svg>
|