暗号化PDFの対応

b3g2017-03-15
 社内システムのPDF作成でApache PDFBoxコマンドライン使い始めています。PDFBoxのパスワード付加のオプション-keyLenghtは40、128、256を指定でき、それぞれRC4の40bitと128bit、AESの256bitとなります。
 RC4 40bitはPDFの暗号化方法としては初期のもので一番互換性があるのですが、現行のAcrobat DCではRC4 40bitの作成はサポートされなくなりました。恐らく暗号の強度から使わないほうがましとされたのでしょう。
 現在最も強度があるのがAES 256bitですが、新しめのPDFバージョン1.7 Extension Level 8からサポートされたものでAcobatのバージョンでいうとX (10)からとなります。現在のバージョンがDC (12 = 2015)で、すでにXのサポートもされておらず、今後使い続けていく上でAES 256bitで大丈夫だろうと判断しました。
 しかしAdobe純正のAcrobat Readerで表示可能としても最近はWebブラウザー独自のPDF Viewerを用いて表示するようになっています。そこでWindows 10環境で使用できる以下のブラウザーで調べてみました。バージョンはここ最近のものです。

Microsoft Edge NG
Chrome PDF Viewer OK
Firefox PDF Viewer OK

 ChromeFirefoxでは見られましたがEdgeでは以下のメッセージが表示されました。

PDF を開けませんでした
何らかの問題により、この PDF を開くことができません。

 ということでEdgeがダメな他はいけそうですね。でもEdgeはAES 256bitが全面的に見られないというわけではなく表示できるPDFファイルもあるので、PDFBox独自の問題かもしれません。Edgeで見られない要因としてはこちらのページで公開されているように、Micorsoftが対応しないのは、

  • AdobeがExtension Level 8の仕様を公開していない
  • 新しいISO標準PDF 2.0へのつなぎの規格で変更される可能性があるから

とのことです。
 まあそういう考えなら仕方ないのですが、ユーザーからするとWin10でEdge以外のブラウザーを起動するとEdgeを使えとうざいメッセージを出すぐらいなら、この辺も対応してくれよと思います。PDFの仕様が変わってもパッチを当てるだけで問題ないのでは。Edgeに関しては普通に使うWebブラウザーとしても弱いと感じているのですが、こういうところからも標準的に使うブラウザーにはまだまだ及ばないと思いますね。