Proxy Mode
Introduction
In Proxy Mode, users communicate with a target server through a browser plugin and a proxy server.
The Proxy Server establishes a "tunnel" between the browser plugin and the target server. Users communicate data through this tunnel, and the Proxy Server logs all data packets sent and received via the tunnel.
Since the Proxy Server does not possess the encryption key, it cannot decrypt the communication data.
After the TLS handshake is completed, the user can begin sending data to the target server. At this point, the createRequest
method of the provider is called to generate the data and its associated redaction policy.
Before data transmission, the data is validated using the same rules as the server to ensure successful claim creation.
To achieve data desensitization, users must send data in a specific manner:
TLS Key Update Method (default, high efficiency, supports only TLS 1.3, and applies only to data sent from the user to the server):
The user sends data in segments, each encrypted with a different TLS session key. The Proxy Server only obtains partial keys, thus can only decrypt partial data.
Zero-Knowledge Proof (ZKP) Method (redaction, see ZKP):
Using zero-knowledge proofs, the user can prove to the verifier that a specific encrypted block can be decrypted into a particular plaintext without revealing the key used for encryption.
Detailed Process Flowchart
Initialize Connection
Description: The process begins with initializing the connection, configuring necessary communication parameters to prepare for establishing a secure communication channel.
Output: Proceeds to the tunnel establishment stage.
Establish Tunnel
Description: Based on the initialized connection, a secure communication tunnel is established to ensure the security of data transmission.
Output: Proceeds to the TLS handshake stage.
TLS Handshake
Description: The TLS protocol is used to complete the handshake process, establishing an encrypted communication channel to ensure the confidentiality and integrity of subsequent data transmission.
Output: Proceeds to the data transmission and redaction stage.
Data Transmission and Redaction Stage
This stage includes the following sub-steps:
4.1 Segmented Data Encryption:
Data is segmented and encrypted to protect its security during transmission.
4.2 Hide Sensitive Information:
Sensitive information is redacted or hidden to prevent unauthorized access and protect privacy.
4.3 Use TLS Key Update or ZKP:
TLS key update mechanisms or zero-knowledge proof techniques are used to further enhance the security and privacy of data transmission.
Output: Encrypted and redacted data, proceeding to the transmission record preparation stage.
Prepare Transmission Record
Description: A transmission record is generated, containing necessary metadata and encrypted information for subsequent verification.
Output: Transmission record, proceeding to the claim request submission stage.
Submit Claim Request
Description: The transmission record and related claim request are submitted to the verifier, triggering the verification process.
Output: Proceeds to the verification and signing stage.
Verification and Signing Stage
This stage includes the following sub-steps:
7.1 Verify Tunnel Parameters:
The communication tunnel parameters are checked to ensure the connection's security and consistency.
7.2 Compare Transmission Record:
The submitted transmission record is compared with expected data to confirm data integrity.
7.3 Decrypt Data:
Encrypted data is decrypted for further verification.
7.4 Call Service Verification Function:
A specific service verification function is called to check the data's validity and legitimacy.
Output: Verification result and signature, proceeding to the result return stage.
Return Result
Description: The verification result (including the signature) is returned to the requester, completing the process.
Output: Process ends, returning the verification result.
UML Sequence Diagram
Initialize Connection
Description: The Client sends an
initRequest
to the Verifier to start the interaction process.Verifier Response: The Verifier returns an
initResponse
, confirming initialization completion.Output: Proceeds to the TLS tunnel creation stage.
Create TLS Tunnel
Description: The Client sends a
createTunnelRequest
to negotiate the establishment of a TLS tunnel.Verifier Response: The Verifier returns a
createTunnelResponse
, confirming the tunnel creation parameters.Output: Proceeds to the TLS handshake stage.
TLS Handshake
Description: The Client performs a TLS protocol handshake with the TLS Tunnel to establish a secure encrypted communication channel.
TLS Tunnel Response: The TLS Tunnel returns a handshake completion confirmation, indicating the channel is ready.
Output: Proceeds to the encrypted data transmission stage.
Encrypted Data Transmission
Description: The Client sends segmented encrypted data (
Encrypted Data (Segmented)
) through the TLS Tunnel.TLS Tunnel Response: The TLS Tunnel receives the target server's response and returns it to the Client.
Output: Proceeds to the data generation request stage.
Generate Data Request
Description: The Client sends a
createRequest
to the Service Provider to generate data.Service Provider Response: The Service Provider returns the generated data along with a
Redaction Policy
to guide data processing or privacy protection.Output: Proceeds to the claim request submission stage.
Submit Claim Request
Description: The Client sends a
claimTunnelRequest
to the Verifier, including the transmission record (Transmission Record
).Output: Triggers the verification process.
Verification Process
7.1 Verify Tunnel Parameters:
The Verifier checks the TLS Tunnel parameters to ensure the connection's security and consistency.
7.2 Decrypt and Compare Data:
The Verifier decrypts the received data and compares it with the transmission record to confirm data integrity.
7.3 Call Service Verification:
The Verifier calls
assertValidProviderReceipt
on the Service Provider to validate the data's legitimacy.The Service Provider returns the verification result (
Verification Result
).
Output: Verification result, proceeding to the result return stage.
Return Result
Description: The Verifier returns a
Signed Claim
or an error message to the Client based on the verification result.Output: Process ends.
Last updated
Was this helpful?