Skip to content
Snippets Groups Projects

Add Troll Patrol to Lox

Merged onyinyang requested to merge onyinyang/lox:troll-patrol into main

Addresses: #57

This MR brings in @vecna's work on Troll Patrol, a system for automatically detecting censorship of Tor bridges. The Troll patrol system infers bridge reachability based on already-existing bridge usage statistics and novel anonymous user reports of bridge blockage.

The work reflected in this MR includes the original troll-patrol repo being brought in to the Lox workspace as well as corresponding changes to the existing Lox related crates. Additional work includes:

  • modifications based on results from the paper (removing positive reports since they were not shown to be effective)
  • updates to bring Troll patrol into sync with the current state of Lox.
  • removing test and simulation code for the time being (though it may be the case that running a simulation is the best way to test that this works as we expect).

Note too that these changes will break the db structure so a new deployment that involves deleting the existing loxdb will be required.

Edited by onyinyang

Merge request reports

Pipeline #231469 passed

Pipeline passed for ee6d7325 on onyinyang:troll-patrol

Approved by

Merged by onyinyangonyinyang 4 months ago (Dec 11, 2024 4:31pm UTC)

Merge details

  • Changes merged into main with ee6d7325.
  • Deleted the source branch.
  • Auto-merge enabled

Pipeline #231472 failed

Pipeline failed for ee6d7325 on main

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
169 175
170 176 #[test]
171 177 fn test_write_context() {
178 // TODO: Fix db_test_file.json
  • Cecylia Bocovich
    Cecylia Bocovich @cohosh started a thread on commit 1575ef6b
  • 1 use super::bridge_table::BridgeLine;
    1 2 use curve25519_dalek::Scalar;
    2 use ed25519_dalek::VerifyingKey;
    3 use lox_library::bridge_table::BridgeLine;
    4 3 use serde::{Deserialize, Serialize};
    5 4 use std::collections::HashSet;
    6 5
    7 6 /// Information that needs to be known to verify a Troll Patrol report
    8 #[derive(Debug, Serialize, Deserialize)]
    7 #[derive(Debug, Clone, Serialize, Deserialize)]
  • Cecylia Bocovich
    Cecylia Bocovich @cohosh started a thread on commit 8f51c513
  • 30 30 let resource_uid = resource
    31 31 .get_uid()
    32 32 .expect("Unable to get Fingerprint UID of resource");
    33 let hashed_fingerprint: [u8; 20] = array_bytes::hex2array(&resource.fingerprint).expect("Failed to parse bridge fingerprint");
    34 let infostr: String = format!(
    35 "type={} params={:?}",
    36 resource.r#type, resource.params,
    37 );
    33 let hashed_fingerprint: [u8; 20] = array_bytes::hex2array(&resource.fingerprint)
    34 .expect("Failed to parse bridge fingerprint");
    35 let infostr: String = format!("type={} params={:?}", resource.r#type, resource.params,);
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading