人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpのプログラムで公開鍵方式の暗号化を実装したいと考えています。

具体的には

格納時:
データを取得⇒公開鍵で暗号化⇒データベースに格納

複合時:
データベースからデータ取得⇒秘密鍵で復号化⇒変数に格納

という流れになります。

通信は全てSSLで行われます。

いい方法をお知りの方が居られましたらご回答宜しくお願いします。

●質問者: mgaki
●カテゴリ:コンピュータ インターネット
✍キーワード:PHP SSL データ データベース プログラム
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● tadashi0805
●17ポイント

データベースは、何をお使いでしょうか?

例えばMySQLなら、暗号化関数を持っていて、公開鍵を使ってAES_ENCRYPT()で暗号化した文字列を格納し、逆に取り出した文字列を公開鍵を使ってAES_DECRYPT()で復号化するというSQLレベルで行えます。

これですと、あるカラムを暗号化、復号化で出し入れする際、これらの関数をかますだけで、phpのプログラム側ではあまり大きな修正を行う必要がありません。

◎質問者からの返答

回答ありがとうございます。

しかし、この方法ですと、公開鍵がわかれば、phpの改竄によってデータを取り出すことが可能になってしまいます。

データベースはmysqlを利用しています。

格納時の暗号鍵と、復号時の暗号鍵が異なる

方法を探しているので、もしご存知であれば

再度ご返答お願い致します。


2 ● hengsu
●17ポイント

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2058...

この流れの話でしょうか。

◎質問者からの返答

cryptは非可逆ですのでダメです。

今回は

phpによる、「可逆」で暗号化と複合化のコードが「異なる」

仕組みの実現をお願いします。


3 ● ma-kanoh
●16ポイント

http://dummy

その要件だと、「共通鍵」で十分だと思いますが。

「共通鍵」そのものを盗まれなければ、PHPのソースをいくら改ざんしようが、データは取得できません。

「公開鍵が分かれば」とありますが、そもそも、秘匿しようとしている鍵がばれたら、暗号化は、どのレベルでも無意味です。

ちなみに、公開鍵暗号方式は、「公開鍵」で暗号化して

「秘密鍵」で復号します。だから、その場合は、単に公開鍵で

暗号すれば、公開鍵は(公開する使い方が出来るので)そのままでも

問題ありません。

PHPだったら、普通にOpenSSL系を使えば、例えばPKCS#7レベルでも

問題はないと思いますが。

ただし、その場合も「秘密鍵」を盗まれれば終わりです。

そういう意味では、どのような暗号方式も「なんにもせずに安全には」使えないと思います。

なんか暗号化を、「なんの設計もしないまま見えないように変えてくれる」ものだと思ってるようですが。暗号化をするということは、それだけでリスクです。

上記の場合は、「秘密鍵」を秘匿するのも「共通鍵」を秘匿するのも同じだと思います。

通常、公開鍵暗号方式は、相手方が信用できないシステムに

用いるのが一般的です。

上記のように同じDBで公開鍵暗号方式を使用してもいいことはないと思いますが。

◎質問者からの返答

回答ありがとうございます。

暗号化はインターネット上で通信される鍵で行われますが、複合化はローカルからのみ行われますので、このようなシステムを考えるに至りました。

OPENSSL関数の方も現在トライしています。

他にも良い方法があればご教授頂ければ幸いです。


4 ● l-lol-l
●16ポイント

えーとRSAでの暗号をお望みだと思いますが、ものすごーーーーく遅いですよ。

現実的な方法は、鍵をつくって、AESで暗号化して、その鍵だけを公開鍵で暗号化する。

でしょうか。

方法的には、多分opensslのRSAの関数をそのまま使うことになると思います。


5 ● nakahara88
●16ポイント

system関数でGPG(GnuPG) を呼ぶのではだめですか?

◎質問者からの返答

なるほど。これですとファイルの暗号化になりますね。単に変数を暗号化したかったのですが…

単にphpで利用できる、暗号化と複合化が異なる文字列の暗号化というレベルでいいですので、他にも方法があればお教えいただけるとありがたいです。


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ