commit 77ee2aa8d0bff2a85268a233b18448bb2b0c9317 Author: Mike Perry mikeperry-git@fscked.org Date: Wed Oct 10 16:22:11 2012 -0700
Add a Guard DoS simulation. --- CircuitAnalysis/PathBias/path_bias.py | 39 ++++++++++++++++++++++++++++++++- 1 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/CircuitAnalysis/PathBias/path_bias.py b/CircuitAnalysis/PathBias/path_bias.py index 2487bc9..54e8581 100755 --- a/CircuitAnalysis/PathBias/path_bias.py +++ b/CircuitAnalysis/PathBias/path_bias.py @@ -341,6 +341,24 @@ def generic_rate_test(g, trials, success_rate, adversary_capacity, path_bias_pct
return rate_fcn(g)
+def dos_attack_test(success_rate, dos_success_rate, path_bias_pct, scale_thresh): + global PATH_BIAS_PCT + global PATH_BIAS_SCALE_THRESHOLD + PATH_BIAS_PCT = path_bias_pct + PATH_BIAS_SCALE_THRESHOLD = scale_thresh + + g = Guard(success_rate) + + simulate_circs_until(g, PATH_BIAS_SCALE_THRESHOLD, lambda g: False) + g.rejected_count = 0 + + g.succeed_rate = dos_success_rate + + simulate_circs_until(g, 10000, lambda g: g.rejected_count > 0) + + return g.first_hops_total - PATH_BIAS_SCALE_THRESHOLD + + ################ Multi-Dementianal Analysis #####################
# If brute force doesn't work, you're not using enough @@ -497,7 +515,7 @@ def main():
if True: - print "\n\n===================== FALSE POSITIVES ============================" + print "\n\n===================== False Positives ============================"
print "\nStartup false positive counts at [trials, success_rate, min_circs, path_bias_pct]:" print "(Results are some function of success_rate - path_bias_pct vs min_circs)" @@ -564,6 +582,25 @@ def main(): [(1000000,1000000), (0.45, 0.45), (100,500), (30, 30)], [0, -0.1, 50, 5])
+ if True: + print "\n\n===================== DoS Attack Duration ========================" + print "\nDoS attack durations (in circs) at [success_rate, dos_success_rate, path_bias_pct, scale_thresh]:" + print brute_force(lambda x,y: x>y, + dos_attack_test, + #dos_attack_test(g, trials, success_rate, dos_success_rate, path_bias_pct): + #false_positive_test(trials, success_rate, scale_circs, path_bias_pct): + [(0.80, 0.80), (0.05,0.05), (30, 30), (200, 1000)], + [-0.1, -0.1, 5, 100]) + + print "\nDoS attack durations (in circs) at [success_rate, dos_success_rate, path_bias_pct, scale_thresh]:" + print brute_force(lambda x,y: x<y, + dos_attack_test, + #dos_attack_test(g, trials, success_rate, dos_success_rate, path_bias_pct): + #false_positive_test(trials, success_rate, scale_circs, path_bias_pct): + [(0.80, 0.80), (0.25,0.05), (30, 30), (500, 500)], + [-0.1, -0.1, 5, 100]) + +
if __name__ == "__main__": main() #sys.argv)
tor-commits@lists.torproject.org