Tried NYM-Mixnet privacy communication that no one can intercept

  • 30 April 2022
Post image

As of April 2022, almost all infrastructure and network engineers have probably never heard of NYM. On the other hand, some of you may have arrived at this page as a virtual currency trader. Please note that this article is not about investing in NYM in any way. The purpose of this article is to discuss private networks from an engineer’s point of view.

What is NYM?

NYM is the following project.
https://nymtech.net/

For a detailed explanation, please refer to the official video, but in layman’s terms, it seems to be a project to provide a network that enhances the confidentiality of communications.

In recent years, HTTPS (SSL) communication is commonly used for web requests and is said to be “encrypted”. This is true, but as you engineers know, there are some parts that are not “encrypted,” such as IPHeader and transport headers. This means, for example, that the credit card information you enter and send is securely encrypted, but the global IP address of your home and the IP address and port of the destination are visible. Of course, it may be difficult for hackers, state authorities, or huge corporations to intercept certain communications in the first place. However, if you were browsing a pornographic site, for example, and a state authority or other entity took down the server of the pornographic site and checked it, of course, they would be able to find out what you had seen. (You can be identified by disclosing your IP address.)

Why not VPN or Tor?

The NYM website compares Nym with VPN and Tor.
VPN is a way to communicate through some VPN server or VPN provider, but the VPN server will leave a trace of your connection. And if the VPN operator leaks that information to the outside world, it is no longer confidential at all. The same is true for Tor. It is doubtful that the proxy server will really ensure your confidentiality. Rather, Tor is said to be a network built by anonymous entities for free, so it is possible that there are unscrupulous people among them or that state authorities are intercepting the Tor network.

Therefore, NYM seems to have realized privacy communication by rewarding the node providers of the network with Nym tokens, and furthermore, by using a technique to disperse communication packets and pass them through Mixnet. This is said to enable communication in which even the node administrator cannot intercept the communication, and even the destination does not leave any trace of the sender. In other words, NymMixnet makes it impossible for state authorities or even dangerous hacker groups to intercept your communications. (I don’t know if this is true or not)

Try sending a message via Mixnet

Leaving aside the detailed NYM explanation, I would like to actually communicate. Currently, it seems to be possible only with TestNet blockchain, so MainNet is not used.
DL NYMClient from this page. (In this case, use the one for Ubuntu)

Then initialize it with the following command, where id(nymtest) is an arbitrary name.

chmod +x ./nym-client
./nym-client init --id nymtest
      _ __  _   _ _ __ ___
     | '_ \| | | | '_ \ _ \
     | | | | |_| | | | | | |
     |_| |_|\__, |_| |_| |_|
            |___/

             (client - version 0.12.1)

Initialising client...
Saved all generated keys
Saved configuration file to "/home/~~/.nym/clients/nymtest/config/config.toml"
Using gateway: 6BJqdfWfBnTHc7m5d6WLYizcBTkyFd11ViVAZ
Client configuration completed.

The address of this client is: 7idWkgF4XqDbHXGv4u2QTKDoJFN5KiH3aq5bR2wgSgUC.5KYpMS7Kp27rv4tPqH7uSPMrz9FNZQU1c4wJ4jhEF9dX@6BJq1kv8P7PRMWfBnTHc7m5dBTkyF5yd6WLYizcViVAZ

This is all it takes to initialize the system and create the configuration file, pem key, etc. in the ~/.nym directory. The following address displayed here is the address for sending and receiving.

7idWkgF4XqDbHXGv4u2QTKDoJFN5KiH3aq5bR2wgSgUC.5KYpMS7Kp27rv4tPqH7uSPMrz9FNZQU1c4wJ4jhEF9dX@6BJq1kv8P7PRMWfBnTHc7m5dBTkyF5yd6WLYizcViVAZ

Now you can start a WebSocket client that connects to Mixnet by doing the following.

./nym-client run --id nymtest
      _ __  _   _ _ __ ___
     | '_ \| | | | '_ \ _ \
     | | | | |_| | | | | | |
     |_| |_|\__, |_| |_| |_|
            |___/

             (client - version 0.12.1)

 2022-04-30T11:12:20.163Z WARN  nym_client::commands::run > The mixnode binary has different version than what is specified in config file! 0.12.1 and 0.12.0
 2022-04-30T11:12:20.163Z INFO  nym_client::commands::run > but they are still semver compatible. However, consider running the `upgrade` command
 2022-04-30T11:12:20.164Z INFO  nym_client::client        > Starting nym client
 2022-04-30T11:12:20.173Z INFO  nym_client::client        > Obtaining initial network topology
 2022-04-30T11:12:22.555Z INFO  nym_client::client        > Starting topology refresher...
 2022-04-30T11:12:22.555Z INFO  nym_client::client        > Starting received messages buffer controller...
 2022-04-30T11:12:23.363Z INFO  nym_client::client        > Starting mix traffic controller...
 2022-04-30T11:12:23.363Z INFO  nym_client::client        > Starting real traffic stream...
 2022-04-30T11:12:23.363Z INFO  nym_client::client        > Starting loop cover traffic stream...
 2022-04-30T11:12:23.363Z INFO  nym_client::client        > Starting websocket listener...
 2022-04-30T11:12:23.363Z INFO  nym_client::websocket::listener > Running websocket on "127.0.0.1:1977"
 2022-04-30T11:12:23.363Z INFO  nym_client::client              > Client startup finished!

It is listening for WebSocket at “127.0.0.1:1977”. This client seems to be able to connect to NYM’s Mixnet and communicate with it. Now, let’s try to send a message by launching the above NYM client on two PCs connected to different networks.

WebSocket communication uses a simple Chrome extension called “Browser WebSocket Client. Connect by specifying the listening port displayed on the client startup. (ws://127.0.0.1:1977)

Then, try sending the following JSON

{
  "type": "send",
  "message": "This is secret information.",
  "recipient": "7idWkgF4XqDbHXGv4u2QTKDoJFN5KiH3aq5bR2wgSgUC.5KYpMS7Kp27rv4tPqH7uSPMrz9FNZQU1c4wJ4jhEF9dX@6BJq1kv8P7PRMWfBnTHc7m5dBTkyF5yd6WLYizcViVAZ",
  "withReplySurb": false
}

You will then receive the following message

"This is secret information."

Now we have completely confidential communication by Mixnet!!!! Is it? To make it a little easier to understand, let’s try setting this message to “hello” and look at the binary of the received message on the receiving end.

# received message binary
00000000: 0100 0000 0000 0000 0005 6865 6c6c 6f

Indeed, the hexadecimal number “68 65 6c 6c 6f” represents “hello. The rest of the message represents the execution code of start and introduction. In the first place, the socket communication could send a message to another client via Mixnet, although only the message part is communicated in this way.

Use this technique only to cover up the adulterous exchange.

This time I tried just exchanging messages, but there are also message applications such as Keybase that can use this NYM network. However, this NYM could also be used by criminals to exchange messages. Protecting people’s privacy is important, but we don’t want crime to be rampant.
I would like to see it used to hide infidelity or something to that extent. (NYM cannot be used to cover up an affair)

You May Also Like