Network namespaceによるネットワークテスト環境の構築
「LinuxのUDPソケットとPath MTU Discovery」の記事で簡単なネットワークの構成図を示してPath MTU Discoveryの解説を行いました。大昔ならこの手の動作確認をしようとするとPCを複数台用意する必要がありましたが、今では、Linuxホストが一台あればテストできます。
2023/03/15 16:15
DTLSにおけるシーケンス番号
前回はDTLSのハンドシェイクについて説明しましたが、今回はシーケンス番号まわりの説明をしたいと思います。
本記事では特に断らなければDTLSとはDTLS1.2を指すものとします。
2023/02/13 19:02
TLS1.3におけるChange Cipher Specメッセージ
TLS1.2ではHandshakeにおいてChange Cipher Specを送信していましたが、TLS1.3ではこの手順はなくなりました。ただ、TLS Handshakeのやりとりをキャプチャしてみると、依然としてChange Cipher Specが送信されています(図1)。
2023/02/04 22:48
DTLSにおけるハンドシェイクの特徴
暗号化通信というとTLSが使われることが多いと思いますが、これはTCP通信を暗号化するために使われます。一方、UDP上の通信を暗号化したい場合は、DTLSというプロトコルが使われます。DTLSではUDP固有の問題に対応するために、TLSにはない機能がいくつか追加されています。今回はハンドシェイクについてみてみます。
2023/01/21 20:58
OpenSSLを使った通信をWiresharkでキャプチャする
OpenSSLのAPIを使って開発を行っていると、TLS通信の内容を確認したいことがあると思います。printfデバッグでもいいのですが、今回はWiresharkでキャプチャしたい場合の手順です。
2022/12/04 20:21
SSL_MODE_AUTO_RETRYの設定
OpenSSLを使ったプログラミングをしていると、SSL_CTX_set_mode() / SSL_CTX_clear_mode()で指定できる SSL_MODE_AUTO_RETRY という設定があります。今回はこれがどのようなものなのかを説明します。
2022/03/29 16:20
OpenSSLでSSL_OP_NO_COMPRESSIONの指定は必要か?
OpenSSLでのサーバー証明書の検証の記事への補足です。
2012年にSSL/TLSプロトコルへの攻撃手法としてCRIME攻撃というものが見つかり、その対策として「SSL/TLSの圧縮機能は使うな」ということになりました。
2022/01/31 14:28
OpenSSLでのOCSP Stapling
以前、「OpenSSLでのサーバー証明書の検証」の記事でOpenSSLを使ったTLS接続時に証明書の検証を行う方法を紹介しましたが、今回は接続時にOCSP(Online Certificate Status Protocol) Staplingによって証明書の失効チェックを行う例を示します。
2021/12/27 23:51