Aktualisieren Sie eine PDF-Datei, um eine verschlüsselte, versteckte, eindeutige ID einzubinden.

8

Hintergrund

Die Idee ist dies:

  • Die Person stellt Kontaktinformationen für den Online-Buchkauf bereit
  • Buch ist als PDF mit einem eindeutigen Hash
  • gekennzeichnet
  • Person downloads Buch
  • PDF-Passwörter sind leicht zu umgehen oder zu teilen

Der ideale Prozess wäre etwa so:

  1. Hash basierend auf Kontaktinformationen generieren
  2. Kontaktinformationen und Hash in der Datenbank speichern
  3. Buchsperre erwerben
  4. Aktualisieren Sie eine "include" -Datei mit Hash-Text
  5. Buch als PDF generieren (mit pdflatex )
  6. Hash auf Buch anwenden
  7. Buchsperre aufheben
  8. E-Mail mit Buch-Download-Link senden

Technologien

Die folgenden Technologien können verwendet werden (andere Programmiersprachen sind möglich, aber Bibliotheken sind wahrscheinlich auf diejenigen beschränkt, die vom Host bereitgestellt werden):

  • C, Java, PHP
  • LaTeX-Dateien
  • PDF-Dateien
  • Linux

Frage

Welche Programmiertechniken (oder Open-Source-Software) soll ich untersuchen?

  • Betten Sie einen eindeutigen Hash (oder eine andere Markierung) in eine PDF
  • ein
  • Erstellen Sie eine kollisionsbegrenzende Markierung
  • Entwickeln Sie eine nicht-fragile Lösung (z. B. PDF -> EPS -> PDF enthält immer noch die Marke)

Forschung

Ich habe mir die folgenden Möglichkeiten angeschaut:

  • Steganographie
  • Natürliche Sprachverarbeitung (NLP)
  • Konvertiere leere Seiten in PDF in Bilder; markiere diese Bilder; PDF erneut zusammenbauen
  • LaTeX-Wasserzeichenpaket
  • ImageMagick

Probleme

Die möglichen Lösungen, die ich erforscht habe, haben die folgenden Probleme:

  • Steganographie. (a) Erfordert eine Master-Kopie der Bilder, die in EPS konvertiert werden, was CPU-intensiv und zeitaufwendig ist; (b) würde das Wasserzeichen PDF -> EPS -> PDF oder andere Arten der Umwandlung überleben; (c) Die meisten Bilder sind Zeichnungen oder Screenshots, keine Fotos im PNG-Format.
  • LaTeX. Erstellt einen Image-Cache; jede steganographische Lösung müsste diesen Prozess irgendwie abfangen.
  • NLP. Führt Grammatikfehler ein; könnte die Bedeutung von technischen Wörtern ändern.
  • Leere Seiten. Sofort verdächtigen; verdächtige leere Seiten lassen sich leicht ersetzen.
  • Wasserzeichenpaket. Zeichnet sichtbare Markierungen.
  • ImageMagick. Zeichnet sichtbare Markierungen.

Welche anderen Lösungen sind möglich?

Verwandte Links

Danke!

    
Dave Jarvis 27.12.2010, 02:40
quelle

1 Antwort

2

Ich habe dies für ein anderes Projekt mit PDFlib getan. Wir benötigten die Rückverfolgbarkeit für die generierten PDFs, falls die Datei durchgesickert war. Grundsätzlich:

  1. Erstellen Sie eine Quelle Vorlage PDF mit dem Inhalt vorhanden, legen Sie das Dokument Master-Passwort mit den erforderlichen Optionen (keine Bearbeitung, kein Druck, kein Screen-Reader, etc ...) festlegen
  2. Zur Laufzeit haben wir ein paar Wasserzeichen (ausgeschossene Seitenfußzeile mit der Aufschrift "Dieses Dokument ausgecheckt für Benutzer # 12345"), einige der Metadatenfelder mit Benutzer-ID, IP-Download, Download-Datum / Uhrzeit, ein "Dies" hinzugefügt Dokument copyright von ... "Deckblatt, etc ...)
  3. Fügen Sie optional ein Benutzerkennwort hinzu, um eine PW-Eingabeaufforderung zu erzwingen, wenn das Dokument geöffnet wird.

Da die neuesten PDF-Versionen AES-128 für ihre Verschlüsselung verwenden, setzen wir einfach ein passendes, zufällig generiertes 128-Zeichen-Hoch-Entropie-Passwort - niemand würde es jemals von Hand eintippen, so schwer zu typisieren war für uns irrelevant eigentlich vorzuziehen. Das Master-Passwort verhinderte, dass Endbenutzer Änderungen am Dokument vornehmen konnten. Die verschiedenen Noprint / No-Screen-Leseoptionen werden vom PDF-Reader tatsächlich erzwungen und sind daher umgangen, können aber nicht schaden, sie trotzdem einzustellen.

Der Nachteil ist, dass die Lizenzierung von PDFlib ziemlich steil ist. Ich weiß nicht, ob irgendwelche der kostenlosen php PDF-Bibliotheken die neuesten PDF-Verschlüsselungsschemata unterstützen, insbesondere das Master-Passwort, aber wenn Ihr Budget es unterstützt, ist PDFlib der Weg für eine sichere Dokumentenproduktion.

    
Marc B 27.12.2010, 15:29
quelle