SFTP と FTPS: 使用するプロトコルは?

公開: 2022-10-03

この記事では、ファイル転送に広く使用されている 2 つのプロトコル、つまり SFTP と FTPS について説明します。

それらの根本的な違いについて学びます。 主な目的は、さまざまな状況でどのプロトコルを使用する必要があるかを知ることです。

これら 2 つのプロトコル (コンピューターなどの電子デバイス間でデータを転送するための一連の規則または手順) は、似たような名前を持っています。 各頭字語のSの位置は、これらのプロトコルの動作に影響を与えます。 どちらのプロトコルもデータを正常に送信しますが、大きく異なります。

SFTP と FTPS: どちらのプロトコルを使用するか?

FTP、FTPS、および SFTP は、今日でもファイル転送に使用されている 3 つの広く使用されているプロトコルです。 イニシャルが似ていても、データの転送方法、提供されるセキュリティのレベル、ファイアウォールの問題など、これらのプロトコルは大きく異なります。

ファイル転送

セキュア ファイル転送プロトコル (FTPS) およびシェル ファイル転送プロトコル (SFTP) により、さまざまな通信チャネルを介した高速ファイル転送が可能になります。

セキュア シェル ファイル転送プロトコル (SFTP)

Safe Shell File Transfer Protocol (SFTP とも呼ばれる) と呼ばれるネットワーク プロトコルは、2 つの通信チャネルを介した安全なファイル転送を可能にします。

SFTP は SSH プロトコルの一部であり、FTP のようなコマンドを SCP に相当するものにオーバーレイして、FTP ユーザーの生活を楽にします。

sftp

これにより、ファイル データ転送を送受信するための高レベルのセキュリティを備えた管理と信頼できるデータへのアクセスが可能になります。 SFTP はサーバーへのユーザーとサーバー間の機能の両方を提供するため、データに簡単にアクセスできます。 SFTP を使用して、サーバーへのログオン、ファイルのダウンロードとアップロードなどを行うことができます。

SFTP を使用すると、マシンは公開鍵と秘密鍵を使用して接続できます。 接続が確認されると、両方のデバイスが安全に通信できます。 SFTP は 1 つの接続のみを使用します。つまり、サーバー上でアクティブ化する必要があるポートは 1 つだけであり、サーバー用に選択されたポートでパブリックに到達可能であるだけでよいため、セキュリティ保護が容易になります。

ファイル転送プロトコル セキュア (FTPS)

ファイル転送プロトコル セキュア (FTPS) は、Transport Layer Security (TLS) に機能を追加することでセキュリティを強化し、企業が取引先、ユーザー、および顧客と安全に接続できるようにします。

FTPS は単なる FTP-over-TLS です。制御およびデータ接続は通常の FTP と同じですが、TLS で暗号化されます (HTTPS と同様に証明書が必要です)。これは SFTP とはまったく関係ありません。 送信されたファイルは FTPS 経由で交換され、FTPS 対応アプリケーションによって認証されます。

ftp

基本的に、コンピューターネットワークを介してファイルを転送するための制御チャネルとデータチャネルがあります。 セキュリティと暗号化のレイヤーが追加され、ほとんどの FTP クライアントはファイルを同期する機能を提供するため、すべてのファイルが場所に関係なく最新の状態になります。

FTPS 経由でファイルを送受信するための多くのツールが利用可能であるため、多くのファイル転送状況で FTPS を選択するのは理にかなっています。

主な違いを理解する

SFTP はファイル転送中のセキュリティを強化しますが、FTPS は暗号化レイヤーを追加し、データをより安全にします。

SFTP は、安全なネットワーク通信のために設計されました。 主に、請求データ、資金、およびデータ回復ファイルを転送するために安全に接続したいと考えています。

一方、FTPS は、ファイル転送プロトコルを使用してネットワーク接続されたコンピューター間のファイル転送をサポートするために作成されました。 また、アルゴリズムを実装することにより、暗号化のサポートを追加するように設計されています。 SFTP とは異なり、FTPS では人間が通信を理解して読み取ることができます。

SFTP は、FTPS よりもファイアウォールのサポートに適しています

SFTP では、クライアントとサーバー間で確立される接続は 1 つだけです。 別の場所にあるコンピューターに接続するための特定のポートを備えています。 したがって、多数のポートを開く必要はありません。 ちなみに、ポートが少ないということは、特定の種類のマルウェアがセキュリティを悪用する機会が少ないことを意味します。

クライアントとサーバーは、単一のネットワークを介してサーバーに接続されています。 ファイアウォールは、接続間のインターフェイスとして機能し、発生する可能性のあるさまざまな異常や疑わしい兆候や脅威の兆候をチェックします。

ただし、SFTP と比較すると、FTPS にはバックアップ データ接続が必要です。 データ転送ごとに新しいポートを作成し、多数のポートを同時に開くことができます。

問題は、FTPS が自然に暗号化されていないことです。 外部暗号化により、ファイアウォール ソフトウェアは、どのポートがどのような目的で使用されているかを判断できません。 FTPS とファイアウォールを同時に使用しようとすると、接続がすぐに失敗します。

通常、SFTP は FTPS よりもファイル転送に時間がかかります。

SFTP 接続は、ほとんどの場合、FTPS 接続よりも著しく遅くなります。 SFTP を実行するプロトコルは、パケット配信と暗号化のために高い追加コストを生成します。

SFTP は、伝送制御プロトコル (TCP) アーキテクチャをコアに使用します。 信頼性を維持するために、TCP は、データの分析、確認、メッセージ配信の同期など、いくつかのエラー チェック手法を採用しています。

FTPS は、主に高速ファイル転送用に作成されたもので、他のプロトコルと比較して無駄がなく、単純なプロトコルです。

FTPS は ASCII もサポートしますが、SFTP はバイナリ データの送信のみをサポートします。

SFTP には ASCII (American Standard Code for Information Interchange) モードはありません。 すべての情報はバイナリ形式で送信されるため、クライアントが送信したデータと同じデータをサーバーが受信することが保証されます (またはその逆)。

文字列を送信側のオペレーティング システムから受信側のオペレーティング システムに変換する ASCII モードはありません。 このため、SFTP ロギングは非常に扱いにくいものです。 デフォルトの SFTP セットアップを使用すると、ログの作成と維持がほぼ困難になるため、企業はマネージド ファイル転送 (MFT) テクノロジを利用してこの問題を回避することがよくあります。

FTPS は FTP の新しいバージョンであるため、ASCII 転送もサポートされています。 これは、IT 管理者が発生しているネットワーク プロトコル アクティビティを簡単に理解し、ボトルネックを特定できるため、ロギングに非常に役立ちます。

SFTP は .NET フレームワークと互換性がありませんが、FTPS は互換性があります。

Microsoft 独自の .NET ソフトウェア フレームワークにより、プログラマは Windows オペレーティング システムで動作するアプリケーションを作成できます。 ユーザーフレンドリーでクロスプラットフォーム対応であることで有名です。

デフォルトでは、.NET は SFTP プロトコルをサポートしていません。 このプロトコルは、それに依存する開発者によるファイル転送または管理には使用できません。 対照的に、.NET は FTPS をサポートしているため、複数のコマンドを実行できます。

SFTP は帯域外認証を使用しますが、FTPS は署名付き証明書に許可を依存します。

SFTP プロトコルは、検証用の署名付き証明書を提供しません。 まず、平文で利用できるデータはなく、すべての情報は事前に暗号化されています。 また、帯域外認証にも依存します( 二要素認証の一種)。

この場合、ID とパスワードは同じチャネルで送信されます。 ただし、別のセカンダリ チャネルを使用して、ユーザー ID をさらに認証します。

対照的に、FTPS は FTP サーバーを使用し、サーバーは公開鍵認証を提供する必要があります (暗号化と復号化は別の鍵を使用して行われます)。 企業は、FTPS ゲートウェイをシームレスに使用するために、公開鍵メカニズムをサポートし、デジタル証明書がインストールされたサーバーを購入できます。

FTPS コマンドと比較して、SFTP コマンドはより多くの制御を提供します。

ほとんどの一般的なオペレーティング システムには CLI (コマンド ライン インターフェイス) ソフトウェアがプリインストールされており、SFTP および FTPS は CLI インターフェイスを使用して利用できます。 その結果、両方の通信プロトコルがオープンであり、幅広いプラットフォームからアクセスできます。

それに比べて、FTPS コマンドははるかに単純で、機能が少なくなっています。 ユーザーは、リモート接続を介してホストされているファイルまたはディレクトリを編集できません。 アクセスして取得することしかできません。 たとえば、SFTP と FTPS は異なるコア プロトコル システム (つまり、SFTP には SSH、FTPS には FTP) を使用するため、FTPS コマンドを使用しても、ファイル所有権のアクセス許可を変更または変更することはできません。

SFTP は、より優れた互換性と採用を享受しています

FTPS の使用は減少しています。 データが公開されていて機密でない場合、一部の企業、マネージド ファイル転送 (MFT) ソリューション、および独立した Web 開発者は、簡単なファイル転送方法として FTPS を採用しています。

FTPS と比較すると、SFTP はより新しいものです。 最新バージョン (バージョン 6、ドラフト 13) は 2006 年に作成されました。一般的なブラウザーはすべて SFTP をサポートしており、信頼できるプロバイダーから多数のエンタープライズ グレードの SFTP ソリューションを入手できます。

たとえば、SFTP ファイル転送プロトコルは、IBM サーバーおよび Microsoft Azure クラウド バケットと連携するように設定できます。

SFTP と FTPS のうち、どのプロトコルをどのような条件で選択する必要がありますか?

SFTP と FTPS は、パブリック ネットワークとプライベート ネットワークを介してデータを転送するために広く使用されているプロトコルです。 どちらにも長所と短所があります。 ニーズを満たすプロトコルを選択する前に、組織は次の点に留意する必要があります。

  • SFTP はデフォルトで完全に安全ですが、FTPS は SSL または TLS を使用して暗号化のレイヤーを追加します。
  • SFTP はファイアウォールと互換性がありますが、送信するバイナリ データはログ記録には適していません。
  • FTPS ファイル転送は、SFTP よりもはるかに高速です。 SFTP は .NET フレームワークでは機能しませんが、より広く使用され、互換性があります。
  • 認証手順とコマンド セットは、2 つのプロトコルで異なります。

その結果、ほとんどの企業はこの 2 つを組み合わせて、利点を活用しながら欠点に対処しています。

SFTP を使用する場合

データ転送

SFTP は低速で​​すが、セッション全体が終了することなく、すぐに終了します。 公開 SSH キーを共有することで簡単に使用できます。 サーバー上の情報をすばやく入力して、アカウントにリンクできます。

接続が確立されると、クライアント ソフトウェアは検証のために公開鍵をサーバーに送信します。 これらの公開鍵が一致し、ユーザーが必要なパスワードのユーザーを入力すると、認証が完了します。

SFTP は別のポートを使用してデータを転送します (デフォルトでは、これはポート 22 です)。 ポートが少ないため、SFTP は盗聴 (プライベート通信の無許可のリアルタイム傍受) の危険にさらされるポイントの数を制限し、中間者攻撃を防ぎます。

大きくてかさばるファイルを一度に転送できます。 データは迅速かつ効率的に送信されます。

FTPS を使用する場合

ファイルを安全に転送するための最良のオプションは FTPS です。 取引先が必要とする場合、または接続を認証するために証明書を使用したい場合。

FTPS は、TLS と SSL を使用してサーバー接続を暗号化します。 それらには、発行者の名前、サブジェクトの名前、サブジェクトの重要な公開情報、および署名などの識別の詳細が含まれます。

証明書を使用する場合、証明書が取引先によって自己署名されているか、または認定された認証局 (CA) によって署名されている場合、証明書は信頼されます。 自己署名資格情報を検証するには、信頼できるバイタル ストアに取引パートナーの公開証明書のコピーが必要です。

ファイルを安全に転送するための最良のオプションは FTPS です。 FTPS は暗黙的および明示的な接続タイプに多数のポート番号を使用するため、新しいポートが開きます。

結論

SFTP は SSH の改良版であり、デフォルトの安全な SSH に単純なファイル転送機能を提供しますが、FTPS はセキュリティ フレームワークを追加するために FTP の拡張バージョンとして開発されました。 FTPS は 2 つのチャネルを使用しますが、SFTP は 1 つだけを使用して制御通信とデータ転送を有効にします。

SFTP はデータをバイナリ形式で送信します。 FTPS は、人間が判読できる形式でデータを送信します。 組織で FTPS を選択する場合は、セキュリティの高いファイアウォールを介して接続するのが難しい場合があることに注意してください。

FTPS は暗黙的および明示的な接続タイプに複数のポート番号を使用するため、ファイル転送またはディレクトリ リストの要求が行われるたびに、別のポートが開かれます。 注意と警戒を怠ると、ネットワークが危険にさらされ、脆弱性にさらされる可能性があります。