सुरक्षा

सुरक्षा आर्किटेक्चर

Rust/Tauri स्टैक, .rkvey v5 फ़ॉर्मैट, compartments, विलंबित डिक्रिप्शन और threat model।

QubKey की सुरक्षा लेयर्ड आर्किटेक्चर और defense in depth सिद्धांत पर आधारित है: फ़ाइल सिस्टम, .rkvey v5 फ़ॉर्मैट, क्रिप्टोग्राफ़ी और Rust एप्लिकेशन कोर हर चरण में आपके secrets की रक्षा करते हैं — storage से unlock तक।

हर layer एक पूरक guarantee देती है। अगर system-level सुरक्षा न हो (जैसे disk encryption न हो), तब भी application और crypto layers आपके vault की रक्षा करती हैं। v5 फ़ॉर्मैट में किसी entry के secrets तभी decrypt होते हैं जब आप उन्हें देखें या copy करें — vault unlock या list में नहीं।

UI

इंटरफ़ेस (प्रतिक्रिया + तौरी)

  • मेहराब
  • फ़ोल्डर
  • खोज
  • जनक
  • एक बार के कोड
  • डैशबोर्ड
  • साथ-साथ करना
  • शेयरिंग
  • ब्राउज़र एक्सटेंशन
Core

जंग कोर (क्यूबकी कोर)

  • .rkvey v5 प्रारूप
  • आर्गन2आईडी व्युत्पत्ति
  • प्रमाणित एन्क्रिप्शन
  • सूचकांक खोजें
  • सुरक्षित प्रतिबद्ध
  • मेमोरी वाइप
  • क्रैश रिकवरी
Storage

फ़ाइल सिस्टम पर .rkvey v5 फ़ाइल

  • प्रस्तावना
  • एन्क्रिप्टेड हेडर
  • एन्क्रिप्टेड सूचकांक
  • गुप्त डिब्बे
  • संलग्नक
  • इतिहास प्रतिबद्ध करें

सुरक्षा layers

Unlock flow

Unlock एक strict pipeline follow करता है: master password Rust core में जाता है, Argon2id master key derive करता है, subkeys header और B-Tree index decrypt करते हैं। Entry compartments (secrets, attachments) encrypted रहते हैं और केवल ज़रूरत पर read होते हैं। Lock पर सारी keys और secrets memory से wipe हो जाते हैं।

मास्टर पासवर्ड + नमक

.rkvey प्रस्तावना (सादा पाठ)

  • रस्ट कोर (टौरी आईपीसी) में दर्ज किया गया - वेबव्यू के संपर्क में कभी नहीं आया
  • प्रस्तावना में संग्रहित यादृच्छिक नमक (16 बाइट्स)
केडीएफ

आर्गन2आईडी

  • 64 एमबी रैम · 3 इटर · पी=4 (डिफ़ॉल्ट `KdfParams`)
  • जीपीयू/एएसआईसी प्रतिरोध
  • प्लेटफ़ॉर्म के आधार पर कैलिब्रेटेड ~250-500 एमएस

सर्व - कुंची

256 बिट्स · `कीमैनेजर::व्युत्पन्न_मास्टर_की`

उपकुंजी व्युत्पत्ति

HKDF-SHA256(मास्टर, नमक=फ़ाइल∥प्रविष्टि, जानकारी=प्रकार)

हेडर_कुंजी

सुरक्षित शीर्षलेख

अनुक्रमणिका_कुंजी

बी-ट्री इंडेक्स

कम्पार्टमेंट_कुंजी

डिब्बों

एईएडी डिक्रिप्शन

  • AES-256-GCM या XChaCha20-Poly1305
  • हेडर · इंडेक्स · कम्पार्टमेंट (मांग पर)

अनलॉक के बाद मेमोरी

  • सूची/दृश्य: केवल मेटाडेटा
  • रहस्य और अनुलग्नक केवल मांग पर ही डिक्रिप्ट किए जाते हैं

ताला

  • `KeyManager::clear_keys()` + शून्यीकरण
  • रहस्य मिटा दिया गया और क्लिपबोर्ड साफ़ कर दिया गया

Threat model

QubKey local password manager के सबसे common threat scenarios के लिए बनाया गया है। तालिका attack vector और built-in countermeasure (.rkvey-v5 फ़ॉर्मैट) बताती है।

ThreatVectorQubKey response
Unauthorized file access.rkvey theft या copyAEAD encryption + Argon2id derivation
Network exfiltrationCloud intercept / MITMLocal-first: QubKey आपके secrets upload नहीं करता
Data corruptionwrite के दौरान crashValidated append-only commits + startup recovery
Vault tamperingmanual file editप्रति compartment AEAD authentication + checksums
Memory snapshot (browsing)vault open, list / viewsecrets तब तक encrypted जब तक आप reveal न करें
Weak master passwordoffline attemptsCalibrated Argon2id (~500 ms) + entropy meter
Password reuseदूसरी sites पर leaksSecurity dashboard (local detection)
Clipboard leakssecret copyClipboard timeout (30 s) + lock पर wipe
Side-channel attackcrypto ops timingConstant-time implementations (RustCrypto)

Best practices

यह model उन threats को cover करता है जिन्हें QubKey अपने architecture से directly address करता है। optimal protection के लिए QubKey को system best practices के साथ combine करें: disk encryption on, updated OS और strong master password।

Built-in protection

DomainQubKey आपके data की रक्षा कैसे करता है
Data at restAEAD (AES-256-GCM / XChaCha20), Argon2id key, प्रति compartment अलग key
Vault integrityValidated append-only commits, checksums और atomic writes
ConfidentialityZero-knowledge: secrets आपके device पर encrypted रहते हैं
Deferred decryptionlist और view में secrets नहीं; view / copy केवल ज़रूरत पर
Key derivationMaster password की रक्षा के लिए calibrated Argon2id (~500 ms, 64 MB)
ApplicationIsolated Rust core, Tauri IPC UI, lock पर zeroization
Browser extensionLocal Native Messaging — extension को master password कभी नहीं मिलता
SyncOptional encrypted multi-device sync (cloud या self-host) या encrypted .rkvey file (cloud, USB, NAS)

Trust architecture

Zero-knowledge

QubKey trust को कई complementary levels पर organize करता है:

  1. आप access control करते हैं — master password और optional recovery key vault access control करते हैं। QubKey उन्हें read या reset नहीं कर सकता।

  2. System integration — QubKey आपकी OS security use करता है: file permissions, disk encryption (FileVault, BitLocker, LUKS), secure storage (Keychain, Credential Manager) और process isolation।

  3. Rust / UI separation — सारी cryptography Rust core में compile-time memory safety के साथ चलती है। React UI Tauri IPC से communicate करती है; WebView को master password direct access नहीं।

  4. Cautious memory handling (v5) — unlock पर केवल header और index decrypt होते हैं। Secrets और attachments explicit action (view, copy, download) तक encrypted रहते हैं। Lock पर: zeroization और empty clipboard।

  5. Browser extension — Local Native Messaging; extension को master password कभी नहीं मिलता।

Protection features

Auto-lock

Configurable inactivity के बाद vault lock (default: 5 min)। Zeroization और clipboard wipe trigger करता है।

Deferred decryption

Entry secrets केवल view या copy पर decrypt होते हैं। List और view protected fields नहीं दिखाते।

Zeroization

Lock पर RAM से secrets wipe (Rust zeroize crate); caches clear, केवल on-demand ephemeral decryption।

Clipboard timeout

30 seconds बाद clipboard auto-clear। Vault settings में configurable।