2017-05-11 8 views
1

私は秘密鍵を平文で保存する必要なくSSH認証が機能するようにしようとしています。私はメモリに格納されたキーの私有鍵署名を可能にするAPIを使用しています。私はそれをSSHに組み込む最良の方法が何であるか疑問に思っています。私が本当にやる必要があるのは、SSHエージェントが認証をしているときに有効な秘密鍵の署名を提供することだけです。これを行うにはどうすればよいでしょうか。私はそれを与える署名を受け入れるためにssh-agentをちょっと修正することができますか、またはこの要求を処理するために私自身のエージェントを書く必要がありますか?公開鍵署名のためのSSHエージェントの変更

答えて

1

これを実行する方法はたくさんあります。最も単純なのは、ssh-agentで利用可能なPKCS#11インターフェイスを使用することです。キーが格納されている安全な場所(一般にスマートカードまたはHSMモジュール)からの署名を提供してください。

また、パスフレーズを使用して暗号化された鍵は、「秘密鍵を平文で保存する」という要件を解決できます。

+0

PKCS#11インターフェイスの使い方を理解しようとしていますが、使用しているデバイスがうまく動作しているかどうかはわかりません。より明確にするために、私は秘密鍵でECDSA証明書を生成できるAPIを使用していますが、鍵はアクセス不可能または読み取り可能です。私がSSH認証プロトコルについて理解していることから、ECDSA証明書はクライアント側の秘密鍵から生成されます。では、PKCS#11インターフェイスを使用してSSHエージェントに認証用の有効なECDSA証明書を渡すことはできますか?私は非常に明確ではない、あなたが与えることができる任意の助けのために非常に感謝してください! – calmeishmael

+0

PKCS#11は標準であるため、多くのドキュメントがあります。どのように見えるかを知るには、['soft-pkcs11'](https://github.com/kinnalru/soft-pkcs11/tree/master/example)プロジェクトの実装を見ておくと良いスタートですこれは完全にソフトウェアです。あなたはおそらくそれから始まり、関心のあるあなたのインターフェースを接続することができます。 – Jakuje

関連する問題