[PHP-users 15537]Re: 個人情報保護の方法について

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 5月 29日 (木) 16:30:53 JST


重松です。こんにちは。

> 秘密鍵を使って暗号化した住所などを復号化するには公開鍵に
> よって暗号化されたユーザー別に保存されている秘密鍵を復号
> して使わないと暗号化されたユーザーデータは復号化できない
> んですよね?

混乱しているようですね。
鍵は全部で 3 つあります。

	(1) 対称鍵暗号の秘密にしないといけない鍵 A
	(2) 公開 (非対称 )鍵暗号の公開しても良い鍵 B
	(3) 公開 (非対称 )鍵暗号の秘密にしないといけない鍵 C

データ保存の流れは以下の通りです。
# 当初のものよりもかなりシンプルにしてみました。

	(1) ユーザが入力したパスワードを鍵 A とする。
	(2) 鍵 A を用いて、秘匿すべき個人情報を暗号化する。
	(3) 鍵 A も秘匿しないといけないので、鍵 B を使い暗号化する。
	(4) 鍵 A のハッシュ値も記録しておく。

ユーザによるデータ復号の流れは以下の通りです。

	(1) ユーザが入力したパスワードから、ハッシュ値を求め、
	    データベースのそれと比較する。等しくないなら処理異常終了。
	(2) (1) が正常に処理されれば、入力されたパスワードを鍵 A とする。。
	(3) 得られた鍵 A でデータを復号することができる。

ユーザがパスワードを忘れたら、あなたの秘密鍵を使えば、
解読できます。

が、今回は説明を単純にするために、パスワードをそのまま記録しましたが、
ユーザのパスワードは使いまわす人がいると思いますから、
その人のためにも、そのまま鍵として使わない方がいいと思います。

そのような場合には、新しいパスワードを生成して、
登録メールアドレスに送信するような方法が考えられます。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内