P7M ファイル形式とは?
.p7mファイルは、暗号化またはデジタル署名された電子メールメッセージやドキュメントをバイナリPKCS#7/CMSコンテナとして保存するために使用されます。このようなファイルには、コンテンツ、添付ファイル、暗号署名、および署名者の証明書チェーンがすべてまとめて保存されます。この形式は、汎用的な署名済みドキュメントのラッパーとしても一般的です。実際のファイル(PDFやXMLの請求書など)は、署名レイヤーを追加する.p7mシェルの内部にそのまま埋め込まれています。
コンテナは通常DERエンコードされたバイナリ(オフセット0のASN.1マジックバイト 0x30 0x82)ですが、同じ構造のBase64テキスト形式も存在し、それは MII... で始まります。元のドキュメントを分離して保持するデタッチド署名の.p7sとは異なり、.p7mは元のドキュメントと署名を1つの自己完結型ファイルにまとめます。
暗号化されたメッセージへのアクセス
.p7mファイルには、メッセージに含まれる情報を第三者による不正アクセスから保護するという主な目的があります。暗号化された.p7mを読み取るには、メッセージの封印に使用された公開鍵に対応する秘密鍵を所有している必要があります。受信者の秘密鍵はメッセージが変わっても同じであるため、対象の受信者は追加の設定なしで新しい各メッセージに簡単にアクセスできます。
.p7mファイルは、医療、金融、またはビジネス業界で機密性の高い保護されたデータを送信するためによく使用されます。.p7mファイルは、署名および暗号化方法としてSecure/Multipurpose Internet Mail Extensions (S/MIME) 標準を使用します。基礎となる仕様はCMS (RFC 5652) です。- EU(特にイタリア)では、
.p7mは法的効力を持つCAdES (CMS Advanced Electronic Signatures) 適格電子署名の標準コンテナです。 .p7mファイルで署名または暗号化されたメッセージは、通常smime.p7mというファイル名で表示されます。
このような.emlメールメッセージは、ヘッダー内の情報のみを提供し、メールクライアントには空のコンテンツフィールドが表示されます。メッセージのテキストとファイルは、暗号化または署名された添付ファイル自体の内部に含まれています。専用ソフトウェアなしで内部ドキュメントを抽出したり署名を検証したりするには、openssl smime -verify または openssl smime -decrypt が一般的なコマンドラインオプションです。
セキュリティと安全性
リスク: MEDIUM.p7mはプログラムではなくデータであるため、それ自体が実行されることはありませんが、重要な信頼性の意味を持ちます。署名された.p7mファイルの場合、「開く」ことは安全ですが、重要なのは「検証」することです。有効な署名は、誰が署名したか、ドキュメントが改ざんされていないかを教えてくれます。「署名が存在する」ことだけでなく、署名者の証明書が信頼されており、期限切れや失効をしていないかを確認してください。抽出された後の内部ドキュメント(PDFなど)については、通常通りの注意が必要です。暗号化された.p7mの場合、復号には「あなた自身の」秘密鍵が必要です。秘密鍵を他人に送ったり、機密/暗号化された.p7mをランダムなオンラインの「オープナー」にアップロードしたりしないでください。機密性の高いドキュメントには、公式の検証サービス(Aruba/Agid)やローカルツール(Dike/OpenSSL)を使用することをお勧めします。
形式の詳細
概要P7M ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ形式 | PKCS#7 / CMS (Cryptographic Message Syntax) |
| 準拠仕様 | IETF RFC 5652 (CMS); 以前の RFC 2315 (PKCS#7 v1.5) |
| MIMEタイプ | application/pkcs7-mime |
| デフォルトのS/MIMEファイル名 | smime.p7m |
| バイナリエンコーディング | DER (Distinguished Encoding Rules) - ASN.1 バイナリ構造 |
| 代替エンコーディング | Base64 テキスト(“MII…”で始まる) - 同じCMS構造、異なる転送エンコーディング |
| マジックバイト (DER) | ファイルオフセット0の 0x30 0x82 - ASN.1 SEQUENCEタグとそれに続く2バイトの長さフィールド |
| CMSコンテンツタイプ | SignedData, EnvelopedData (暗号化済み), SignedAndEnvelopedData, CompressedData |
| EU署名プロファイル | CAdES (CMS Advanced Electronic Signatures, ETSI EN 319 122) - eIDASに基づく適格レベルをサポート |
| 埋め込み証明書 | コンテナ内に保存されたX.509署名者証明書および中間CAチェーン |
| 署名アルゴリズム | RSA (PKCS#1 v1.5, PSS) および ECDSA; ダイジェストアルゴリズム SHA-256, SHA-384, SHA-512 |
| 暗号化アルゴリズム | AES-128 および AES-256 (CBC/GCM); レガシー互換用の Triple-DES |
| 内部ドキュメント | そのまま埋め込まれ、抽出可能な任意のファイルタイプ(PDF、XML請求書、プレーンテキストなど) |
| 復号要件 | 暗号化時に使用されたX.509公開鍵証明書に対応する受信者の秘密鍵 |
| 法的用途 | イタリアの公的機関 (PA)、認定電子メール (PEC)、およびEU域外ドキュメントの標準的な適格電子署名形式 |
| リリース日 | PKCS#7 (1990s); S/MIME / CMS standardized in RFC 5652. Heavily used for EU/Italian legal e-signatures (CAdES) |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.rfc-editor.org |