How NewNode ensures user privacy: an overview

May 3, 2023
How NewNode ensures user privacy: an overview

NewNode is a platform that offers a range of products, including a messenger, VPN, and SDK which are designed to be used in situations where there is a high risk of government surveillance and monitoring. As such, maintaining user privacy is a fundamental aspect of the product and protocol architecture. 

NewNode Messenger Privacy

The NewNode messenger creates two pairs of public/private keys for each user when they register (one for encryption and one for signing). All messages are encrypted using the recipient's public key, ensuring that only the recipient can read them. This encryption also means that we at NewNode cannot access the content of messages. 

Messages in the NewNode network can be sent peer-to-peer, but the "NewNode server" is also used to ensure that the network is always available to users. This is a peer run by NewNode, which is always on — ensuring constant availability of the NewNode network to users even if, by an unlikely chance, there are not enough active peers at some point in time to transmit messages. Messages sent via the server are encrypted using the "double ratchet" key generation protocol for an extra layer of security.

Privacy of Metadata and Phone Numbers

NewNode ensures that metadata (information about who sent messages to whom) remains private by encrypting sender information, meaning that a peer can never see the origin of a message, even as that peer passes that message along the chain of peers to its destination. 

Phone numbers are required for registration to prevent uncontrolled account proliferation, but the phone number does not have to be yours. A burner SIM card can be used for this purpose if a user is uncomfortable with providing their personal phone number. Hashes of these phone numbers are stored at NewNode to prevent repeat use of the same phone number for registering NewNode accounts. We are not interested in collecting your personal information; we simply collect phone numbers as a way to prevent spam, just like all messengers do. 

In order to allow NewNode users to discover one another, the NewNode client collects information from users' phones' contact lists, calculates a one-way hash of that information, and the hashes are compared on the NewNode server. Those that match (i.e. each user has the other's phone number in their contacts) are invited to connect with one another on the NewNode network. 

Forward Secrecy

While NewNode has made significant efforts to protect user privacy, we are still working on forward secrecy. Namely: can we ensure that the messages’ content remains private not only now, but also in a scenario in which one of the parties’ private keys is compromised? At present the answer is “partly.” We use the "double ratchet" encryption protocol for messages exchanged via the server, so in that case forward secrecy is already ensured. However, for messages exchanged via the peer-to-peer network there is a fundamental problem: the two endpoints need a way to sync up so that the encryption key can be used for an exchange, requiring a degree of synchronization between peers that is impossible in a p2p network. In a peer-to-peer network, there is no central “always-on” server to coordinate key exchange. We’re currently working on innovative approaches to improve forward secrecy in such a scenario. 

Logging and statistics

NewNode collects data from all the peers on the network, including instances of NewNode (the messenger), NewNode VPN, and all NewNode Kit-enabled apps, for statistical purposes. However, all personally identifiable data is excluded, meaning that NewNode doesn't collect data that could be used for advertising or any other communication targeting. The data collected includes four types of records: Heartbeat record, IPinfo record, Byte count record, and Tryfirst record.

The Heartbeat record includes: 

  • App name 
  • App ID
  • Client ID 
  • ISO country code 
  • Autonomous system number of the network connection of the reporting node

The only field in this record that is unique to the client is the “Client ID”. This is a random number that is generated by each node at install time and retained across app restarts. We never associate a client ID with any personal data.

The purpose of the heartbeat record is for us to get an idea of how many distinct nodes are operating at any given time.

The IPinfo record includes: 

  • Geolocation information, as determined by ipinfo.io
  • Client ID
  • ISO country code
  • App name
  • App ID
  • Autonomous system number of the network connection of the reporting node

The IPinfo records collect information about the number and locations of active peers on the NewNode network. It tells us where peers are located in a general sense, so we can keep track of where NewNode is strongest: How many peers do we have in Moscow? How many in Tehran?

The Byte count record includes: 

  • Place along the line of transmission: either "peer" (reaching origin server via a NewNode peer), "direct" (reaching the origin server directly), or "p2p" (transmitting between NewNode peers) 
  • Authority: base URL of the web site
  • Byte count
  • App name 
  • App ID

These records report total bytes transferred to and from peers. They aggregate multiple transactions to and from the same web site. So they show us the volume of the usage of the NewNode network. 

The Tryfirst record includes: 

  • Origin server name
  • Country code of the reporting node
  • App name
  • Client ID, App ID
  • Error/success code

The data in the Tryfirst records shows us which origin servers are directly accessible (or not accessible) from a given country.

Conclusion

NewNode products are designed with user privacy in mind, ensuring that all messages are encrypted and metadata remains private. NewNode collects data from all the peers on the network for statistical purposes, but all personally identifiable data is excluded, meaning that NewNode doesn't collect data that could be used for advertising or any other communication targeting.

Get the latest from our blog in your inbox