Privicore
  1. Storage
Privicore
  • Privicore API
  • Utility
    • Utility
    • Check server health
      GET
    • Request command id status
      GET
  • Profile
    • Profile Model and Authentication Workflow
    • Register new profile
      POST
    • Authenticate
      POST
    • Retrieve profile id
      GET
    • Change password
      POST
    • Generate qr token for authorization
      POST
    • Reauthorize authorization token
      POST
    • Revoke authorization token
      POST
    • Retrieve token expiry
      POST
  • OAuth Application
    • OAuth Application Management
    • Register OAuth Application
      POST
    • Retrieve OAuth app configuration
      POST
    • Request OAuth app authorization code
      GET
    • Retrieve OAuth app authorization code
      POST
    • Obtain OAuth app access token
      POST
    • OAuth application list
      GET
    • Retrieve OAuth application scope
      GET
    • Refresh OAuth app access token
      POST
  • Public key
    • Public and Private Key Management
    • Generate your private and public keys
    • Register public key
    • Retrieve public key
    • Retrieve CAB public key
  • Data Token
    • Data Token Management
    • Reserve token space
    • Retrieve temporary data token
    • Exchange data for token
    • Upstream file via stream auth
    • Request data via token
    • Download data
    • Configure information security risk meta
    • Configure file meta
    • List data tokens
    • Update data token
    • Delete data
  • Device
    • Device Management
    • Request unique identifier (i.e. Register new device)
    • Retrieve unique identifier
    • Retrieve profile devices
    • Configure device meta
    • Approve device
    • Reject device
    • Retrieve device configuration
    • Remove device
  • Storage
    • Storage Device Management
    • Register storage device
      POST
    • List storage devices
      GET
    • Synchronize device
      POST
    • Remove storage
      POST
  • Verified authenticator
    • Authenticator and Voting Management
    • Register authenticator
    • List verified authenticators
    • Retrieve voting strategy
    • Set quorum size
    • Set quorum strategy
    • Set voting time limit
    • Set maximum voting attempts
    • Remove authenticator
    • Register voting configuration
    • Update voting configuration
    • List voting configurations
    • Retrieve voting configuration
  • Policy
    • List policy templates
    • Register policy
    • List active policies
    • List inactive policies
    • Activate policy
    • Deactivate policy
    • Delete policy
    • List registered policies
    • Retrieve registered policy
  • Directory
    • Register Directory
    • Retrieve owned Directories
    • Retrieve assigned directories
    • Retrieve Directory
    • Create Directory User
    • Update user information
    • Invite Profile
    • Set profile password
    • List Directory Invites
    • Process Invitation
    • Retrieve directory profile
    • List directory users
    • Directory profiles info
    • Create profile device
    • Add storage device to profile
    • List directory devices
    • Create directory voting pool
    • Store directory meta information
  • Voting
    • Create voting
    • Check pool status
  • Schemas
    • Response
      • CommandAccepted
      • Unauthorized
      • ValidationErrors
    • Schemas
    • profileId
    • deviceIdentifier
    • directoryId
    • directoryName
    • directoryShortName
    • givenName
    • familyName
    • createdAt
    • meta
  1. Storage

Storage Device Management

Introduction#

Storage Devices are specialized devices that receive, store, and provide encrypted data on behalf of user profiles. They form a critical component of the distributed storage architecture, enabling secure, multi-device data access with offline capability.

What Are Storage Devices?#

A Storage Device is a registered device that has been specifically configured to participate in data storage operations. Storage Devices:
Receive encrypted data when data tokens are exchanged
Store encrypted data locally outside the Privicore environment
Provide encrypted data back to Privicore when requested via token
Participate in the multi-layer encryption/decryption chain
Operate independently and can function offline

Storage Registration Process#

After a device is registered and approved under a user's profile, it must be explicitly registered as a Storage device to participate in data storage operations.

Registration Flow#

Device Registered & Approved
         ↓
Register as Storage Device → Storage Profile Created
         ↓
Device Begins Receiving Encrypted Data
         ↓
Device Stores Data Locally
         ↓
Device Provides Data on Request

How Storage Devices Work#

Data Distribution#

When an application exchanges data for a token:
1.
Application encrypts data and sends to Privicore
2.
Privicore encrypts data with its own key
3.
Privicore identifies all registered Storage devices for the user
4.
Encrypted data is routed to each Storage device via RabbitMQ
5.
Each Storage device encrypts data again with its own key
6.
Storage device stores the multi-layer encrypted data locally

Data Retrieval#

When data is requested via token:
1.
Application requests data using the token
2.
Privicore identifies which Storage devices have the data
3.
Privicore requests encrypted data from available Storage devices
4.
Storage device decrypts with its private key and sends to Privicore
5.
Privicore decrypts with its private key and sends to application
6.
Application decrypts with its private key to access plaintext

Storage Device Capabilities#

Distributed Redundancy#

All Storage devices under a user's profile receive the same source data from Privicore. However, each Storage device encrypts this data with its own private key, meaning the actual encrypted data stored on each device is unique. This provides:
Redundancy: Data remains accessible even if individual devices are offline
Multi-device Access: Same source data available from multiple locations
Fault Tolerance: Device failure doesn't result in data loss
Device-Specific Encryption: Each device stores a uniquely encrypted version, preventing cross-device data compromise

Offline Operation#

Storage devices can operate without continuous connection to Privicore:
Data is stored locally and persists during offline periods
Devices sync with Privicore when connectivity resumes
Local data remains encrypted and secure during offline operation

Synchronization#

Storage devices can synchronize their state with Privicore to:
Verify data integrity
Update local storage with new data
Report storage capacity and status
Reconcile any data discrepancies

Storage Management Operations#

Register Storage Device#

Convert an approved device into a Storage device, enabling it to receive and store encrypted data.

List Storage Devices#

Retrieve all Storage devices registered under the profile, including status and configuration.

Synchronize Device#

Trigger synchronization between a Storage device and Privicore to ensure data consistency.

Remove Storage#

Deregister a Storage device, preventing it from receiving new data. Existing data on the device remains encrypted but inaccessible.

Multi-Layer Encryption with Storage#

Storage devices add an encryption layer to the data:
Original Data
    ↓ [Application encrypts]
Application-encrypted Data
    ↓ [Privicore encrypts]
Privicore-encrypted Data
    ↓ [Storage Device encrypts with device-specific key]
Device-encrypted Data (stored locally - unique per device)
Decryption requires the reverse process:
Device-encrypted Data
    ↓ [Storage Device decrypts with private key]
Privicore-encrypted Data
    ↓ [Privicore decrypts with private key]
Application-encrypted Data
    ↓ [Application decrypts with private key]
Original Data
No single actor can decrypt the data independently - the full chain is required.

Use Cases#

Personal Cloud Storage#

User registers their laptop, phone, and home server as Storage devices. All three receive the same source data but store uniquely encrypted versions, enabling access from any device.

Distributed Backup#

Multiple Storage devices across different physical locations provide geographic redundancy. Each device stores its own encrypted version, so compromising one device doesn't compromise others.

Offline Data Access#

Mobile devices function as Storage devices, caching encrypted data locally for offline access. Data syncs when connectivity is available.

Enterprise Data Distribution#

Organization deploys Storage devices across regional offices, ensuring local data availability while maintaining centralized encryption control through Privicore.

Security Considerations#

Storage devices must have registered public keys to receive encrypted data
Each Storage device encrypts data with its own key - stored data is unique per device
Removing a Storage device doesn't delete local data, but makes it inaccessible without the full decryption chain
Storage devices can only decrypt data they have stored - they cannot access other users' data
Compromising one Storage device doesn't compromise data on other devices
All data transmission between Privicore and Storage devices occurs over encrypted channels

Storage Device Lifecycle#

Device Approved → Register as Storage
         ↓
Receive RabbitMQ Configuration
         ↓
Listen for Encrypted Data
         ↓
Encrypt with Device Key & Store Locally
         ↓
Provide Data on Request (decrypt device layer)
         ↓
Synchronize Periodically
         ↓
Remove Storage (optional) → Stop Receiving New Data
Modified at 2025-12-25 10:06:15
Previous
Remove device
Next
Register storage device
Built with