このサイトを参照するため、JavaScriptを有効にして下さい。

MDaemonメールサーバ 23.0

OpenPGPは暗号化されたデータをやり取りするための業界標準プロトコルで、ユーザーが暗号化メールを送受信できるよう、数々のメールクライアント用OpenPGPプラグインが存在しています。MDPGPはMDaemonに搭載されたOpenPGPコンポネントで、ユーザーはメールクライアント用プラグインを使っていなくとも、暗号化、復元、簡単な鍵管理が行えます。

MDPGPは公開鍵認証システムを使ったメールの暗号化と復元を行います。MDPGPでメールを暗号化すると、MDPGPは送信先から以前取得したキー(送信先の「公開鍵」)を使ってメールの暗号化を行い、MDPGPへインポートします。反対に先方から暗号化されたメールが到着する場合、送信者はあなたのキーを使ってメールを暗号化します。送信者がメールの暗号化を行うのに、公開鍵を送っておく事は当然必要です。 メールの暗号化には、自分専用の公開鍵を使う必要があり、そうする事で、自分が所持している秘密鍵を使ったメールの復元が行えます。

署名や暗号化、復元をMDPGPで行うためには、まずは公開鍵と秘密鍵の2つの鍵をペアとする鍵束(キーリング)を管理します。MDPGPはユーザー専用の鍵を必要に応じて自動・手動で生成する機能を搭載しています。他で作成した鍵をインポートする事もできます。また、MDaemonは社内のユーザーから送られた暗号化メールを監視し、使われている鍵を自動でインポートする事もできますので、まずユーザーがメールの送信先となる人物から受け取った鍵を使ってメールを暗号化し、その後MDPGPはそれを社内で共有している鍵束(キーリング)へインポートする事ができます。最後に、メールが鍵束として管理している鍵と紐づいたアドレスから到着した場合、MDPDGPは設定を元に、必要に応じてメールへの署名や、暗号化・復元を行います。アドレスで複数のキーを使用していた場合、MDPGPは優先キーとして指定されているキーを使ってメッセージを暗号化します。優先キーが設定されていない場合は、MDPGPは最初のキーを使用します。メッセージを復元する際には、MDaemonは両方のキーを使用します。

MDPGPの署名と暗号化は自動で行うよう設定する事もできますし、手動で行う事もできます。自動でこうした操作を行う際、MDPGPは可能な限り自動でメールへの署名と暗号化を行います。手動で行うよう設定を行った場合、対象アカウントがMDPGPの使用を許可されているアカウントであれば、MDPGPはメールへの署名又は暗号化(または復元)のみを行います。

OpenPGPの仕様はRFCの 48803156で定義されています。

MDPGPの有効化

MDPGPを有効にする

MDPGPはデフォルトで有効ですが、キー作成とキーリングへのインポートを行うか、後述するMGPGPによるキーの自動生成を行うよう設定するまでは、実際のメールの署名や暗号化、復元を行う事はできません。

暗号化&署名サービスを有効にする

デフォルトでは要求されたキーがキーリングに存在する場合、メールへの署名が追加され暗号化が行われます。MDPGPでメールへの署名追加や暗号化を行わない場合はこのオプションを無効化します。

メールは暗号化なしで署名されますが、MDPGPで暗号化されたメールには必ず署名が付与されます。

復号化&検証サービスを有効にする

デフォルトでは受信した暗号化メールは、宛先の秘密鍵が分かっていてば復元されます。またMDPGPは組み込まれた署名の検証も行います。ただし、このサーバー上の全てのユーザーにMDPGPを使用させる、や、MDPGPを使用するユーザーを設定する、のオプションを使用している場合、復号化/検証サービスには、宛先と送信元の両方が認証されている必要がありますのでご注意下さい。(デフォルトでは全員が認証されます。)例えばユーザーにメールクライアントプラグインで個々に復元処理を行わせる場合など、MDPGPにメールの復号を行わせない場合はこのオプションを無効にして下さい。無効化すると、受信した暗号化メールは通常のメールと同様に処理され、宛先メールボックスへ配信されます。

DNS (pka1)から公開鍵を取得しこの時間キャッシュを持つ [xx] 時間

MDPGPがメールの宛先の公開鍵をPKA1を使ってDNSサーバーから取得できるようにするにはこのオプションを有効化します。これは宛先用の公開鍵を取得するプロセスを部分的に自動化でき、暗号化メールを送信するのに従来必要だった手動での処理を簡略化できるという点で便利です。PKA1で問合せを行うと、見つかったキーURIがすぐに収集され、検証後、キーリングへ追加されます。正しく取得されキーリングへインポートされたキーは、その情報がfetchedkeys.txtへ記録され、このオプションで指定した時間が経過した際、又はPKA1のTTL値の、どちらか大きい方の値に基づき期限切れとなります。そのため、ここで指定した値はキーがキャッシュされるべき最少時間を指定します。デフォルト値は12時間で最少単位は1時間です。

所有している公開鍵をDNSへ公開するには特別なTXTレコードを生成する必要があります。例えば、frank@example.comが、キーid: 0A2B3C4D5E6F7G8H を所有している場合、"example.com"ドメインのDNSへ"frank._pka.example.com" (._pkaの値はメールアドレスの@と読み替えて下さい)というTXTレコードを追加します。. TXTレコードのデータは次のようになります。: "v=pka1; fpr=<key's full fingerprint>; uri=<Webmail-URL>/WorldClient.dll?view=mdpgp&k=0A2B3C4D5E6F7G8H" この中の<key's full fingerprint>はキーのフィンガープリントです(20 バイトのフィンガープリント値を表現する40文字から生成されます。)MDPGPの管理画面でキーをダブルクリックすると、フィンガープリント全体の値を確認する事ができます。

HTTP(Webmail)で公開鍵を送信

Webmailを簡易公開鍵サーバーとして使用するにはこのオプションを選択します。Webmailが公開鍵のリクエストを受け付けるようになります。リクエストを送る場合のURLの形式は次の通りです:  "http://<Webmail-URL>/WorldClient.dll?View=MDPGP&k=<Key-ID>"。<Webmail-URL> はWebmailサーバーのパスと差し替えて下さい(例:"http://wc.example.com")。また、<Key-ID>は任意の16文字から成るキーidです。(例: "0A1B3C4D5E6F7G8H") キーidは最後の8byteがキーフィンガープリントとなっており、合計16文字から成り立っています。

SMTPメールセッション内での公開鍵提供 (MDaemon)

SMTPメール配信処理の1つとして公開鍵の自動交換を行うには、このオプションを有効にします。これで、 MDaemonのSMTPサーバーがRKEYと呼ばれるSMTPコマンドに対応します。RKEYに対応しているメールサーバーへメールを送信すると、MDaemonは送信者の最新又は優先する公開鍵の転送を行うかどうか確認します。対象ホストはキーの有無を確認し、それ以上の処理が不要("250 2.7.0 Key already known")かキーが必要がどうかを返します。キーが必要な場合はキーはすぐにASCIIフォーマット("354 Enter key, end with CRLF.CRLF")でメッセージと同様に転送されます。期限切れになったキーや無効化されたキーは転送されません。MDaemonが送信元のキーを複数持っている場合は常に優先度の高いキーを送信します。優先キーがない場合は、最初に確認したキーを送信します。有効なキーがない場合は処理が行われません。ローカルユーザーに紐づけられた公開鍵だけが提供されます。

公開鍵の転送はメールを配信するSMTPメールセッションの1部として実行されます。公開鍵を許可するため、公開鍵は、キーの所有者によってi=のパラメーターを使ったDKIM署名 付きのメールと合わせて送信される必要があります。このDKIM署名はFrom:ヘッダのアドレスと完全に一致する必要があります。「キーの所有者」はキー自体から判別されます。また、メールは送信者のSPFパスから届いたものである必要があります。最後に、キーの所有者(又はワイルドカードの使用によるドメイン全体)はRKEYにより検証済である必要があります。検証のためには、MDPGPルールファイル(ルールファイルの中に説明が記載されています。)でドメインが公開鍵の交換を行える機関である事を示しておく必要があります。これらの検証は全て自動で行われrますが、DKIMSPF検証が有効化されていないと、処理が実行されない点にご注意下さい。

MDPGPログには結果とインポートまたは削除された全てのキーの詳細情報が記録され、この処理はSMTPセッションログへも記録されます。正しく動作しているとSMTPセッションログにキーの処理の詳細が記録され、MDPGPログファイルにも詳細が記録されます。

全てのサービスをMDaemon上のすべてのユーザーに許可する

MDaemonユーザー全員が、上記で設定したオプションに応じて、MDPGPでメールへの署名、暗号化、復号化を行えるようにするにはこのオプションを有効にします。サービス毎、ユーザー毎に利用の許可や禁止を行うには、後述の「MDPGPを使用する/しないユーザーを詳細に設定する」を使用して下さい。特別なローカルユーザーのみを認証する場合にのみ、このオプションを無効化して下さい。この場合「MDPGPを使用する/しないユーザーを詳細に設定する」で権限を与えるユーザーの設定を行って下さい。

復号化/検証をローカルではなく(外部)ユーザーに許可する

デフォルトで、MDPGPがローカルの宛先ユーザーの秘密鍵を把握している場合は、ローカル以外から届いた暗号化されたメールは復号化されます。これと同様に、MDPGPは外部から届いたメールの署名の検証も行います。特定のローカル以外から届いたメールを検証や復号化の対象から外したい場合は、後述の「MDPGPを使用する/しないユーザーを詳細に設定する」を使用して下さい。送信元がローカルアドレスでない場合に、メールの復号化や署名検証を行わないようにする場合はこのオプションを無効化して下さい。この場合であっても、後述の「MDPGPを使用する/しないユーザーを詳細に設定する」でユーザー個別の設定が行えます。

MDPGPを使用する/しないユーザーを詳細に設定する

このボタンをクリックするとrules.txt が開き、MDPGP用のユーザーパーミッションを設定できます。このファイルではメールへの署名、メールの暗号化、メールの復元を許可するユーザーをそれぞれ指定する事ができます。また、制限するユーザーも指定する事ができます。例えば、ここで"+*@example.com"というルールを使い、example.comがメールを暗号化できるようにし、 "-frank@example.com"というルールを更に追加する事で、 frank@example.comを除外する事ができます。rules.txtの先頭部分に、ルールの説明と例が記載されています。

Rules.txtの注意点とSyntax

MDaemonサーバー内の、SMTP認証を通過したユーザーのメールのみが暗号化サービスを利用できます。ただし、暗号化サービスを制限するローカル以外のアドレスを指定すると、MDPGPは公開鍵が分かっている場合であってもメールの暗号化を行いません。

rules.txtの設定と、全体の「すべてのサービスをMDaemon上のすべてのユーザーに許可する」オプションが競合した場合、rules.txt設定が使用されます。

rules.txtの設定と、全体の 「復号化/検証をローカルではない(外部)ユーザーに許可する」オプションが競合した場合、rules.txt設定が使用されます。

#の後のテキストは無視されます。

一行で複数アドレスを指定する場合は空白で区切ります。

メールアドレスにはワイルドカード(* と ?)が使用できます。

MDPGPで暗号化したメールは常に署名されますが、暗号化の許可と、暗号化していないメールに対する署名の許可は異なります。暗号化されていないメールへ署名を付与するには、アカウントは署名を行うためのパーミッションを付与されている必要があります。

各アドレスは次のタグの中のどれかを先頭に付けた上で指定します:

+ (プラス) - アドレスはMDPGP暗号化サービスを使用できます。

- (マイナス) - アドレスはMDPGP暗号化サービスを使用できません。

! (エクスクラメーション) - アドレスはMDPGP復元サービスを使用できます。

~ (チルド) - アドレスはMDPGP復元サービスを使用できません。

^ (キャレット) - アドレスはMDPGP署名サービスを使用できます。

= (イコール) - アドレスはMDPGP署名サービスを使用できません。

$ (ダラー) - アドレスはMDPGP検証サービスを使用できます。

& (アンド) - アドレスはMDPGP検証サービスを使用できません。

例:

+*@* — 全ドメインの全ユーザーが暗号化できます。

!*@* — 全ドメインの全ユーザーが復号できます。

^*@* — 全ドメインの全ユーザーが署名できます。

^*@example.com — example.comの全ユーザーが署名できます。

+frank@example.com ~frank@example.com — ユーザーは暗号化できますが復元できません。

+GROUP:EncryptingUsers — MDaemonの EncryptingUsers グループメンバーは暗号化できます。

^GROUP:Signers — MDaemonの Signers グループメンバーは署名できます。

暗号化/署名モード

自動モード

設定オプションで、許可されているアカウントに対しては、MDPGPがメールの署名や暗号化を自動で行うよう設定できます。アカウントが認証済メールを送信しMDPGPが必要な鍵を把握している時、メールには下記の設定に基づいて署名を付与し暗号化されます。

下記の手動モードで定義されている特別な件名コードは自動モードオプションよりも優先されます。そのため、これらのオプションが無効になっていても、署名や暗号化が許可されているユーザーであれば、以下のコードを使用して、手動でメールへ署名を追加したり暗号化したりすることができます。

設定

受信者の公開鍵を知っている場合、自動的にメールを暗号化する

デフォルトで、アカウントがメール暗号化を許可されている場合、MDPGPは宛先の公開鍵が分かっている場合はメールを自動で暗号化します。もしも自動で暗号化を行わない場合はこのオプションを無効化して下さい。メールは、以下で説明している手動モードの特別なコードを使う事で手動で暗号化する事ができます。

送信者の秘密鍵が登録されていたら自動的に署名を付与する

メールへの署名が許可されているアカウントは、MDPGPが送信アカウントの秘密鍵が分かっている場合には署名を付与するようになります。署名を自動で行わない場合はこのオプションを無効化して下さい。メールには、以下で説明している手動モードの特別なコードを使う事で、署名を追加する事ができます。

同じドメイン間でも暗号化/署名を行ったメールを送信する

MDPGPがメールを自動で暗号化したり署名を付与するよう設定されていた場合、これはメールが同一ドメイン間でのやり取りだった場合であっても、必要な鍵を把握していれば自動でメール暗号化や署名付与を行うためのオプションです。このオプションはデフォルトで有効です。

MDaemonが持つローカルドメイン間のメールも暗号化/署名を行う

MDPGPがメールを自動で暗号化したり署名を付与するよう設定されていた場合、これはメールがMDaemonのローカルドメイン間でのやり取りだった場合であっても、必要な鍵を把握していれば自動でメール暗号化や署名付与を行うためのオプションです。例えば、MDaemonドメインに「example.com」と「example.net」が含まれていた場合、このドメイン間でやり取りされたメールは自動で暗号化され、署名が付与されます。このオプションはデフォルトで有効です。

自分へのメールも、暗号化/署名を行う

MDPGPがメールを自動で暗号化したり署名を付与するよう設定されていた場合、このオプションを使用すると、ユーザーが自分自身へ送ったメール(frank@example.comがfrank@example.comへ送ったメール)であっても、同様にメールの自動暗号化や署名付与が行われます。つまり、(デフォルト設定として)アカウントが暗号化と復号化の両方を使用する権限を持っている場合、メールはMDPGPにより暗号化され、すぐに復号化されてユーザーのメールボックスへ配信されます。しかしながら、アカウントが復号のパーミッションを与えられていないと、メールが暗号化されたままユーザーのメールボックスへ配信され、配信後も暗号化されたままになってしまう場合があります。このオプションはデフォルトで有効です。

手動モード

メールへ署名を自動追加するが無効になっている場合、MDPGPは手動モードで使われています。MDPGPはメールが認証済で且つ、メールの件名に次のコードのどれかが含まれている場合でないとメールへの署名追加や暗号化は行いません:

--pgps

可能な場合メールへ署名を追加します。コードは件名の最初か最後に配置されます。

--pgpe

可能な場合メールを暗号化します。コードは件名の最初か最後に配置されます。

--pgpx

メールは暗号化される必要があります。(宛先の鍵が不明な場合など)暗号化が行えなかった場合は配信を行わないようにして下さい。メールは配信に失敗し、送信者へ戻されます。コードは件名の最初か最後に配置されます。

--pgpk

自身の公開鍵の送信依頼を行います。コードは件名の最初か最後に配置され、ユーザーは自分自身にこのメールを送ります。MDPGPはその後ユーザーへユーザー自身の公開鍵情報をメール送信します。

--pgpk<Email>

対象メールアドレスの公開鍵の送信を依頼します。コードは件名の最初か最後に配置され、ユーザーは自分自身にこのメールを送ります。MDPGPはその後ユーザーへ対象ユーザーの公開鍵情報をメール送信します。

例:

Subject: --pgpk<frank@example.com>

鍵の管理

公開鍵と秘密鍵はMDPGPダイアログの下の方にあるオプションで管理されています。キー毎にエントリがーあり、このエントリを右クリックすると、キーのエクスポートや削除、有効化/無効化を行う事ができます。鍵のエクスポートを選択すると、鍵は \MDaemon\Pem\_mdpgp\exports\ フォルダへ保管され、必要に応じてこの公開鍵をメールで送信する事ができます。"ローカル/リモートを表示"や"フィルタ"オプションを使用して、特定のアドレスやグループを指定する事ができます。

 

ドメインキーの使用

追加で、送信者に関わらず、特定のドメイン宛の全てのメールを暗号化するためのドメインキーを使用する事ができます。これは、例えば、ドメインの1つと別の場所へホスティングされている別ドメイン間でやり取りされている全てのメールを暗号化する場合などで、ドメイン内の全アカウント用の暗号化キーを個別に管理したくない、といった場合などに便利です。ドメインキーの実装には複数の方法があります:

別ドメイン用に既にパブリックキーを持っていて、このキーを送信メールの暗号化に使用したい場合は、対象のキーを右クリックし、ドメインキーとして設定をクリックします。ドメイン名を入力し、OKをクリックします。これにより、コンテンツフィルタルールが自動生成され、To:に対象ドメインが含まれる全てのメールが指定されたキーを使って全て暗号化されるようになります。

ドメインのパブリックキーは提供されているものの、まだ一覧にはない場合、ドメインキーをインポートをクリックし、ドメイン名を入力し、OKをクリックします。ドメインのpublic.ascファイルを選択し、開くをクリックします。これによりコンテンツフィルタルールが生成され、ドメイン宛のメールが暗号化されるようになります。

暗号化対象のメールなどの要件に合うよう、コンテンツフィルタルールを必要に応じて編集します。

別ドメインから自分のドメイン宛に届くメールを暗号化するのに新しいキーを作成するには、「特定のユーザー用のキー生成」の手順に沿って、一覧から"_Domain Key (domain.tld)_ <anybody@domain.tld>"を選択します。

対応するプライベートキーを持っているメールの送信時暗号化用のキーを使用しないでください。使用すると、MDPGPはメールを暗号化し、その直後に自身が管理している復元キーを使ってメールを復元してしまいます。

送信者へ暗号化失敗の詳細をメール送信する (--pgpeコマンド)

ユーザーが--pgpeコマンドで暗号化メールを送信し、(例えば暗号化を行うための鍵が見つからないなどの理由で)対象メールが暗号化に失敗すると、このオプションは送信者へ暗号化の失敗通知を送信します。このオプションはデフォルトで無効になっており、失敗の通知は送信されません。

自分へのメールで公開鍵をメール送信する (--pgpkコマンド)

"--pgpk<email address>"という件名 (例 --pgpk<frank@example.com>)で自分宛てにメールを送信します。メールアドレス用のパブリックキーがあると、これを送信者へ返信します。

認証されたユーザーから送られたメールの公開鍵を自動でインポートする

デフォルトで、認証ユーザーが公開鍵をASCII形式で付与したメールを送った場合MDPGPはキーリングへこの公開鍵をインポートします。連絡先の公開鍵を自分自身へメール送信しMDPGPへ取り込ませる事で、簡単に連絡先の公開鍵をMDPGPに読み込ませる事ができます。公開鍵の自動インポートを行わない場合にはこのオプションを無効化します。

自動的に鍵を作成する

MDPGPがMDaemonユーザー毎に、自動で公開鍵/秘密鍵を生成できるようにするにはこのオプションを有効化します。全ての鍵を一度に作成するよりも、MDPGPは、各ユーザーが次回のメール送信時に鍵のペアを使う事ができるよう、時間をかけて鍵の作成を行います。このオプションは負荷を抑え、MDPGPを使う事がないようなアカウント向けに不要な鍵を作成するのを防ぐため、デフォルトで無効に設定されています。

鍵サイズ

MDPGPが生成する鍵のサイズを指定します。サイズとして指定できるのは、1024, 2048, 4096です。デフォルト設定は2048です。

[xx]日間の有効期間 (0=無制限)

このオプションはMDPGPが生成する鍵の有効期限を日数で指定するオプションです。0を設定すると鍵の有効期限はなくなります。デフォルト値は0です。

特定のユーザー向けの鍵を作成する

アカウントに手動で鍵のペアを作成するには

1.特定のユーザー向けに鍵を作成するをクリックします。

2.対象アカウントをドロップダウンリストから選択します。ドメインの全アカウントで1つのキーを使う場合は、一覧から "_Domain Key (domain.tld)_ <anybody@domain.tld>"オプションを選択します。

3.追加: メールの添付ファイルとしてユーザーに鍵を送る場合は、公開鍵を鍵の所有者へメールで送る...をクリックします。

4.Okをクリックします。

 

宛先IPを元に送信メールを暗号化

特定のIPアドレス宛てのメール全てを、特定の鍵で暗号化するには、このオプションを有効にし、設定をクリックし、MDaemon Message Transport Encryptionファイルを開いて、IPアドレスと対応するKey IDを指定します。ここで指定されたIP宛の外部SMTPセッションは対応する鍵を使って全てのメールを暗号化します。メールが既に暗号化されていた場合はこの処理はスキップされます。

鍵のインポート

MDPGPへ手動で鍵をインポートするには、このボタンをクリックし、鍵ファイルを指定し、開くをクリックします。秘密鍵ファイルをインポートする際、公開鍵をインポートする必要はなく、公開鍵は秘密鍵の中に含まれています。パスフレーズで保護された秘密鍵をインポートすると、MDPGPはパスフレーズの入力を求めてきます。パスフレーズを入力していないと、秘密鍵のインポートは行えません。秘密鍵をインポートすると、MDameonはMDPGPが使用している鍵のパスフレーズを変更します。

ドメインキーをインポート

特定のドメインへのメールを全て暗号化するためのパブリックキーが提供されている場合、このボタンをクリックし、ドメイン名を入力し、OKをクリックします。ドメインのpublic.ascファイルを選択し、開くをクリックします。これによりコンテンツフィルタルールが生成され、ドメイン宛のメールが暗号化されるようになります。

パスフレーズの変更

秘密鍵はパスフレーズによって常に保護されています。秘密鍵をインポートする際にはパスフレーズのインポートが必要です。秘密鍵をエクスポートする際でも、対象の鍵はパスフレーズで保護されており、パスフレーズがなければエクスポートする事ができません。MDPGPのデフォルトパスフレーズはMDaemonです。MDPGPで鍵を作成したり、鍵をインポートしたりすると、このパスフレーズは全てデフォルトパスフレーズへと設定(又は変更)されます。セキュリティのため、MDPGPの利用を開始したら、このパスフレーズを変更して下さい。MDPGPのパスフレーズの変更をクリックする事で、いつでもパスフレーズの変更が行えます。パスフレーズを変更したら、キーリングの全ての秘密鍵は新しいパスフレーズへアップデートされます。

データファイルをバックアップする

このボタンをクリックするとKeyring.privateKeyring.public のキーリングファイルがバックアップされます。デフォルトでバックアップファイルは\MDaemon\Pem\_mdpgp\backups へコピーされ、日付と.bak拡張子がファイル名へ追加されます。

 

転送メールは暗号化されません。

 

自動応答メールは暗号化されません。

「DNS (pka1)から公開鍵を取得しこの時間キャッシュを持つ」や「HTTP(Webmail)で公開鍵を送信」 以外の、鍵サーバー機能や鍵の取消機能には対応していません。

コンテンツフィルタの暗号化処理は既に暗号化されているメールの処理は行わず、暗号化や復元処理はMDPGP設定を行う際の要件に基づいて処理されます。

MDaemonアカウントを表示するドロップダウンリストはデフォルトで最初の500ユーザーまでを表示します。全てのアカウントを表示するにはplugins.datMaxUsersShown=0 を設定して下さい。ユーザー数が多いと、この設定によってロードに時間を要する場合があります。

MDPGPUtil.exeはコマンドラインから暗号化や復号を行うためのツールです。MDPGPUtilを引数なしで実行するとヘルプ情報を閲覧できます。