ClicInSitu
Sicurezza e privacy

Il formato di file .clicinsitu

Un modello condiviso dall'app, o fornito da MVT Conseil, viaggia in un file .clicinsitu. Questo file è codificato e firmato, non cifrato: può rileggerlo senza di noi.

Cosa c'è nel file

  1. Una sola riga di testo UTF-8: CLICINSITU_PACK_V1:<contenuto>[.<firma>]. Estensione .clicinsitu, tipo application/vnd.clicinsitu.
  2. Il contenuto: i modelli in formato JSON, compressi (gzip) e poi scritti in base64url senza padding, esattamente la stessa codifica dei QR code di modello.
  3. Il JSON: un elenco di modelli, oppure un oggetto {"schema": "clicinsitu/pack/v1", "meta": {…}, "models": […]}. I nomi dei modelli, le informazioni richieste, i destinatari e i testi delle email vi si leggono in chiaro.
  4. La firma, facoltativa: ECDSA P-256 (SHA256withECDSA) dei byte del contenuto, con la chiave di MVT Conseil. Valida: l'app mostra «Modello certificato ClicInSitu». Assente: «Modello condiviso da un utente». Presente ma non valida: il file viene rifiutato.
  5. I limiti: 512 KB per file, 2 MB di JSON, 100 modelli, e gli stessi controlli di un QR code. Un file non attiva la Configurazione bloccata e non contiene alcun codice PIN.

Rileggere un file

Per rileggerlo non serve l'app: bastano tre righe di Python.

import base64, gzip, json
contenuto = open("modele.clicinsitu", encoding="utf-8").read().strip().split(":", 1)[1].split(".")[0]
print(json.dumps(json.loads(gzip.decompress(base64.urlsafe_b64decode(contenuto + "=="))), indent=2, ensure_ascii=False))

Chiave pubblica per la verifica delle firme (X.509, base64):

MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErIab062yMtMF0y1xXYI3OVA6Nsl6Ec3FW3nFWlgm9wuOlNo9HJdOjp+4YNpkctfFt443k5gstoMw1/ljh8W/uw==

Formato documentato, nessuna dipendenza: i Suoi modelli sono Suoi. La firma dice da dove viene un file, non ne nasconde nulla.

Torni a Sicurezza e privacy.