Skip to content

5 Collaudo DevTools

Valentino Aglianรณ edited this page Jun 25, 2026 · 28 revisions

๐Ÿ”ฅ Capitolo 4: La Prova del Battesimo di Fuoco ( Debug & Log ๐Ÿž๐Ÿ“Š )

Il collaudo e la manutenzione del motore โš™๏ธ๐Ÿช– Panzer v7.6+ all'interno delle infrastrutture della Pubblica Amministrazione richiedono un monitoraggio rigoroso tramite i DevTools (F12), applicando il protocollo di hardening e la sterilizzazione forense dei log ( ๐Ÿ•ณ๏ธ Black-Hole ).

Warning

โžก๏ธ Falsi Positivi in Debug: Quando i DevTools di Chrome sono aperti con l'opzione ๐Ÿšซ๐Ÿ’พ "Disable cache" attiva, il Service Worker potrebbe bypassare le logiche del Bunker. Disattiva questa opzione per i test di resilienza reale.

โš ๏ธ Configurazione: getNetworkProfile richiede monitoraggio RTT. Non disabilitare le API di rete.

Caution

๐Ÿ›‘ NOTA: โš™๏ธ๐Ÿช– Panzer v7.6+: Non alterare le costanti di cifratura *var encryptionKey ** o le soglie minAbsoluteByte in fase di runtime; il protocollo ๐Ÿ•ณ๏ธ Black-Hole interpretando la manipolazione come tentata iniezione, attiverร  automaticamente la Purga Atomica.


๐Ÿ“Š Tassonomia dei Log di Logistica e Storage

  • โฏ๏ธ๐Ÿ•ต๏ธ Durante le sessioni di ispezione attiva, ๐Ÿ‘ฉโ€๐Ÿ’ป l'operatore tecnico deve fare riferimento alla seguente ๐Ÿ—บ๏ธ mappatura semantica delle stringhe generate nativamente dal Service Worker nei log di console:
๐Ÿ”น๐Ÿ“„ Log
Alcuni esempi di Log di Console ( SW Panzer v7+ ๐Ÿช–) โ–ถ๏ธ Innesco Operativo
๐Ÿ“ฆ๐Ÿ›ก๏ธ SW: Risorsa validata e salvata: ${targetUrl} Successo cache.
๐Ÿ’พ๐Ÿ›ก๏ธ SW: Risorsa estratta dal, ${targetCache} Decrittazione in RAM.
๐Ÿ›ก๏ธ๐Ÿงน SW: Bonifica RAM eseguita per: ${finalPath} fill(0) anti Memory ispection
โš ๏ธ SW Security: Firma fallita per ${url} Errore firma.
๐Ÿ“„โŒ SW: Fallimento validazione/download su: ${url} Violazione soglie/dimensioni.
๐ŸŒโŒ SW: Offline in ${mode} (Profilo: ${profileName}) Stato resilienza.
๐Ÿ”„ SW: Background Sync avviato... Sincronizzazione async.
๐Ÿšจ SW: Storage Pieno! - Emergency Clean... Gestione QuotaExceeded.
โš ๏ธ SW: ErrorPage B64 Not Blob... Errore fallback grafico.
๐Ÿ—„๏ธ๐Ÿšจ SW: COMPROMISSIONE RILEVATA! ACTIVATION_ABORTED_SECURITY_BREACH Purga atomica.
๐Ÿ—„๏ธ๐Ÿ”ฅ SW: Tabula rasa completata con successo. Risultato della Purga atomica.
โš ๏ธ๐Ÿ’ฃ ANOMALIA CRITICA: Vault compromesso, chiave sparita! DB presente ma chiave assente...
โŒ๐Ÿ›ก๏ธ SW: Errore durante la cifratura del file. Errore di Cifratura con (throw err).per il chiamante try/catch
โŒ๐Ÿ›ก๏ธ SW: Fallimento decrittazione. Dati non integri o chiave errata. throw new Error("VAULT_LOCKED_DECRYPTION", { cause: err }.
๐Ÿ“œ๐Ÿ“ฆ SW: TTL Scaduto, Del: ${request.url} Pulizia dei dati non cifrati ogni X giorni.
๐Ÿงน SW: UserCache svuotata, recupera spazio critico. Usata quado interviene: QuotaExceeded
๐Ÿ”‘ SW: Primo avvio, inizializzazione chiave. Creazione Della Key_master.
๐Ÿ›ก๏ธ๐Ÿ” SW: Check di Sicurezza... Avvio Controllo di Integritร  sulla Key_master .
๐Ÿ›ก๏ธโœ… SW: Integritร  Bunker confermata. Controllo di Integritร  sulla Key_master, Riscontro negativo di Manipolazione/Corruzione.
๐ŸŒ๐Ÿ‘ฎโ€โ™‚๏ธ SW: Rete Degradata, [ ${profileName} ].\n SWR(Stale-While-Revalidate), ON per continuitร  operativa... profili di rete degradati Low & VeryLow forzati ad usare SWR come strategia di resilienza...

๐Ÿ“ฆ Identificazione dei Magazzini di Memoria

๐Ÿ”น๐Ÿ“ฆ๐Ÿ›ก๏ธ (Bunker), ( mappato in `CONFIG.cacheName` )
Indica operazioni di lettura, scrittura o ripristino di un asset di sistema core.

๐Ÿ”น Questa zona รจ protetta da cifratura hardware-assisted AES-GCM ๐Ÿ”‘, isolata e vitale per il funzionamento offline.

๐Ÿ”น Il frontend riceve queste risorse marchiate dall'header personalizzato:
`X-PWA-Source: Bunker-Decrypted`
๐Ÿ”น๐Ÿ“ฆ๐Ÿ”“ (Magazzino), ( mappato in `CONFIG.userCacheName` )
๐Ÿ”น Indica la gestione delle risorse utente sussidiarie. รˆ un'area di storage dinamica, volatile, non cifrata e sacrificabile in caso di emergenza, vincolata al ciclo di vita di `CONFIG.userCacheTTL`.

๐Ÿšจ Protocollo di Emergenza e Purga

  • ๐Ÿคจ In presenza di anomalie hardware o tentativi di manipolazione ( ES: iniezione di chiavi corrotte ๐Ÿ”‘๐Ÿชฑ ), il motore esegue il protocollo distruttivo definito nel diagramma sottostante:
๐Ÿ”น๐Ÿ’พ๐Ÿšจ Scattato `QuotaExceededError` ( Memoria Piena )
๐Ÿ”น โ— Causa: Il dispositivo client ha esaurito lo spazio disco. Durante il download o la cifratura degli asset pesanti la scrittura fallisce.

๐Ÿ”น โœ… Azione: Poichรฉ il test del canarino eseguito all'avvio in RAM ha giร  dovuto convalidare l'integritร  del Vault, il sistema interrompe la sincronizzazione in modo pulito.

๐Ÿ”น Nessuna purga viene avviata, preservando l'integritร  dei file giร  archiviati.
๐Ÿ”น๐Ÿ—„๏ธ๐Ÿšจ๐Ÿ’ฃ `VAULT_SECURITY_BREACH_INTEGRITY` (Purga Atomica)
๐Ÿ”น โ— Causa: Rilevata alterazione strutturale dei byte della chiave master, fallimento del test crittografico di decrittazione sul Canary Data, oppure totale e inspiegabile assenza del record della chiave da IndexedDB a Service Worker giร  inizializzato.

๐Ÿ”น โœ… Azione del software ( Tabula Rasa & Reset ): Il Service Worker attiva il protocollo distruttivo immediato:
Cancellazione radicale di tutte le cache (`CONFIG.cacheName` e `CONFIG.userCacheName`), rasa al suolo l'intera struttura di IndexedDB (`PWA_Vault`), azzera le variabili in RAM ed emette un segnale broadcast.
sequenceDiagram
    participant SW as โš™๏ธ Guardiano (SW)
    participant CA as ๐Ÿ’พ Magazzino (Cache)
    participant DB as ๐Ÿ—„๏ธ Caveau (DB)
    participant FE as ๐Ÿ–ฅ๏ธ Schermo (App)

    Note over SW: Rilevato pericolo/corruzione
    SW->>CA: ๐Ÿงน "Butta via tutto!"
    SW->>DB: ๐Ÿงจ "Distruggi il caveau!"
    SW->>SW: ๐Ÿง  "Pulisci la memoria RAM"
    SW->>FE: ๐Ÿ“ข "Ricarica tutto da zero!"
Loading
๐Ÿ”น๐Ÿ—๏ธโš™๏ธ Effetto Nuova Installazione:
๐Ÿ”น ๐ŸŒ๐Ÿ†• Il browser si ritrova davanti a una tabula rasa assoluta e avvia un ciclo di re-installazione ex-novo.

๐Ÿ”น โ„น๏ธ Se la comunicazione diretta con il frontend dovesse fallire durante la crisi, l'effetto si concretizza in modo deterministico alla primissima riapertura o aggiornamento manuale dell'applicazione da parte dell'utente, costringendo il sistema a ripartire da uno stato nativo pulito e a riscaricare tutti gli asset core integri direttamente dal server d'origine.

๐Ÿ”น ๐Ÿ“ต Nel caso limite in cui la rete sia totalmente assente e il re-fetch fallisca, il motore si isolerร  definitivamente nello stato logico protetto `VAULT_LOCKED_NO_KEY`, dirottando l'erogazione verso `CONFIG.fallbackImage` o stampando la pagina d'emergenza HTML 503.

๐Ÿ› ๏ธ Protocollo di Collaudo Operativo

  • Chiunque puรฒ testare la reattivitร  e l'affidabilitร  del sistema seguendo questa batteria di test guidati direttamente dai DevTools del browser.
๐Ÿ”น1. ๐Ÿ‹๏ธโ€โ™‚๏ธ Test di Stabilitร  Asincrona ( Cold Start )
๐Ÿ”น Verifica che il riavvio forzato del motore non provochi perdite di dati o falsi positivi.

๐Ÿ”น Apri i DevTools (`F12`) -> scheda Application -> Service Workers.

๐Ÿ”น Clicca sul pulsante Stop ( il pallino verde diventerร  bianco, svuotando la RAM del Worker ).

๐Ÿ”น Torna sulla pagina e premi `F5` per ricaricare.

๐Ÿ”น Risultato atteso:
Il Service Worker si riavvia, rileva `lastVaultCheck = 0`, esegue immediatamente `deepVaultValidation()`, estrae la ๐Ÿ”‘ chiave intatta dal disco e convalida il canarino.
L'applicazione si avvia normalmente senza alcun errore crittografico.
๐Ÿ”น2. โš ๏ธ๐Ÿ“ฆ Test di Isolamento per Spazio Pieno ( Quota Exceeded )
๐Ÿ”น Verifica che la saturazione della memoria non inneschi per errore la purga.

๐Ÿ”น Nei DevTools, vai sulla scheda Application -> menu Storage (Archiviazione).

๐Ÿ”น Spunta la casella "Simulate custom storage quota" e imposta il limite a 1 MB.

๐Ÿ”น Svuota la cache e ricarica la pagina (`F5`) per forzare la sincronizzazione `performSync`.

๐Ÿ”น Risultato atteso:
La scrittura dei file pesanti fallisce generando un'eccezione, ma la console mostra che il Vault รจ stato promosso come integro. Nessun log di purga compare, le vecchie cache non vengono toccate.
๐Ÿ”น3. ๐Ÿ—๏ธ Test di Violazione per Chiave Rimossa ( NOVITร v7.6+ ๐Ÿช– )
๐Ÿ”น Obiettivo Forense: Verificare la reazione autonoma del Service Worker in caso di ๐Ÿ”‘โŒ๐Ÿ’พ Rimozione dolosa della chiave master dal disco, distinguendo tra rallentamenti hardware (I/O Throttle) e attacchi reali.

๐Ÿ”น Procedura Operativa di Test:
1. Nei DevTools di Chrome, navigare nel pannello Application -> IndexedDB -> `PWA_Vault` -> `keys`.
2. Selezionare il record master_key e premere il tasto Canc.
3. In Service Workers, cliccare su Stop per forzare il kill del processo e la purga della RAM.
4. Ricaricare la pagina con `F5`.

๐Ÿ”น Risultato Atteso:
Al boot, deepVaultValidation() attiva una Promise.race tra la query al database e waitTillIdle() con ๐ŸŽฒ Jittering (250ms-600ms).

Il sistema isola lo stato in due scenari:

๐Ÿงฑ SCENARIO A ( Falso Positivo - I/O Stress ): Se l'I/O del dispositivo รจ bloccato, lo ๐ŸŒก๏ธ๐Ÿ›ก๏ธ Scudo Termico vince la gara. Il Panzer attiva il Bunker Shield ( Blocco 403 ) per congelare la sessione a scopo cautelativo, MA NON esegue la purga โ›”๐Ÿ’ฃ, preservando l'integritร  dei dati cifrati in attesa di ripristino stabilitร .

๐Ÿ’ฅ SCENARIO B ( Vero Attacco - I/O Stabile ): L'anomalia dolosa รจ confermata al 100% ๐Ÿšจ, Il canale risponde istantaneamente, confermando l'assenza della chiave ( isIOStable = true ). Il protocollo della v7.6+ ๐Ÿช– scatta immediatamente:
โ€ข Attivazione Black-Hole ๐Ÿ•ณ๏ธ: Sterilizzazione forense dell'errore tramite oggetto SecurityOrchestrationError anonimizzato.
โ€ข ๐Ÿ’ฃ Purga Atomica Immediata: Esegue Destroy_ALL_Caches("VAULT_COMPROMISED") e indexedDB.deleteDatabase("PWA_Vault").
โ€ข Bonifica & Blocco: Sovrascrittura RAM (`.fill(0)`) ๐Ÿงผ๐Ÿงน, chiusura sessione e rendering forzato di HTTP 403 Forbidden, impedendo ogni ricostruzione forense della logica violata.
๐Ÿ”น4. ๐Ÿชฑ๐Ÿ”‘ Test di Violazione per Chiave Corrotta ( ๐Ÿ’‰ Iniezione di Codice )
๐Ÿ”น Verifica la reazione se i byte della chiave vengono manipolati dall'esterno.
Poichรฉ la chiave รจ protetta nativamente in sandbox hardware/software con `extractable: false`, per simulare la corruzione รจ necessario iniettare un Oggetto sostitutivo fasullo tramite console.

๐Ÿ”น Nei DevTools, posizionati sulla scheda Console

๐Ÿ”น Sblocco del Browser ( Protezione Self-XSS ):
Se la console blocca l'incolla ๐Ÿšซ๐Ÿ“‹, digita manualmente a schermo la stringa `consenti incolla` (o `allow pasting` se il browser รจ in inglese) e premi Invio.

๐Ÿ”น Copia e incolla il seguente script d'iniezione e premi Invio:
let req = indexedDB.open("PWA_Vault", 1);
req.onsuccess = function(e) {
    let db = e.target.result;
    let tx = db.transaction("keys", "readwrite");
    let putReq = tx.objectStore("keys").put({ finta_chiave: "dati_corrotti_12345" }, "master_key");
    putReq.onsuccess = function() {
        console.log("๐Ÿชฑ๐Ÿ”‘๐ŸŽฏ Chiave corrotta iniettata con successo nel DB!");
        db.close();
    };
};

  • ๐ŸŽฏ Per forzare la verifica delle routine di rete, si raccomanda di configurare il pannello Network dei DevTools emulando profili di connessione degradati (es. Fast 3G o Slow 3G).

  • โœ… Questo permette di validare visivamente il corretto funzionamento della routine getNetworkProfile, l'estrazione dei limiti da CONFIG.networkResilient.profiles e lo scatto automatico dei relativi timeout dinamici.

Tip

๐ŸŒŒ๐Ÿ›ก๏ธ SIMULAZIONE DEL TOTAL BLACKOUT NEI TEST DI COLLAUDO:

๐ŸŽš๏ธ Nel pannello Application -> Service Workers dei DevTools, spunta la casella "Offline" e monitora i log.

Se il sistema รจ a regime, vedrai comparire esclusivamente stringhe con il marcatore ๐Ÿ“ฆ๐Ÿ›ก๏ธ [Bunker-Decrypted], a testimonianza del fatto che la PWA sta girando in Totale isolamento dal server e decifrando le risorse al volo via Web Crypto API.


โ†ฉ Torna alla Home ๐Ÿ 

๐Ÿ‘ˆ ๐Ÿ›๏ธ Perchรฉ la PA deve adottare
l'Architettura ๐Ÿช– Panzer v7+

  • ๐Ÿƒ Studio comparativo sul risparmio economico, indipendenza tecnologica (No Vendor Lock-in ๐Ÿšซ๐Ÿ”’) e sicurezza dei dati dei cittadini.

๐Ÿ‘‰ ๐Ÿ›ก๏ธ Capitolo 5:
Paradigma Difensivo Avanzato
e Logiche di Autodifesa

  • Ingegneria inversa del rischio applicata al web. Analisi dei vettori d'attacco client-side, mitigazione del tampering e protocolli di ๐Ÿงฝ Zeroization (Purga Atomica ๐Ÿ’ฃ๐Ÿ’ฅ).

๐Ÿ—‚๏ธ Indice Rapido Wiki

  • ๐Ÿ  Home
    ๐Ÿ“‘ Pagina principale del Progetto

  • ๐Ÿ“„ Capitolo 1: Introduzione
    ๐Ÿ‘จโ€โš–๏ธ Requisiti legali e conformitร  CAD (Art. 68/69) ๐Ÿ“œ

  • โš™๏ธ Capitolo 2: Architettura
    ๐Ÿ›ก๏ธ๐Ÿ“ฆ Bunker Mode e crittografia AES-GCM del Vault ๐Ÿ”‘๐Ÿ—„๏ธ

  • ๐Ÿ’ก Capitolo 3: Note Finali
    โš’๏ธ Esempi di utilizzo pratico nella PA ๐Ÿ›๏ธ

  • ๐Ÿ›๏ธ Perchรฉ ๐Ÿช– Panzer v7+
    ๐Ÿ—ฝ Indipendenza ed eliminazione del Vendor Lock-in ๐Ÿšซ๐Ÿ”’

  • ๐Ÿ”ฅ Capitolo 4: Collaudo
    ๐Ÿฅ Battesimo di Fuoco, Debug e Log ๐Ÿž๐Ÿ“Š

  • ๐Ÿ›ก๏ธ Capitolo 5: Paradigma Difensivo
    Logiche di ๐Ÿšซ๐Ÿ’ฅ anti-tampering e Zeroization ๐Ÿงฝ

  • ๐Ÿ“‘ Capitolo 6: Determina
    ๐Ÿ–จ๏ธ Modello pronto ed esecutivo per i dirigenti ๐Ÿ’ผ

  • ๐Ÿงž Capitolo 7: Estensione Zero-Trust ๐Ÿ”
    ๐ŸŒ€๐Ÿงช Concept: Architetturale e Framework di Sicurezza per le PA ๐Ÿ›๏ธ

  • ๐Ÿ›๏ธ๐Ÿšจ Capitolo 8: Protezione PA
    ๐Ÿ“– Disciplinare Tecnico di Tutela dell'Ente con linee guida per Affidamenti Esterni. ๐Ÿข

  • ๐Ÿš€โ˜ข๏ธ Capitolo 9: La Difesa Oltre il Confine
    ๐ŸŒ€๐Ÿงช Concept: di un sistema di difesa attiva per operare in modalitร  Out-of-Sandbox ๐Ÿ”๐Ÿซ™

  • ๐Ÿ›๏ธ๐Ÿ”ฎ PA Futuro Digitale
    ๐ŸŒ๐Ÿš€ Concept: Manifesto tecnologico e linee guida d'architettura per l'Iper Cloud PA ๐ŸŒฉ๏ธ


LOGO

Clone this wiki locally