diff options
Diffstat (limited to 'draft-schanzen-gns.xml')
-rw-r--r-- | draft-schanzen-gns.xml | 64 |
1 files changed, 61 insertions, 3 deletions
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml index 306064a..4b08e76 100644 --- a/draft-schanzen-gns.xml +++ b/draft-schanzen-gns.xml | |||
@@ -191,6 +191,12 @@ | |||
191 | An application refers to a component which uses a GNS implementation | 191 | An application refers to a component which uses a GNS implementation |
192 | to resolve names into records and processes its contents. | 192 | to resolve names into records and processes its contents. |
193 | </dd> | 193 | </dd> |
194 | <dt>Resolver</dt> | ||
195 | <dd> | ||
196 | The resolver is the part of the GNS implementation which implements | ||
197 | the recursive name resolution logic defined in | ||
198 | <xref target="resolution"/>. | ||
199 | </dd> | ||
194 | <dt>Name</dt> | 200 | <dt>Name</dt> |
195 | <dd> | 201 | <dd> |
196 | A name in GNS is a domain name as defined in <xref target="RFC8499"/> | 202 | A name in GNS is a domain name as defined in <xref target="RFC8499"/> |
@@ -326,8 +332,8 @@ | |||
326 | </t> | 332 | </t> |
327 | <t> | 333 | <t> |
328 | Zone contents are encrypted and signed | 334 | Zone contents are encrypted and signed |
329 | before being published in a distributed key-value storage | 335 | before being published in a distributed key-value storage (<xref target="publish"/>) |
330 | (<xref target="publish"/>). | 336 | as illustrated in <xref target="figure_arch_publish"/>. |
331 | In this process, unique zone identification is hidden from the network | 337 | In this process, unique zone identification is hidden from the network |
332 | through the use of key blinding. | 338 | through the use of key blinding. |
333 | Key blinding allows the creation of signatures for zone contents | 339 | Key blinding allows the creation of signatures for zone contents |
@@ -347,9 +353,35 @@ | |||
347 | based on <xref target="RFC7363" />, <xref target="Kademlia" /> or | 353 | based on <xref target="RFC7363" />, <xref target="Kademlia" /> or |
348 | <xref target="R5N" />. | 354 | <xref target="R5N" />. |
349 | </t> | 355 | </t> |
356 | <figure anchor="figure_arch_publish" title="An example diagram of two hosts publishing GNS zones."> | ||
357 | <artwork name="" type="" align="left" alt=""><![CDATA[ | ||
358 | Local Host | Distributed | Remote Host | ||
359 | | Storage | | ||
360 | | | | ||
361 | | +--------+ | | ||
362 | | / /| | | ||
363 | +---------+ Publish | +--------+ | | Publish +---------+ | ||
364 | | | Zones | | | | | Zones | | | ||
365 | | GNS |----------|->| Public | |<-|----------| GNS | | ||
366 | | | | | Zones | | | | | | ||
367 | +---------+ | | |/ | +---------+ | ||
368 | A | +--------+ | A | ||
369 | | | | | | ||
370 | +---------+ | | +---------+ | ||
371 | / | /| | | / | /| | ||
372 | +---------+ | | | +---------+ | | ||
373 | | | | | | | | | | ||
374 | | Local | | | | | Local | | | ||
375 | | Zones | | | | | Zones | | | ||
376 | | |/ | | | |/ | ||
377 | +---------+ | | +---------+ | ||
378 | ]]></artwork> | ||
379 | </figure> | ||
350 | <t> | 380 | <t> |
381 | Applications use the GNS implementation to lookup GNS names. | ||
351 | Starting from a configurable start zone, names are resolved by following zone | 382 | Starting from a configurable start zone, names are resolved by following zone |
352 | delegations. For each label in a name, the recursive GNS resolver | 383 | delegations recursively as illustrated in <xref target="figure_arch_resolv"/>. |
384 | For each label in a name, the recursive GNS resolver | ||
353 | fetches the respective record from the storage layer (<xref target="resolution"/>). | 385 | fetches the respective record from the storage layer (<xref target="resolution"/>). |
354 | Without knowledge of the label values and the zone keys, the | 386 | Without knowledge of the label values and the zone keys, the |
355 | different derived keys are unlinkable both to the original zone key and to each | 387 | different derived keys are unlinkable both to the original zone key and to each |
@@ -363,6 +395,32 @@ | |||
363 | with the ability to verify the integrity of the published information | 395 | with the ability to verify the integrity of the published information |
364 | without disclosing the originating zone. | 396 | without disclosing the originating zone. |
365 | </t> | 397 | </t> |
398 | <figure anchor="figure_arch_resolv" title="High-level view of the GNS resolution process."> | ||
399 | <artwork name="" type="" align="left" alt=""><![CDATA[ | ||
400 | Local Host | Distributed | ||
401 | | Storage | ||
402 | | | ||
403 | | +--------+ | ||
404 | | / /| | ||
405 | | +--------+ | | ||
406 | +-----------+ Name +---------+ Recursive | | | | | ||
407 | | | Lookup | | Resolution | | Public | | | ||
408 | |Application|----------| GNS |-------------|->| Zones | | | ||
409 | | |<---------| |<------------|--| |/ | ||
410 | +-----------+ Results +---------+ Intermediate| +--------+ | ||
411 | A Results | | ||
412 | | | | ||
413 | +---------+ | | ||
414 | / | /| | | ||
415 | +---------+ | | | ||
416 | | | | | | ||
417 | | Start | | | | ||
418 | | Zones | | | | ||
419 | | |/ | | ||
420 | +---------+ | | ||
421 | ]]></artwork> | ||
422 | </figure> | ||
423 | |||
366 | <t> | 424 | <t> |
367 | In the remainder of this document, the "implementer" refers to the developer building | 425 | In the remainder of this document, the "implementer" refers to the developer building |
368 | a GNS implementation including, for example, zone management tools and | 426 | a GNS implementation including, for example, zone management tools and |