LibreOffice Office Suiteの証明書ストア

画像 LibreOfficeは強力なオフィススイートです。 LibreOfficeは無料のオープンソースです。



オフィススイートには、テキストおよびテーブルプロセッサ、プレゼンテーションを準備および表示するためのプログラム、ベクターグラフィックエディター、データベース管理システム、および数式エディターが含まれています。



画像



さらに、国内のLinuxフォークがMS Windowsの代わりに役人のテーブルに次第に登場する現在の輸入代替のポリシーは、政府でのLibreOfficeパッケージの広範な配布に貢献しています。



LibreOfficeは集中的に開発されており、創業以来多くの追加機能が組み込まれています。 これらの機能の1つは、ドキュメントの電子署名(LibreOfficeの用語ではデジタル署名)です。 電子署名( ファイル→デジタル署名→デジタル署名...→文書に署名)を生成するには、 個人証明書が使用されます。



画像



写真を見ると、経験の浅いユーザー(さらに公式の方)は、どのような種類のファイルを開くのか、どのような種類のパスワードを入力するのか、という誤解を深く感じています。



これはLibreOffice開発者の翻訳としてはあまり成功していないことに注意してください。 ファイルに関するものではなく、 PKCS#11トークン/スマートカードに関するものであり、パスワードに関するものではなく、トークンのユーザーPINに関するものです。 次のようなものがあるはずです。



画像



ここで主な質問に行きます。LibreOfficeがドキュメントの電子署名を生成するために使用する証明書はどこにどのように保存されていますか?



LibreOfficeは通常、証明書ストアとして、Mozilla製品(Firefox、Thunderbird、SeaMonkey)によって作成およびサポートされる証明書ストアを使用します。 デフォルトでは、これはThunderbirdメールクライアント証明書ストアです( ツール→オプション...→セキュリティ→証明書... ):



画像



Mozilla製品の証明書ストアは、Network Security Services( NSS)スイートを使用して作成されます。 コマンドラインユーティリティを使用して、たとえば、独自の証明書ストアを作成できます。



bash-4.3$ cd /home/a513/tmp bash-4.3$ mkdir db_for_libre bash-4.3$ modutil -create -dbdir /home/a513/tmp/db_for_libre WARNING: Performing this operation while the browser is running could cause corruption of your security databases. If the browser is currently running, you should exit browser before continuing this operation. Type 'q <enter>' to abort, or <enter> to continue: bash-4.3$ ls -l db_for_libre  60 -rw------- 1 a513 a513 65536  31 16:49 cert8.db -rw------- 1 a513 a513 16384  31 16:49 key3.db -rw------- 1 a513 a513 16384  31 16:49 secmod.db bash-4.3$
      
      





ディレクトリ/ home / a513 / tmp / db_for_libreに作成された証明書ストアには、cert8.db、key3.db、secmod.dbの3つのデータベースが含まれています。 それらを作成するには、たとえばNSSパッケージを作成および保守するために使用されるが、データベースをサポートするために使用されるgoogle-chromeの証明書ストアとは対照的に、バークレーデータベースの古いバージョンが使用されます(通常、NSSドキュメントでは「DBM」 cert9.db、key4.db、pkcs11.txt)リポジトリはSQLite3メカニズムを使用します。 新しいリポジトリ形式(SQLite3)で作業する場合は、プレフィックスを指定するだけで、同じNSSユーティリティを使用して、リポジトリへのパスの前の–dパラメータ(リポジトリディレクトリ)で両方のリポジトリを操作します。 <ストレージパス>。



さらに、古い形式の証明書ストア(cert8.db、key3.db、secmod.db)から新しい形式のストア(cert9.db、key4.db、pkcs11.txt)を簡単に作成することもできます。 これを行うには、-Xパラメーターを指定したキー(-K)または証明書(-L)を表示するモードで、certutil証明書を操作するユーティリティを実行します。



 bash-4.3$ ls -l /home/a513/tmp/db_for_libre/  60 -rw------- 1 a513 a513 65536  31 17:56 cert8.db -rw------- 1 a513 a513 16384  31 17:56 key3.db -rw------- 1 a513 a513 16384  31 16:49 secmod.db bash-4.3$ certutil -L -d sql:/home/a513/tmp/db_for_libre -X Certificate Nickname Trust Attributes SSL,S/MIME, JAR/XPI bash-4.3$ ls -l /home/a513/tmp/db_for_libre/  120 -rw------- 1 a513 a513 65536  31 17:56 cert8.db -rw------- 1 a513 a513 28672  31 17:56 cert9.db -rw------- 1 a513 a513 16384  31 17:56 key3.db -rw------- 1 a513 a513 28672  31 17:56 key4.db -rw------- 1 a513 a513 440  31 17:56 pkcs11.txt -rw------- 1 a513 a513 16384  31 16:49 secmod.db bash-4.3$
      
      





ご覧のとおり、データベースには古い形式と新しい形式の両方のデータベースがあります。

残念ながら、逆変換については知らないため、LibreOfficeのgoogle-chrome(〜/ .pki)などの新しい証明書ストアは利用できません。



NSSパッケージは、PKCS#11トークン/スマートカードでの作業をサポートします。これには、原則として、ユーザーが個人証明書を秘密鍵とともに保存します。 今日個人認証が認証センターで受け取られることに注意してください。



そのため、トークンのPINコードを要求したという事実に落ち着きました。 PKCS#11トークン/スマートカードは、Firefox、Thunderbir、Seamonkey、およびmodutilユーティリティの両方を介して接続できます。 たとえば、 クラウドトークンを接続するには、次のコマンドを実行します。

 $modutil –add LS11CLOUD2016 –libfile libls11cloud.so –dbdir /home/a513/tmp/db_for_libre $
      
      





LibreOfficeがパスワードを要求したのは、このトークンに対してでした:



画像



パスワードを入力すると、署名の生成に使用できる個人証明書のリストが利用可能になります。 ここで証明書の内容を表示することもできます。



画像



証明書が選択されるとすぐに、電子署名の形成が行われます:



画像



これでドキュメントが再び開いて動作するようになり、正しい署名が存在することで、ドキュメントが誰によっても修正されていないことを確認できます。 それ以外の場合、ドキュメントには信頼がありません。



結論として、証明書ストアの操作についてもう少し説明します。 ユーザーがMozilla製品以外の独自のストレージを作成し、このためにNSSコマンドラインユーティリティを使用することにした場合、 GUINSSグラフィカルシェルを使用すると便利です。



このユーティリティを使用すると、トークン/スマートカードを接続し、ルート証明書とセキュアコンテナPKCS#12から証明書をインポートできます。 また、PKCS#10証明書の証明書要求(CSR)を作成できます。



画像



生成された証明書要求をCAに送信して、証明書を取得できます。



画像



作成されたリポジトリは、LibreOfficeの外部でも使用できます。

PSオフィススイートでは、ボールトからの証明書を使用して、 PDFドキュメントの GOST R 34.10-2001 / 2012に従って電子署名を生成します



All Articles