zzz.i2p.xyz

Development discussions
Unique local address per-client « Big Topics, Ideas, Proposals and Discussion « I2P Development
 
Wed, 02 Apr 2014, 04:51pm #1
zzz
Administrator
Zzz

https://blog.torproject.org/blog/tor-weekly-new...

https://lists.torproject.org/pipermail/tor-dev/...

e.g. 127.x.y.z where x,y,z are first 3 bytes of client's hash.

Should be easy.

Wed, 02 Apr 2014, 05:41pm #2
zzz
Administrator
Zzz

Yes easy. I have this working.

Sat, 05 Apr 2014, 03:22pm #3
zzz
Administrator
Zzz

in 0.9.12-2, disabled by default, enable on i2ptunnel edit page.

Restrictions: Server must be at a loopback address, IPv4 or IPv6. IPv6 local address will be fdxx:xxxx:... (untested). Non-SSL only.

Last edited: Sun, 06 Apr 2014, 10:02pm by zzz

Sat, 30 Aug 2014, 06:18pm #4
hghoster
Contributor

Could you explain how it works? Is this IP temporary or static for each router? How frequently its change? At which time? Is it possible to switch it manually and how?

Sat, 30 Aug 2014, 07:36pm #5
zzz
Administrator
Zzz

iirc we just take the first three bytes of the destination xyz and make the source address 127.x.y.z

It's a constant mapping, not random, not changeable.

Sun, 31 Aug 2014, 06:44pm #6
Glavred
Lurker

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone, hi zzz. I'm CEO at the HiddenGate project. We're having a discussion about IPs in I2P on our forum and I want to move it here, so zzz would know what we think about it and give us some comments.
My point is as follows: IPs in I2P are harmful for both anonymity and the network itself. Depending on cleverness of users, it may be more harmful for one of these things. Explanation of this point requires some technical details, which I might misunderstand. If I am wrong somewhere, please correct me.
The simplest goes first. It's written above that IPs are "127.x.y.z where x,y,z are first 3 bytes of client's hash". Putting aside that "client's hash" term, which is not really clear for me, we can tell that namespace 127.x1.x2.x3 contains only 256^3 positions, while usual x1.x2.x3.x4 contains 256^4 positions. Along with that, x1-x3 in I2P are parts of "client's hash", consequently they are not unique. Taking the two arguments into account, we can conclude that the situation when several users have the same IP is possible. I think it is obvious that this might result into a number of types of unpleasant situations, like when you are banned for someone else's deeds, not to mention possible security issues.
Next, the most important thing. When I cannot be distinguished from other users and even from myself, I feel anonymous. With IPs I have a number, I am not anonymous, I am identifiable. People do like anonymity, the talk feels comfortable when we can't even tell how many of us are here. I2P was the last place where you could live without identity. And now it's ruined. Of course, you can say "Just turn this feature off and live as you like!", but the possibility is scary by itself. What if a have an eepsite where people post something not approved by law? For example, here in Russia it is prohibited to lie in the Internet (only on well-attended web-sites) or talk offensively about government. What if one day people in uniform knock in my door and instead of simply closing my eepsite and arresting me they make me collect information about my users in order to arrest them? This is really scary.
The last thing, about clever users. If "client's hash" is a router unique ID, it means that IP can be changed by changing this ID, which can be done by removing some files and repeating the procedure of initial launch. After doing this, you will have to wait some time while your router gets integrated into the network again. This preserves anonymity but lowers average integration. With all I wrote in the previous paragraph, I already want to write a plugin to do it by schedule, like once a day. This is how IPs may be harmful for the network instead of harming anonymity.

Again, please correct me if I misunderstand something. I write this not because I am angry, I'm not. I write this because I'm concerned and willing to cooperate for the sake of I2P users, me included.

Here is my public key beneath the text. hghoster may confirm my identity.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQEcBAEBAgAGBQJUA2vaAAoJEJouBIMSgmWqMyEIAI9oSw0mjQL4FqiTXjEY67oW
Rzs0z0rSSw3+TX7XRBA9Wqzrh9mTRP8zLbOFFRvIhpcA4rYlzB/sOABh+reBWAsm
SZXEcex0z1RYEm28eZy+hkKPhLoY/WEzoMeQDFwpOupoudDSNboFAq4l/qcUarsF
F3rjZ1asFVqfgbm7Ian/J2kFLW+tr3RyASJkNfVs1GF3KuY/BfU1Q41VLjDeSvHl
WvwRLbuyZ3yDWHKDlZxrFckRlDSY6/X/tMEDgSWJDZrpgcje3jEydbAQKq6J50v6
tPdjzvuB/+TVvtAHgR5YYhlWyIi8B4Ivj6V9hxCmBxyQpW5eWDeqF1TiXRZgZZg=
=+bjW
-----END PGP SIGNATURE-----

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFP3xMUBCADsAIK2FlFzti36S4AAWZlEVr1hAukTI5K/fAQOkwhSC82mKkUj
igqoZqdNU5evUDPndLdAugNJ1QjbiAXUX6FeWC8epS1x3YzIHH1hM6abRXOn4uJ7
emISg0MIvgGQl7dCQ7ezoIXRA5huHTAZwPYYCld7j384UjwzN690Wjl6o2vdi9xE
UXMdWsuxsw8Nc9ryyFZEgIBYHxHNjwfezZSdEWHStXUaiPNm2sPulHDoYcCadFOI
H9E7y/nv/d9uusclVb8mKb4MD8lgEMEH3VV10KAXUKP+pfJSGAdQ4m41HDZukRVX
TS0DA+aGXIe7eA4ffguOj9m8phTJNgSAXMaRABEBAAG0IUdsYXZyZWQgPHZlc3Ru
aWtnbGF2cmVkQG1haWwuaTJwPokBNgQTAQoAIAUCU/fExQIbAwULCQgHAwUVCgkI
CwQWAgEAAh4BAheAAAoJEJouBIMSgmWqfy8IALyzJ1mDQvZY/tXEFwdGTC6elVbL
vSuTNB9e6YvTLlF2twR8ttTmzpX3yGiGODqSgPaofHFXAgfuD7XhaHkmOm5KjPM3
ag8YfKiwZs6UIRkdpn+nxdGwAJ55MpQW0RSpeowcWYLlAiXQW5sZOoj6xrsKSaV8
XOT81DC3nQlYTYRdVNC0PlGtlHkQtTa9NYiAY++vvPue+VlnS2cjDbGW9pa099eP
WwN0TIhylGThJWepeEHbTIwYdrtp8fHThWD02jHjDgZAtLnVeBBfXqcaTRLvxk3L
WSvu5cZhOYwu6HTF/wI2eJ9mX5Xy8jC+pn2lwiSmQ5OT/COX+2u4fAOF7hS5AQ0E
U/fExQEIALtGI6vssC06PGT9nLh0a7LE1rekyq9mEAQDUGN4tgBR0jAarhUF205b
uwL7ZCkpECupACkLKRvUzyehnorlgEZvNDKJEjsxGvj/EPZDVqdNQP02/mpl2Y79
WqbwWCGkYGIiqXCvnzE43CN3y0yd7t/hM5AdID+grpS12sHCOo8F5iDM/Ut55VKV
sxLD7ECQ2QlVBFCSlhPebOkHUzN67hUMY2Tpzgzz8rGBAxeNG3ujmKVRVIOq8ACe
rR3wrjY2EEnb4Cuhyw+R7GE49RehhgEKqulmOUHp8+h7PRj8WQ08zMGsp05qqwzc
m5eLYqWkxhX//tf2GM5XPypJikp9nhMAEQEAAYkBHwQYAQoACQUCU/fExQIbDAAK
CRCaLgSDEoJlqj7rB/wOjOKCRMXChdwkPIfeh0MumrIuDK8HqytUHGtthTftFhSx
gTcY9WGYb5rUUC0heotRns9tPvhMUfFruAVWHgrpi1LDZNX/ND9diH/OIT3zuxAK
OT+ffdPnP0S6xH8dB6GD/1/4SufCGalGJX6fNnOSZVrgsjBVx0xhtyHSIUjd7T3S
8AD61nn1YSSYiOb1t+JYSy8QVWakRj6lLl3CxCmQ20yRH3nifQNpym0Cov6Hn/eW
C0YGxSQfSp4Zx2ER8GJQZDeY8DK1SbUkDgkKD3h84hM6jDwYeQsaRbFDv7JriZoV
I+7tBjKWUjNzr9WAa0Ap87MHB4ROnHg8pFaRkPto
=XzS8
-----END PGP PUBLIC KEY BLOCK-----

Sun, 31 Aug 2014, 08:11pm #7
zzz
Administrator
Zzz

There's no way to map a full 32-byte destination hash to an IP. We fit as many bytes as we can. For IPv4, it's 3 bytes. If you want more, use IPv6, then we use 15 bytes.

This is a simple mechanism for servers that are not I2P-aware. It's not a complete solution. For HTTP and IRC, there are better solutions that pass the full destination (or destination hash) to the server, but the server has to know how to recognize it.

The destination (and hash) are the identifier for any endpoint in I2P. If you need a two-way connection, you have to send your destination to the other end. That's how the reply gets back. This is true of any two-way protocol. The router needs it to send the reply. What we have in i2ptunnel are various ways of communicating this identifier to the local server so that it can make better decisions. Anti-DoS mechanisms are an important part of the toolbox for an anonymous network. Removing the mechanisms that forward this information out of i2ptunnel won't preserve anybody's privacy. Anybody could add them back in.

For those that want to minimize the lifetime of their client destination, they can set the close-on-ldle and new-keys-on-reopen options in i2ptunnel. Of course they still have to disable cookies, not log in, etc.

Finally, don't conflate router hashes and destination hashes. If one were correlated with the other, we wouldn't have any anonymity at all. They are not.

Last edited: Mon, 01 Sep 2014, 02:09am by zzz

Tue, 09 Sep 2014, 04:32am #8
hghoster
Contributor

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi, it's Glavred.
For some reason, I can't access zzz.i2p.xyz for several days already, so I asked Hoster to post this.

The most important thing: thanks you for your explanations. I was jumping to conclusion without going into technical details. This is pretty common, so your valuable commentaries will come in handy when someone will ask the same.
For now, we'll be thinking about how and if we shall use it.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)

iQEcBAEBAgAGBQJUDmwpAAoJEJouBIMSgmWqlBgIAIt78CTwjKebcsHWfaYqLpWA
RONjz+ujZtyahKO3uPeY3uFd86q78eXIGxMD0jqFIynCuUWmg/pT78PKfoV/goty
WqSKbaR059zxxx/QV/Lkn25j4LC2IXL/cQ9u2qkC+UBDQY8F+Nlf7vQruCnCrZ10
o4xN2tz7K/P/Jseln7OAiwIm54P9Uh9uts8DxPTbOqiP/QLVnj40n2zvY6L0uTzD
3aQXvdt5Eh2yhCAG1BxBbJGqaBfDvGiGPuJbnO6RLK8R6ogIWJiyu2hVdYg1X2pC
sGnX+p76FEboE1RwyGQl5DCxZgFaA8yBHHlw/84jyPB0l5J32RcsKn24HQXlBlI=
=IsvN
-----END PGP SIGNATURE-----

Wed, 10 Sep 2014, 03:29pm #9
zzz
Administrator
Zzz

Great. give it a try, let me know how it works.