GNU/Linux >> Linux の 問題 >  >> Linux

SSHが安全な通信を確立する方法

機密情報や手紙を送るときは、外の世界から隠したいのです。そのため、封筒に封をして米国郵政公社(USPS)を使用して目的地に送付することで、保護されていることを確認しました。少なくとも、これは私たちが情報を送信するために使用した方法です。より高度なレベルの機密性を使用した暗号化とモールス信号についての議論すら入力していません。

今、私たち人間はインターネットに進化し適応してきたので、安全な接続を使用して情報を交換しています。以前は、telnetを使用してポート23を使用してリモートサーバーに接続していました。問題は、プレーンテキストで情報を送信していたことでした。つまり、情報を読みたい人は誰でもネットワークを盗聴でき、情報が危険にさらされていました(同等の情報はUSPS経由で送信された手紙を開いて読むことができると。)

この結果は、元のメッセージを送信したときに望んでいたものではありません。リモートサーバーにメッセージを送信する安全な方法が必要ですよね?もちろん、解決策はSecure Shell(SSH)経由で送信することです。

SSHが暗号化されたメッセージを送信する方法

そのため、クライアントからサーバーへ、またはその逆に暗号化されたメッセージを使用して安全に通信したいと考えています。私は次のようにSSHでこれを達成します。 SSHは、ポート22を介して2つのホスト(Host-1(サーバー)とHost(クライアント))の間に安全な接続を確立します。お互いを認証した後、彼らはメッセージの安全な交換を可能にしました。

暗号化タイプ

SSHは3つの異なる暗号化タイプを使用します:

  • 対称暗号化
  • 非対称暗号化
  • ハッシュ

これらのタイプについて簡単に説明します。

対称暗号化

共有キー暗号化とも呼ばれる対称暗号化は、通常、メッセージの暗号化と復号化の両方に単一のキーまたはキーのペアが使用されます。このキーは、クライアントとサーバー間の通信セッション全体を暗号化するために使用されます。

クライアントとサーバーの両方が単一の方法に同意し、共有キーを生成します。これはもちろん第三者に開示されることはないため、共有/秘密キーメッセージの送信に使用されます。この方法の最も興味深い部分は、クライアントとサーバーの間でキーが交換されないことです。代わりに、各マシンは、以前に合意された方法を使用して、共有キーを個別に計算します。サードパーティのマシンがデータをキャプチャしたとしても、データの暗号化に使用された方法が不明であるため、復号化できません。

非対称暗号化

上記の方法とは異なり、この方法では暗号化と復号化に1対のキーを使用します。これらは公開鍵と秘密鍵として知られています。公開鍵は、その名前が示すように、広く配布されています。秘密鍵は機能の点で公開鍵と密接に関連していますが、公開鍵を知っているだけでは計算できません。

秘密鍵は第三者に公開されないという事実に依存しているため、秘密鍵は通信全体の重要な要素であり、メッセージを復号化できる唯一の鍵であり、独自の公開鍵で暗号化されています。したがって、いずれかの当事者がメッセージを復号化して読みたい場合は、秘密鍵を所有している必要があります。

2つのシステムを使用してこの方法を試してみましょう。まず、ワークステーションから始めます。ワークステーションには、次のように生成された2組のキーがあります。

次に、サーバーからワークステーションへの接続を開始します。

したがって、サーバーはワークステーションの情報をknown_hostsに保存します。 次のようにファイルします:

サーバーが検証された後、サーバーとクライアントは、Diffie-Hellman鍵交換アルゴリズムを使用してセッション鍵をネゴシエートします。この共有キーは、暗号化と復号化に使用されます。

最終段階はクライアントの認証であり、これはSSHキーペアを使用して行われます。次の図は、このプロセスがどのように発生するかを示しています。

コマンドssh -v [email protected]を発行すると 、これが何が起こるかです:

結論

この記事の目的は、SSHが2つのシステム間で安全な通信を確立する方法をユーザーに認識させることでした。うまくいけば、私はそのプロセスについていくつかの洞察を提供しました。

[SSHについてもっと知りたいですか? AdvancedSSHチートシートをダウンロードしてください。]


Linux
  1. AndroidからLinuxでSSH接続する方法

  2. 別のサーバーを使用してサーバーにSSH接続する方法は??

  3. PostgreSQLサーバーを保護する方法

  1. Linux専用サーバーでSSHキーを生成する方法は?

  2. SSHキーを設定する方法

  3. Ubuntu18.04でSSHキーを設定する方法

  1. パスワードなしのSSHログインを設定する方法

  2. ポートノッキングでSSHサービスを保護する方法

  3. LinuxでパスワードなしのSSHを設定する方法