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

Osamu Shigematsu shige @ ravi.ne.jp
2003年 5月 28日 (水) 15:12:30 JST


重松です。こんにちは。

On Wednesday, May 28, 2003, at 10:00 Asia/Tokyo, いちろう たこす wrote:

> ■注文時の確認メール送信までの流れ
> 1.ユーザーはパスワードと顧客番号と商品番号を送信
> 2.顧客番号とパスワードが一致するデータベース内にある顧
> 客の秘密鍵をサーバー内にある公開鍵を使い復号化、さらに復
> 号化された秘密鍵を使いメールアドレスを復号化し取得する
> 3.そのアドレスへメール送信

(1) 公開鍵は、暗号化しかできません。
(2) 公開鍵を使って暗号化したデータは、秘密鍵を用いないと復号化できません。
(3) 公開鍵は漏えいしても問題ないので、スクリプトに記載してもかまいません。
(4) ユーザが指定したパスワードは、ハッシュとして DB に保持され、
     元のパスワードを取り出すことはできません。
(5) しかし、ユーザが正しいパスワードを入力したかどうかは、
     ハッシュ計算、公開鍵を使って暗号化したデータが、
     DB 上のデータと一致するかどうかで、正しいかどうか、
  非常に高い「精度」で確認できます。

用語が混乱しているようなので、公開鍵暗号アルゴリズムとして、RSA を、
対象鍵暗号アルゴリズムとして Blowfish (以降 BF) を使うとします。

この時、

	あいうえお --- (BF 鍵) ---> ○×△□?
	○×△□? --- (BF 鍵) ---> あいうえお

のように、一つの鍵を使って、暗号化/復号化できるのが、
対象鍵暗号です。この鍵は、当然、バレルと復号化されるので、
隠さないとヤバいです。

一方、

	あいうえお --- (RAS 公開鍵) ---> ×△?□○
	×△?□○ --- (RAS 秘密鍵) ---> あいうえお

のように、公開鍵暗号 (非対称鍵) の場合、
公開鍵は暗号化することしかできず、復号化するには、
秘密鍵を必要とします。

さらにハッシュは、

	あいうえお --- (SHA1) ---> ABCDEF

のように、一方通行で、出力から入力を特定したり、
その出力が得られる入力を計算することがきわめて困難な
処理をいいます。

> 上記の方法ですとスクリプトソースを見られると意味がないよ
> うな気がしますがどうでしょうか?

というわけで、整理して考えてみて下さい。
私も、ちょっと考えただけなので、抜けがあるかもしれません。

が、他の方と同様に、技術的に、まだクレジットカードを預かれる力が、
残念ながらないように思われます。

電話番号だとかは別にして、クレジット番号については、
預からないで住む方向を探すのが一番だと思います。

-- 
Osamu Shigematsu http://www.ravi.ne.jp/%7eshige/



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