5 ms·
OK, I'm being picky, I know. But the .onion hostname has no relation to DNS. It's just the hash of the site's private key, truncated to 16 characters.
by mirimir 8y ago
OK, I'm being picky, I know. But the .onion hostname has no relation to DNS. It's just the hash of the site's private key, truncated to 16 characters.
- sdwisely 8y agoAbsolutely fine to be! I actually gave it a quick thought that I was curious how the hostnames were assigned but posted right before bed.
- mirimir 8y agoHey :) Many would love having DNS for .onion addresses. And there's been much talk of a .onion domain.
- kodablah 8y agoTo be more picky, it's the SHA-1 hash of the public key, truncated to 10 bytes, then base 32'd which makes 16 chars. That's only for v2, v3 is a bit different.
- mirimir 8y agoDamn, thanks :) I'd forgotten that :( And yes, v3 is a huge space. That is, several orders of magnitude larger than the IPv6 space. Which is itself humongous. Edit: Oops. Got that very wrong. Onion v3 is orders of magnitude greater than IPv6 /64. But orders of magnitude less than IPv6 overall. It's like this, I think. onion v2: ~1.84×10^19 [16^16] IPv6 /64: ~1.84×10^19 (which is why OnionCat works) onion v3: ~9.35×10^27 [56^16] all IPv6: ~3.40×10^38
- kodablah 8y agoFor anyone curious, v3 is the 32-byte ed25519 pub key, then the first two bytes of the SHA3-256 hash of the key (w/ prepended fixed string and one byte appended), then one more const byte, and then all of those 35 bytes are base 32'd to make 56 chars. Some Go code to illustrate: https://github.com/cretz/bine/blob/f33268f0843a1b2b131a4cacf285a7d0a3e138ba/torutil/key.go#L57 https://github.com/cretz/bine/blob/f33268f0843a1b2b131a4cacf.... One benefit being that the entire pub key is right there in the hostname.