- ホーム
- コラム
- データ連携とIT基盤
- インターネットEDIセキュリティ機能対決

インターネットEDIセキュリティ機能対決
SmartSCM事業本部 ICT基盤ソリューション部 トラミ
本記事担当のトラミです。
最近、話題の「2024年問題におけるインターネットEDIへの移行のススメ」ですが、そもそもどのようなインターネットEDIが存在して、そしてそれらはどのような違いがあるのでしょうか。
インターネットEDIは、世界各国、誰しもがアクセス出来るインターネット上に、会社の機密情報や業務データを乗せて企業間でやりとりしていくもの。
「情報漏洩」、「改ざん」、「成りすまし」といった手口による被害、それによる会社の信頼性の低下、顧客離れ、売り上げの減少、倒産・・そんな実際に起こった話を耳にすると、インターネットEDIに移行するのが怖くなってしまいますよね。
だけど、2024年までに、「インターネットEDI」に切り替えないといけない。。
いったいどのインターネットEDI手順を選べば良いの??・・と、湧き出てくるたくさんの疑問と不安の中で、一番解りにくくて、でも一番知らないといけなくて、一番モヤモヤしている、それぞれのインターネットEDI手順の『セキュリティ機能』について、連続シリーズにてお届けしていきたいと思います。
まず、シリーズ第1回目は、『SFTP手順』についてご紹介します。
1.「SFTP手順」とは?
SFTP手順は、PKI(※1)を基盤とした認証と、転送情報の暗号化/複合化を行う「ssh(※2)」という通信プロトコル上で、「sftp」というFTPに似た送信や受信等のコマンドを発行し、ファイルの送受信を行うプロトコルです。
(※1) 公開鍵基盤(PKI: public key infrastructure)
(※2) 暗号や認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコル(ssh:SecureSHellセキュアシェル)
「SFTP手順」は「FTP手順」と同様なコマンドを使用しているので混同されがちですが、「SFTP手順」と「FTP手順」は、全く別のものです。
手順としては別のものですが、ネットワークモデルとしてみた場合には、SFTP手順はFTP手順と同じC-S型(Client-Server型)ですので、どちらかがサーバの立場を担い、サーバとならないもう片方がクライアントの立場を担います。常に通信の開始は、クライアントからのコマンドの発行がトリガーとなるところは、FTPと同様です。
「SFTP手順」は、「ssh通信プロトコル」がFTPのようなコマンドの送受信を行うファイル転送プロトコル(sftpプロトコル)のフロントに立って、sftpコマンドがsshのセキュリティ機能に守られながら通信相手とのデータをやり取りしている、と考えていただければ、解りやすいと思います。
2.「SFTP手順」のセキュリティ機能
「SFTP手順」は、以降の3つのセキュリティ機能を実装しています。
2.1. セキュリティ機能1: 「公開鍵暗号化通信」
送信元が自分用の「秘密鍵」という鍵を使用して、情報を「暗号化」して送信先へ送信します。
受信した送信相手は、送信元の「公開鍵」を使用して、暗号化された情報の「複合化」を行い、情報を解読出来る状態(平文)に戻します。
これをお互いに実施することで、お互いの情報が暗号化されて相手に渡されます。
SFTP手順(実際に暗号化/複合化を行っている部分はsshプロトコルですが)の通信経路上では、認証情報のやり取りや、実際のデータ転送も常に暗号化されています。
2.2. セキュリティ機能2:「公開鍵認証」
認証とは、通信相手先が正しい通信相手なのかを確認する機能です。
SFTP手順では、前述の「セキュリティ機能1の公開鍵暗号方式」でも使用している「公開鍵」と「秘密鍵」を使用して、お互いの認証を行います。
「公開鍵認証」は、「公開鍵」を送信先へ送って、送信先が予め受領していた「公開鍵」と単純に比較をしているのではなく、実際は以下のような高機能な方法で認証を行っています。
尚、図の中の「ハッシュ値の計算」は、公開鍵認証を行う前の段階で、相互間のやり取りにて取り決めた「アルゴリズム」を使用して行っています。
■サーバ認証の方法
クライアントがサーバを認証チェックします。
■クライアント認証の方法
サーバがクライアントを認証チェックします。
2.3. セキュリティ機能3:「ユーザ認証」
ユーザIDとパスワードを使用した「ユーザ認証」の機能があります。
これは、サーバがクライアントを認証チェックするものです。
サーバで決定したIDとパスワードを、事前にクライアントへ伝えておきます。
クライアントは、当該IDとパスワードをサーバへ渡し、サーバがIDとパスワードを検査することで認証を行います。
クライアントの認証については、前述の「公開鍵認証」も実施している為、この「ユーザ認証」も行うと、クライアントに対してダブルチェックを行うことになります。
これを「2段階認証」と呼びます。
3.「SFTP手順」のセキュリティ機能使用部分
これまでSFTP手順が保有するセキュリティ機能をご紹介してきました。
では、実際にどこでそれらの機能を使用しているのでしょうか。
SFTP手順の通信シーケンスから見ていきましょう。
「2.1.セキュリティ機能1:公開鍵暗号化通信」は、認証情報とデータファイルを通信する全般に渡って行っています。
「2.2. セキュリティ機能2:公開鍵認証」は、②のアルゴリズムの確認が終わった後、先に「③サーバ認証」を、次に「④クライアント認証」を行います。
「2.3. セキュリティ機能3:ユーザ認証」は、公開鍵認証が終わった後で行います。
(上記記載した手順は詳細までお伝え出来ない為、厳密には異なる可能性がありますこと予めご了承下さい。概ねこのような手順で通信が行われているという参考程度にご覧ください。)
4.「SFTP手順」のメリット/デメリット
以上の纏めとして、セキュリティ機能を軸とした「SFTP手順」のメリット、デメリットを挙げていこうと思います。
★「SFTP手順」のメリット
① 「公開鍵暗号化通信」により、通信経路上で認証情報(公開鍵、ID/パスワード等)とデータの両方が常に暗号化されている為、セキュリティ脅威に対して防御することができます。
② 「公開鍵」は、通信相手ではない他の第三者に渡ってしまったとしても、通信の内容を複合化することはできないので安心です。
③ SFTPサーバ、SFTPクライアント共に、お互いに対して公開鍵認証確認を行っている為、改ざんや成りすましのブロッキングとなっています。
④ SFTPクライアントに対して、公開鍵認証とユーザ認証のダブル認証を行うことで、ハッキングや成りすましに対するセキュリティリスクを軽減し、セキュリティ強度を高めています。
⑤ SFTPはSSHの22番ポート(デフォルト)を使用してファイル転送を行う為、FTPとは異なり、ファイアウォールに対して複数のポートを開く必要がありません。解放ポート数が少ないということは、セキュリティ脅威から攻撃される範囲が狭いということになります。
⑥ 公開鍵暗号方式は、やり取りする通信相手が増えても、同じ公開鍵を増えた相手に渡すだけですので、暗号鍵の数を増やす必要はなく、運用管理が楽です(共通鍵暗号方式との比較)。
⑦ SFTPは、FTPが持ち得る全ての操作をカバーしています。従ってFTPと同じようなファイルのやりとりを全てSFTPで実現することが出来ます。
⑧ SFTPでは証明書は必要ありません(※1)。
公開鍵の所有者を信頼できる第三者機関(認証局)が審査し、発行するのが「公開鍵証明書」となりますが、SFTPでは使用している通信プロトコルが異なる為、「証明書」は使用しません。
(※1)Opensshの新しいバージョンでは公開鍵証明書の機能が使用可能となりました
が、まだまだ一般的には普及されていないようです。
⑨ 導入コストが抑えられる。
第三者認証局に公開鍵証明書を用意するには有償となります。SFTP環境に用意する「鍵ペア」は、前述のようにコマンドにて作成可能ですので、費用がかかりません。
⑩ 4GB以上の大容量のファイルも送受信できます(SCPとの比較:SCPは出来ない)。
⑪ パケットの内容を確認するので信頼性が高くなっています(SCPとの比較:SCPはパケットを確認していない)。
■「SFTP手順」のデメリット
① パケットの内容確認や高精度の認証を行う為、一般的に低速であると言われています(少しずつ改善されています)。
② 第三者認証局に認証された公開鍵証明書を使用した通信よりも信頼性という面では低くなります。信頼した通信相手との送受信を前提とした、公開鍵のみで暗号化、認証を行う場合に、SFTPは有効な手順と言えます。
③ フォルダ単位での送信ができません。
おわりに
今回のSFTP手順のセキュリティ機能、いかがでしたでしょうか。
インターネットEDIの各通信手順が持ち合わせるセキュリティ機能は、セキュリティ強度を高める為に、様々な方法を組み合わせて実装しています。
各手順が持つセキュリティ機能とその違い、良いところ/悪いところをご紹介して、インターネットEDIの選択にお役に立てますよう、これからも色々なインターネットEDI手順について、どんどんご紹介していきます。
次回をお楽しみに!