Merge pull request #23 from tlsnotary/motivation

Added a Motivation
This commit is contained in:
Hendrik Eeckhaut
2023-08-29 10:27:52 +02:00
committed by GitHub
12 changed files with 380 additions and 101 deletions

View File

@@ -1,6 +1,6 @@
<mxfile host="Electron" modified="2023-08-03T09:50:21.867Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="2bJHSDfEvUGkQAMHXwOr" version="21.6.5" type="device">
<mxfile host="Electron" modified="2023-08-09T14:52:17.995Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="NqjasaSU2jIBY4YZtYy6" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="1682" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<mxGraphModel dx="1147" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
@@ -13,45 +13,10 @@
<mxCell id="HxEEL8P-OPklS3m3PPNj-48" value="Ultimate solution" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="330" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-11" value="TLSNotary" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxCell id="0T9UpzUMcqbGcj6tkd16-11" value="TLSNotary" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="770" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-18" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="190" width="412" height="120" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="160" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="320" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-18" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="0T9UpzUMcqbGcj6tkd16-18" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="340" y="170" as="sourcePoint" />
<mxPoint x="390" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-6" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-4" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-7" value="data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="80" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="240" y="40" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-18" vertex="1">
<mxGeometry x="276" y="60" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-19" value="" style="group" vertex="1" connectable="0" parent="1">
<mxCell id="0T9UpzUMcqbGcj6tkd16-19" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="70" y="360" width="440" height="113" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-37" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
@@ -91,16 +56,57 @@
<mxCell id="HxEEL8P-OPklS3m3PPNj-45" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-19" vertex="1">
<mxGeometry x="276" y="53" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-20" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="530" width="416" height="235" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-21" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="70" y="800" width="440" height="182" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="280" y="170" width="136" height="60" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="160" y="110" width="60" height="60" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-4" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="160" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxCell id="0T9UpzUMcqbGcj6tkd16-5" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="320" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-4" target="0T9UpzUMcqbGcj6tkd16-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-3" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0T9UpzUMcqbGcj6tkd16-2" vertex="1" connectable="0">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-8" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="82.5" y="112" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-9" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="240" y="99" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-10" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="276" y="112" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-12" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="80" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-14" target="0T9UpzUMcqbGcj6tkd16-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-14" value="Multi-party TLS" style="rounded=1;whiteSpace=wrap;html=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="77.5" y="74" width="65" height="30" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-1" target="0T9UpzUMcqbGcj6tkd16-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-12" target="0T9UpzUMcqbGcj6tkd16-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="350" y="705" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="645" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-26" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-25" vertex="1" connectable="0">
@@ -108,78 +114,82 @@
<mxPoint x="6" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry width="60" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="535" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="320" y="110" width="60" height="60" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="645" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="40" y="40" as="sourcePoint" />
<mxPoint x="380" y="130" as="targetPoint" />
<mxPoint x="110" y="575" as="sourcePoint" />
<mxPoint x="450" y="665" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access&lt;br&gt;to User B" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxGeometry x="-0.0036" y="-1" relative="1" as="geometry">
<mxPoint y="-13" as="offset" />
<mxPoint y="-19" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-20" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="160" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-20" vertex="1">
<mxGeometry x="202" y="10" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-13" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-20">
<mxGeometry x="240" y="165" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-21" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="70" y="800" width="440" height="182" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-4" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="160" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-5" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="320" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-4" target="0T9UpzUMcqbGcj6tkd16-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-3" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="0T9UpzUMcqbGcj6tkd16-2">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
<mxCell id="2jyW2hphGHJ1HJf9qghL-2" value="delegate&lt;br&gt;access control" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" parent="HxEEL8P-OPklS3m3PPNj-32" vertex="1" connectable="0">
<mxGeometry x="0.24" y="2" relative="1" as="geometry">
<mxPoint x="-4" y="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-8" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="82.5" y="112" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="535" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-9" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="240" y="99" width="60" height="70" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="266" y="535" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-10" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="276" y="112" width="164" height="60" as="geometry" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-13" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="700" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-12" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="80" width="60" height="60" as="geometry" />
<mxCell id="2jyW2hphGHJ1HJf9qghL-3" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="310" y="645" as="sourcePoint" />
<mxPoint x="360" y="595" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-14" target="0T9UpzUMcqbGcj6tkd16-4">
<mxCell id="2jyW2hphGHJ1HJf9qghL-4" value="access token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2jyW2hphGHJ1HJf9qghL-3" vertex="1" connectable="0">
<mxGeometry x="0.2378" relative="1" as="geometry">
<mxPoint x="16" y="-23" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-14" value="Multi-party TLS" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="0T9UpzUMcqbGcj6tkd16-21">
<mxGeometry x="77.5" y="74" width="65" height="30" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="360" as="sourcePoint" />
<mxPoint x="460" y="310" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-1" target="0T9UpzUMcqbGcj6tkd16-14">
<mxGeometry relative="1" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-6" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-4" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" edge="1" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-12" target="0T9UpzUMcqbGcj6tkd16-14">
<mxGeometry relative="1" as="geometry" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="230" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="250" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="xLXuI-9Z-1ACPAXbHEKi-2" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="1">
<mxGeometry x="150" y="230" width="60" height="70" as="geometry" />
</mxCell>
</root>
</mxGraphModel>

View File

@@ -0,0 +1,45 @@
<mxfile host="Electron" modified="2023-08-09T14:49:28.598Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="BljyHpgYGZyHBjyEc3Ql" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="1147" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-46" value="No Data Provenance" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="160" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-2" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-3" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="190" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-2" target="HxEEL8P-OPklS3m3PPNj-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-4" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-1" target="HxEEL8P-OPklS3m3PPNj-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="360" as="sourcePoint" />
<mxPoint x="460" y="310" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-6" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-4" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-8" value="&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;⁉️" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="230" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-9" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ⁉️&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity ⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="250" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="wdAgGlkL8JTToDsr7vY7-1" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" vertex="1" parent="1">
<mxGeometry x="150" y="230" width="60" height="70" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,72 @@
<mxfile host="Electron" modified="2023-08-09T14:50:21.243Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="8CA9WD2HNZcInVXD9QXr" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="1147" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-47" value="Status Quo&amp;nbsp;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="500" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-18" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Too much info&amp;nbsp;&lt;/span&gt;⁉️&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="350" y="705" width="136" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-24" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="645" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-25" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-24" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-26" value="TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-25" vertex="1" connectable="0">
<mxGeometry x="-0.1121" y="2" relative="1" as="geometry">
<mxPoint x="6" y="-8" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-27" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="535" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-28" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="645" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-29" value="" style="endArrow=none;html=1;rounded=0;startArrow=classic;startFill=1;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-27" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="110" y="575" as="sourcePoint" />
<mxPoint x="450" y="665" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-30" value="grant access&lt;br&gt;to User B" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-29" vertex="1" connectable="0">
<mxGeometry x="-0.0036" y="-1" relative="1" as="geometry">
<mxPoint y="-19" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="2jyW2hphGHJ1HJf9qghL-2" value="delegate&lt;br&gt;access control" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" parent="HxEEL8P-OPklS3m3PPNj-32" vertex="1" connectable="0">
<mxGeometry x="0.24" y="2" relative="1" as="geometry">
<mxPoint x="-4" y="-3" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-33" value="OAuth&lt;br&gt;Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="535" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-34" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;censoring possible&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;sees all requests&lt;/span&gt;&amp;nbsp;⁉️&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="266" y="535" width="148" height="40" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-13" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="700" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="2jyW2hphGHJ1HJf9qghL-3" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-33" target="HxEEL8P-OPklS3m3PPNj-28" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="310" y="645" as="sourcePoint" />
<mxPoint x="360" y="595" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="2jyW2hphGHJ1HJf9qghL-4" value="access token" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2jyW2hphGHJ1HJf9qghL-3" vertex="1" connectable="0">
<mxGeometry x="0.2378" relative="1" as="geometry">
<mxPoint x="16" y="-23" as="offset" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,57 @@
<mxfile host="Electron" modified="2023-08-09T14:52:31.961Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="Uajk46rHwX3sd1RRm5jE" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="1147" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="0T9UpzUMcqbGcj6tkd16-11" value="TLSNotary" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="770" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-21" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="70" y="800" width="440" height="182" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-1" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-4" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="160" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-5" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="320" y="59" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-4" target="0T9UpzUMcqbGcj6tkd16-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-3" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="0T9UpzUMcqbGcj6tkd16-2" vertex="1" connectable="0">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-8" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="82.5" y="112" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-9" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="240" y="99" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-10" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="276" y="112" width="164" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-12" value="Notary" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="80" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-14" target="0T9UpzUMcqbGcj6tkd16-4" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-14" value="Multi-party TLS" style="rounded=1;whiteSpace=wrap;html=1;" parent="0T9UpzUMcqbGcj6tkd16-21" vertex="1">
<mxGeometry x="77.5" y="74" width="65" height="30" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-1" target="0T9UpzUMcqbGcj6tkd16-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="0T9UpzUMcqbGcj6tkd16-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;startArrow=none;startFill=0;endArrow=none;endFill=0;" parent="0T9UpzUMcqbGcj6tkd16-21" source="0T9UpzUMcqbGcj6tkd16-12" target="0T9UpzUMcqbGcj6tkd16-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -0,0 +1,50 @@
<mxfile host="Electron" modified="2023-08-09T14:49:57.054Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.6.5 Chrome/114.0.5735.243 Electron/25.3.1 Safari/537.36" etag="rqZKAff3CXJAv7pPpWkT" version="21.6.5" type="device">
<diagram name="Page-1" id="E1Tv2Iv79u1PMs5fWFh_">
<mxGraphModel dx="1147" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="HxEEL8P-OPklS3m3PPNj-48" value="Ultimate solution" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="330" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-37" value="Server" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="70" y="360" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-39" value="User A" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="230" y="360" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-40" value="User B" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;shadow=1;" parent="1" vertex="1">
<mxGeometry x="390" y="360" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-39" target="HxEEL8P-OPklS3m3PPNj-40" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-49" value="ZKP" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-38" vertex="1" connectable="0">
<mxGeometry x="-0.2352" y="1" relative="1" as="geometry">
<mxPoint x="12" y="-9" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-41" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="HxEEL8P-OPklS3m3PPNj-37" target="HxEEL8P-OPklS3m3PPNj-39" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="410" y="530" as="sourcePoint" />
<mxPoint x="460" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-42" value="Improved TLS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="HxEEL8P-OPklS3m3PPNj-41" vertex="1" connectable="0">
<mxGeometry x="-0.1464" y="-1" relative="1" as="geometry">
<mxPoint x="7" y="-11" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-43" value="🔐&lt;br&gt;signed&lt;br&gt;data&lt;br&gt;" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="150" y="400" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-44" value="🔐redacted&lt;br&gt;signed&lt;br style=&quot;border-color: var(--border-color);&quot;&gt;data" style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;size=17;" parent="1" vertex="1">
<mxGeometry x="310" y="400" width="60" height="70" as="geometry" />
</mxCell>
<mxCell id="HxEEL8P-OPklS3m3PPNj-45" value="&lt;ul style=&quot;font-size: 11px;&quot;&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Authenticity ✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Integrity&amp;nbsp;✅&lt;/li&gt;&lt;li style=&quot;border-color: var(--border-color);&quot;&gt;Only required info&amp;nbsp;✅&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;fillColor=none;strokeColor=none;horizontal=1;" parent="1" vertex="1">
<mxGeometry x="346" y="413" width="164" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -1,8 +1,8 @@
# Summary
- [Introduction](./intro.md)
- [Quick Start](./developers/quick_start.md)
[Introduction](./intro.md)
[Motivation](./motivation.md)
[Quick Start](./developers/quick_start.md)
# Protocol

45
src/motivation.md Normal file
View File

@@ -0,0 +1,45 @@
# Motivation
The decentralized internet demands privacy-respecting data provenance!
Data provenance ensures internet data is authentic. It allows verification of the data's origin, ensuring it hasn't been fabricated or tampered with.
Data provenance will make data truly portable, empowering users to share it with others as they see fit.
## Non-repudiation: TLS is not enough
![](png-diagrams/data_provenance_none.png)
Transport Layer Security (TLS) plays a crucial role in digital security. TLS protects communication against eavesdropping and tampering. It ensures that the data received by the `User` from the `Server` indeed originates from the `Server` and was not changed. The `Server`'s identity is verified by the `User` through trusted Certificate Authorities (CAs). Data integrity is maintained by transmitting a cryptographic hash (called Message Authentication Code or MAC in TLS) alongside the data, which safeguards against deliberate alterations.
However, this hash does not provide **non-repudiation**, meaning it cannot serve as evidence for the **authenticity and integrity** of the data to third parties (e.g., a service or an app). Because it is a keyed hash and TLS requires that the key is known to the `User`, the `User` could modify the data and compute a corresponding hash after the TLS session is finished.
Achieving non-repudiation requires digital signatures implemented with asymmetric, public-key cryptography.
While the concept seems straightforward, enabling servers to sign data is not a part of the TLS protocol. Even if all data were securely signed, naively forwarding all data could expose too much information, compromising the `User`'s privacy. **Privacy** is a vital social good that must be protected.
## Status Quo: delegate access
![](png-diagrams/data_provenance_oauth.png)
Currently, when a `User` wants to share data from a server with another party, OAuth can be used to facilitate this if the application supports it. In this way, the other party receives the data directly from the server, ensuring authentic and unchanged data. However, applications often do not provide fine-grained control over which data to share, leading to the other party gaining access to more information than strictly necessary.
Another drawback of this solution is that the server is aware of the access delegation, enabling it to monitor and censor the other users requests.
It's worth noting that in many instances, OAuth is not even presented as an option. This is because a lot of servers lack the incentive to provide third-party access to the data.
## TLSNotary: data provenance and privacy with secure multi-party computation
![](png-diagrams/data_provenance_tlsn.png)
TLSNotary operates by introducing a third party, the `Notary`, into the usual TLS connection between the `User` and a `Server`. This `Notary` is **not an intermediary**. Instead, the `Notary` participates in a **secure multi-party computation** (MPC) to jointly manage the TLS connection without ever viewing the data in plain text; the `Notary` only has access to encrypted data. Furthermore, as the `Notary` only possesses the ephemeral keys of the `Server`, it remains unaware of which `Server` the `User` is communicating with.
The TLSNotary protocol is **transparent** to the `Server`. From the `Server`'s perspective, the TLS connection is indistinguishable from all other connections. As such, **no modifications to the TLS protocol are necessary**.
Due to the TLSNotary protocol's nature, it enables the `User` to selectively prove the authenticity of arbitrary portions of the data to a Verifier. Through the `Notary`'s signing of the data, the `User` can prove the data's authenticity to any third-party `Verifier`. The provided proof can be easily verified by the `Verifier`.
## Make your data portable with TLSNotary!
TLSNotary is a solution designed to prove the authenticity of data while preserving user privacy. It unlocks a variety of new use cases. So, if you're looking for a way to make your data portable without sacrificing its authenticity or compromising on privacy, TLSNotary is developed for you!
Dive into the protocol and integrate it into your applications. We eagerly await your feedback on [Discord](https://discord.com/invite/9XwESXtcN7).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 385 KiB

After

Width:  |  Height:  |  Size: 419 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB