ページ: << 1 ... 2 3 4 5 6 7 8 9 10 11 12 ... 103 >>

S/MIME 暗号化メール送信コンポーネント for CakePHP

パーマリンク 2010/06/05 23:00:00 著者: kumaold メール
カテゴリ: プログラミング, PHP, CakePHP

前回、S/MIME 暗号化メール送信の概要と下準備について書きました。
このメールをPHPから送信してみるのが今回の目的です。

ところが・・・いくら探しても公式の openssl_pkcs7_encrypt() サンプルソースを使ったページしか見つかりません。
そんなに新しい技術でもないのに、実際にやってみる人が少ないのでしょうか。


仕方ないのでドキュメントを読み進めながらクラスを自作することにしましたよ。

特に添付ファイルを取り扱ったS/MIME暗号化メールは参考資料がまったくなく、どうしようもないので実際のメールのソースと比較しながら書きました。


10時間ほど頑張った結果、それなりのものができたのでひとつ公開します。
CakePHP のコンポーネントですが、手を加えれば他にも流用できると思います。

DL: EncryptMailComponent (ZIP/1.45KB)


まず、解凍したファイルを cakephp/app/controllers/components/ に設置。
利用するコントローラ内のコンポーネントに以下を追加。

var $components = array ('EncryptMail');

コントローラ内では必要に応じてこのように記述します。
添付ファイルも複数送信が可能です。

// 本文(テキスト)を記述
$body = 'テストメール' . "\n";
$body .= 'こちらが本文' . "\n";

// 添付ファイルを (ファイル名 => データ) の配列で指定
$attach = array(
    '日本語ファイル名.txt' => 'テスト添付データ',
);

// 追加のメールヘッダ
$add_headers = array(
    'From' => 'from@example.com');
);

// 公開鍵証明書のパス
$this->EncryptMail->key_path = TMP . 'mail/key.pem';
// 平文メッセージの仮保存パス (パーミッション606)
$this->EncryptMail->msg_path = TMP . 'mail/msg.txt';
// 暗号メッセージの仮保存パス (パーミッション606)
$this->EncryptMail->enc_path = TMP . 'mail/enc.txt';
$this->EncryptMail->body = $body;
$this->EncryptMail->attach = $attach;  // 省略可
$this->EncryptMail->to = 'to@example.com';
$this->EncryptMail->subject = 'S/MIME 送信テスト';
$this->EncryptMail->add_headers = $add_headers;  // 省略可
// メール送信成功時 true
if ($this->EncryptMail->send()) {
    echo "送信成功\n";
} else {
    echo "送信失敗\n";
}

最初は公開するつもりがなかったので一部適当な作りのところがありますが、どうぞご自由に改良などしていただいて結構です。
 

今夜わかるメールプロトコル (Network)今夜わかるメールプロトコル (Network)

翔泳社 2005-06-17
売り上げランキング : 49886
おすすめ平均

S/MIMEによるメール暗号化

パーマリンク 2010/06/04 23:59:00 著者: kumaold メール
カテゴリ: プログラミング, PHP

超久々にまともなPHP技術ネタでお送りします。


さて、とある案件を片付けるのに個人情報などを扱うため、データ添付メールを暗号化して送信する必要が出てきました。

ただのファイル暗号化なら割と簡単ですが、今回はS/MIMEによる公開鍵暗号で受信者を限定とすることで強固なセキュリティが確保できます。


そこでまず必要になるのが公開鍵証明書です。
本来ならベリサインなどの信頼あるCAによる署名がなされたものの方ががいいですが、無料で取得できるのもいくつかあります。

たとえば、こちらCOMODO社の Free Secure Email Certificates など。

申請フォームから必要事項を記入後にメールが送られてきます。
メール記載のURLにアクセスし、確認のメッセージで許可するとブラウザに個人用証明書がインストールされます。

証明書の確認方法は、Firefox では「ツール」→「オプション」→「詳細」→「暗号化」→「証明書を表示」→「あなたの証明書」→「表示」でこうなればOK。

見てのとおり有効期限は1年間のため、都度更新が必要です。

この「詳細」タブにある「エクスポート」で暗号化に必要な公開鍵証明書のみを抽出保存しておきます。保存形式は X.509証明書(*.PEM) です。

IEや他社メーラなど他のソフトでも使用できるよう、証明書一覧の「バックアップ」より一旦秘密鍵を含むPKSC12ファイル(*.p12)に一緒に出力しておきましょう。


X.509証明書の方はメール送信者に配布し、証明書に記載のメールアドレス宛に送るメールの暗号化に使用されます。

PKSC12ファイルはさらに秘密鍵を含むファイルで、メールの復号化に使用されるため厳重に管理する必要があります。メール受信PCにインストールします。


先ほどエクスポートしたPKSC12ファイルをIEにインポートすることで、Outlook Express では自動的に暗号化メールが送信できます。

メールの新規作成画面で右上にある「暗号化」ボタンを押すだけで、そのメールの内容は暗号化して送信されます。

暗号化メールを受信するとこのようにその旨のメッセージが表示されます。


ちなみに秘密鍵を保持していない人が受信するとこうなります。
ソースを見るとヘッダ文字列以外はすべて暗号化されてまったく見えません。


ということで、これがS/MIMEによるメール暗号化の概要です。
ここまでは実践されている方も多く、いろいろと参考にさせていただきました。

これをPHPでやってみようというのが今回の本題です。
詳しいことは次回の投稿で。

4883731669インターネット暗号化技術―PKI、RSA、SSL、S/MIME、etc.
ソフトリサーチセンター 2002-05
売り上げランキング : 540463
おすすめ平均

type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

マイエリアモニター用端末F-02Bが届いた

パーマリンク 2010/03/25 23:00:00 著者: kumaold メール
カテゴリ: デジタルモノ, ネットワーク

以前紹介したとおり、ドコモのフェムトセルサービス「マイエリア」のモニター当選者に貸し出されるテスト用端末 F-02B が本日届きました。


今使っている端末は2年前に発売された SH905iですが、2年も経つと携帯の機能も進化するものでいろいろと驚いたことがあります。

まず、モーションセンサーが搭載されているため、ワンセグやブラウザなどの画面も端末の傾きに応じて自動で向きが変わります。

もっとも、この機能は横になってブラウジングする際などには、むしろ鬱陶しいので普段は切っておきます。

その機能の応用なのか万歩計機能があり、待受画面にカウントされています。

一番進化したのはブラウザで、ほぼ一新されていて驚きました。

  • タブブラウザ化され、複数タブ切り替えが可能に
  • ページ内のテキストコピペができるように
  • ページ内検索機能追加
  • Cookie対応、リファラー取得可能に
  • Javascript対応(どこまで動作するかは不明)

ということで、あまりにも変わってしまったため今後色々検証していきます。

【メール便で送料無料】パーフェクトガードナー F-02B専用 P032F02B
type="text/javascript">
type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

<< 1 ... 2 3 4 5 6 7 8 9 10 11 12 ... 103 >>

一六社で働くITエンジニアのブログ。

普段はWeb系システム開発と地元のPCサポートをやってます。いつの間にやら会社に8年目。
技術ネタ中心に日々の仕事と生活と趣味やらを気が向いたら書いてます。

2017年5月
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

検索

XMLフィード

16ブログ     powered by b2evolution free blog software