SCP が SFTP よりも安全かどうかという質問に対する答えは、「いいえ」です。単純明快な答えですが、この答えだけでブログを終わらせるわけにもいかないので、もう少し掘り下げてみたいと思います。まず、両方のプロトコルの起源に遡ってみましょう。
かなり以前、ラップトップさえ持ち運びが大変だったころ (1980年代)、BSD Unix は RCP (リモートコピープログラム) を導入しました。当時は有用でしたが、セキュリティと機能が劣っていたため、Secure Shell (SSH) プロトコルを組み込んだ Secure Copy Protocol (SCP) に置き換えられました。SSH によって、認証キーとログインを使用した安全なリモートログインが可能になり、コンピュータやサーバーとの間の安全な通信ができます。SSH を使用するトラフィックは、Advanced Encryption Standard (AES) や Standard Hashing Algorithms (SHA-2) などのアルゴリズムによって暗号化されます。SSH はインターネット標準になっています。
セキュアファイル転送プロトコル (Secure File Transfer Protocol、SFTP) は、安全な FTP (File Transfer Protocol) 実装のために Secure Shell を使用して認証と暗号化を行います。SSH ではなく、Secure Socket Layer (SSL) を使用する異なるプロトコル、FTPS (FTP over SSL) と混同しないでください。
- 関連ブログ:基本的なFTPからセキュアなファイル転送へ
- 関連ブログ:ファイル転送プロトコル (FTP) とマネージド・ファイル・トランスファー (MFT) の比較
- 関連ブログ:ファイル転送における暗号化の基本
SCP と SFTP は、両プロトコルとも Secure Shell を転送中のデータの暗号化プラットフォームとして使用し、同等に安全であるように思われていました。
2019年に、この想定が事実ではないことがわかりました (すべての SCP クライアントにパッチが適用されていないと仮定した場合)。ZDNet のレポートで、1983年以降のすべての SCP ユースケースに4つの主要なセキュリティ欠陥があったとの報告がありました。F-Secure の研究者によって発見されたこれらの欠陥の起源はすべて、RCP の元となった BSD 実装に由来します。
中間者攻撃 (Man-In-the Middle、MITM) と脆弱性は、SCP サーバーを乗っ取ることによって悪用されます。デフォルトのファイル転送方法として SCP を使用しているクライアントはすべて影響を受け、OpenSSH、PuTTY、WinSCP が含まれていました。ユーザーは不正なホストのフィンガープリントを受け入れて悪意のある活動を許可する可能性がありますが、ユーザーエラーは発生しません。
ただし、この問題を修正するために SCP2 が導入されました。したがって、古い SCP ではなく、確実に新しい SCP2 を使用するようにしてください。
SCP について
一般の人 (私は開発者ではないので、私自身も含めて) にわかりやすい言い方をすると、SCP は SSH の上に乗っていますが、SFTP は SSH から開発されており、本質的にはより安全です。
前述のように、オリジナルの SCP には脆弱性がありますが、プログレスの WS_FTP Server は SCP2 をサポートします。もし、SCP を使用する場合は、SCP クライアントを使用する必要があり、PuTTY が推奨される選択肢です。
SCP は Linux 環境により適していますが、現在、Linux を主要なベースとしている企業はどれほどあるでしょうか?SFTP をスタンダードとして使っていれば、エンタープライズレベルの FTP や MFP ソリューションと統合するために追加のクライアントやスクリプトを必要とせず、Windows 用の SCP クライアントが利用可能かどうかは問題ではありません。
Microsoft Word を購入した後で、他のソリューションが自分のニーズに合っているのがわかったときは、他のソリューションを使うのと同じです。Word は、Final Draft (映画の脚本の業界標準) や Scrivener (人気のある小説執筆ソリューション) とは統合されておらず、同じ機能もありません。特定の目的があって SCP が必要な場合以外は、SFTP を使用するのが適切です。
SFTP と SCP の比較
「SCP 対 SFTP」の比較のための調査をしながら、多くの専門家が、両方で SSH が使用されているので、セキュリティ上は同等であると言っているのがわかりました。また、どちらもファイルを転送する機能を提供しますが、SCP は独自の転送アルゴリズムを使用してすべてのパケットを認証するわけではないため、待ち時間の長いネットワークでは SFTP よりも高速です。
SCP が SFTP より優れている点は、転送速度です。ただし、SCP はファイル転送はするものの、それ以上のことはほとんどしません。
SFTP には、SCP との比較上、いくつかの利点があります。SFTP は、ファイル転送だけではなく、リモートファイル管理、ディレクトリ管理、ファイルの削除、名前の変更など、FTP ソリューションに期待されるすべてを可能にします。ユーザーにとって、ダウンロードやアップロードの中断ほどイラつくものはありませんが、SFTP を使用すると、中断された転送を再開できます。SCP の場合は、部分的な転送を上書きするか、新しい転送を開始することになります。
ファイルサイズはプロトコル問題ではない
ファイルサイズは、SCP であろうと SFTP であろうと、多くのユーザーにとって懸念事項のようです。ただし、どちらのプロトコルもサイズ制限を定義していません。セキュリティとは関係ありませんが、考察するのは有意義だと思われます。サイズ制限は、送信元または宛先に制限があるために発生します。以下のような理由によりますが、これらに限定されません。
1. 無料サービスの使用
無料サービスのプロバイダは、ユーザーに制限を設けます。制限内でも特に問題なく使えるものもありますが、有料サービスへのアップグレードが必要になるものもあります。無料のサーバーストレージや Web ホスティングなどが含まれます。
2. 有料サービスの使用
有料サービスにもレベルがあって、デフォルトにはしばしば制限が加えられています。設定可能な場合も、アップグレードが必要になる場合もあります。
3. リソース管理
サーバー管理者は、ユーザー数と利用可能なリソースに応じて制限を設定します。場合によっては、宛先ストレージに十分なスペースがない可能性もあります。
4. 32ビットのバリア
ソースまたは宛先が32ビットの場合、許可される単一ファイルの最大サイズは 4Gb です。つまり、大容量ファイルのサポート (LFS) は不可能です。32ビットクライアントをインストールすると、同じルールが適用されます。32ビットコンテナの場合も同様です。
したがって、ファイルサイズに制限があるとわかったら、またはファイルサイズのためにファイル転送に問題が発生したら、調査して原因を特定する必要があります。プロトコル選択の問題ではありません。
結論
SCP と SFTP とを比較する場合、究極的にはどちらが自社に適しているかを選択することになります。機能が必要な場合は、SFTP を選択するべきでしょう。ファイルを安全に転送したいだけなら、SCP でもできます。
Michael O'Dwyer
An Irishman based in Hong Kong, Michael O’Dwyer is a business & technology journalist, independent consultant and writer who specializes in writing for enterprise, small business and IT audiences. With 20+ years of experience in everything from IT and electronic component-level failure analysis to process improvement and supply chains (and an in-depth knowledge of Klingon,) Michael is a sought-after writer whose quality sources, deep research and quirky sense of humor ensures he’s welcome in high-profile publications such as The Street and Fortune 100 IT portals.