Sitemap

Session

2 min readAug 17, 2025

--

I came to the conception of Session through rethinking the backup process.

From backup to session

Backup is a part of session. Restore + Store + Backup = Session, where Restore is Session.start() and Backup is Session.end().

Storage

The best place for storage is memory. It’s more safe to store vulnerable data in memory for many reasons:

  1. Memory storage is a temporary storage.
  2. The memory get’s erased every time system reboots.
  3. It’s harder to find something in memory.

Advantages of session

  1. Compact and encrypted key storage in one place.
  2. You can end the session in any time and all evidences of your communication will be erased.
  3. You can store Node name, Seed and Secret file name on paper or in your mind.

Session Sequence

  1. Start()
    — DOWNLOAD secret file.
    — DECRYPT secret file using SEED.
    — STORE keys in SHARED MEMORY.
  2. Store()
    — Do the stuff inside session and save modifications in keys inside SHARED MEMORY.
  3. End()
    — ENCRYPT keys from SHARED MEMORY to SECRET FILE using SEED.
    — UPLOAD secret file into NODE.

Registration

Let’s take a closer look to registration process. Registration and Authentication is made using token system more detailed described here. Registration sequence:

  1. Show token <node_url>/node/token
  2. Wait TOKEN TIME
  3. Show TOKEN ADDRESS <node_url>/node/token/token_id
  4. Pay TOKEN ADDRESS needed sum in NCH
  5. Generate Keys (Authentication keypair, FS structure, etc …)
  6. Generate SECRET FILE SEED
  7. Encrypt keys into SECRET FILE
  8. Upload SECRET FILE with keys
  9. Show <Node name, SECRET FILE name, SEED> and save them to password manager or write down them to a piece of paper (recomended).

Terminology

  1. Session — A sequence of actions (Restore + Store + Backup)
  2. Node — Ness service node with File Service
  3. Secret file — Encrypted file with pseudo-random name and keys stored on Ness Service Node
  4. Seed — Cryptographical SEED used to generate a key.
  5. Shared memory — A place in the memory where keys are decrypted from Secret file and modified by User.
  6. Keys — Keys with different data (cryptographical keys+data) needed to work with node.

--

--

Aleksej Sokolov
Aleksej Sokolov

Written by Aleksej Sokolov

Ideologist & Main Developer at PrivateNess