2009-06-16 20 views
7

まず、私の質問はパスワードのハッシュではなく、パスワードの暗号化です。私はサードパーティのサービスにユーザーを認証する必要があるデスクトップアプリケーションを構築しています。ログインプロセスを高速化するために、ユーザーに資格情報を保存するオプションを提供したいと考えています。サービスに彼を認証するためにパスワードが必要なので、ハッシュすることはできません。LinuxでPythonでパスワードを可逆的に保存するには?

私は、pyCryptoモジュールとそのBlowfishまたはAES実装を使用してクレデンシャルを暗号化することを考えました。問題は、キーを格納する場所です。私はいくつかのアプリケーションがキーをソースコードに直接格納することを知っていますが、オープンソースアプリケーションをコーディングしているので、これは非常に効率的なソリューションのようには見えません。

Linuxでは、セキュリティを保存するパスワードを増やすために、ユーザー固有またはシステム固有のキーを実装する方法が不思議でした。

pyCryptoとシステム/ユーザー固有のキーを使用するよりも、この問題の解決方法が優れている場合は、躊躇しないで共有してください。前にも述べたように、ハッシングは解決策ではなく、パスワード暗号化が脆弱であることはわかっていますが、ユーザーにオプションを与えたいと思います。 Gnome-Keyringの使用は、多くの人(自分自身を含む)がそれを使用しないため、オプションでもありません。

+0

ダーン。私はgnome-keyringを提案しようとしていた:( – Zifre

答えて

5

パスワードを暗号化しても、平文で保存するよりもはるかに多くの保護が得られます。おそらくデータベースにアクセスできる誰も、あなたのウェブサーバマシンに完全にアクセスすることができます。

セキュリティの喪失が許容され、本当に必要な場合は、インストールプロセスの一環として新しいキーファイル(ランダムなデータソースから)を生成し、これを使用します。明らかに、この鍵をできるだけ安全に保管してください(ファイルのアクセス許可をロックするなど)。ソースに埋め込まれた単一のキーを使うのは良い考えではありません。別々のインストールで同じキーを使用する必要はありません。

0

パスワードセーフは、Bruce Schneierとオープンソースによって設計されています。 Windows用ですが、何をしているのかを見て、おそらく再利用できるはずです。

http://www.schneier.com/passsafe.html

http://passwordsafe.sourceforge.net/

これを読む:If you type A-E-S into your code, you're doing it wrong.

+0

)最後のリンク( "If you type ...")が404を返す。 –

+0

彼らはブログを動かした - –

+0

Aaaaandが再び壊れた。いくつかの場所、しかしそれらはすべて画像が欠落しているようです。 – TRiG

5

PAMを使用してみてください。ユーザがログインしたときに自動的に鍵の暗号化を解除するモジュールを作ることができます。これは内部的にGNOME-Keyringの仕組みです(可能な場合)。 PAMモジュールは、Pythonでpam_pythonと書くこともできます。