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, 10:55

cis's gravatar image

cis
9.5k74452491
Akzeptiert-Rate: 29%

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

gast3's gravatar image

gast3
(ausgesetzt)


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, 11:55

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 25 Jun '14, 13: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, 13: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, 13:14) gast3

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, 13:25) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×44
×2

gestellte Frage: 25 Jun '14, 10:55

Frage wurde gesehen: 14,507 Mal

zuletzt geändert: 03 Feb '15, 17:01