7

現在、外部サービスのユーザーパスワードを保存して、ユーザーがアプリケーションにログインするときに同時にログインできるようにするPHPアプリケーションの開発を計画しています。

パスワードは、プレーンテキストではなく、base64でエンコードされていない安全な場所に保存する必要がありますが、アプリケーションから何らかの方法でプレーンテキストとしてアクセスできる必要もあります。

私は次のようなことしか考えられませんでした:

ユーザーが外部サービスの資格情報をアカウントに追加すると、ユーザーは私のアプリケーションのパスワードを再入力し、それを(暗号化された形式で)外部サービスのパスワードを何らかの方法で「暗号化」するために使用されますが、まだアクセス可能になります。

これが可能かどうか、または潜在的な解決策について誰かが考えていますか?

ありがとう

また、データが送信されるのはSSL接続になることに注意してください。

好奇心から:たとえば、Google Mailでは、メールアカウントをGoogle Mailアカウントに追加して、すべてがチェックされるようにすることができます。追加したアカウントのパスワードをGoogleがどのように保存するかについて誰かが考えていますか?

4

7 に答える 7

7

これに関する一般的な問題は、システムがすべて侵害された場合、攻撃者はすべてのシステムのすべてのパスワードを取得できることです。これらのパスワードは暗号化されており、ハッシュされていないためです。プレーンテキストのパスワードを取得できるようにしたいので、これを回避する方法はありません。

これを行う必要がある場合は、OpenSSLなどの信頼できるものを使用してパスワードを暗号化できます。

于 2012-11-21T16:24:20.973 に答える
3

証券の観点から、パスワードをどこにも保存しないでください。ユーザーにパスワードmd5を入力してもらい、それを保存します。したがって、彼が認証されたものとmd5を認証するとき。外観も。外部パスワードを取得し、保存されているmd5と外部パスワードをXORすることができます。そうすれば、元に戻して外部ソースに渡すことができます。または、外部のパスワードを毎回要求するのがより良い方法です。これは、リスクと利便性の選択です。

于 2012-11-21T16:28:56.867 に答える
1

ええと、ユーザー自身のパスワードでパスワードを暗号化して(どこにも保存しないで)、通信が行われるたびにパスワードを要求するだけでよいので、この方法でパスワードはおそらく安全です。

于 2012-11-21T16:26:42.387 に答える
1

GAH...誰もがキーを標準化することを望みます。

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

$sth = $dbh->prepare('select keyLoc from auth where username = :user');
$sth->bind_param('user', 'username');
$key = $sth->fetch(PDO::FETCH_ASSOC);

if (ssh2_auth_pubkey_file($connection, 'username',
                      $key,
                      '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
} 
?>

それは人生をとても楽にするでしょう。公開鍵をどこにでもコピーして、秘密鍵を保持してください。

于 2012-11-21T16:32:27.450 に答える
1

代わりに行うべきことは、Oauthを使用することです。これは、正しく実装されている場合、より安全で、はるかにユーザーフレンドリーです。

Zendoauhtクライアント

于 2012-11-21T16:36:11.660 に答える
0

phpmcryptを使用できます。関連する質問はこちらをご覧ください。または、サーバー側を暗号化/復号化する場合は、mySQLにAES暗号化機能があります。

于 2012-11-21T16:27:55.143 に答える
0

PKIF(具体的にはPKIFCRYPTO)やNSSまたはMS-CAPIなどを使用できます。それは気弱な人向けではありませんが、資格であなたを信頼することを決定したユーザーにある程度の能力を示したいと思うでしょう。

于 2012-11-21T19:42:50.143 に答える