軽量SSHライブラリwolfSSHにて、TPM公開鍵認証をサポートしました。現時点ではRSA鍵に対応しています。
クライアント認証にTPM 2.0機能を活用することで、組み込みおよびIoTアプリケーションのセキュリティをさらに強化します。
概要
SSHクライアントにおける公開鍵操作時に、TPMベースのRSA処理を使用できます。TPMに対応していない環境とも容易に統合できます。
利点
1. ハードウェアに基づくセキュリティ
公開鍵認証を使用する際、TPMデバイスはTPM内で秘密鍵と暗号化アルゴリズムを安全に保護・管理する機能を提供します。秘密鍵はTPM内に安全に読み込まれ、TPM内からのみ使用されるため、より高いセキュリティを実現します。
また、TPMデバイスは秘密鍵と公開鍵データを保持する安全なキーブロブを生成して提供しています。wolfSSHはこのデータを読み取って検証し、SSH接続に使用できるよう鍵をフォーマットします。
2. 高いパフォーマンス
軽量でありながら高いパフォーマンスを維持できるよう、私たちは常に最善の実装に取り組んでいます。
軽量かつ高性能なwolfSSHにTPMベースの機能を実装することで、高いセキュリティ性能と機能性をかけ合わせた堅牢な認証を実現します。
テスト
TPMベースの公開鍵認証を用いたSSH接続をテストするために、カスタム鍵認証の有無をテストする包括的なGitHub CIワークフローを開発しました。
1. TPMシミュレータ
TPMシミュレータを用いて、TPM 2.0サーバーを実行します。
2. 鍵生成
wolfTPMのkeygen ツールでキーブロブを生成し、ssh-keygenを使用して公開鍵をSSH形式に変換します。
3. サーバーとクライアントの設定
サーバにBase64エンコードされた公開鍵を渡し、起動します。./examples/echoserver/echoserver -s key.ssh
同様に、クライアントにTPM 2.0キーブロブとユーザー提供のパスワードを渡して実行します。./examples/client/client -i ../wolfTPM/keyblob.bin -u hansel -K ThisIsMyKeyAuth
4. デバッグを有効化したテストコマンド
–enable-debugを使用してデバッグ出力を有効にし、コマンドラインデバッグログを通じて内部の処理を検証します。
より詳しい処理は、 tpm-ssh.yml で公開しています。
カスタムおよびデフォルトの鍵認証でテストを実施し、その出力を検証することで、TPMベースの公開鍵認証が適切に動作しているかを検証します。このプロセスにより、wolfSSHがTPMベースの鍵で正しく安全に機能することを確認しています。
まとめ
TPM公開鍵認証により、wolfSSHは安全な秘密鍵処理と堅牢なSSH機能という、両者の最良の部分を組み合わせることができました。
これらの変更は、パフォーマンスを損なうことなくセキュリティを強化します。使いやすさと高度な暗号保護の両方を求めるお客様にとって、wolfSSHはより理想的な選択肢となりました。
さらなる詳細および具体的な取り扱い方については、READMEファイルをご覧ください。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/wolfssh-support-with-tpm-public-key-authentication