Linuxサーバ

SSHサーバと公開鍵暗号方式

前回設定しましたSSHサーバなんですが、ひとまずパスワードログインを可能な状態にしています。

 

このままにしておいてパスワード総当り攻撃など喰らおうものならたちまち突破されてしまうことになります。

 

そのためクライアント側とサーバ双方で鍵を持ち合い、それを使わないとログインできないようにしていきます。

 

現在主流になっているのは「公開鍵暗号方式」という方法です。

 

簡単に説明すると、秘密鍵(複号鍵:Aとしましょうか)と公開鍵(暗号化鍵:こちらをBとします)という2本の鍵を一組として扱います。

 

秘密鍵Aは自分で大切に持っておいて、公開鍵Bはその名の通り外部に公開してしまいます。(この場合はサーバ側に置く、ということになります)

 

こうすることで公開鍵Bが盗まれても、鍵Bで暗号化したファイルは秘密鍵Aでしか開封できないという仕組みが出来ます。

 

そして秘密鍵Aで暗号化することも出来ますし、それを復号できるのも公開鍵Bだけなのですが。。。

 

公開鍵Bはばら撒く前提で作られているため、他の人が持っていてもおかしくないですよね。

 

ということで、鍵Aで暗号化したものはハッキリいって秘密文書としての機能は殆ど持ち合わせていないのです。

 

この場合は文書そのものを暗号化することが目的なのではなくて

  • 鍵Bで復号できる文書を送ってきた
  • イコール 対をなす唯一の存在である鍵Aで暗号化されている
  • イコール (盗まれていなければ、ですが)秘密鍵Aをもつ人物からの文書である

ということが証明される、という事実が重要になります。

 

こういった仕組みをつかって認証を行うのが「公開鍵暗号方式での認証」ということになります。

 

認証ができれば通信自体は暗号化されているSSHなのでひとまず安心、といったところでしょうか。

 

では次回は実際にWindows端末にSSHクライアントソフトを入れて鍵の作成並びに操作を行ってみましょう。

 

オススメの記事

-Linuxサーバ
-, ,