PERMISSIVE

Permissive mode: Allows selective certificate pinning validation.

In permissive mode, TrustPin validates certificates for registered domains while allowing connections to unregistered domains to proceed without pinning validation. This provides flexibility for applications that need to connect to dynamic services while still securing critical API endpoints.

Behavior

  • Registered domains: Certificate validation performed against configured pins

  • Unregistered domains: Bypasses pinning validation with informational log message

  • Pin mismatches: Throws TrustPinError.PinsMismatch for registered domains

  • Expired pins: Throws TrustPinError.AllPinsExpired for registered domains

Use Cases

  • Development and staging environments with test servers

  • Applications with dynamic endpoints (user-generated content, third-party services)

  • Gradual migration to certificate pinning in existing applications

  • Third-party SDK integrations with unknown domains

  • Hybrid applications connecting to both controlled and external services

Security Considerations

While permissive mode provides flexibility, consider these security implications:

  • Partial protection: Only registered domains receive pinning validation

  • Monitoring required: Log unregistered domain access for security analysis

  • Gradual hardening: Plan migration to strict mode for production

Migration Path

Use permissive mode as a stepping stone to strict mode:

// Phase 1: Identify all domains
trustPin.setLogLevel(TrustPinLogLevel.INFO)
TrustPin.setup(mode = TrustPinMode.PERMISSIVE)

// Phase 2: Register critical domains
// (Register domains in TrustPin dashboard)

// Phase 3: Enforce strict validation
TrustPin.setup(mode = TrustPinMode.STRICT)

Properties

Link copied to clipboard
Link copied to clipboard