続:なんてこったい。

いろいろメモ(個人の主観が多分に含まれています。ストレス発散用かな?)

全体表示

[ リスト ]

SSHの仕組み

今日会社の子から SSH の仕組みについて問い合わせがあったので
ついでにここにも回答した内容を載せときます。
( え〜 手抜きですとも..)

以下本文
===============================

SSHによる暗号化

SSHは、共通鍵方式と公開鍵方式の両方を使って通信路上のデータを暗号化します。

共通鍵方式は、お互いに同じ鍵を使用して暗号化と複合化を行います。
逆に言えばお互いに同じ共通鍵を持っていなければ解読出来ません。
この共通鍵が第3者の手に渡ってしまうと、平文でデータを流しているのと変わらなくなります。
共通鍵方式として、DES, DES3, IDEA, Browfish, AES なんてのが あります。

公開鍵方式は、秘密鍵と公開鍵を使って暗号化と複合化を行います。
秘密鍵で暗号化したものは公開鍵で複合化出来、また公開鍵で暗号化したものは秘密鍵で複合化するという具合です。
秘密鍵は外に公開しない鍵なので、鍵がネットワーク上流れる事はありません。(逆に公開鍵は積極的にネットワーク上に流します)
公開鍵方式として、RSA, DSA があります。

※ 共通鍵方式と公開鍵方式を比較すると、共通鍵方式の方が短い鍵の長さで強い暗号強度が得られます。
(共通鍵方式の方が暗号化・複合化の効率が良い)

また鍵の長さが長くなればなるほど、暗号化および複合化に要する CPU パワーが必要となります。
(データを送受信する為に CPUパワーを使うより他の事に使いたいですよね)

ですが、メリットが有りそうな共通鍵方式では、先に書いた様に同じ鍵を安全に受け渡す必要があります。
(ネットワーク上に共通鍵を生で受け渡しをしたら意味無いですよね )


そこで SSL, PGP, SSH では、うまい方法を思いつきました。

共通の鍵を渡す時にのみ、CPU パワーを使用する 公開鍵方式で暗号化・複合化を行い、鍵を渡された後は共通鍵を使用するという方法です。

さらに、同じ共通鍵をベースに暗号化データを流していると何時かは解読されてしまうため、データを送受信するセッションを開設する毎に共通鍵を新たに作成したものを公開鍵方式で暗号化し転送しています。
これなら、セッション閉じられるまでの間までしか有効ではない使い捨ての鍵となりますので、ますます強固な暗号データとなるわけです。


また SSH で公開鍵を渡すタイミングですけど、接続される側(一般的にサーバと呼んでいる方です)は、マシン自身の公開鍵のペア (秘密鍵と公開鍵)を予め生成して準備しています。

で接続する側から初めて接続しに行った際に、公開鍵を渡されるわけです。
(TeraTERM SSH とか WinSCP では、初接続ですが登録しますか?というメッセージダイアログが出てきます。
「登録する」を選択した場合、接続したサーバの公開鍵がテキストデータでファイル化されています )


基本的に SSH は、コンピュータ自身を識別する為の 公開鍵と秘密鍵を使用しますが、個人単位でも公開鍵と秘密鍵を作成する事も出来ます。
この個人単位で作成した公開鍵と秘密鍵のペアで認証もセットで行うのが、passphrase 認証と言っているものの事です。

個人で公開鍵と秘密鍵を作成していない場合、サーバがUNIXの時はUNIXサーバへログインする ユーザIDと password を指定して認証を行うのですが、passphrase では生成した公開鍵と秘密鍵自身で認証出来るため更に強固になります。
WinSCP をインストールすると、インストールされたフォルダ配下に鍵を生成するツール( GUIベース )が一緒にインストールされます。
ですが、個人用に作成した公開鍵はコンピュータ自身の公開鍵と扱いが異なり自動的に転送されません。
ですので、作成した公開鍵はログインするコンピュータに対して、手で設定する必要があります。

私は、ログインするサーバに対して全て個人の公開鍵を手で仕込んでいます。
しかも公開鍵と秘密鍵を生成する際にパスワード無しで生成していますので、接続先にログインする際はパスワードを聞かれる事なく「さくっと」入り込んでいます。(快適快適)
パスワードを指定したければそれはそれでOKですので、そこは個人個人の趣味でどうぞという感じですね。
但し、パスワード無しということは、そのクライアントマシン上の自分のユーザの権限であれば、フリーパスでサーバ達に入り込める事を意味しています。
真にセキュリティを考えるならやめたほうが良いかも..

Tips
パスワードを作成する際に、「記号とか数字とか英語の大文字小文字を組み合わせて下さい」と良く言われます。
これは、歴史的に指定可能なUNIXパスワードの文字列の長さが短かった事に由来しています。
確かに記号とか数字とか英語の大文字小文字を組み合わせる事で解りにくくする事は出来ますが、passphrase を使用するとパスワードの長さは思いっ切り長く出来ます。
ですので、自分しか分らない様な文章で指定する事が出来ますので容易にネットワーク越しに不正ログインされる可能性を低くする事が出来ます。

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(2)


.


みんなの更新記事