MASQ-Project / Node

MASQ combines the benefits of VPN and Tor technology to create a superior next-generation privacy software, where users are rewarded for supporting an uncensored global web. Users gain privacy and anonymity online, while helping promote Internet Freedom.
https://masqbrowser.com
Other
173 stars 28 forks source link

Verification of the Free World Bit and Country code in Neighborhood. #479

Open czarte opened 4 months ago

czarte commented 4 months ago

We need to create verification process of Exit nodes geo location, to prevent Nodes from lying in several scopes

  1. Every time that we spot the change of Country code of Exit Node in recieved gossip and there is discrapance in previous state and current state, we need to react by checking the IP of Exit Node if it matches with our DB record and if not, there need to be process to verify the real state of localization particular IP
  2. there needs to be put in place the defence mechanism, something like "Malefactor ban", to provide opportunity to ban the Exit Node, which is lying about his Country code or Free World Bit.
  3. Can distant members validate?
  4. Validation thru the requested web content - send some restricted content, delivered from exit node, to the network and ask to validate its content
  5. Put list of countries (countries.rs) to DB and load it on startup of the Node to the pub static ref COUNTRIES: Vec<Country>
  6. CLI interface to turn true to false on Free World Bit
czarte commented 4 months ago

Scheme of Node jump into full neighborship with exit node, to verify its Free World Bit and Country Code

Scheme before move: Redesign_Gossip_protocol_Switch_to_Exit_Node_Neighborhood

Scheme after move: Redesign_Gossip_protocol_Switch_to_Exit_Node_Neighborhood_2

Scheme of the new design of "I am alive" Gossip, where Node with Malefactor Ban of broadcasted Node "I am alive" gossip is not passing this gossip to its primary Neighbors, so these neighbors are stuffing up some malefactor threshold in theirs NodeRecordMetadata for particular Node. Redesign_Gossip_protocol

czarte commented 4 months ago

Here is the commit with the malefactor changes which is putting the fn ban_malefactor() to particular places where we are now logging the malefactor to the Log. This function is empty and waiting for implementation in the Epic of Malefactor ban:

1501cec0cb541fd0fb613af31135493fba1fcc3d

If you do a git fetch to pull this commit down, you can probably cherry-pick it into your branch

kauri-hero commented 3 months ago

This card will likely be modified to validate immediate neighbor country code only

Potentially, it will be a periodic check of the country-code