<!-- -*- mode:text coding:euc-jp -*-
   $FML: post_check_pgp_signature.sgml,v 1.4 2008/08/18 02:23:59 fukachan Exp $
-->


<sect1 id="config.post.check.pgp">
	<title>
	ケーススタディ: PGP/GPG の電子署名で投稿制限をするＭＬ
	</title>

<caution>
<para>
この機能を使うには Crypt::OpenPGP モジュールが必要です。
OS 附属のパッケージシステムなどでインストールして下さい。
このモジュールが依存しているモジュールがたくさんあるので、
OS 附属のパッケージシステムが使えないと、
インストールは、かなり面倒です。
</para>
</caution>

<sect2>
	<title>
	レシピ
	</title>

<qandaset>
<qandaentry>

<question>
<para>
PGP/GPG の電子署名で投稿制限をするＭＬ
</para>
</question>

<answer>

<para>
設定例は次のようになります。
check_pgp_signature が、この PGP/GPG 認証オプション部分です。
電子署名が正当なユーザだけに投稿が許されます。
<screen>
article_post_restrictions       =       reject_system_special_accounts
                                        check_pgp_signature
                                        reject
</screen>
もちろんデフォルトでは使いません。
利用したい場合は、明示的に article_post_restrictions を変更して下さい。
</para>

<para>
注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
<screen>
article_post_restrictions       =       reject_system_special_accounts
                                        check_pgp_signature
                                        isolate
</screen>
</para>

</answer>

</qandaentry>

</qandaset>

</sect2>


<sect2>
	<title>
	キーの操作
	</title>

<para>
PGP のキーリングは、
動作条件ごとに別に保存するようになっています。
たとえば記事投稿用のキーは
$ml_home_dir/etc/pgp-article-post-auth/
ディレクトリ以下に、
リモート管理用のキーは
$ml_home_dir/etc/pgp-admin-command-mail-auth/ 
ディレクトリ以下に置くといった具合です。
</para>

<para>
これらのキーは pgp2 pgp5 gpg コマンドで操作してください。
ただ、
デフォルトのディレクトリではないこと、
モードごとに異なるディレクトリを使うため、
fmlpgp などのユーティリティプログラム( wrapper )を利用するほうが便利です。
<screen>
例: elena ML で記事投稿で使うキーの生成

fmlpgp elena --article-post-auth -kg
</screen>
コマンドラインオプションで
<screen>
--article-post-auth       (記事投稿時に電子署名で認証)
--command-mail-auth       (コマンドメールを電子署名で認証)
--admin-command-mail-auth (リモート管理のコマンドメールを電子署名で認証)
--article-post-encrypt    (記事を暗号化(未実装)) 
</screen>
などと使用する条件を指定してください。
それぞれの条件に対して異なるキーリングのディレクトリが使われます。
</para>

<para>
用意されているコマンド(wrapper)は次の通りです。
</para>

<para>
pgp2 用: 
fmlpgp
</para>

<para>
pgp5 用:
fmlpgp5
fmlpgpe
fmlpgpk
fmlpgps
fmlpgpv
</para>

<para>
gpg 用: 
fmlgpg
fmlgpgv
</para>

</sect2>


</sect1>
