| Package | Description |
|---|---|
| net.i2p.router.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer
coordination in the I2P network. |
| Modifier and Type | Method and Description |
|---|---|
static Points | Points.fromString(String s)For persistence. |
| Modifier and Type | Method and Description |
|---|---|
Map<Hash,Points> | Analysis.backgroundAnalysis(boolean includeAll)Analyze threats. |
Map<Long,Points> | PersistSybil.load(Hash h)Load all the analysis for a certain hash. |
Map<Hash,Points> | PersistSybil.load(long date)Load the analysis for a certain date. |
| Modifier and Type | Method and Description |
|---|---|
int | Points.compareTo(Points r) |
| Modifier and Type | Method and Description |
|---|---|
void | Analysis.addProfilePoints(List<RouterInfo> ris,
Map<Hash,Points> points)Analyzes router profiles and adds Sybil points for banlisted, newly observed,
or poorly performing routers. |
void | Analysis.addVersionPoints(List<RouterInfo> ris,
Map<Hash,Points> points)Analyzes router versions and adds Sybil points for old, unreachable,
or non-floodfill routers. |
Map<Integer,List<RouterInfo>> | Analysis.calculateIPGroups16(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their /16 subnet to identify routers in the same /16 network. |
Map<Integer,List<RouterInfo>> | Analysis.calculateIPGroups24(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their /24 subnet to identify routers in the same /24 network. |
Map<Integer,List<RouterInfo>> | Analysis.calculateIPGroups32(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their IP address to identify routers sharing the same IP. |
Map<Long,List<RouterInfo>> | Analysis.calculateIPGroups48(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their IPv6 /48 subnet to identify routers in the same /48 network. |
Map<Long,List<RouterInfo>> | Analysis.calculateIPGroups64(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their IPv6 /64 subnet to identify routers in the same /64 network. |
Map<String,List<RouterInfo>> | Analysis.calculateIPGroupsFamily(List<RouterInfo> ris,
Map<Hash,Points> points)Categorize routers by their router family to identify routers in the same family. |
void | Analysis.calculateIPGroupsUs(List<RouterInfo> ris,
Map<Hash,Points> points,
List<RouterInfo> ri32,
List<RouterInfo> ri24,
List<RouterInfo> ri16,
List<RouterInfo> ri64,
List<RouterInfo> ri48)Categorize routers by their proximity to our IP address, grouping them by /32, /24, /16
for IPv4 and /64, /48 for IPv6. |
double | Analysis.calculatePairDistance(List<RouterInfo> ris,
Map<Hash,Points> points,
List<Pair> pairs)Calculate average pairwise distance between floodfills and identifies routers that are
unusually close to each other. |
void | Analysis.calculateRouterInfo(Hash us,
String usName,
List<RouterInfo> ris,
Map<Hash,Points> points)Build the version comparison report. |
void | PersistSybil.store(long date,
Map<Hash,Points> entries)Store each entry. |