Commit Graph

3480 Commits

Author SHA1 Message Date
David Goulet
a1cd058386 Merge branch 'tor-gitlab/mr/133' 2023-05-24 14:40:30 -04:00
David Goulet
9c55db437e Merge branch 'tor-gitlab/mr/134' 2023-05-24 14:38:04 -04:00
Nick Mathewson
97c0c12f47 Describe identity-binding defense for intro-point POW 2023-05-24 14:38:00 -04:00
Micah Elizabeth Scott
a3c88e156f proposal 327: Editing pass to align the spec with our implementation
This makes numerous small changes, but also adds some larger blocks of
explanation that are written based on the finalized design.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-05-24 14:38:00 -04:00
zocker1999net
0d91005ea6 Add info that onion v3 URLs use SHA3-256 2023-05-23 21:31:51 +00:00
Alexander Færøy
2498f2081a Merge remote-tracking branch 'gitlab/mr/129' 2023-05-23 14:36:18 +00:00
Alexander Færøy
74788eb5fe Merge remote-tracking branch 'gitlab/mr/128' 2023-05-23 14:33:57 +00:00
Alexander Færøy
14a811eec9 Merge remote-tracking branch 'gitlab/mr/127' 2023-05-23 14:33:47 +00:00
Nick Mathewson
eeb208d577 rend-spec: Add a set of test vectors for hs-ntor.
These were generated using a patched Tor with extra logging info.
I've used them to validate (and find bugs in) the arti hs-ntor
implementation. (See arti!1189.)
2023-05-18 08:57:34 -04:00
David Goulet
402647ea1b Proposal 319 and 325 superseded by 340
Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-05-10 12:50:12 -04:00
David Goulet
a14e2981ef prop343: Initial import
CAA Extensions for the Tor Rendezvous Specification.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2023-05-08 15:14:58 -04:00
Georg Koppen
3169512d71
Fix typo
Closes: #199.
2023-05-08 13:29:00 +00:00
Emil Engler
4384e30ca2
tor-spec: define the EXP(a, b) function
This commit adds an explanation of the meaning behind the EXP(a, b)
function, primarily targeted for readers without a deep understanding of
the cryptography.

Fixes #195
2023-05-05 14:10:11 +02:00
Emil Engler
9c3a2d219a
tor-spec: remove the redundant MULT function
This commit removes the redundant MULT(a, b) function from the ntor
section, as the function is defined but never used.
2023-05-05 14:06:42 +02:00
Alexander Færøy
142dda7257 Merge remote-tracking branch 'mikeperry/conflux_mr' 2023-04-13 18:29:40 +00:00
Mike Perry
8115fc7d12 Update Prop#329 for conflux merge request. 2023-04-06 16:01:55 +00:00
Nick Mathewson
70ca4e9dcb rend-spec: clarify how dir info may be used to confirm linkspecs
Specifically, you can look at the directory to see if somebody is
lying about a relay (mismatched IDs, etc), but you can't modify
the list of linkspecs.
2023-03-22 14:31:55 -04:00
Nick Mathewson
0b19f2114b rend-spec: Clarify that IPv4, RSA-ID and Ed25519-ID are mandatory for now.
We can make these non-mandatory in the future if we want, using a
consensus flag.
2023-03-22 14:31:55 -04:00
Nick Mathewson
1aa3a8316a rend-spec: Clarify that linkspec lists should be used verbatim.
This resolved "problem 2" from torspec#193.
2023-03-22 14:31:55 -04:00
Nick Mathewson
33308845ce {rend,tor}-spec: clarify linkspec ID multiplicity issues
We were previously a bit unclear on how to handle multiple linkspecs
of type ed25519, and our spec didn't actually permit Tor's current
behavior.

Now we say that both Ed25519 ID and Legacy ID linkspecs MUST appear
at most once in a list of linkspecs, and that parties SHOULD
enforce this.

This is "problem 1" on torspec#193.
2023-03-22 14:24:33 -04:00
Nick Mathewson
71ed0ed831 Merge remote-tracking branch 'tor-gitlab/mr/119' 2023-03-07 13:55:00 -05:00
David Goulet
99a5803fa7 Merge branch 'tor-gitlab/mr/118' 2023-03-07 08:48:05 -05:00
Ian Jackson
9dee2f8efa State that "base32" always means RFC4648, unpadded.
I found src/lib/encoding/binascii.[ch] in the C Tor codebase.
It has
  #define BASE32_CHARS "abcdefghijklmnopqrstuvwxyz234567"

The function "base32_encode" says "Implements base32 encoding as in
RFC 4648.".  Now, that RFC says that it's supposed to be padded unless
explicitly stated otherwise.  However, the padding is pointless and
neither our "base32_encode" nor our "base32_decode" seem to implemnet
it.

I hope that we are using the same base32 encoding everywhere, but have
not checked.
2023-03-07 13:25:15 +00:00
Ian Jackson
85c2b704ac rend-spec-v3 ESTABLISH_INTRO: Actually name which key AUTH_KEY is
Really, AUTH_KEY in the display ought to be KP_IPT_SID, to get rid of
a layer of terminological indirection.
2023-03-01 15:11:57 +00:00
Nick Mathewson
ba581c95bf Clarify that ESTABLISH_INTRO signature doesn't cover SIG_LEN.
The previous wording implied that SIG_LEN was also signed, which
it isn't.
2023-03-01 07:42:22 -05:00
Roger Dingledine
29fbf57f79 a few more grammar / whitespace fixes 2023-02-08 13:20:01 -05:00
Nick Mathewson
e8aea86688 Merge remote-tracking branch 'tor-gitlab/mr/113' 2023-02-08 11:40:11 -05:00
Nick Mathewson
7838586895 Refer to N_hs_desc_enc in description of encrypted-cookie 2023-02-08 11:39:37 -05:00
Nick Mathewson
4234d93259 Merge remote-tracking branches 'tor-gitlab/mr/114' and 'tor-gitlab/mr/115' 2023-02-08 11:37:35 -05:00
gabi-250
b7aeadeec6 Grammar fix 2023-02-08 16:35:02 +00:00
Ian Jackson
71d7e7184d Rename hs_index and hsdir_index to hs_{service,relay}_index
These new names are the ones used in arti's hsdir_ring.rs and make a
lot more sense than calling one of them the "directory" index and
the other just the "index".

In C Tor these are calculated by functions called
  hs_build_hs_index
  hs_build_hsdir_index

That might be a reason *not* to accept this change.  Or it might be a
reason to change the C Tor code.

If we don't change the names in the spec the Arti function names
should change.
2023-02-08 14:49:30 +00:00
Nick Mathewson
0b1289fd26 Remove mention of "password" auth in rend-spec.
It was never implemented, is not specified, and neither dgoulet nor
I can quite remember how it was supposed to work.
2023-02-07 15:10:54 -05:00
Nick Mathewson
2e8606c1bb Fix name of KP_hs_blind_id
By our current logic, it needs to have `hs` in it.
2023-02-07 15:10:15 -05:00
Nick Mathewson
c51fa4c53e Remove K_desc_enc.
It has no independent existence outside of the encryption algorithm
of 2.5.3.
2023-02-07 15:08:27 -05:00
Nick Mathewson
d44927c39e Name and clarify a few more objects. 2023-02-07 15:07:57 -05:00
Nick Mathewson
da8ecedde5 Rename three keys.
These names are slightly shorter and a bit more descriptive IMO, and
now (when they are still fresh) is the best time to rename these
keys.

`hs_intro_tid` becomes `hs_ipt_sid`: It is a _session identifier_
key used with an _introduction point_.  Using `ipt` here emphasizes
that it is not part of the introduction _handshake_.

`hs_intro_ntor` becomes `hss_ntor`. The extra "s" means it is owned
by the service. Renaming "intro" here removes the implication that
it is held by or used by the introduction point.

`onion_ntor` becomes `ntor`: There is no such thing as an ntor key
that is not an onion key.
2023-02-07 14:51:08 -05:00
Nick Mathewson
46356d252f Merge branch 'hs-htype' into 'main'
Fix terminology for handshake type

See merge request tpo/core/torspec!112
2023-02-06 21:01:00 +00:00
Nick Mathewson
e4596ecced Merge branch 'hs-desc-ephem' into 'main'
Call the key in desc-auth-ephemeral-key, KP_hs_desc_ephem

See merge request tpo/core/torspec!111
2023-02-06 21:00:24 +00:00
Ian Jackson
28cc4dc16b Mention, hopelessly, the undocumented "password" auth type 2023-02-06 15:08:00 +00:00
Ian Jackson
dc822431f3 Properly define "authentication types" in the relevant section
Use the phrase which is used elsehwer, and enumerate them again since
this is where one would expect to find that enumeration.
2023-02-06 15:07:10 +00:00
Ian Jackson
51fd440a19 Talk of "defined" rather than "recognized" auth types
We're not the code, we're the spec.  We can define things, not
recognise them.
2023-02-06 15:06:41 +00:00
Ian Jackson
ecd718e116 Add ed25519, the name of the auth type, to the heading 2023-02-06 15:04:46 +00:00
Ian Jackson
39513369c7 Put HTYPE (the name for this thing) in the title for the table 2023-02-06 14:52:47 +00:00
Ian Jackson
431f6152cf Fix terminology for handshake type
The phrase "format number" is not defined anywhere.  I think it means
an HTYPE value.
2023-02-06 14:51:45 +00:00
David Goulet
103c7720c0 Merge branch 'tor-gitlab/mr/102' 2023-02-06 09:03:51 -05:00
Ian Jackson
7b3d7a40a0 Use proper names for KP_hsc_desc_enc 2023-02-06 12:51:41 +00:00
Ian Jackson
5c6b282e57 Call the key in desc-auth-ephemeral-key, KP_hs_desc_ephem
Proposed by @nickm in
  https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/999/diffs#50f9790ab3f0a65f7ac3e4f413c84f51fae1f855_0_26

(I think the spec is not 100% clear that hs_y and hs_Y are *this* key,
rather than some other possible ephemeral keypair the HS might have,
so please would the reviewer check that this is actually true.)
2023-02-06 12:25:55 +00:00
Nick Mathewson
0fc6d07d88 More verbage in prop340 about the stream_id transition.
Specifically:

  * Mention this change in the introduction.
  * Add a section explaining how to change tor-spec
    and related proposals.
2023-02-03 13:02:52 -05:00
Nick Mathewson
ca400dc9f8 rend-spec: Document how the cross-certificates (don't) work.
(See text for more info!)
2023-01-31 11:18:06 -05:00
Nick Mathewson
5509981ced rend-spec: Clarify that enc-key and auth-key may appear multiple times.
The spec says "exactly once", but that only refers to the ntor
variant.
2023-01-31 10:57:34 -05:00