| 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) |
void |
PersistSybil.store(long date,
Map<Hash,Points> entries)
Store each entry.
|