XMLドキュメントでPHPおよびRSA / TRIPLE DESを使用してフィールドを暗号化する方法
質問
私は、統計処理のために州のIT機関にXML形式のデータを提出するために必要な南アフリカの学校の申請書を開発しています。私は現在、PHPを使用してXMLファイルを生成しています DOMDocument
クラス。
私のファイルは、最初の段階検証プロセスを経ました。次の段階は、XMLファイルの暗号化と圧縮を実装することです。圧縮は単純なGZIPなので、心配はありません。
仕様文書は、両方のRSA暗号化が使用されていることを示しています(ソフトウェアに実装するためにRSAキーが発行されます)とトリプルDEなどの対称暗号化の何らかの形(これは「例」とアルゴリズムのいずれかです。 http://www.w3.org/TR/xmldsig-core
実装できます)。これを正しく理解すると、RSA暗号化は、フィールドの実際の暗号化に使用される対称キーをエンコードすることです。
仕様文書には、「XMLファイルの暗号化は、ファイル全体または特定の要素で実行できます」とも述べています。この段階でどちらが簡単であるかはわかりません。
要件は、名前ではなくXMLタグの内容を暗号化することです( http://www.w3.org/TR/xmlenc-core/#sec-eg-Element-Content-Character
).
これがあいまいに思えば、お詫び申し上げます。現在、私が持っているすべての情報であり、代理店の連絡先は(VisualBasic .NET)コードサンプルがすべてを説明する必要があると喜んで言っています...このコードサンプルを調べたい場合は、ご覧ください。次のZIPファイルのWord文書、約213ページ以降。 http://www.sita.co.za/doe_lurits/devs-00118%20rev%201.2%2012%20jan%202009.zip
誰かが私を正しい方向に助けたり指したりできるなら、私はそれを感謝します。
解決
XMLSEC暗号化を使用してXMLファイルを暗号化するだけです。次のライブラリは、あなたのためのすべての詳細を処理する必要があります、
他のヒント
見る openssl_encrypt
対称暗号化用 openssl_public_encrypt
/openssl_private_decrypt
非対称暗号化用。
ドキュメント全体を暗号化するか、特定の「敏感な」タグの内容を暗号化できるように聞こえます。ドキュメント全体を暗号化することは、おそらく最も簡単な方法です。
RSA/3DESのことに関しては、あなたはほぼ間違いなく正しいです。 3DESでドキュメントを暗号化し、RSA公開キーで3DESキーを暗号化します。
したがって、あなたがする必要があることは、ドキュメントを生成してジップしてから、3DEでジップされた結果を暗号化することです。
対称的な暗号化ドキュメントプラスプラスプラスエンクリープキーアーキテクチャは、本質的にPGPです。 OpenPGPはお客様に受け入れられますか?