[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [lsd0001] branch master updated: change wording
From: |
gnunet |
Subject: |
[GNUnet-SVN] [lsd0001] branch master updated: change wording |
Date: |
Fri, 04 Oct 2019 20:53:51 +0200 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository lsd0001.
The following commit(s) were added to refs/heads/master by this push:
new cae202d change wording
cae202d is described below
commit cae202d6dd1fd5724581d76235a2d15f8ce179cb
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Fri Oct 4 20:51:41 2019 +0200
change wording
---
draft-schanzen-gns.html | 156 ++++++++++++++--------------
draft-schanzen-gns.txt | 262 ++++++++++++++++++++++++------------------------
draft-schanzen-gns.xml | 123 ++++++++++++-----------
3 files changed, 271 insertions(+), 270 deletions(-)
diff --git a/draft-schanzen-gns.html b/draft-schanzen-gns.html
index 1afd0fb..d566abf 100644
--- a/draft-schanzen-gns.html
+++ b/draft-schanzen-gns.html
@@ -1667,25 +1667,77 @@ async function addMetadata(){try{const
e=document.styleSheets[0].cssRules;for(le
<a href="#section-4.3" class="section-number selfRef">4.3. </a><a
href="#name-block-data-encryption-and-d" class="section-name selfRef">Block
data encryption and decryption</a>
</h3>
<p id="section-4.3-1">
- A symmetric encryption scheme is used to en-/decrypt the "BDATA" field
- in a GNS record block. The keys are derived from the record label
- and the zone key "zk".
- Upon receiving a resource records block, first the validity of a given
- "zk_h" MUST be checked by computing "h" from "zk" and label and
- verifying that both are equal. This step is mandatory to prevent
record
- spoofing.
- For decryption of the resource records block payload,
- the key material "K" and initialization vector "IV" for the
- symmetric en-/decryption are derived:<a href="#section-4.3-1"
class="pilcrow">¶</a></p>
-<div class="artwork art-text alignLeft" id="section-4.3-2">
+ A symmetric encryption scheme is used to encrypt the resource records
+ set RDATA into the BDATA field of a GNS record block.
+ The wire format of the RDATA looks as follows:<a
href="#section-4.3-1" class="pilcrow">¶</a></p>
+<div id="figure_rdata">
+<figure id="figure-8">
+ <div class="artwork art-text alignLeft" id="section-4.3-2.1">
+<pre>
+ 0 8 16 24 32 40 48 56
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | RR COUNT | EXPIRA- /
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ / -TION | DATA SIZE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | TYPE | FLAGS |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA /
+ / /
+ / |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | EXPIRATION |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA SIZE | TYPE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | FLAGS | DATA /
+ +-----+-----+-----+-----+ /
+ / +-----------------------/
+ / | /
+ +-----------------------+ /
+ / PADDING /
+ / /
+ </pre>
+</div>
+<figcaption><a href="#figure-8" class="selfRef">Figure
8</a></figcaption></figure>
+</div>
+<p id="section-4.3-3">where:<a href="#section-4.3-3" class="pilcrow">¶</a></p>
+<dl class="dlParallel" id="section-4.3-4">
+ <dt id="section-4.3-4.1">RR COUNT</dt>
+ <dd id="section-4.3-4.2">
+ A 32-bit value containing the number of variable-length resource
+ records which are
+ following after this field in network byte order.
+ The resource record format is defined in <a href="#rrecords"
class="xref">Section 3</a>.<a href="#section-4.3-4.2" class="pilcrow">¶</a>
+</dd>
+ <dt id="section-4.3-4.3">PADDING</dt>
+ <dd id="section-4.3-4.4">
+ The padding MUST contain the value 0 in all octets.
+ The padding MUST ensure that the size of the RDATA is a power of
two.
+ As a special exception, record sets with (only) a PKEY record type
+ are never padded. Note that a record set with a PKEY record MUST NOT
+ contain other records.<a href="#section-4.3-4.4"
class="pilcrow">¶</a>
+</dd>
+ </dl>
+<p id="section-4.3-5">
+ Upon receiving a resource records block, first the validity of a
+ given "zk_h" MUST be checked by computing the expected "zk_h" from
"zk"
+ and label (as defined in <a href="#blinding" class="xref">Section
4.1</a>) and verifying that
+ both are equal. This step is mandatory to prevent record spoofing.<a
href="#section-4.3-5" class="pilcrow">¶</a></p>
+<p id="section-4.3-6">
+ The symmetric keys and initialization vectors are derived from the
+ record label and the zone key "zk". For decryption of the resource
+ records block payload, the key material "K" and initialization vector
+ "IV" for the symmetric en-/decryption are derived as follows:<a
href="#section-4.3-6" class="pilcrow">¶</a></p>
+<div class="artwork art-text alignLeft" id="section-4.3-7">
<pre>
PRK_k := HKDF-Extract ("gns-aes-ctx-key", zk)
PRK_iv := HKDF-Extract ("gns-aes-ctx-iv", zk)
K := HKDF-Expand (PRK_k, label, 512 / 8);
IV := HKDF-Expand (PRK_iv, label, 256 / 8)
- </pre><a href="#section-4.3-2" class="pilcrow">¶</a>
+ </pre><a href="#section-4.3-7" class="pilcrow">¶</a>
</div>
-<p id="section-4.3-3">
+<p id="section-4.3-8">
HKDF is a hash-based key derivation function as defined in
<span>[<a href="#RFC5869" class="xref">RFC5869</a>]</span>.
Specifically, HMAC-SHA512 is used for the
extraction phase and HMAC-SHA256 for the expansion phase.
@@ -1693,10 +1745,10 @@ async function addMetadata(){try{const
e=document.styleSheets[0].cssRules;for(le
keys and 32 octets (256 bit) for the initialization vectors.
We divide the resulting keying material "K" into a 256-bit AES
<span>[<a href="#RFC3826" class="xref">RFC3826</a>]</span> key
- and a 256-bit TWOFISH <span>[<a href="#TWOFISH"
class="xref">TWOFISH</a>]</span> key:<a href="#section-4.3-3"
class="pilcrow">¶</a></p>
+ and a 256-bit TWOFISH <span>[<a href="#TWOFISH"
class="xref">TWOFISH</a>]</span> key:<a href="#section-4.3-8"
class="pilcrow">¶</a></p>
<div id="figure_hkdf_keys">
-<figure id="figure-8">
- <div class="artwork art-text alignLeft" id="section-4.3-4.1">
+<figure id="figure-9">
+ <div class="artwork art-text alignLeft" id="section-4.3-9.1">
<pre>
0 8 16 24 32 40 48 56
+-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1712,14 +1764,14 @@ async function addMetadata(){try{const
e=document.styleSheets[0].cssRules;for(le
+-----+-----+-----+-----+-----+-----+-----+-----+
</pre>
</div>
-<figcaption><a href="#figure-8" class="selfRef">Figure
8</a></figcaption></figure>
+<figcaption><a href="#figure-9" class="selfRef">Figure
9</a></figcaption></figure>
</div>
-<p id="section-4.3-5">
+<p id="section-4.3-10">
Similarly, we divide "IV" into a 128-bit initialization vector
- and a 128-bit initialization vector:<a href="#section-4.3-5"
class="pilcrow">¶</a></p>
+ and a 128-bit initialization vector:<a href="#section-4.3-10"
class="pilcrow">¶</a></p>
<div id="figure_hkdf_ivs">
-<figure id="figure-9">
- <div class="artwork art-text alignLeft" id="section-4.3-6.1">
+<figure id="figure-10">
+ <div class="artwork art-text alignLeft" id="section-4.3-11.1">
<pre>
0 8 16 24 32 40 48 56
+-----+-----+-----+-----+-----+-----+-----+-----+
@@ -1731,70 +1783,18 @@ async function addMetadata(){try{const
e=document.styleSheets[0].cssRules;for(le
+-----+-----+-----+-----+-----+-----+-----+-----+
</pre>
</div>
-<figcaption><a href="#figure-9" class="selfRef">Figure
9</a></figcaption></figure>
+<figcaption><a href="#figure-10" class="selfRef">Figure
10</a></figcaption></figure>
</div>
-<p id="section-4.3-7">
+<p id="section-4.3-12">
The keys and IVs are used for a CFB128-AES-256 and
CFB128-TWOFISH-256 chained symmetric cipher. Both ciphers are used in
- Cipher FeedBack (CFB) mode <span>[<a href="#RFC3826"
class="xref">RFC3826</a>]</span>.<a href="#section-4.3-7"
class="pilcrow">¶</a></p>
-<div class="artwork art-text alignLeft" id="section-4.3-8">
+ Cipher FeedBack (CFB) mode <span>[<a href="#RFC3826"
class="xref">RFC3826</a>]</span>.<a href="#section-4.3-12"
class="pilcrow">¶</a></p>
+<div class="artwork art-text alignLeft" id="section-4.3-13">
<pre>
RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV, BDATA))
BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV, RDATA))
- </pre><a href="#section-4.3-8" class="pilcrow">¶</a>
-</div>
-<p id="section-4.3-9">
- The decrypted RDATA has the following format:<a href="#section-4.3-9"
class="pilcrow">¶</a></p>
-<div id="figure_rdata">
-<figure id="figure-10">
- <div class="artwork art-text alignLeft" id="section-4.3-10.1">
-<pre>
- 0 8 16 24 32 40 48 56
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | RR COUNT | EXPIRA- /
- +-----+-----+-----+-----+-----+-----+-----+-----+
- / -TION | DATA SIZE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | TYPE | FLAGS |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA /
- / /
- / |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | EXPIRATION |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA SIZE | TYPE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | FLAGS | DATA /
- +-----+-----+-----+-----+ /
- / +-----------------------/
- / | /
- +-----------------------+ /
- / PADDING /
- / /
- </pre>
-</div>
-<figcaption><a href="#figure-10" class="selfRef">Figure
10</a></figcaption></figure>
+ </pre><a href="#section-4.3-13" class="pilcrow">¶</a>
</div>
-<p id="section-4.3-11">where:<a href="#section-4.3-11"
class="pilcrow">¶</a></p>
-<dl class="dlParallel" id="section-4.3-12">
- <dt id="section-4.3-12.1">RR COUNT</dt>
- <dd id="section-4.3-12.2">
- A 32-bit value containing the number of variable-length resource
- records which are
- following after this field in network byte order.
- The resource record format is defined in <a href="#rrecords"
class="xref">Section 3</a>.<a href="#section-4.3-12.2" class="pilcrow">¶</a>
-</dd>
- <dt id="section-4.3-12.3">PADDING</dt>
- <dd id="section-4.3-12.4">
- The padding MUST contain the value 0 in all octets.
- The padding MUST ensure that the size of the RDATA is a power of
two.
-
- As a special exception, record sets with (only) a PKEY record type
- are never padded. Note that a record set with a PKEY record MUST
NOT contain
- other records.<a href="#section-4.3-12.4" class="pilcrow">¶</a>
-</dd>
- </dl>
</section>
</section>
</div>
diff --git a/draft-schanzen-gns.txt b/draft-schanzen-gns.txt
index 54cd7fb..2c59e28 100644
--- a/draft-schanzen-gns.txt
+++ b/draft-schanzen-gns.txt
@@ -72,13 +72,13 @@ Table of Contents
4.2. Resource records block . . . . . . . . . . . . . . . . . 9
4.3. Block data encryption and decryption . . . . . . . . . . 10
5. Internationalization and Character Encoding . . . . . . . . . 12
- 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13
- 7. Record Resolution . . . . . . . . . . . . . . . . . . . . . . 13
- 8. Namespace Revocation . . . . . . . . . . . . . . . . . . . . 13
- 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12
+ 7. Record Resolution . . . . . . . . . . . . . . . . . . . . . . 12
+ 8. Namespace Revocation . . . . . . . . . . . . . . . . . . . . 12
+ 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10. Test Vectors . . . . . . . . . . . . . . . . . . . . . . . . 13
- 11. Normative References . . . . . . . . . . . . . . . . . . . . 16
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17
+ 11. Normative References . . . . . . . . . . . . . . . . . . . . 15
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction
@@ -525,42 +525,77 @@ Internet-Draft The GNU Name System
July 2019
4.3. Block data encryption and decryption
- A symmetric encryption scheme is used to en-/decrypt the "BDATA"
- field in a GNS record block. The keys are derived from the record
- label and the zone key "zk". Upon receiving a resource records
- block, first the validity of a given "zk_h" MUST be checked by
- computing "h" from "zk" and label and verifying that both are equal.
- This step is mandatory to prevent record spoofing. For decryption of
- the resource records block payload, the key material "K" and
- initialization vector "IV" for the symmetric en-/decryption are
- derived:
+ A symmetric encryption scheme is used to encrypt the resource records
+ set RDATA into the BDATA field of a GNS record block. The wire
+ format of the RDATA looks as follows:
- PRK_k := HKDF-Extract ("gns-aes-ctx-key", zk)
- PRK_iv := HKDF-Extract ("gns-aes-ctx-iv", zk)
- K := HKDF-Expand (PRK_k, label, 512 / 8);
- IV := HKDF-Expand (PRK_iv, label, 256 / 8)
+ 0 8 16 24 32 40 48 56
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | RR COUNT | EXPIRA- /
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ / -TION | DATA SIZE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | TYPE | FLAGS |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA /
+ / /
+ / |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | EXPIRATION |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA SIZE | TYPE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | FLAGS | DATA /
+ +-----+-----+-----+-----+ /
+ / +-----------------------/
+ / | /
+ +-----------------------+ /
+ / PADDING /
+ / /
- HKDF is a hash-based key derivation function as defined in [RFC5869].
- Specifically, HMAC-SHA512 is used for the extraction phase and HMAC-
- SHA256 for the expansion phase. The output keying material is 64
- octets (512 bit) for the symmetric keys and 32 octets (256 bit) for
- the initialization vectors. We divide the resulting keying material
- "K" into a 256-bit AES [RFC3826] key and a 256-bit TWOFISH [TWOFISH]
- key:
+ Figure 8
+Schanzenbach, et al. Expires 24 January 2020 [Page 10]
+
+Internet-Draft The GNU Name System July 2019
+ where:
+ RR COUNT A 32-bit value containing the number of variable-length
+ resource records which are following after this field in network
+ byte order. The resource record format is defined in Section 3.
+ PADDING The padding MUST contain the value 0 in all octets. The
+ padding MUST ensure that the size of the RDATA is a power of two.
+ As a special exception, record sets with (only) a PKEY record type
+ are never padded. Note that a record set with a PKEY record MUST
+ NOT contain other records.
+ Upon receiving a resource records block, first the validity of a
+ given "zk_h" MUST be checked by computing the expected "zk_h" from
+ "zk" and label (as defined in Section 4.1) and verifying that both
+ are equal. This step is mandatory to prevent record spoofing.
+ The symmetric keys and initialization vectors are derived from the
+ record label and the zone key "zk". For decryption of the resource
+ records block payload, the key material "K" and initialization vector
+ "IV" for the symmetric en-/decryption are derived as follows:
-Schanzenbach, et al. Expires 24 January 2020 [Page 10]
-
-Internet-Draft The GNU Name System July 2019
+ PRK_k := HKDF-Extract ("gns-aes-ctx-key", zk)
+ PRK_iv := HKDF-Extract ("gns-aes-ctx-iv", zk)
+ K := HKDF-Expand (PRK_k, label, 512 / 8);
+ IV := HKDF-Expand (PRK_iv, label, 256 / 8)
+ HKDF is a hash-based key derivation function as defined in [RFC5869].
+ Specifically, HMAC-SHA512 is used for the extraction phase and HMAC-
+ SHA256 for the expansion phase. The output keying material is 64
+ octets (512 bit) for the symmetric keys and 32 octets (256 bit) for
+ the initialization vectors. We divide the resulting keying material
+ "K" into a 256-bit AES [RFC3826] key and a 256-bit TWOFISH [TWOFISH]
+ key:
0 8 16 24 32 40 48 56
+-----+-----+-----+-----+-----+-----+-----+-----+
@@ -575,7 +610,15 @@ Internet-Draft The GNU Name System
July 2019
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
- Figure 8
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 11]
+
+Internet-Draft The GNU Name System July 2019
+
+
+ Figure 9
Similarly, we divide "IV" into a 128-bit initialization vector and a
128-bit initialization vector:
@@ -589,7 +632,7 @@ Internet-Draft The GNU Name System
July 2019
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
- Figure 9
+ Figure 10
The keys and IVs are used for a CFB128-AES-256 and CFB128-TWOFISH-256
chained symmetric cipher. Both ciphers are used in Cipher FeedBack
@@ -598,64 +641,6 @@ Internet-Draft The GNU Name System
July 2019
RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV,
BDATA))
BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV,
RDATA))
- The decrypted RDATA has the following format:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 11]
-
-Internet-Draft The GNU Name System July 2019
-
-
- 0 8 16 24 32 40 48 56
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | RR COUNT | EXPIRA- /
- +-----+-----+-----+-----+-----+-----+-----+-----+
- / -TION | DATA SIZE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | TYPE | FLAGS |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA /
- / /
- / |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | EXPIRATION |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA SIZE | TYPE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | FLAGS | DATA /
- +-----+-----+-----+-----+ /
- / +-----------------------/
- / | /
- +-----------------------+ /
- / PADDING /
- / /
-
- Figure 10
-
- where:
-
- RR COUNT A 32-bit value containing the number of variable-length
- resource records which are following after this field in network
- byte order. The resource record format is defined in Section 3.
-
- PADDING The padding MUST contain the value 0 in all octets. The
- padding MUST ensure that the size of the RDATA is a power of two.
- As a special exception, record sets with (only) a PKEY record type
- are never padded. Note that a record set with a PKEY record MUST
- NOT contain other records.
-
5. Internationalization and Character Encoding
All labels in GNS are encoded in UTF-8 [RFC3629]. This does not
@@ -663,17 +648,6 @@ Internet-Draft The GNU Name System
July 2019
which are internationalized through the IDNA specifications
[RFC5890].
-
-
-
-
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 12]
-
-Internet-Draft The GNU Name System July 2019
-
-
6. Security Considerations
TODO
@@ -690,6 +664,16 @@ Internet-Draft The GNU Name System
July 2019
This will be fun
+
+
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 12]
+
+Internet-Draft The GNU Name System July 2019
+
+
10. Test Vectors
The following represents a test vector for a record of type MX with a
@@ -722,14 +706,6 @@ Internet-Draft The GNU Name System
July 2019
d_h :=
01fb61f482c17633
77611c4c2509e0f3
-
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 13]
-
-Internet-Draft The GNU Name System July 2019
-
-
81b0e7e4405c10bd
0017c802f7d32e18
@@ -746,6 +722,14 @@ Internet-Draft The GNU Name System
July 2019
9bf1b49df1e120a3
20ecc9dffb68416f
11729ad878ad3bdf
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 13]
+
+Internet-Draft The GNU Name System July 2019
+
+
d0b4db2626b620d7
8e0604e4393c66a3
@@ -778,14 +762,6 @@ Internet-Draft The GNU Name System
July 2019
636f6d0000000000 com | \0 | Followed by
0000000000000000 24 bytes of padding to 2^6
0000000000000000
-
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 14]
-
-Internet-Draft The GNU Name System July 2019
-
-
00000000
@@ -802,6 +778,14 @@ Internet-Draft The GNU Name System
July 2019
SIGNATURE :=
055cb070e05fe6de r
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 14]
+
+Internet-Draft The GNU Name System July 2019
+
+
ad694a50e5b4dedd
b9fdcbdbae004f65
afc99ba9c5a3bb54___________
@@ -835,13 +819,6 @@ Internet-Draft The GNU Name System
July 2019
001fd19a6406a721
713f0a0d
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 15]
-
-Internet-Draft The GNU Name System July 2019
-
-
11. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and facilities",
@@ -857,6 +834,14 @@ Internet-Draft The GNU Name System
July 2019
(IDNA)", RFC 3492, DOI 10.17487/RFC3492, March 2003,
<https://www.rfc-editor.org/info/rfc3492>.
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 15]
+
+Internet-Draft The GNU Name System July 2019
+
+
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, DOI 10.17487/RFC3629, November
2003, <https://www.rfc-editor.org/info/rfc3629>.
@@ -890,14 +875,6 @@ Internet-Draft The GNU Name System
July 2019
for Security", RFC 7748, DOI 10.17487/RFC7748, January
2016, <https://www.rfc-editor.org/info/rfc7748>.
-
-
-
-Schanzenbach, et al. Expires 24 January 2020 [Page 16]
-
-Internet-Draft The GNU Name System July 2019
-
-
[RFC8032] Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
Signature Algorithm (EdDSA)", RFC 8032,
DOI 10.17487/RFC8032, January 2017,
@@ -912,6 +889,15 @@ Authors' Addresses
GNUnet e.V.
Boltzmannstrasse 3
85748 Garching
+
+
+
+
+Schanzenbach, et al. Expires 24 January 2020 [Page 16]
+
+Internet-Draft The GNU Name System July 2019
+
+
Germany
Email: address@hidden
@@ -942,6 +928,20 @@ Authors' Addresses
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index 5dbc2cb..c4f12df 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -548,16 +548,68 @@
<section numbered="true" toc="default">
<name>Block data encryption and decryption</name>
<t>
- A symmetric encryption scheme is used to en-/decrypt the "BDATA" field
- in a GNS record block. The keys are derived from the record label
- and the zone key "zk".
- Upon receiving a resource records block, first the validity of a given
- "zk_h" MUST be checked by computing "h" from "zk" and label and
- verifying that both are equal. This step is mandatory to prevent
record
- spoofing.
- For decryption of the resource records block payload,
- the key material "K" and initialization vector "IV" for the
- symmetric en-/decryption are derived:
+ A symmetric encryption scheme is used to encrypt the resource records
+ set RDATA into the BDATA field of a GNS record block.
+ The wire format of the RDATA looks as follows:
+ </t>
+ <figure anchor="figure_rdata">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+ 0 8 16 24 32 40 48 56
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | RR COUNT | EXPIRA- /
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ / -TION | DATA SIZE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | TYPE | FLAGS |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA /
+ / /
+ / |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | EXPIRATION |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | DATA SIZE | TYPE |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | FLAGS | DATA /
+ +-----+-----+-----+-----+ /
+ / +-----------------------/
+ / | /
+ +-----------------------+ /
+ / PADDING /
+ / /
+ ]]></artwork>
+ <!-- <postamble>which is a very simple example.</postamble>-->
+ </figure>
+ <t>where:</t>
+ <dl>
+ <dt>RR COUNT</dt>
+ <dd>
+ A 32-bit value containing the number of variable-length resource
+ records which are
+ following after this field in network byte order.
+ The resource record format is defined in <xref target="rrecords" />.
+ </dd>
+ <dt>PADDING</dt>
+ <dd>
+ The padding MUST contain the value 0 in all octets.
+ The padding MUST ensure that the size of the RDATA is a power of
two.
+ As a special exception, record sets with (only) a PKEY record type
+ are never padded. Note that a record set with a PKEY record MUST NOT
+ contain other records.
+ </dd>
+
+ </dl>
+ <t>
+ Upon receiving a resource records block, first the validity of a
+ given "zk_h" MUST be checked by computing the expected "zk_h" from
"zk"
+ and label (as defined in <xref target="blinding" />) and verifying
that
+ both are equal. This step is mandatory to prevent record spoofing.
+ </t>
+ <t>
+ The symmetric keys and initialization vectors are derived from the
+ record label and the zone key "zk". For decryption of the resource
+ records block payload, the key material "K" and initialization vector
+ "IV" for the symmetric en-/decryption are derived as follows:
</t>
<!-- OLD VERSION
PRK_kiv := HKDF-Extract (zk, label)
@@ -624,57 +676,6 @@
RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV, BDATA))
BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV, RDATA))
]]></artwork>
- <t>
- The decrypted RDATA has the following format:
- </t>
- <figure anchor="figure_rdata">
- <artwork name="" type="" align="left" alt=""><![CDATA[
- 0 8 16 24 32 40 48 56
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | RR COUNT | EXPIRA- /
- +-----+-----+-----+-----+-----+-----+-----+-----+
- / -TION | DATA SIZE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | TYPE | FLAGS |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA /
- / /
- / |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | EXPIRATION |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | DATA SIZE | TYPE |
- +-----+-----+-----+-----+-----+-----+-----+-----+
- | FLAGS | DATA /
- +-----+-----+-----+-----+ /
- / +-----------------------/
- / | /
- +-----------------------+ /
- / PADDING /
- / /
- ]]></artwork>
- <!-- <postamble>which is a very simple example.</postamble>-->
- </figure>
- <t>where:</t>
- <dl>
- <dt>RR COUNT</dt>
- <dd>
- A 32-bit value containing the number of variable-length resource
- records which are
- following after this field in network byte order.
- The resource record format is defined in <xref target="rrecords" />.
- </dd>
- <dt>PADDING</dt>
- <dd>
- The padding MUST contain the value 0 in all octets.
- The padding MUST ensure that the size of the RDATA is a power of
two.
-
- As a special exception, record sets with (only) a PKEY record type
- are never padded. Note that a record set with a PKEY record MUST
NOT contain
- other records.
- </dd>
-
- </dl>
</section>
</section>
<section anchor="encoding" numbered="true" toc="default">
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [lsd0001] branch master updated: change wording,
gnunet <=