A challenge-response authentication system for web applications