Otwieramy design partner program. O programie

DEWELOPERZY

Suwerenna pamięć masowa z założenia architektury. Bez pisania ani linijki kryptografii.

Jedno SDK do szyfrowania po stronie klienta, w TypeScript: instalacja, wskazanie object storage, który już Państwo prowadzą, wdrożenie. Szyfrowanie, rozpraszanie i publiczne kotwiczenie dzieją się za czystym API, więc nic z tego nie jest kodem, który Państwo piszą, utrzymują albo bronią na przeglądzie bezpieczeństwa. Użytkownicy widzą po prostu pliki.

SZYBKI START

Instalacja, wskazanie, wdrożenie.

Inicjalizacja klienta, utworzenie projektu, wysłanie pliku, odczytanie go z powrotem. Wszystko poniżej linii API, wyprowadzanie kluczy, dzielenie na fragmenty, redundancja, kotwiczenie, to kod, którego nigdy Państwo nie piszą, nie testują ani nie łatają. A gdy przegląd bezpieczeństwa zapyta, co naprawdę siedzi w tych wywołaniach, odpowiedzią jest następna sekcja.

import { readFile } from "node:fs/promises";

import { DataPrismKey, DEFAULT_ENCRYPTION } from "@dataprism/sdk/crypto";
import { CloudStandard } from "@dataprism/sdk/standard";
import { FilePipeline } from "@dataprism/sdk/files";

// Client, providers, project and key secret, one config file in your project:
// docs.dataprism.co/sdk/client
import { client, providers, project, secret } from "./dataprism";

// Create a project: an encrypted namespace you control
const key = DataPrismKey.fromSecret(secret, DEFAULT_ENCRYPTION);
const standard = new CloudStandard(key);
const { cloudId } = await client.prism(standard).create(project);

// Upload: encrypted on this machine, dispersed with redundancy,
// integrity anchored on a public registry
const bytes = await readFile("contract.pdf");
const pipeline = new FilePipeline({
  standard,
  execution: client.execution,
  cloudId,
  providers,
});
const { index } = await pipeline.upload("contract.pdf", bytes, {
  chunkSize: 65_536,
  dataShards: 7,
  parityShards: 3,
});

// Download: shards fetched in parallel, reconstructed from any
// quorum, decrypted locally
const restored = await pipeline.download(index);

POD MASKĄ

Cztery etapy. Żadnej magii.

Zanim wdrożą Państwo warstwę szyfrowania, ktoś po Państwa stronie zapyta dokładnie, co opuszcza maszynę i co się dzieje, gdy dostawca zawiedzie. Oto pipeline stojący za upload(), etap po etapie, z odnośnikiem do strony dokumentacji, która niesie pełny szczegół każdego z nich. Tyle, żeby odpowiedzieć na ten przegląd bez czytania naszych źródeł.

  1. 01. DZIELENIE NA FRAGMENTY

    Dzielenie na fragmenty według treści

    Po edycji dużego pliku i ponownym wysłaniu w drogę idą tylko te części, które faktycznie się zmieniły: pliki są cięte na naturalnych granicach treści, a nie w stałych miejscach, więc jedno wstawienie nie tnie na nowo wszystkiego, co po nim następuje. Dostają Państwo ponowne wysyłki wielkości samej różnicy, bez utrzymywania własnego formatu różnic.

    Dzielenie na fragmenty, w dokumentacji pipeline plików
  2. 02. SZYFROWANIE

    Szyfrowanie konwergentne, na Państwa maszynie

    Każdy blok jest szyfrowany na Państwa maszynie, zanim cokolwiek ją opuści: żadnej usługi kluczy do postawienia, niczego do zdeponowania. Wyprowadzenie jest deterministyczne, więc niezmieniona treść jest rozpoznawana jako już zapisana: ponowne wysłanie przenosi tylko to, co faktycznie się zmieniło, a identyczna treść zajmuje pamięć masową raz, a nie raz na kopię.

    Szyfrowanie konwergentne, w dokumentacji pipeline plików
  3. 03. ROZPROSZENIE

    Redundancja rozłożona na niezależnych dostawców

    Zaszyfrowane fragmenty są rozszerzane o wybraną przez Państwa redundancję i rozpraszane pomiędzy skonfigurowanych przez Państwa niezależnych dostawców, więc awaria dostawcy albo porzucenie Państwa konta przez dostawcę pozostaje bez skutków, aż do tej redundancji. Żadnej własnej ścieżki przełączania do napisania, przećwiczenia i utrzymywania w zgodzie.

    Redundancja, w dokumentacji pipeline plików
  4. 04. KOTWICZENIE

    Zaplombowany indeks, zakotwiczony w rejestrze publicznym

    Kotwiczony jest zaszyfrowany indeks o stałym rozmiarze, niezależnie od wielkości pliku, a jego integralność nie opiera się na żadnym operatorze, także nie na nas: odczyty odtwarzają Państwa dane z dowolnego kworum fragmentów i odszyfrowują lokalnie. Pokazanie, że plik nie został zmieniony, jest wtedy kontrolą, którą przeprowadza pytający, a nie endpointem, który muszą Państwo zbudować i utrzymywać.

    Prisms i kotwiczenie, w dokumentacji
CYKL USUWANIA, KTÓRY MOŻNA POKAZAĆ

Usunięte znaczy: wyliczone, a potem usunięte

Gdy klient albo regulator pyta, czy usunięte naprawdę znaczy usunięte, mogą Państwo wskazać udokumentowany cykl zamiast pola wyboru w panelu: usuwanie jest opisane w dokumentacji SDK tak, aby wyliczyć każdy fragment pozostawiony przez plik, usunąć każdy z nich u jego dostawcy i zaraportować wszystko, co się nie powiodło, dostawca po dostawcy. To zadanie uzgadniania, którego nie muszą Państwo pisać ani utrzymywać.

Cykl usuwania, w dokumentacji SDK

JAK MYŚLI SDK

Jedno SDK do szyfrowania po stronie klienta, trzy gwarancje.

KLUCZE ZOSTAJĄ U PAŃSTWA

Wszystko, co wychodzi, jest szyfrogramem

Klucze bloków są wyprowadzane z samej treści, co sprawia, że ponowne wysłanie niezmienionych danych jest tanie. Indeks, który je składa, jest pieczętowany kluczem wyprowadzonym z sekretu pod Państwa kontrolą, a żaden z nich nigdy nie trafia do nas: wszystko, co SDK wysyła na zewnątrz, jest już zaszyfrowane. Dodanie dostawcy nigdy nie poszerza tego, co ktokolwiek może odczytać.

To, co widzi i czego nie widzi każdy z uczestników, opisano w naszej weryfikowalnej architekturze bezpieczeństwa.

NIEWIDOCZNE DLA UŻYTKOWNIKÓW

Żadnej kryptografii wystawionej użytkownikom końcowym

Żadna kryptograficzna instalacja nie jest wystawiana Państwa użytkownikom. Klucze i wykonanie zostają za logowaniem i interfejsem Państwa własnego produktu, więc nie pojawia się nowy krok w onboardingu ani nic dodatkowego, na co miałby odpowiadać Państwa zespół wsparcia. Dla nich to po prostu pamięć masowa, która akurat jest nieczytelna dla wszystkich innych.

UDOKUMENTOWANE OD POCZĄTKU DO KOŃCA

Kompletna, publiczna dokumentacja

Każda warstwa jest udokumentowana otwarcie na docs.dataprism.co: dokumentacja SDK, pipeline plików, kontrakty, uruchamialne przykłady w Node.js i Next.js. Kto potrafi przeczytać README, może nas ocenić, zanim w ogóle porozmawia z działem sprzedaży.

CELE INTEGRACJI

Wystarczy wskazać pamięć masową, którą już Państwo prowadzą.

Żadnego nowego dostawcy pamięci masowej do wdrożenia, żadnej migracji infrastruktury, żadnego protokołu do nauczenia: gdziekolwiek lądują fragmenty, pipeline stojący za SDK pozostaje ten sam. Dodanie albo usunięcie dostawcy to zmiana konfiguracji, nie projekt.

  • AWS S3

    Bucket, które już Państwo prowadzą, stają się celami rozproszenia zaszyfrowanych fragmentów.

  • CLOUDFLARE R2

    Niezależny dostawca, który poszerza zbiór rozproszenia.

  • SCALEWAY

    Europejski object storage jako niezależny cel rozproszenia.

  • ON-PREM

    Object storage prowadzony przez Państwa samych dołącza do tego samego zbioru.

Zacząć od dokumentacji.

Ta strona pokazuje kształt systemu. Dokumentacja schodzi do samego dołu: pełna dokumentacja SDK, wnętrze pipeline i uruchamialne przykłady w Node.js i Next.js.