Protecting the Web with Transparent Proof-of-Work
description
Transcript of Protecting the Web with Transparent Proof-of-Work
NSF Cyber Trust Principal Investigators MeetingMarch 16-18, 2008
New Haven, CT
Protecting the Web with Transparent Proof-of-Work
1. Problem: Attacks on the Web
Wu-chang Feng, Tom Shrimpton, Ed Kaiser (student){wuchang,teshrim,edkaiser}@cs.pdx.edu
New approach• Proof-of-Work without protocol changes
• Dynamic embedding of PoW into URLs
Comment spam
Distributed Denial-of-Service
Ticket purchasing robots
Click fraud
2. CAPTCHA to the rescue?Problem #1: InaccessibleProblem #2: Economics broken
Fixed human workload Outsourced for under $0.01 per CAPTCHA Mechanical Turk, getafreelancer.com
Problem #3: Hackers are solving the hard AI problem Yahoo! CAPTCHA broken 1/16/2008
http://network-security-research.blogspot.com/ Windows Live and Google CAPTCHAs broken 2/6/2008 , 2/22/2008
http://www.websense.com/securitylabs/blog/ Many others
3. What about Proof-of-Work (PoW)?Addresses Problem #1: No user-interface issuesAddresses Problem #2: Variable workloadAddresses Problem #3: Hard cryptographic problem
Q: Why is the landscape littered with unused PoW protocols? Hashcash, TLS puzzles, TCP puzzles, IP puzzles, Public work
A: PoW requires protocol changes and universal deployment CAPTCHAs do not!
4. mod_kaPoWApache module for embedding PoW challenges into URLs
Leverage ubiquitous JavaScript support to deploy PoW Server dynamically embeds PoWs in embedded URLs Client-side JavaScript solver must calculate answers for access No network protocol changes No web browser changes No web server content changes5. Example
URL w/ valid PoW
mod_kaPoW
Clients
Web Server
URL w/ invalid PoW
Error Page
Content SolutionScripts
ErrorPage
Content
Research Impact• Deployable alternative to CAPTCHAs
• New weapon against today’s web attacks
6. ImplementationJavaScript solver (kaPoW.js)
“onLoad” event handler to solve PoW challenges for embedded images
“onClick” event handler to solve challenges for embedded links
Solve routine finds a value A, such that
SHA1(NC || URL || A) 0 mod DCDC client-specific server-assigned difficulty
NC client-specific server-generated nonce
mod_kaPoW Apache module
7. Thwarting DoS 8. Future workPolicy module for setting per-client Dc
Client history Client reputation Client location Request type Resource requested
Adding to applications Forums (phpBB) Wikis (MediaWiki) Blogs (WordPress, Slashcode) Web 2.0 / AJAX
Economic analysis What is the cost of idle CPU cycles? Markets based on CPU cycles
9. AvailabilityDemo site
http://kapow.cs.pdx.edu
Non-commercial source release In progress
10. Publications E. Andreeva, G. Neven, B. Preneel T. Shrimpton,
“Seven-Property Preserving Iterated Hashing: ROX”, ASIACRYPT 2007.
T. Ristenpart, T. Shrimpton, “How to Build a Hash Function From Any Collision-Resistant Function”, ASIACRYPT 2007.
W. Feng, E. Kaiser, “The Case for Public Work”, Global Internet 2007.
E. Kaiser, W. Feng, “mod_kaPoW: Protecting the Web with Transparent Proof-of-Work”, in submission.