SMB encription
セキュリティを考慮したファイル通信について
世の中には、FTPを使ったファイル通信、NFSを使ったファイル通信など、さまざまファイル通信方法があります。近年では、HTTPを使ったファイル通信もメジャーになってきているかと思います。しかしながら、ローカルな通信では、SMB通信もまだまだ広く使われているでしょう。
今回は、SMBによるファイルのやりとりを行う際の、サーバーとクライアント間のパケットについて調べてみようと思います。
まずは何の変哲もないテキストファイルtest.txtを用意します。このテキストファイルの中身は下記のようにします。
このファイルを、SMBクライアントからSMBサーバーへコピーします。この時のパケットの流れを確認してみましょう。
上記の通り、SMBクライアントから送付されたファイルの中身が見えてしまっています。セキュリティとしては少し不安ですね。
それでは、ここで、SMB3から追加された機能である「SMB Encryption」を使用して通信を行ってみます。先ほどと同様、test.txtをSMBクライアントからSMBサーバーへコピーします。違いは、「SMB Encryption」が有効であるという事だけです。
無事にパケットが暗号化され、ファイルの中身は見えなくなりました。
セキュアな通信という意味ではhttpsでも、実現は可能ですが、特にサーバーの場合は、SSL証明書の用意などかなり手間がかかってしまいます。
一方、YNQの場合は、追加のモジュールなしで、「SMB Encryption」の実現が可能です。YNQ は組み込み向けのプロダクトですので、ITRON 4.0系での実現も可能です。
なお、マイクロソフトからWindows Server 2022 / Windows 11のSMB機能についてのアップデートがあり、最新のSMB暗号化(AES256)やSMB Over QUICなどの新機能について紹介がされています。
日々進化しているSMBですがVisuality Systems社のYNQ/JNQは、マイクロソフトと連携してSMB機能の開発に取り組んでおり、2022年前半までに上記の機能に対応した製品提供を予定しています。