S/MIMEで暗号化
AさんからBさんへ暗号化メールを送る場合の流れを調べてみる。双方ともオレオレ証明書で運用する。
Aさんが以下を実行して、鍵と証明書を作成
openssl genrsa 1024 > private-key1.pem
openssl req -x509 -new -key private-key1.pem -out cert1.pem -days 356
Bさんが以下を実行して、鍵と証明書を作成
openssl genrsa 1024 > private-key2.pem
openssl req -x509 -new -key private-key2.pem -out cert2.pem -days 356
AさんがBさんへ自分の証明書cert1.pemを渡して、BさんがAさんに自分の証明書cert2.pemを渡す。
Aさんがmail.txtというメールを書いてBさんの証明書cert2.pemで暗号化。これによりcert2.pemの秘密鍵を持っているBさんしか開けなくなる。
openssl smime -encrypt -des3 -in mail.txt -out encrypt.txt cert2.pem
これだけでも暗号化はされるが、Aさんが送ったか確定できないので、Aさんが自分の秘密鍵と証明書で署名をおこなう。
openssl smime -sign -in encrypt.txt -signer cert1.pem -inkey privkey1.pem -out sign.txt
このsign.txtをBさんに送る。
Bさんはまず署名を確認する。
openssl smime -verify -in sign.txt -CAfile cert1.pem -out sign_verify.txt
署名が正しいので復号化する。
openssl smime -decrypt -recip cert2.pem -inkey private-key2.pem -in sign_verify.txt -out plain.txt
これでAさんから送られたmail.txtが暗号化されてBさんがplain.txtとして読める。
S/MIMEの普及しないのは下記のような理由によるのではないかと思う。
- 証明書を正式に発行するのが面倒だったり費用がかかったりする
- 署名と暗号化は別なのだが分かりにくい
- 複数人に送る場合、全ての人の証明書が必要で煩雑になる
- ヘッダーは暗号化されない
とはいえ、メール関係で新しい仕組みができて普及するるとも思えないのでS/MIMEをうまい具合に使っていくしかないのかもしれない。
Author And Source
この問題について(S/MIMEで暗号化), 我々は、より多くの情報をここで見つけました https://qiita.com/yamori813/items/ed263a99e825c54975c1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .