summaryrefslogtreecommitdiff
path: root/PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml
diff options
context:
space:
mode:
authorstefan <stefan@i3mint.local>2026-02-23 18:53:35 +0100
committerstefan <stefan@i3mint.local>2026-02-23 18:53:35 +0100
commiteb4668408ceac440972213053ab0d97f6fa7ae89 (patch)
tree1fd6e625a2e1525eae7b645652e8783b3639f574 /PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml
parent610745a129310565ce682d4a1d675ff3b0f6e440 (diff)
SLSA models added
Signed-off-by: stefan <stefan@i3mint.local>
Diffstat (limited to 'PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml')
-rw-r--r--PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml66
1 files changed, 66 insertions, 0 deletions
diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml b/PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml
new file mode 100644
index 0000000..4371bf5
--- /dev/null
+++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/200-ThreatModel-SLSA1-DownloadSig.puml
@@ -0,0 +1,66 @@
+@startuml
+left to right direction
+skinparam rectangle {
+ BackgroundColor #F9F9F9
+ BorderColor #333
+}
+
+
+right header
+= Threat Model - Integrity verification of download artifacts with key list!
+using independent GnuPG signatures and public keys
+as well as a key list with authorised signing keys
+= %date("yyyy-MM-dd hh:hh") UTC
+endheader
+
+right footer
+* Maintainer publishes signed artifacts, public GnuPG keys and signed key list
+* The key list or its signature is the central trust anchor
+* Both are located in a central place!
+* If the key list and the information about signature authorisation of the key list are replaced, manipulated artifacts with valid signatures can be distributed
+* The security objective authenticity of the artifacts can therefore be violated
+endfooter
+
+
+
+
+actor "Downloader\n(Verifier)" as User #Green
+actor "Attacker\n(MITM / Mirror)" as Attacker #Red
+' actor "Keyserver" as Keyserver
+' actor "Website with signed key list\nand information about signature authorisation of the key list" as WWW #Orange
+
+
+
+rectangle "Maintainer" {
+ rectangle "Private key\n(on hardware token)" as PrivKey
+ rectangle "Release artifact\n(binary)" as Artifact
+ rectangle "Signature\n(.asc)" as Sig
+}
+
+rectangle "Website with signed key list\nand information about signature authorisation of the key list" as Channel #Orange
+
+rectangle "Verification environment\n(Server)" {
+ rectangle "Public key\nfrom keyserver\n(fingerprint verified)" as PubKey
+ rectangle "gpg --verify *.asc" as GPG
+}
+
+PrivKey --> Sig : signs
+Artifact --> Sig
+
+Sig --> Channel
+Artifact --> Channel
+
+Channel --> User
+' Attacker -[#Red]-> Channel : MITM attack
+Attacker -[#Red]-> Channel: replaces key list
+
+
+' Keyserver --> User: retrieves public keys
+Channel --> User: retrieves key list and verifies its signature
+User --> GPG
+PubKey --> GPG
+Artifact --> GPG
+Sig --> GPG
+
+GPG --> User : OK / FAIL
+@enduml