技術情報に関して更新します。(月1更新予定)

2018年5月7日月曜日

RPGLEでのSSL通信(2)

0 件のコメント :
サーバ認証さえクリアすれば、あとはIBM i のSSL通信機能が、APIを呼び出すだけで勝手にネゴシエーション(SSL Handshake)して、最も高い改ざん防止と暗号化を決定してくれるので、簡単にSSL通信を行うことができます。
ネゴシエーションに関しては、システム値でも制御できますが、テストではシステム提供の省略値をそのまま使用しました。


IBM i のバージョンやリリースによって若干異なるようですが、IBM i のSSL APIは、システム値に従って動作してくれます。
もちろん、認証・署名・暗号化方式をAPIに対して指示する事も可能なようにしました。(最大5個)

より業務に接したテストを行ったわけではありませんが、感触としては

1.ソケットのSSLアップグレードに少し時間がかかる
2.クリアテキストのSocketに比べると暗号化の分だけ遅い
3.暗号化方式によってはパディングが入って転送量は増える
 
が挙げられます。

3.はほぼ気にならないでしょうが、1.はクライアントとの間で種々のネゴシエーションが行われるので、ちょっと待つ感じがありました。
2.に関しては、暗号化の方式と実行するマシンの暗号化エンジン(デバイス)も関係するので何とも言えません。
IBM i では、暗号化デバイスを使用することも、ソフトウェアで暗号化することもできますが、実装したSSL用サブプロシージャでは、暗号化デバイスは使用できません、少量のデータ送受信では、ソフトウェア暗号化でもクリアテキストの場合と遜色ない速度で通信できましたが、大量になるとその差は問題になるかもしれません。

IBM i でのTCP/IP通信(殆どはTCPソケット)は、その殆どが暗号化されていますので、ユーザーソケット通信についても暗号化を検討する時には、SSL通信も検討されることをお勧めします。

なお、SSL(TLS)はTCP上で動作するので、UDPには対応していません。(完)

0 件のコメント :

コメントを投稿