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

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

新規登録して質問してみよう
ただいま回答率
85.48%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Q&A

解決済

2回答

2977閲覧

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

re97

総合スコア208

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

0グッド

0クリップ

投稿2016/04/12 00:13

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

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

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

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

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

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

投稿2016/04/12 00:38

編集2016/04/13 03:24
suzukis

総合スコア1449

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

re97

2016/04/13 00:02 編集

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

2016/04/13 03:25

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

2016/04/13 23:54 編集

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

0

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

投稿2016/04/12 01:59

編集2016/04/12 04:27
Odacchi

総合スコア907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suzukis

2016/04/12 02:56

SSHの秘密鍵は数学的操作によって生成(計算)されるもので、パスフレーズ(を非可逆に変換した物)はそれを保護するために使われるものです。パスフレーズを変換して秘密鍵を作るわけではありません。一般的にも、パスフレーズ(パスワード)を非可逆に変換したものを「秘密鍵」とは呼びません。
Odacchi

2016/04/12 04:25

失礼。文章からPBEの話だと思って、絞って話していました。 一般に、というのは語弊を生みそうなので改めますね。
re97

2016/04/13 00:01

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

2016/04/13 02:24 編集

実装によるでしょうが、SSHでは多くの鍵を利用するので、それらの鍵自体を暗号化するための鍵に使われていることはよくあると思います。Windowsなどで各ユーザー毎にログインするときなども同様の手法が用いられています。 イメージ的にいうと、キーボックス(鍵の倉庫)です。キーボックス自体にも鍵をかけれますよね。suzukisさんが言われているのは、キーボックスの中身の鍵の話で、私は、キーボックス自体の鍵の話だと思って本投稿を読んだので、話が食い違っています。 (とはいえ、suzukisさんからは鋭い指摘をいただきました。ありがとうございます。) >・パスフレーズは秘密鍵の一部になっていると思っていたのですが ・一旦設定したら、アクセスの度にパスフレーズが求められるのはなぜでしょうか? キーボックスの中身から鍵を取り出すために、キーボックスの鍵を開ける必要があるので、パスフレーズが求められる(おそらくPBEという手法のはずです)と思って問題ありません。 ※キーボックスという言葉は例えで言ってるだけです。念のため。
re97

2016/04/14 00:02 編集

・コメントありがとうございます >キーボックスの中身から鍵を取り出すために、キーボックスの鍵を開ける必要がある ・この例えは大変分かりやすかったです ・秘密鍵を利用する際パスフレーズを求められる理由が分からなかったのですが、そういう仕様なのですね >PBEという手法 ・大変参考になりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問