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

ユーザーが管理しているパスワードをファイルに保存しておき、後ほど利用するオープンソースのアプリケーションを開発しています。ただ保存したファイルのパスワードがそのまま見られるのはよくありません。そこでパスワードの部分を可逆な暗号方式を使って保存しようと考えていますが、結局暗号のキーがソースコードへ埋め込まれてしまうため、見ようと思えばソースを使って見えてしまうという問題を抱えています。これを解決するいい方法をご存知の方、お教えください。

●質問者: kompiro
●カテゴリ:コンピュータ インターネット
✍キーワード:アプリケーション オープンソース キー ソース ソースコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● dev_zer0
●10ポイント

多分、可逆な暗号方式を使って保存という考え方そのものが問題です

例えばUnixの場合は/etc/passwd(最近は/etc/shadow)にパスワードが保存されていますが

暗号化アルゴリズムを使って暗号化された後のパスワードを保存しています


多分、今の認証方式は

1. ファイルに生のパスワードを保存

2. ユーザから入力されたパスワードが1.と同じかどうかチェック

3. 同じ場合、認証成功

方式だと思いますが

1. ファイルに暗号化した後のパスワードを保存

# 簡易な暗号化アルゴリズムは例えばcryptなどがあります

2. ユーザから入力されたパスワードを1.と同様の方法で暗号化する

3. ユーザから入力された暗号化されたパスワードが1.と同じかどうかチェック

4. 同じ場合、認証成功


という方法が一般的だと思います

一応、cryptのアルゴリズムは非可逆の為、

暗号化されたパスワードが漏洩したとしても

それから元のパスワードを推測することは難しいです

まぁ、総当り攻撃をすればどんな暗号でもいずれ破られてしまいますが...


2 ● y-kawaz
●60ポイント ベストアンサー

FirefoxやThunderbirdがやっているようにマスターパスワードを使うやり方はどうでしょう?

・パスワードはファイルに保存する。

・ただし平文では保存せずに、マスターパスワードを入力させてそれで暗号化したファイルを保存する。

・暗号化されたファイルのマスターパスワードはアプリケーションは知る必要が無いのでソースを見ても問題ない。

・アプリケーションの起動時or最初にパスワードが必要になるタイミングなどにマスターパスワードの入力をさせて、起動中はそれをメモりに覚えておく。

・アプリケーションはメモリ中のマスターパスワードでファイルを復号化して保存されたパスワードを取得する。

こんな感じです。

関連質問


●質問をもっと探す●



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