はじめに
ファイル転送プロトコルに関して、違いがよくわかっていなかったためまとめる。あくまでも学習メモなので、間違えていることもあるため参考程度に。
FTP
FTPとは、「File Transfer Protocol」の略。ファイルを転送する際の約束事。
クライアント・サーバーモデルで動作している。FTPクライアントを用いて、ファイルの転送を行う。
FTPは、利用者の認証情報(ユーザー名、パスワード)やファイルなど、通信の一切を暗号化しない。そのため、セキュリティの観点から見て安全ではない。こういった点から、暗号化して通信するプロトコルが推奨されている。
FTPS
FTPSとは。「File Transfer Protocol over SSL/TLS」の略。FTPで転送する情報を、SSL/TLSを用いて暗号化するプロトコル。
SSL/TLSとは?
SSLは「Secure Sockets Layer」の略で、送受信しているデータを暗号化する通信手順。
WebサイトのURLアドレスが、httpsから始まっている(URLに鍵マークがついている)ものはSSL化されている。
TLSは「Transport Layer Security」の略。SSLの脆弱性が発見され、それに対処するために設計されたのがTLS。そのため現在SSLは実はTLSである場合がほとんどだが、なじみ深いSSLという言葉が使用されている。
SSL/TLSは、共通鍵暗号方式と公開鍵暗号方式を用いて、通信を暗号化する仕組み。
SSL/TLSの流れ
- クライアント側からサーバー側に、SSL通信のリクエストを送る
- サーバー側から「公開鍵」付きのSSLサーバ証明書が送付される
- クライアント側で生成した「共通鍵」を「公開鍵」で暗号化してサーバー側に送付
- サーバー側は、ペアとなる「秘密鍵」で複合し、「共通鍵」を取得
- SSL/TLS暗号化通信開始
共通鍵暗号方式と公開鍵暗号方式
鍵:暗号化や複合化を行うために使うデータ
共通鍵暗号方式
送り手(暗号化する側)と受け手(複合する側)が同じ鍵を用いる暗号化方式のこと。
この鍵は、第三者に知られてしまうと意味がなくなるため注意。
メリット
・暗号化と複合化の計算が速い。
デメリット
・共通鍵を相手に安全に渡す必要がある点。
・やりとりする相手の数だけ鍵が必要になるため、鍵の管理が大変。
公開鍵暗号方式
共通鍵暗号方式のデメリットを解決することができるのが、公開鍵暗号方式である。
特徴としては、公開鍵と秘密鍵の2種類のカギが存在する。公開鍵のほうをほかの人に配布して、送信者側にはこの公開鍵を用いて暗号化してもらう。受信者は、自分しかもっていない秘密鍵を用いてその暗号を複合する。
公開鍵で暗号化されたものは、ペアの秘密鍵でしか複合できない。公開鍵はいくらばらまいても、そのカギでは暗号化しかできないため途中でデータを盗聴される心配などはない。
また、共通鍵暗号方式のように管理する鍵が増えてしまう心配もない。
ただ、共通鍵暗号方式と比べて暗号化や複合化に時間がかかるというデメリットもあるため使い分けが必要。
SFTP
SFTPは「SSH File Transfer Protocol」の略。FTPで転送する情報を「SSH」で暗号化するプロトコル。
SSHは?
SSHは「Secure Shell」の略。***ネットワークに接続された機器を遠隔操作し、管理するための手段。その際の通信を暗号化している。***SSLと同様に通信を暗号化するという意味では似ているが、混ざらないよう注意。
SSHとSSLの違いを大雑把に書くと
SSL:インターネットでのやり取りを暗号化。安全にWebサイトを表示するのが目的。
SSL:他コンピュータを遠隔操作する際のやりとりを暗号化。
SCP
SCPは「Secure Copy」の略。SFTPと同様にSSHを利用しているためセキュリティ面で安全性の高いプロトコル。
共通点と相違点
共通点
- SSHプロトコルを使用
- パスワード認証だけでなく、秘密鍵を用いての通信が可能
- GUIベースのクライアントソフト、コマンドベースのどちらでも使用可能
相違点
SCP
- 転送の再開が出来ない
- SFTPに比べて高速と言われている
- フォルダの送信はできない(クライアントソフトを用いれば可能)
SFTP
- 転送を中断しても、途中から再開できる
- SCPより転送速度が遅い
参考
- FTP、FTPS、SFTP、SCPの違いってなんなんだ?
- 【図解】SSL/TLSとは何か?その違いや仕組み・導入方法についてわかりやすく解説します
- SSL/TLS暗号化通信の仕組み
- キタミ式 基本情報技術者
- 【セキュリティ】共通鍵暗号・公開鍵暗号の仕組みについて解説します
- 「SSL」と「SSH」の違い
- SCPとSFTPの違い
まとめ
今回は、ファイル転送プロトコルとその周辺知識についてまとめた。
まずは今回のように広く浅く、知識を増やしていきたい。