diff options
Diffstat (limited to 'rs_review_202204.txt')
-rw-r--r-- | rs_review_202204.txt | 69 |
1 files changed, 65 insertions, 4 deletions
diff --git a/rs_review_202204.txt b/rs_review_202204.txt index bd5c782..419dc0e 100644 --- a/rs_review_202204.txt +++ b/rs_review_202204.txt | |||
@@ -10,42 +10,91 @@ Overall, I think the use of 2119 language isn't right (e.g., there's no mandator | |||
10 | 10 | ||
11 | Some people might be offended by "limiting" IANA registrations (e.g., Sec 5.3.3's PROTO). Maybe you need to have story here and explain that is not the intent? Or not. | 11 | Some people might be offended by "limiting" IANA registrations (e.g., Sec 5.3.3's PROTO). Maybe you need to have story here and explain that is not the intent? Or not. |
12 | 12 | ||
13 | ======= Clarified as fixed bit fields by IANA, where applicable. | ||
14 | |||
13 | This seems incomplete, since an implementation needs to be able to talk to remote storage (i.e., the GET in sec 7ff), and that is not defined. Does the storage need to be globally consistent? What if two views diverge? Suggest you discuss that. Somewhat addressed in section 9.5, should be joined with the other global storage sections in my view. Okay if you disagree. | 15 | This seems incomplete, since an implementation needs to be able to talk to remote storage (i.e., the GET in sec 7ff), and that is not defined. Does the storage need to be globally consistent? What if two views diverge? Suggest you discuss that. Somewhat addressed in section 9.5, should be joined with the other global storage sections in my view. Okay if you disagree. |
14 | 16 | ||
17 | ======= TODO address this somehow? | ||
18 | |||
15 | Some minor items, or nits, follow. None of them, in my view, are intended to block publication. | 19 | Some minor items, or nits, follow. None of them, in my view, are intended to block publication. |
16 | 20 | ||
17 | Abstract, should it mention SDSI? | 21 | Abstract, should it mention SDSI? |
18 | 22 | ||
19 | Sec 1, the first two paragraphs are going to disturb some folks in the IETF DNS community. Has anyone in DNS, in particular DNSSEC, looked at this? I think the "in practice it relies on" phrase is wrong. The term "petname" should have a definition, even if something parenthetical like "petname (user's personal name for something)." The paragraph containing "In DNS terminology," is a *very nice* one. | 23 | Sec 1, the first two paragraphs are going to disturb some folks in the IETF DNS community. Has anyone in DNS, in particular DNSSEC, looked at this? I think the "in practice it relies on" phrase is wrong. The term "petname" should have a definition, even if something parenthetical like "petname (user's personal name for something)." The paragraph containing "In DNS terminology," is a *very nice* one. |
20 | 24 | ||
21 | Sec 2, the items seem in arbitrary order. Consider alphabetical or explaining the ordering. Each definition might be more clear if the repetition of the term were omitted as in: | 25 | Sec 2, the items seem in arbitrary order. Consider alphabetical or explaining the ordering. |
26 | |||
27 | ====== Alphabetical ordering. | ||
28 | |||
29 | Each definition might be more clear if the repetition of the term were omitted as in: | ||
22 | Application A component which uses a GNS implementation to ... | 30 | Application A component which uses a GNS implementation to ... |
23 | In the "Name" definition, do you mean "applications MAY *require* that ... "? Using "Zone type" as the term for cipher and encoding seemed strange to me, why not "Zone Representation" or something shorter? One or two examples before the terms, with text identifying the parts in the definition, would be helpful. | ||
24 | 31 | ||
25 | Sec 3, "cryptographically secured zones" is redundant, aren't all zones cryptographically secured? Last sentence of first paragraph repeats the definition we just read. Second para "A zone can be populated by its owner with ..." A clarification that the distributed storage isn't required by the protocol would be useful. The text introducing figure 2 makes me think it's going to show all the flows for a recursive resolution, and it is rather a high-level view. | 32 | ===== Updated wording. |
33 | |||
34 | In the "Name" definition, do you mean "applications MAY *require* that ... "? | ||
35 | |||
36 | ===== I think we could also formulate it like that. But that would be a normative statement for the application | ||
37 | as opposed to a normative statement what the GNS impl. should expect. | ||
38 | |||
39 | Using "Zone type" as the term for cipher and encoding seemed strange to me, why not "Zone Representation" or something shorter? One or two examples before the terms, with text identifying the parts in the definition, would be helpful. | ||
40 | |||
41 | ===== Unclear. | ||
42 | |||
43 | Sec 3, "cryptographically secured zones" is redundant, aren't all zones cryptographically secured? | ||
44 | |||
45 | ===== Fixed | ||
46 | |||
47 | Last sentence of first paragraph repeats the definition we just read. | ||
48 | |||
49 | ===== I don't think so. | ||
50 | |||
51 | Second para "A zone can be populated by its owner with ..." A clarification that the distributed storage isn't required by the protocol would be useful. | ||
52 | |||
53 | ===== Remove "distributed". The storage is required. | ||
26 | 54 | ||
27 | Sec 4, which user creates and manages zones? The Zone admin? The end-user? The forward ref to Section 5.1 should be before the list of algorithms in my opinion. | 55 | The text introducing figure 2 makes me think it's going to show all the flows for a recursive resolution, and it is rather a high-level view. |
56 | |||
57 | ===== That is what the figure description sais and I think this is enough for an "Overview". | ||
58 | |||
59 | Sec 4, which user creates and manages zones? The Zone admin? The end-user? | ||
60 | |||
61 | ==== TODO | ||
62 | |||
63 | The forward ref to Section 5.1 should be before the list of algorithms in my opinion. | ||
64 | |||
65 | ==== TODO. After first review I disagree as it refers to the functions which are introduced above. | ||
28 | 66 | ||
29 | Sec 4.1, maybe say "||" is the concatenation operator and that "[a..b]" is the semi-closed range from A to B-1 | 67 | Sec 4.1, maybe say "||" is the concatenation operator and that "[a..b]" is the semi-closed range from A to B-1 |
30 | 68 | ||
31 | Sec 4.2, "strictly monotonically increasing order" I think monotonically is wrong. | 69 | Sec 4.2, "strictly monotonically increasing order" I think monotonically is wrong. |
32 | 70 | ||
71 | ====== I am 95% sure that monotonically is correct when we talk about a function. Not sure about order. | ||
72 | |||
33 | Sec 5, nice to block of IANA numbers for interop. Are timestamps in GNS always 64bit microsec since 1/1/1970? Maybe add a definition or something at the top? | 73 | Sec 5, nice to block of IANA numbers for interop. Are timestamps in GNS always 64bit microsec since 1/1/1970? Maybe add a definition or something at the top? |
34 | 74 | ||
75 | ===== Subjectively I like to keep normative implementation details with the fields. | ||
76 | |||
35 | Sec 5.1, period missing in last line. | 77 | Sec 5.1, period missing in last line. |
36 | 78 | ||
79 | ======= Fixed. | ||
80 | |||
37 | Sec 5.1.1, the crypto heart starts to appear. ;) This all looks okay to me, and follows current practice. | 81 | Sec 5.1.1, the crypto heart starts to appear. ;) This all looks okay to me, and follows current practice. |
38 | 82 | ||
39 | Sec 5.1.2, "highest 32 bytes" maybe "top-most"? Nit. SignDerived is clever. Consider asking CFRG to review the crypto in Sec 5. | 83 | Sec 5.1.2, "highest 32 bytes" maybe "top-most"? Nit. SignDerived is clever. Consider asking CFRG to review the crypto in Sec 5. |
40 | 84 | ||
41 | Sec 5.2.1+5.2.2, have you thought of allowing multiple REDIRECT records to achieve some kind of load-balancing or other? | 85 | Sec 5.2.1+5.2.2, have you thought of allowing multiple REDIRECT records to achieve some kind of load-balancing or other? |
42 | 86 | ||
87 | ======= Q: Maybe we want this? CNAME did not allow this, but it seems to be used in practice occasionally https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_07.htm#dns4-CHP-10-SECT-7.1 | ||
88 | |||
43 | Sec 5.3.1, I would think TLS SNI value is also common for LEHO data. | 89 | Sec 5.3.1, I would think TLS SNI value is also common for LEHO data. |
44 | 90 | ||
45 | Sec 5.3.3, not unlike the new SVCB RR type? | 91 | Sec 5.3.3, not unlike the new SVCB RR type? |
46 | 92 | ||
47 | Sec 6, is this whole storage strictly necessary for interop? You could split it off into a separate document. There's not enough here to implement the storage. What happens to resolution if the GET() fails? I assume that's discussed. | 93 | Sec 6, is this whole storage strictly necessary for interop? You could split it off into a separate document. There's not enough here to implement the storage. What happens to resolution if the GET() fails? I assume that's discussed. |
48 | 94 | ||
95 | ======= FIXME: We may want to consider renaming Section 6 and/or move it into a subsection of Section 5 as we do not really define the storage here. | ||
96 | ======= Record Wire Format / Record Encoding | ||
97 | |||
49 | Sec 7, the application filters record sets. Oh, that is *VERY* interesting. And that picture is starting to look familiar. Third time? | 98 | Sec 7, the application filters record sets. Oh, that is *VERY* interesting. And that picture is starting to look familiar. Third time? |
50 | 99 | ||
51 | Sec 7.1+7.2+7.3 very nice, very clear, I could implement this (modulo the storage aspect). | 100 | Sec 7.1+7.2+7.3 very nice, very clear, I could implement this (modulo the storage aspect). |
@@ -54,10 +103,22 @@ Sec 9.3 seems very important. Somewhere up near the front you should forward-li | |||
54 | 103 | ||
55 | Sec 9.4, it's difficult because it requires law enforcement, etc., to get the private key? Is that really so hard? https://xkcd.com/538/ | 104 | Sec 9.4, it's difficult because it requires law enforcement, etc., to get the private key? Is that really so hard? https://xkcd.com/538/ |
56 | 105 | ||
106 | ==== No, because of the user-centric design for delegations. TODO: Clarify again in text? | ||
107 | Because in GNS a zone does not necessarily have a single/unique parent zone. | ||
108 | The top-level domains are not enumerable. | ||
109 | The as the root zone is defined locally it is not enumerable. | ||
110 | |||
57 | Sec 9.5, "offline signing of records" not quite sure, maybe a better word, but I cannot think of one. | 111 | Sec 9.5, "offline signing of records" not quite sure, maybe a better word, but I cannot think of one. |
58 | 112 | ||
59 | Sec 9.6, this belongs with Sec 6 I think. Should the DHT be part of the zone type? | 113 | Sec 9.6, this belongs with Sec 6 I think. Should the DHT be part of the zone type? |
60 | 114 | ||
115 | ==== That is an interesting question! | ||
116 | ==== Introduce STORAGE record which defined the storage type. "Default": GNUnet. | ||
117 | ==== Storage: Typenum (GANA) + Metadata e.g. 3294 (REST) + "https://example.com". OR 0 => R5N/GNUnet w/o metadata | ||
118 | ==== Or rather not? | ||
119 | |||
61 | Sec 9.7 is good. | 120 | Sec 9.7 is good. |
62 | 121 | ||
63 | Sec 12, last sentence of paragraph 1. "given that they are built on top of the same underlying DHT storage." Does that mean *any* implementation should interoperate? Does an implementation *have to use* the DHT storage? | 122 | Sec 12, last sentence of paragraph 1. "given that they are built on top of the same underlying DHT storage." Does that mean *any* implementation should interoperate? Does an implementation *have to use* the DHT storage? |
123 | |||
124 | ===== Fixed. Only If. | ||