From 99ce1791491eadf9e1e4372b9b3c169331e191e4 Mon Sep 17 00:00:00 2001 From: stefan Date: Sun, 22 Feb 2026 12:17:18 +0100 Subject: GnuPG WoT modeled, 1st attempt --- .../100-GnuPG-Keysigning-DFD.png | Bin 0 -> 57179 bytes .../100-GnuPG-Keysigning-DFD.puml | 52 +++++++++ .../100-GnuPG-Keysigning-DFD.svg | 1 + .../100-GnuPG-Keysigning-SEQ-KSP-WoT.png | Bin 0 -> 121411 bytes .../100-GnuPG-Keysigning-SEQ-KSP-WoT.puml | 121 +++++++++++++++++++++ .../100-GnuPG-Keysigning-SEQ-KSP-WoT.svg | 1 + .../GnuPG-WoT-Download/README.adoc | 14 +++ .../GnuPG-WoT-Download/pumlit.sh | 3 + 8 files changed, 192 insertions(+) create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.png create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.puml create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.svg create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.png create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.puml create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.svg create mode 100644 PlantUML-ModelingTrust/GnuPG-WoT-Download/README.adoc create mode 100755 PlantUML-ModelingTrust/GnuPG-WoT-Download/pumlit.sh (limited to 'PlantUML-ModelingTrust') diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.png b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.png new file mode 100644 index 0000000..c1709eb Binary files /dev/null and b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.png differ diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.puml b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.puml new file mode 100644 index 0000000..1e97415 --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.puml @@ -0,0 +1,52 @@ +@startuml +!theme mimeograph + +header += DFD: Alice and Bob Keysigning +Compiled: %date("yyyy-MM-dd kk:mm Z") +endheader + +title Daten Flow Diagram – GnuPG Keysigning between Alice and Bob + +actor Alice +actor Bob +actor Keyserver + +rectangle "Alice Keyring" as AK +rectangle "Bob Keyring" as BK + +rectangle "PubKey Alice" as PubA +rectangle "PubKey Bob" as PubB + +rectangle "signed PubKey of Alice -> Bob" as SigB +rectangle "signed PubKey of Bob -> Alice" as SigA + +' ''' exportieren +Alice --> PubA : 1. export own PubKey +Bob --> PubB : 1. export own PubKey + +' ''' verschicken +PubA --> Bob : 2. mail own PubKey to Bob +PubB --> Alice : 2. mail own PubKey to Alice + + +' ''' signatur +Bob --> SigA : 3. sign PubKey of Alice +Alice --> SigB : 3. sign PubKey of Bob + + +' ''' sig mailen +SigA --> Alice : 4. mail signed PubKey of Alice to the mail address in the key +SigB --> Bob : 4. mail signed PubKey of Bob to the mail address in the key + + +' ''' signaturen importieren +Alice --> AK : 5. import signed PubKey +Bob --> BK : 5. signed PubKey + + +' ''' schlüssel veröffentlichen +Alice --> Keyserver : 6. send new signature to Keyserver +Bob --> Keyserver : 6. send new signature to Keyserver + +@enduml diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.svg b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.svg new file mode 100644 index 0000000..6e632bd --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-DFD.svg @@ -0,0 +1 @@ +Daten Flow Diagram - GnuPG Keysigning between Alice and BobDFD: Alice and Bob KeysigningCompiled: 2026-02-22 12:16 +0100Daten Flow Diagram - GnuPG Keysigning between Alice and BobAliceBobKeyserverAlice KeyringBob KeyringPubKey AlicePubKey Bobsigned PubKey of Alice -> Bobsigned PubKey of Bob -> Alice1. export own PubKey1. export own PubKey2. mail own PubKey to Bob2. mail own PubKey to Alice3. sign PubKey of Alice3. sign PubKey of Bob4. mail signed PubKey of Alice to the mail address in the key4. mail signed PubKey of Bob to the mail address in the key5. import signed PubKey5. signed PubKey6. send new signature to Keyserver6. send new signature to Keyserver \ No newline at end of file diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.png b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.png new file mode 100644 index 0000000..0a906b4 Binary files /dev/null and b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.png differ diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.puml b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.puml new file mode 100644 index 0000000..8ea1574 --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.puml @@ -0,0 +1,121 @@ +@startuml +' !theme mono +' !theme crt-amber +' !theme crt-green +' !theme amiga +' !theme metal + +!theme mimeograph + + + +title Sequence Diagram – Mutual Key Signing with Owner Trust (tsign) + +legend +Keysigning between Alice and Bob +. gpg --recv-keys 0x11F4C41EB3FBAE33 +. gpg --edit-key 0x11F4C41EB3FBAE33 +. tsign +. gpg --armor --export-options export-minimal --export 0xB3FBAE33 > 0xB3FBAE33.asc +end legend + +header += Sequence of Key Signing with n==2 +Compiled: %date("yyyy-MM-dd kk:mm Z") +endheader + + + +actor Alice +actor Bob + + + +participant "Alice GnuPG" as AG +participant "Bob GnuPG" as BG +database "Alice Keyring" as AK +database "Bob Keyring" as BK +database "Alice Owner Trust" as AT +database "Bob Owner Trust" as BT + + +entity "Alice Passport" as AID +entity "Bob Passport" as BID + +' +' ''''''''''''''''''' KSP +' + +group Key Signing Party +== ID Verification via Passport == + +Alice -> BID : Verify Bobs Passport +note right: verify ID and Key-Fingerprint +Bob -> AID : Verify Alice Passport +note right: verify ID and Key-Fingerprint:w + +end group + + +' +' ''''''''''''''''''' KEX +' + +group KeyExchange +== Key Exchange == + +Alice -> AG : Export PubKey +AG -> AK : Read PubKeyof Alice +AG -> Bob : Send PubKeyof Alice + +Bob -> BG : Export PubKey +BG -> BK : Read PubKeyof Bob +BG -> Alice : Send PubKeyof Bob + +== Signing == + +Bob -> BG : Sign Alice key\n(identity verified) +BG -> BK : Store signature on Alice key +BG -> Alice : Mail signed Alice key + +Alice -> AG : Sign Bob key\n(identity verified) +AG -> AK : Store signature on Bob key +AG -> Bob : Mail signed Bob key + +== Import == + +Alice -> AG : Import signed Alice key +AG -> AK : Update keyring + +Bob -> BG : Import signed Bob key +BG -> BK : Update keyring + +== Set Owner Trust == + +Alice -> AG : Set owner trust for Bob +AG -> AT : Store trust level + +Bob -> BG : Set owner trust for Alice +BG -> BT : Store trust level +end group + + +' +' ''''''''''''''''''' WoT +' + +group Trust calculation voa Web of Trust +== Web of Trust Calculation == + +Alice -> AG : Check validity of Bob key +AG -> AK : Read signatures +AG -> AT : Read owner trust values +AG -> Alice : Validity status\n(unknown/marginal/full) + +Bob -> BG : Check validity of Alice key +BG -> BK : Read signatures +BG -> BT : Read owner trust values +BG -> Bob : Validity status\n(unknown/marginal/full) + +end group +@enduml diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.svg b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.svg new file mode 100644 index 0000000..72a3e65 --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/100-GnuPG-Keysigning-SEQ-KSP-WoT.svg @@ -0,0 +1 @@ +Sequence Diagram - Mutual Key Signing with Owner Trust (<font:monospace>tsign</font>)Sequence Diagram - Mutual Key Signing with Owner Trust (tsign)AliceBobAlice GnuPGBob GnuPGAlice KeyringBob KeyringAlice Owner TrustBob Owner TrustAlice PassportBob PassportAliceAliceBobBobAlice GnuPGAlice GnuPGBob GnuPGBob GnuPGAlice KeyringAlice KeyringBob KeyringBob KeyringAlice Owner TrustAlice Owner TrustBob Owner TrustBob Owner TrustAlice PassportAlice PassportBob PassportBob PassportKey Signing PartyID Verification via PassportVerify Bobs Passportverify ID and Key-FingerprintVerify Alice Passportverify ID and Key-Fingerprint:wKeyExchangeKey ExchangeExport PubKeyRead PubKeyof AliceSend PubKeyof AliceExport PubKeyRead PubKeyof BobSend PubKeyof BobSigningSign Alice key(identity verified)Store signature on Alice keyMail signed Alice keySign Bob key(identity verified)Store signature on Bob keyMail signed Bob keyImportImport signed Alice keyUpdate keyringImport signed Bob keyUpdate keyringSet Owner TrustSet owner trust for BobStore trust levelSet owner trust for AliceStore trust levelTrust calculation voa Web of TrustWeb of Trust CalculationCheck validity of Bob keyRead signaturesRead owner trust valuesValidity status(unknown/marginal/full)Check validity of Alice keyRead signaturesRead owner trust valuesValidity status(unknown/marginal/full)Sequence of Key Signing with n==2Compiled: 2026-02-22 12:16 +0100Keysigning between Alice and Bob.gpg --recv-keys 0x11F4C41EB3FBAE33.gpg --edit-key 0x11F4C41EB3FBAE33.tsign.gpgarmorexport-options export-minimal --export 0xB3FBAE33 > 0xB3FBAE33.asc \ No newline at end of file diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/README.adoc b/PlantUML-ModelingTrust/GnuPG-WoT-Download/README.adoc new file mode 100644 index 0000000..5f15df3 --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/README.adoc @@ -0,0 +1,14 @@ += PLantUML Diagrams for GnuPG Key Signing + +I am trying to model implicit and explicit trust in Zero Trust Architecture diagrams for Threat Modeling. + +So I need to bring together the Blue Team/White Hat perspective and the Red Team/Black Hat stuff. + +== DFD: Keysigning Simple + +image::100-GnuPG-Keysigning-DFD.puml[] + +== SEQ: Keysigning with ID check and WoT + +image::100-GnuPG-Keysigning-SEQ-KSP-WoT.puml[] + diff --git a/PlantUML-ModelingTrust/GnuPG-WoT-Download/pumlit.sh b/PlantUML-ModelingTrust/GnuPG-WoT-Download/pumlit.sh new file mode 100755 index 0000000..dcb7929 --- /dev/null +++ b/PlantUML-ModelingTrust/GnuPG-WoT-Download/pumlit.sh @@ -0,0 +1,3 @@ +plantuml -svg *.puml +plantuml -png *.puml +asciidoctor index.adoc -- cgit v1.2.3