La subscripció a Adobe Acrobat Pro supera els 285 € l’any: la subscripció a Adobe Acrobat Pro supera els 285 € l’any.

Moltes persones recorren a solucions ràpides i perilloses per evitar aquest cost:

  1. L’ús de formes negres: dibuixar rectangles negres en visors ordinaris.
  2. Convertidors al núvol: penjar documents confidencials en webs desconegudes.

Aquestes pràctiques generen greus riscos legals i fuites de dades. En aquesta guia t’expliquem per què les caixes negres fallen i com WebAssembly permet una anonimització permanent i 100% segura sense Adobe i sense núvol.


La prova dels 3 segons: demostra la vulnerabilitat del copiar i enganxar

  1. Obre qualsevol PDF on el text s’hagi «tapat» amb un requadre o marcador negre.
  2. Fes clic abans del requadre, arrossega el cursor per sobre de la zona tapada i deixa anar.
  3. Prem Ctrl + C (o Cmd + C a macOS).
  4. Obre el Bloc de notes o la barra d’adreces del navegador i prem Ctrl + V.

En gairebé tots els documents editats de manera amateur, el text confidencial apareix immediatament en text net.

La cerca amb Ctrl + F també evidencia l’errada: cerca el nom o import amagat i el lector de PDF ressaltarà el terme just sota la caixa negra.

[ PDF View ]     ====>     [ Clipboard Extraction ]
┌───────────────────────────┐                
│ Jordi Garcia          │               "Jordi Garcia
│ DNI / NIF: ███████████ │   Ctrl + C    DNI / NIF: 48192031X
│ Import de l'acord: 450.000,00 € │   ========>   Import de l'acord: 450.000,00 €"
└───────────────────────────┘                

Anatomia de la sintaxi PDF: fluxos de contingut (/Contents) vs. capes d’anotació (/Annots)

Segons l’estàndard ISO 32000, un fitxer PDF no és una simple imatge plana, sinó una base de dades jeràrquica d’objectes independents.

El flux de contingut (/Contents)

El text es desa al flux de contingut com una seqüència d’operadors de posició i renderitzat de glifs:

BT
  /F1 12 Tf
  72 712 Td
  (Import de l'acord: 450.000,00 €) Tj
ET
  • BT i ET delimiten els blocs Begin Text i End Text.
  • /F1 12 Tf determina la font i la mida.
  • 72 712 Td estableix les coordenades a la pàgina.
  • (...) Tj mostra la cadena de caràcters.

La capa d’anotacions (/Annots)

En dibuixar una forma negra, el programari no modifica el flux /Contents, sinó que afegeix una entrada al diccionari /Annots:

<<
  /Type /Annot
  /Subtype /Square
  /Rect [ 70 710 320 726 ]
  /C [ 0 0 0 ]
  /IC [ 0 0 0 ]
>>

Aquesta instrucció només diu al visor: «Dibuixa un rectangle negre sòlid en aquestes coordenades». Com que l’anotació resideix en una capa independent, el flux /Contents subjacent queda intacte.


Comparació d’arquitectura: 3 enfocaments d’anonimització

flowchart TD
  subgraph Flawed["❌ 1. Trampa del bloc negre"]
    direction TB
    F_Doc["📄 Original PDF"] --> F_Draw["✏️ Black Shape (/Square Annot)"]
    F_Draw --> F_Out["📄 'Redacted' PDF"]
    F_Out -->|"Ctrl+C"| F_Leak["🚨 Secret Data Leaked"]
  end

  subgraph Cloud["⚠️ 2. Risc al núvol"]
    direction TB
    C_Doc["📄 Sensitive PDF"] -->|"Upload"| C_Server["☁️ Remote Server"]
    C_Server --> C_Worker["⚙️ Processing"]
    C_Worker --> C_Down["⬇️ Download"]
    C_Server -.-> C_Risk["🚨 Third-Party Exposure"]
  end

  subgraph Local["✅ 3. Utiliome Wasm"]
    direction TB
    L_Doc["📄 Local PDF"] -->|"Zero Upload"| L_RAM["💻 Browser RAM Sandbox"]
    L_RAM --> L_Wasm["⚡ Client-Side WebAssembly"]
    L_Wasm --> L_Clean["📄 100% Sanitized PDF"]
    L_Clean --> L_Safe["🔒 Zero Cloud Footprint"]
  end

  style Flawed fill:#fff,stroke:#f43f5e,stroke-width:1.5px
  style Cloud fill:#fff,stroke:#f59e0b,stroke-width:1.5px
  style Local fill:#fff,stroke:#10b981,stroke-width:2px

Desastres reals de filtració de dades

El cas de Paul Manafort el 2019 i els informes militars britànics sobre submarins nuclears el 2011 van evidenciar com el simple cobriment gràfic acaba en escàndol públic.

Segons el Reglament General de Protecció de Dades (RGPD) i les directrius de l’Autoritat Catalana de Protecció de Dades (APDCAT), la filtració de dades personals per una anonimització negligent pot comportar multes de fins a 20 milions d’euros.


El parany dels serveis gratuïts al núvol

Pujar un fitxer confidencial a servidors desconeguts per esborrar-ne informació crea una paradoxa de privacitat inacceptable:

Fase del cicle de vidaServei al núvol tradicionalUtiliome Local-First Wasm
Transmissió de dadesFitxer complet enviat per HTTP POST a través d’Internet.0 bytes transmesos. Queda a la RAM del dispositiu.
EmmagatzematgeDesat a discs temporals o dipòsits AWS S3 externs.Cap. Mai s’escriu a servidors de tercers.
ProcessamentContenidor compartit a servidors remots.Màquina virtual WebAssembly aïllada al navegador.
RetencióFitxers conservats en memòria cau d’1 a 24 hores.Neteja immediata de memòria en tancar la pestanya.
Conformitat legalExigeix contractes DPA de tractament de dades.Exempt. No hi ha cessió a tercers.

Com anonimitzar un PDF amb seguretat sense Adobe Acrobat

Mètode 1: WebAssembly al navegador (Recomanat)

  1. Obre l’eina d’anonimització PDF d’Utiliome en qualsevol navegador modern.
  2. Arrossega el teu fitxer PDF. Es carregarà directament a la memòria RAM (sense trànsit de xarxa).
  3. Selecciona amb el ratolí les àrees que vols esborrar permanentment.
  4. El motor WebAssembly elimina els operadors de text del flux /Contents i hi insereix geometria negra permanent.
  5. Fes clic a Descarregar PDF anonimitzat per obtenir un document net de filtracions.

Mètode 2: Rasterització i aplanament (Alternativa fora de línia)

  • Pros: Converteix el text vectorial en píxels d’imatge, destruint completament el flux de text subjacent.
  • Contres: Augment desmesurat de la mida del fitxer (de 300 KB a 30 MB), pèrdua total de la cerca (Ctrl+F) i incompatibilitat amb lectors de pantalla.

Prova de 10 segons a DevTools: comprova el zero trànsit de xarxa

  1. Obre l’eina al navegador.
  2. Prem F12 (o Cmd+Option+I) per obrir les eines de desenvolupador.
  3. Ves a la pestanya Network i filtra per Fetch/XHR.
  4. Neteja el registre (🚫).
  5. Arrossega el teu PDF i aplica l’anonimització.
[ Developer Tools - Network Tab ]
Filter: [ Fetch/XHR ] 
--------------------------------------------------------------------------------------
Name              Status   Type     Initiator   Size     Time
--------------------------------------------------------------------------------------
(Log is empty. 0 requests sent. 0 bytes uploaded.)
--------------------------------------------------------------------------------------
Result: 100% Client-Side. Your file never touched a server.

Llista de control abans d’enviar el document

  • 1. Prova del porta-retalls: selecciona la zona tapada, prem Ctrl+C i enganxa-ho al Bloc de notes. No ha de sortir cap text.
  • 2. Prova de cerca (Ctrl+F): cerca els termes esborrats. El cercador ha de marcar estrictament 0 de 0.
  • 3. Propietats del document: revisa Fitxer > Propietats per assegurar-te que el títol i l’autor no revelin informació confidencial.
  • 4. Marcadors i capes: comprova que la taula de continguts no conservi apartats amb informació suprimida.
  • 5. Garantia sense núvol: assegura’t que l’edició s’ha fet en local a la RAM sense carregar còpies a servidors aliens.