https://wiki.c3d2.de/w/index.php?title=SILC-ng&feed=atom&action=historySILC-ng - Versionsgeschichte2024-03-28T19:22:27ZVersionsgeschichte dieser Seite in C3D2MediaWiki 1.40.2https://wiki.c3d2.de/w/index.php?title=SILC-ng&diff=8332&oldid=prevToidinamai: Client zu Server2006-11-16T21:58:38Z<p>Client zu Server</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="de">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 16. November 2006, 21:58 Uhr</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Zeile 4:</td>
<td colspan="2" class="diff-lineno">Zeile 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[SILC]] hat ein paar gute Ideen, die aber zu stark nach dem NIH-Prinzip implementiert wurden.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[SILC]] hat ein paar gute Ideen, die aber zu stark nach dem NIH-Prinzip implementiert wurden.</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>SILC-ng stellt den <del style="font-weight: bold; text-decoration: none;">versuch </del>da, ein SILC-ähnliches Protokoll zu schaffen, das auf Standards</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>SILC-ng stellt den <ins style="font-weight: bold; text-decoration: none;">Versuch </ins>da, ein SILC-ähnliches Protokoll zu schaffen, das auf Standards</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>wie SSL und XML basiert.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>wie SSL und XML basiert.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l33">Zeile 33:</td>
<td colspan="2" class="diff-lineno">Zeile 33:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>übertragenen schließt B diese Verbindung und fährt auf der ersten, von A initiierten Verbindung mit der Kommunikation fort.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>übertragenen schließt B diese Verbindung und fährt auf der ersten, von A initiierten Verbindung mit der Kommunikation fort.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Optional: A und B merken sich jeweils den gegenüberliegenen Hostnamen (== Common-Name) und optional auch das Zertifikat, nach einem</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">'''</ins>Optional:<ins style="font-weight: bold; text-decoration: none;">''' </ins>A und B merken sich jeweils den gegenüberliegenen Hostnamen (== Common-Name) und optional auch das Zertifikat, nach einem</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Neustart eines der beiden Server, versucht dieser einen erneuten Verbindungsaufbau.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Neustart eines der beiden Server, versucht dieser einen erneuten Verbindungsaufbau.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Optional: A und B teilen sich gegenseitig mit, mit welchen anderen Servern sie verbunden sind. Und stellen bei Bedarf weitere Verbindungen</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">'''</ins>Optional:<ins style="font-weight: bold; text-decoration: none;">''' </ins>A und B teilen sich gegenseitig mit, mit welchen anderen Servern sie verbunden sind. Und stellen bei Bedarf weitere Verbindungen</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>zu diesen Servern her.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>zu diesen Servern her.</div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">=== Client zu Server ===</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Jeder Client muss zunächst das CA-Zertifikat besitzen, bevor er sich zu einem Server verbinden kann. Optional kann der Client dieses beim ersten</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Verbindungsversuch zu einem Server (NB. diese Verbindung ist zwar verschlüsselt, aber ungesichert!) von diesem herunterladen. Dabei '''muss'''</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">das Client-Programm auf jeden Fall eine Meldung ausgeben, dass dieses Zertifikat ausführlich zu prüfen ist und andernfalls alle weiteren Verbindungen</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">in das Netzwerk als ungesichert betrachtet werden müssen. Mit dem CA-Zertifikat überprüft der Client das vom Server angebotene Zertifikat (dabei kann</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">auch der Common-Name überprüft werden, dies ist aber z.B. bei Round-Robin-Hostnamen nicht sinnvoll). Optional kann der Client dem Server sein eigenes</ins></div></td></tr>
<tr><td colspan="2" class="diff-side-deleted"></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Zertifikat zur Überprüfung anbieten, wenn der Server dieses nicht sowieso verlangt.</ins></div></td></tr>
</table>Toidinamaihttps://wiki.c3d2.de/w/index.php?title=SILC-ng&diff=8331&oldid=prevToidinamai: Anfang eines Entwurfs2006-11-16T21:49:46Z<p>Anfang eines Entwurfs</p>
<p><b>Neue Seite</b></p><div>[[Kategorie: SILC]]<br />
<br />
== Einleitung ==<br />
<br />
[[SILC]] hat ein paar gute Ideen, die aber zu stark nach dem NIH-Prinzip implementiert wurden.<br />
SILC-ng stellt den versuch da, ein SILC-ähnliches Protokoll zu schaffen, das auf Standards<br />
wie SSL und XML basiert.<br />
<br />
== Architektur ==<br />
<br />
Ein Netzwerk besteht aus (beliebig vielen) Servern, von denen jeder ein X.509-Zertifikat besitzt,<br />
das seinem FQDN entspricht. Alle Zertifikate sind von einer gemeinsamen CA unterschrieben.<br />
<br />
Jeder Nutzer des Netzwerks hat eigenes X.509-Zertifikat, das ihn eindeutig innerhalb des<br />
Netzwerks identifiziert. Es obliegt dem Administrator eines jeden Servers zu entscheiden, ob<br />
die Zertifikate der Nutzer geprüft werden. Einem Nutzer werden, wenn er zu einem Server verbunden<br />
ist, verschiedene administrative Rollen zugeordnet, von denen die niedrigste "User" ist. Der Server<br />
teilt die Nutzer in die Rollen aufgrund ihrer Zertifikate ein. Die höchste Rolle auf einem Server ist<br />
"Administrator". Der Administrator kann dem Server, wenn er wie ein normaler Nutzer verbunden ist,<br />
Befehle erteilen.<br />
<br />
== Netzwerk-Schicht ==<br />
<br />
=== Server zu Server ===<br />
<br />
Verbindungen zwischen Servern sind ''ad-hoc'', d.h. sie müssen nicht vorkonfiguriert werden. Teilt ein Administrator<br />
einem Server (Server A) mit, dass er sich zu einem anderen (Server B) verbinden soll, stellt jener eine<br />
SSL-gesicherte, verschlüsselte Verbindung zu B her. A prüft hierbei das Zertifikat von B und bittet B um eine <br />
Server-zu-Server Verbindung. B prüft ebenfalls das Zertifikat von A und hinterlässt bei erfolgreicher Überprüfung<br />
bei A einen Verbindungs-Cookie. Daraufhin baut B eine weitere Verbindung zu A auf, und zwar zu dem im Zertifikat enthaltenen<br />
Common-Name. Ist dieser Verbindungsaufbau erfolgreich, inklusive einer weiteren Überprüfung der Zertifikate,<br />
fragt B A über diesen Kanal nach dem Vorher abgelieferten Cookie. Ist dieser identisch mit dem auf dem ersten Kanal<br />
übertragenen schließt B diese Verbindung und fährt auf der ersten, von A initiierten Verbindung mit der Kommunikation fort.<br />
<br />
Optional: A und B merken sich jeweils den gegenüberliegenen Hostnamen (== Common-Name) und optional auch das Zertifikat, nach einem<br />
Neustart eines der beiden Server, versucht dieser einen erneuten Verbindungsaufbau.<br />
<br />
Optional: A und B teilen sich gegenseitig mit, mit welchen anderen Servern sie verbunden sind. Und stellen bei Bedarf weitere Verbindungen<br />
zu diesen Servern her.</div>Toidinamai