2016年06月04日
ネットで調べものをしていたら、SSHを使っているのにパスワード認証をしているらしい事が書いてあるページが結構あることに驚きました。
SSHを使うなら公開キー認証方式でしょう。
SSHが非常に強固だと言われているのは公開キー認証方式を使っているからです。
たしかにSSHはパスワード認証ができます。しかもインストール直後の状態はパスワード認証ができる状態になっています。
しかし、これはサーバーが遠隔地にある場合、公開キーを直接サーバーに持ち込む事ができないため、まずパスワードでSSHログインして公開キーをサーバーに登録するためにパスワード認証ができるようになっているのです。
公開キーをサーバーに登録したらパスワード認証はすぐに止めなければなりません。
SSH でもパスワード認証では telnet に毛が生えた程度のセキュリティー能力しかありません。
パスワードを使う場合、パスワードは一応暗号化されてネット上を流れますがその暗号はSSHのソースを見ればわかってしまう暗号化です。
だからパスワードを平文でネット上に流す telnet とあまり変わりません。
さらに、公開キー認証とパスワード認証のセキュリティー能力はあまり差がないと書いてあるページを読んでしまいました。
sshの公開鍵認証ってパスワード認証より安全?s
う〜ん、これはないでしょう。公開キー方式の方がセキュリティーは強固だと思いますが…
パスワードの場合はパスワードを盗まれる機会は結構あります。
パスワードの使い回し、自動入力ツールによるパスワードの自動入力、パスワードの類推などなど…
しかし、公開キー方式の場合は秘密キーを盗まれる事さえ注意していればいいのです。
しかも秘密キーを盗むのは非常に難しいと思います。
ところで皆さん秘密キーはどのように保管していますか?
ネットを見ても保管方法を書いたサイトがあまり見つからないのですが私はSDカードに保管しています。つまり通常はパソコンから切り離されているのです。
SSH には ssh-agent という素晴らしく便利なソフトがあって ssh-agent が秘密キーをメモリー中に保管していてくれるのです。
つまり ssh-agent を起動すると ssh-agent が秘密キーをファイルから読み込み動いている ssh-agent のメモリーに保管してくれるのです。
いくらウイルスが感染していても起動中のプログラムのメモリーの内容を読み取るのは不可能です。
そしてパスコンを止めてしまえば、この ssh-agent も終了するので当然メモリー中の秘密キーも消えてしまいます。
非常に便利なソフトです。
そして ssh-agent を起動する時だけSDカードをパソコンにさすのです。
ssh-agent が起動したらすぐにSDカードを抜きます。
だから、ます秘密キーを盗むのは不可能だと思います。