質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.36%

秘密鍵生成する際、設定したパスフレーズはどこへ格納されているのでしょうか? 後から取り出すことは出来ない?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,917

re97

score 208

秘密鍵ファイルがあって、パスフレーズが分からない時、ファイル内容からパスフレーズを取得できないでしょうか?
・後から取り出すことは出来ない?
・非可逆?
・それともどこか別の場所へ保存されているのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+5

(コード見て回答書いていたのですがコードを見誤っていました)

決まりがあるわけではないので使用している実装次第ですが、OpenSSHはパスフレーズやそれから生成された値はどこにも保存されていません。

保存する実装があったとしても、さすがに可逆で保存している実装はないはずです(セキュリティ的にあり得ない)。

ということで、パスフレーズを復元することは出来ません。

OpenSSHの場合、パスフレーズは秘密鍵を暗号化するのに使われており、鍵の生成そのものには使われていません。鍵とは無関係なのでパスフレーズだけ変更することが出来ます。

秘密鍵ファイルを呼んで鍵を利用するには都度復号が必要なので都度パスフレーズが必要になります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/13 08:54 編集

    ・回答ありがとうございました

    >秘密鍵ファイル内に非可逆で保存されています
    ・イメージが湧かないのですが、例えばどこへ保存されるのでしょうか?
    ・ファイル形式?

    キャンセル

  • 2016/04/13 12:25

    すいません。回答に誤りがあったので編集しました。

    キャンセル

  • 2016/04/14 08:52 編集

    編集&コメントありがとうございました

    キャンセル

0

パスフレーズにソルト(と呼ばれる適当な文字列)を連結したものに暗号学的(一方向性)ハッシュ関数をかけたものを秘密鍵と呼んでいるのであれば、パスワードかハッシュ関数がよほど脆弱でない限り無理だと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/13 09:01

    ・回答&コメントありがとうございました

    >パスフレーズを変換して秘密鍵を作るわけではありません。一般的にも、パスフレーズ(パスワード)を非可逆に変換したものを「秘密鍵」とは呼びません
    ・パスフレーズは秘密鍵の一部になっていると思っていたのですが
    ・一旦設定したら、アクセスの度にパスフレーズが求められるのはなぜでしょうか?
    ・トリガー的位置付け?

    キャンセル

  • 2016/04/13 11:10 編集

    実装によるでしょうが、SSHでは多くの鍵を利用するので、それらの鍵自体を暗号化するための鍵に使われていることはよくあると思います。Windowsなどで各ユーザー毎にログインするときなども同様の手法が用いられています。

    イメージ的にいうと、キーボックス(鍵の倉庫)です。キーボックス自体にも鍵をかけれますよね。suzukisさんが言われているのは、キーボックスの中身の鍵の話で、私は、キーボックス自体の鍵の話だと思って本投稿を読んだので、話が食い違っています。
    (とはいえ、suzukisさんからは鋭い指摘をいただきました。ありがとうございます。)

    >・パスフレーズは秘密鍵の一部になっていると思っていたのですが
    ・一旦設定したら、アクセスの度にパスフレーズが求められるのはなぜでしょうか?

    キーボックスの中身から鍵を取り出すために、キーボックスの鍵を開ける必要があるので、パスフレーズが求められる(おそらくPBEという手法のはずです)と思って問題ありません。

    ※キーボックスという言葉は例えで言ってるだけです。念のため。

    キャンセル

  • 2016/04/14 09:00 編集

    ・コメントありがとうございます

    >キーボックスの中身から鍵を取り出すために、キーボックスの鍵を開ける必要がある
    ・この例えは大変分かりやすかったです

    ・秘密鍵を利用する際パスフレーズを求められる理由が分からなかったのですが、そういう仕様なのですね

    >PBEという手法
    ・大変参考になりました

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.36%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • SSHに関する質問
  • 秘密鍵生成する際、設定したパスフレーズはどこへ格納されているのでしょうか? 後から取り出すことは出来ない?