CSRF Protection via Proxy-Embedded Nonce Script

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cross-Site Request Forgery (CSRF) attacks pose a significant threat in client-server environments, where attackers can submit forged requests to servers without user knowledge, leading to potential damage and unauthorized actions, and existing solutions require costly code modifications, especially in legacy or third-party applications.

Innovation Solution

Embedding a nonce and a script in server responses to clients, which adds the nonce to all future requests, allowing the server to verify the authenticity of requests and prevent unauthorized actions, potentially using a proxy to intercept and modify requests and responses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a random value (nonce) is introduced to make client requests unpredictable, then security against CSRF attacks is improved, but implementation cost and complexity increase significantly

Engineering Contradiction:
ImprovesecurityVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a proxy server as an intermediary component between the client and the original server. The proxy intercepts server responses, embeds nonces and scripts, and forwards modified responses to clients. It also intercepts client requests, extracts nonces, and forwards them to the original server. This intermediary approach allows CSRF protection to be added without modifying the original application code, resolving the contradiction between security improvement and implementation complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The embedded script in the client response automatically performs the work of adding nonces to all future requests from that client. Instead of requiring manual intervention or complex server-side modifications for each request, the client-side script self-services by autonomously injecting the nonce into subsequent requests, simplifying the overall implementation while maintaining strong security.

Inventive Principle:
Principle #25Self-service

2Reliability

If code modifications are made to embed nonce in requests, then CSRF protection is achieved, but compatibility with legacy and third-party applications deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidapplication compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The proxy server acts as an intermediary that transparently modifies communication between clients and servers without requiring changes to legacy or third-party applications. The proxy embeds the nonce in the response and the client-side script automatically includes it in future requests, maintaining compatibility with existing applications while providing CSRF protection.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the CSRF protection functionality into separate components: the proxy server handles nonce generation and embedding, the client-side script handles nonce injection into requests, and the original server remains unchanged. This segmentation allows the protection mechanism to be applied independently without affecting legacy or third-party applications.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the server verifies each request includes the nonce, then forged requests are blocked, but request processing time increases

Engineering Contradiction:
ImprovesecurityVSAvoidrequest processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The nonce is embedded in the client response during the initial server-to-client communication, before any client requests are made. The client-side script then automatically includes this pre-generated nonce in all subsequent requests. This preliminary action eliminates the need for time-consuming nonce generation and verification for each individual request, reducing processing time while maintaining security.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8495137B2Preventing cross-site request forgery attacks on a server
Publication Date: 2013.07.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8495137B2 patent drawing
  • US8495137B2 patent drawing
  • US8495137B2 patent drawing

AI summary

Preventing Cross-Site Request Forgery security attacks on a server in a client-server environment. In one aspect, this comprises embedding a nonce and a script in all responses from the server to the client wherein, when executed, the script adds the nonce to each request from the client to the server; sending the response with the nonce and the script to the client; and verifying that each request from the client includes the nonce sent by the server to the client. The script preferably modifies all objects, including dynamically generated objects, in a server response that may generate future requests to the server to add the nonce to the requests. The server verifies the nonce value in a request and optionally confirms the request with the client if the value differs from the value previously sent. Server-side aspects might be embodied in the server or a proxy.