L'API di nuova generazione per lo streaming e l'archiviazione video sicura su Google Cloud. I file vengono crittografati sul client: i tuoi video rimangono completamente invisibili a noi e a Google.
Spostiamo l'intera potenza di calcolo di transcodifica, cifratura e decifratura direttamente sui client. I nostri server e Google Cloud rimangono matematicamente ciechi.
L'SDK JavaScript elabora il video direttamente sul dispositivo di chi lo carica. Viene convertito preventivamente nelle risoluzioni web standard (1080p, 720p, 480p) e diviso in piccoli blocchi (chunk) da 4-5MB nella memoria RAM. Ciascun chunk viene cifrato all'istante usando le Web Crypto API con algoritmo industriale AES-GCM a 256 bit prima di essere caricato su Google Cloud Storage tramite URL pre-firmate. Nessun frame viaggia mai in chiaro sulla rete o tocca i nostri server.
Vengono generate chiavi simmetriche univoche per ogni singola risoluzione del video (Video Keys). Queste chiavi vengono crittografate (wrapped) localmente usando una Master Key derivata sul dispositivo e mai condivisa con il backend. Il database di zkast.io (Firestore) memorizza esclusivamente le chiavi dei video già crittografate. Nemmeno gli ingegneri di zkast.io o di Google possono decifrare i video perché non possiedono la Master Key di sblocco.
All'avvio della riproduzione, l'API rileva la qualità della connessione dello spettatore e fornisce le Signed URL di Google Cloud, con scadenza a 10 secondi e limitate per IP, per la risoluzione ottimale. Il player scarica direttamente i chunk cifrati e il browser fa una sola cosa: decifrare al volo i byte in RAM e iniettarli nel tag <video> tramite le Media Source Extensions (MSE), garantendo una riproduzione immediata e senza sforzi per la CPU.
Perché l'architettura Zero-Knowledge sul client supera qualsiasi piattaforma di streaming tradizionale.
Le piattaforme tradizionali decifrano i video sui server durante la conversione, annullando la privacy. Con zkast.io, transcodifica e crittografia avvengono solo sul tuo dispositivo. I nostri server sono matematicamente ciechi.
I server video con GPU costano moltissimo. Archiviando versioni pre-cifrate (1080p, 720p, 480p) ed elaborando i file direttamente sul client, abbattiamo del 90% i costi operativi, garantendoti tariffe di streaming imbattibili.
I video sono distribuiti in blocchi crittografati in RAM e riassemblati al volo. Questo impedisce alle estensioni del browser e ai software di scraping di intercettare il file sorgente, offrendoti una protezione anti-pirateria naturale.
Ogni link di streaming scade dopo soli 10 secondi ed è vincolato rigidamente all'IP dello spettatore. Condividere l'URL su Telegram, WhatsApp o forum pirata è del tutto inutile.
Forniamo un Web Component nativo pronto all'uso. Ti basta importare lo script dell'SDK e utilizzare il tag HTML personalizzato <zkast-video-player> passando l'ID del video e la chiave di decodifica. Il player gestisce in autonomia l'Adaptive Bitrate Streaming e la decrittazione in RAM.
<!-- 1. Importa lo script del player -->
<script type="module" src="https://cdn.zkast.io/player.js"></script>
<!-- 2. Utilizza il tag nativo Zero-Knowledge -->
<zkast-video-player
video-id="zk_vid_89304a9e23"
master-key="5f89e102...41b"
controls
autoplay
></zkast-video-player>
import { ZKastClient } from '@zkast/sdk';
// 1. Inizializza il client con la tua API Key
const zkast = new ZKastClient({ apiKey: 'zk_live_gcs_892jf...' });
// 2. Crea uno stream cifrato (la chiave AES-256 è generata in locale)
const stream = await zkast.streams.createEncryptStream({
source: videoFile,
userSecretKey: 'il_tuo_segreto_personale_privato'
});
// 3. Ottieni l'URL protetto pronto per la riproduzione
console.log(`Secure stream url: ${stream.manifestUrl}`);
from zkast import ZKastClient
# 1. Inizializza il client
client = ZKastClient(api_key="zk_live_gcs_892jf...")
# 2. Carica e cifra il video localmente
stream = client.streams.create_encrypted_stream(
file_path="./video.mp4",
encryption_key="il_tuo_segreto_personale_privato"
)
# 3. Ottieni l'endpoint dello streaming HLS sicuro
print(f"Stream manifest URL: {stream.manifest_url}")
# Cifra localmente e invia il payload tramite API zkast.io
curl -X POST "https://api.zkast.io/v1/streams" \
-H "Authorization: Bearer zk_live_gcs_892jf..." \
-H "X-ZK-Client-Hash: a4f9e010cb23..." \
-F "file=@secured_chunk_001.bin"
# Output: {"status":"success","chunk_stored":"gcs://bucket/..."}
Tutto quello che c'è da sapere sulla tecnologia e la sicurezza di zkast.io.
Per due motivi vitali. Primo: la privacy. Se convertissimo il video sul server, dovremmo decifrarlo in chiaro nella memoria RAM del server, violando il principio Zero-Knowledge. Secondo: l'economia. Lo storage cloud è estremamente economico, mentre i server di elaborazione video live sono incredibilmente costosi. Pre-convertire il video prima di cifrarlo sul client ci permette di abbattere i costi di calcolo del 90% e trasferire questo risparmio direttamente su tariffe di streaming imbattibili.
No. Il player scarica solo la risoluzione adatta alla banda dell'utente in quel momento (esattamente come fa YouTube). La decrittazione AES-GCM viene eseguita nativamente dalle Web Crypto API, che sfruttano le istruzioni hardware del processore del dispositivo (scritte in C++). Il consumo di risorse e di batteria è del tutto identico a quello di una riproduzione standard.
Sì. Essendo una tecnologia Zero-Knowledge pura, non conserviamo alcuna password o Master Key in chiaro sui nostri server. Se il cliente perde la sua Master Key, i video non potranno essere recuperati o decifrati in alcun modo, nemmeno dai nostri ingegneri o da Google. Questa politica rigida è l'unica garanzia che nessuno possa forzare l'accesso non autorizzato.
Siamo in fase di beta chiusa. Registra la tua email adesso per ricevere un invito esclusivo non appena l'API di zkast.io sarà attiva.