Hallo!

Also ich würde das egtl. am liebsten ohne neue Software machen, daher erstmal die Hauptfrage:

  • Gibt es dafür ein Paket?

Scheints kann das Paket pdfcrypt nimmer verwendet werden und wenn es kein Paket (mehr?) für sowas gibt, hatte ich das PDF-tool pdlin erwogen, bloß finde ich das nirgendswo (bei Linux könnte es standardmäßig dabei sein?).

Danke!

gefragt 25 Jun '14, 04:55

cis's gravatar image

cis
5.4k861169
Akzeptiert: 68%

zum Thema hinzugefügt 25 Jun '14, 07:00

Ijon%20Tichy's gravatar image

Ijon Tichy
4.4k618


Mit pdlin sind vermutlich die Commandozeilenwerkzeuge von pdf-tools gemeint. Diese sind in der Tat in der Lage PDFs zu verschlüsseln. Es gibt auch diverse andere Möglichkeiten.

Man kann beispielsweise mit pdftk die Rechte für verschiedene Handhabungen einer PDF-Datei ändern. Für eine existierende Datei foo.pdf kann so beispielsweise mit:

pdftk foo.pdf output geheim.pdf owner_pw TeXweltgeheim user_pw TeXwelt allow none
sämtliche Rechte entziehen. Gleichzeitig benötigt ein Anwender nun das Passwort TeXwelt, um die neue, verschlüsselte Datei geheim.pdf zu öffnen oder das Passwort TeXweltgeheim, um die Rechte zu ändern. Die Anleitung zu pdftk gibt Auskunft über die anderen verfügbaren Rechte, die man über das Schlüsselwort allow alternativ zu none setzen kann.

Auch mit ghostscript kann man verschlüsselte PDFs erzeugen. Dazu verwendet man am einfachsten das ghostscript-Programm ps2pdf. Keine Sorge, man muss nicht erst eine EPS-Datei erzeugen, ps2pdf kann auch PDF-Dateien lesen. Zur Verschlüsselung muss man folgende ghostscript-Optionen setzen:

  • -sOwnerPassword=Besitzer Passwort
  • -sUserPassword=Benutzer Passwort
  • -dEncryptionR=Verschlüsselungsmethode (AFAIK gibt es 2 oder 3)
  • -dPermissions=Zahl`

Die Zahl setzt sich aus der Summe nummerischer Rechte zusammen:

  • 4: Drucken des Dokuments
  • 8: Verändern des Dokuments
  • 16: Kopieren aus dem Dokument
  • 32: Hinzufügen und Verändern von Annotations, interaktive Formularfelder ausfüllen
  • 256: interaktive Formularfelder ausfüllen (auch wenn 32 nicht gesetzt)
  • 512: Extrahiere Text und Grafiken
  • 1024: Ordne das Dokument um (auch wenn 16 nicht gesetzt)
  • 2048: Hinzufügen und Verändern von Annotations (auch wenn 32 nicht gesetzt)

Einige der Möglichkeiten gibt es nur bei Verschlüsselung 3. Eine Liste aller Flags mit Beschreibung findet sich in Tabelle 3.15 der PDF Reference. Achtung: In der erwähnten Tabelle sind die Flags mit ihrer Bitnummer (gezählt ab 1) angegeben. Eine 3 in der Tabelle steht also für 2^{3-1} = 2^2 = 4. Der Einfachheit halber habe ich die wichtigsten deshalb oben mit ihrem numerischen Wert angegeben.

Mit negativen Zahlen kann man recht einfach Rechte entziehen. Um einem Dokument foo.pdf alle Rechte zu nehmen und es gleichzeitig mit dem Besitzerpasswort TeXweltgeheim und dem Anwenderpasswort TeXwelt zu verschlüsseln, verwendet man also beispielsweise

ps2pdf -sOwnerPassword=TeXweltgeheim -sUserPassword=TeXwelt -dEncryptionR=3 -dPermissions=-3904 foo.pdf geheim.pdf
Das verschlüsselte Dokument ist dann geheim.pdf. Anwender benötigen dann das Passwort TeXwelt, um es zu öffnen. Will man die Rechte erneut ändern, benötigt man das Passwort TeXweltgeheim.

Natürlich kann man die Rechte auch mit einer Adobe-Vollversion (nicht dem Reader) ändern. Das geht dort einfach in den Eigenschaften.

Adobe selbst schreibt übrigens zu den Rechten bei Adobe Acrobat 6:

Die mit Hilfe des Berechtigungskennworts festgelegten Einschränkungen werden von allen Adobe-Produkten unterstützt. Dies gilt jedoch nicht für einige Produkte anderer Hersteller. Personen, die Dokumente von Ihnen erhalten und über solche Drittanbieter-Produkte verfügen, können möglicherweise einige der von Ihnen festgelegten Einschränkungen umgehen.

Sehr sicher ist das also nicht. Meist gibt es irgendwelche Tricks, um die Einschränkungen zu umgehen, solange man das Dokument nur öffnen kann. So kursieren im Netz beispielsweise modifizierte Versionen von ghostscript, die aus einer verschlüsselten PDF-Datei nur mit dem Anwenderpasswort eine unverschlüsselte generieren. Nein, ich werde keinen Link auf ein solches Hackertool setzen.

Permanenter link

beantwortet 25 Jun '14, 05:55

Ijon%20Tichy's gravatar image

Ijon Tichy
4.4k618

bearbeitet 25 Jun '14, 07:21

Der Tip mit ghostscript ist gut, evtl. kann ich das verwenden um eine bequeme Automatisierung zu schreiben, aber diese komische Nummernadditionssache macht es gleich kompliziert.

(25 Jun '14, 07:01) cis

@cis: -3904 ist Hexadezimal F0C0 oder binär 1111000011000000. In dem Fall sind also 1, 2, 4, 8, 16, 32, 256, 512, 1024, und 2048 nicht angegeben bzw. die Bits 1–6 und 9–12 nicht gesetzt. Damit sind diese Rechte entzogen. Genau das habe ich übrigens auch erklärt: »Mit negativen Zahlen kann man Rechte entziehen". Mit einer positiven Zahl würde man ja die Rechte gewähren. Alle Rechte gewähren kann man allerdings auch mit -1. Warum? Nun das wäre FFFF(hex) bzw. 1111111111111111(bin). Siehe auch Ps2Pdf-Anleitung und die PDF-Reference (s. o.).

(25 Jun '14, 07:14) Ijon Tichy

Es funktioniert bei mir übrigens auch -dPermission=0, um alle Rechte zu entziehen. Offiziell müssen aber einige Bits immer gesetzt sein (siehe PDF-Reference). Daher habe ich den offiziellen Weg beschritten. Genau genommen wären die im letzten Kommentar angegebenen Hex- und Bin-Zahlen auch noch länger, aber der Kommentarplatz reichte nicht, so dass ich die oberen 16 Bit (alle 1) weggelassen habe.

(25 Jun '14, 07:25) Ijon Tichy
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×32
×2

Frage gestellt: 25 Jun '14, 04:55

Frage wurde angeschaut: 3,801 Mal

Zuletzt aktualisiert: 03 Feb '15, 11:01