[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 メーリングリストの案内