このトピックでは、BizTalk Server AS2 ソリューションのセキュリティに関する既知の問題について説明します。
AS2 デコーダーは、証明書がホストまたは宛先パーティに対して構成されていることを検証しません
AS2 デコーダーは、そのメッセージのプライベート証明書が証明書ストアで構成されている限り、メッセージの暗号化を解除します。 ただし、AS2 デコーダーは、復号化証明書がホストで構成されている証明書と同じであることを検証しません。 受信したメッセージは、複数の証明書で暗号化できます。
AS2 メッセージをワイヤ形式で格納すると、セキュリティの問題が発生する可能性があります
証明書を使用しない場合は、非否認レシート (NRR) データベースに AS2 メッセージをワイヤ形式で格納することはお勧めしません。 これを行うと、セキュリティの問題につながる可能性があります。
NRR データベースに格納するメッセージまたは MDN に署名する必要がある
受信の否認を保証するには、該当するメッセージの認証と整合性を確立する必要があります。 これを行うための推奨される方法は、メッセージにデジタル署名を使用する方法です。 そのため、否認不可データベースにメッセージまたは MDN を格納するように AS2 パーティ プロパティを構成する場合は、格納するメッセージまたは MDN に署名するように AS2 プロパティを構成する必要があります。
証明書が有効でない場合、BizTalk Server はワイヤ形式で保存されたメッセージの暗号化を解除できません
症状:
BizTalk Server は、否認不可データベースにワイヤ形式で保存された受信 AS2 メッセージを復号化できません。
考えられる原因
メッセージの暗号化を解除するために必要な証明書の有効期限が切れているか、失効しています。 これは、AS2 メッセージが否認不可データベースに保存されてから一定期間が経過した場合に発生する可能性が高くなります。 この場合、メッセージの有効な証明書にすぐにアクセスできない可能性があります。
解決策
メッセージを復号化するための有効な証明書を取得します。
署名付き AS2 メッセージの内部エンベロープは、署名の計算後に変更しないでください
AS2 メッセージが署名されると、署名は内部エンベロープ ヘッダーとペイロードに基づいて計算されます。 署名の計算後に内部エンベロープが変更されると、署名が破損します。 境界ヘッダーまたは境界ヘッダーの外部にあるものは変更できますが、境界ヘッダー内の何も変更しないでください。
インプロセス ホスト インスタンスと分離ホスト インスタンスに対して同じログオンを使用して、個人用ストアが確実に認識されるようにする
個人用証明書ストアは、ログオン資格情報がホスト インスタンスに関連付けられているユーザーのユーザー プロファイルが読み込まれている場合にのみ、メッセージ処理に使用できます。 個人用ストアは、証明書 (ユーザー自身の秘密キー) の署名と暗号化解除に使用されます。 ユーザー プロファイルは、インプロセス ホスト インスタンスに対して既定で読み込まれます。ただし、分離ホスト インスタンスの場合、ユーザー プロファイルは既定では読み込まれません。 分離ホストのユーザー プロファイルをアプリケーションで読み込むことができます。 または、インプロセス ホスト インスタンスと分離ホスト インスタンスに対して同じログオンを使用して、この問題を回避することもできます。
アプリケーションでユーザー プロファイルを読み込む代わりに、空のサービスを作成してプロファイルを読み込むことができます。 空のサービスの作成については、「 方法: Windows サービスを作成する」を参照してください。 サービスを作成したら、[コンピューターの管理] ダイアログ ボックスを開き、サービスの [プロパティ] ダイアログ ボックスを開き、[ログオン] タブ を クリックし、[ このアカウント] を選択し、分離されたホスト インスタンスに使用されるログオン名を入力して、[ OK] をクリックします。 その後、サービスを手動で開始して、そのログオン ユーザーのユーザー プロファイルを読み込むことができます。
証明書のキー使用法属性は、証明書の使用と一致する必要があります
AS2 トランスポートに使用される証明書には、使用目的に必要な属性が必要です。 署名と署名の検証を行うには、証明書のキー使用法属性がデジタル署名である必要があります。 暗号化と暗号化解除の場合、証明書のキー使用法属性はデータ暗号化またはキー暗号化である必要があります。 キー使用法属性を確認するには、証明書をダブルクリックし、[証明書] ダイアログ ボックスの [詳細] タブをクリックし、[キー使用法] フィールドをオンにします。
AS2-To プロパティがパーティに対して設定されていない場合、送信 MDN の証明書解決リストが検証されます
送信 MDN の既定の契約では、証明書解決リストの検証が実行されます。 この検証を実行しない場合は、適切な AS2-To パーティ のプロパティが設定されていることを確認して、受信側を解決し、パーティのプロパティを決定できるようにします。 その場合、証明書解決リストの検証を求める既定の契約は使用されません。 AS2 パーティ プロパティの [全般] ページで、証明書失効リストの確認プロパティを無効にする必要もあります。