SSH

SSHの公開鍵を秘密にしておくべき、という主張

More than 3 years have passed since last update.


SSHの公開鍵を秘密にしておくべき、という主張

SSHの公開鍵認証で使われる鍵ペアのうち、秘密鍵(プライベート鍵)を秘密にしておくのは当然ですが、時々公開鍵も秘密にしておくべきだという主張を見かけます。新機軸を見かけたので検討してみます。


どのような主張か


  • 公開鍵を一般に公開してしまうとその鍵を偽サーバに仕掛けることができる

  • その偽サーバに接続すると偽サーバだと気づかずにログインできてしまう(公開鍵が登録されていなければ認証に失敗するなりパスワードを求められたりするのでおかしいと気づく)

  • ホスト鍵のチェックでは気づかない可能性がある


何がおかしいか


偽サーバにログインさせるのに公開鍵は不要

偽サーバにログインさせることが目的なのであれば、攻撃者にはもっと簡単な方法があります。パスワード無しでのログインを許可してしまえば良いのです。

[foo@host1 ~]$ ssh host2

Last login: Fri Jul 3 16:26:15 2015 from 192.168.1.1

公開鍵認証でパスワードを求められなかったのか、それともパスワードなしでログインしただけなのか、区別を付けることは不可能です


ホスト鍵の検証に気づかないという前提は無意味

クライアントがサーバを検証する方法は、ホスト鍵の検証という仕組みでSSHに最初から備わっています。これが信用できないのであれば、同様に「オレオレ認証」だって信用できません。「オレオレ認証」が信用できるのであればホスト鍵の検証で十分です。


結論

上記の主張は、論理的にも技術的にも成立しません