Skip to main content

🧠 Technical Specification: Signature and Authentication Protocol

This plugin's server-mediated type (app configuration type) adopts a multi-layered defense protocol based on modern Web API best practices, not just simple password authentication.

🔐 Three Authentication Layers​

This plugin simultaneously performs three verifications for each request.

  1. Shared Signature (HMAC-SHA256)
  • Uses Shared Secret (shared key).
  • Both client and server hold the same key and verify payload hash. This blocks naive requests from third parties who haven't analyzed the binary.
  1. Device Signature (Asymmetric Key Signature)
  • Uses device-specific generated private key.
  • Used for initial authentication, proving "that Reporter ID is actually sent from that device" (preventing impersonation).
  1. Access Token (Short-Term Token)
  • Temporary token issued by server after successful authentication.
  • Has TTL (time to live), minimizing damage even if packet is captured.

🛠️ Security Communication Sequence​

To prevent false feedback submissions and data tampering by malicious users, adopts a two-stage verification process.

1. Token Acquisition (Authentication)​

Before starting submission, first request temporary access rights from server.

  • Nonce & Timestamp: To prevent replay attacks (resending identical packets), assigns one-time value and expiry.
  • Device Key Persistence: Registers device-specific public key on first access. Subsequently, access from same Reporter ID is rejected without valid signature from paired private key.

2. Feedback Submission (Data Integrity)​

Using obtained token, pack and send actual data.

  • Payload Hashing: Generates hash value encompassing all message, device info, and attachments.
  • End-to-End Signature: Signs generated hash with device key. If data is tampered even 1 bit in transit to server, server immediately detects and discards.

🛡️ Advanced Security Features​

Key Rotation​

Logify supports key rotation on any day cycle, considering risks of perpetually using same device key.

  • Generates new key pair and signs "new public key" with old key, proving ownership while safely updating key.

Rate Limit & Auto Block​

Server-side performs following rate limiting dynamically:

  • Token Rate Limit: Temporarily blocks clients excessively requesting tokens in short period.
  • Auto Block: Automatically registers IP addresses repeating "invalid requests" like signature errors to blacklist.

📝 Attack Resistance​

This robust protocol provides high resistance to following attacks:

  • Impersonation: Pretending to be someone else's Reporter ID to send false reports.
  • Tampering: Rewriting screenshot or log contents during transmission.
  • Replay: Copying past successful communications to overwhelm server.
Security and Performance

These complex signature calculations are processed asynchronously (Task/Await) on Unity side, designed not to impact main thread performance (FPS). Also, using IL2CPP further obfuscates C# layer logic, increasing safety.