WolfSSL もまた酷いですね。それで、次はどうすればよいのでしょうか?

2026/02/13 19:18

WolfSSL もまた酷いですね。それで、次はどうすればよいのでしょうか?

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

WolfSSLは組み込みデバイス向けに広く使われているTLSライブラリですが、開発者が

-DWOLFSSL_TLS13_MIDDLEBOX_COMPAT
を明示的に有効化しない限り、TLS 1.3 の「ミドルボックス互換モード」をサポートしていません。この抜け漏れは実際の接続を破綻させます。なぜなら、多くのネットワークが RFC 8446 で定義されているミドルボックスパケット(空でないセッションIDとダミー
change_cipher_spec
レコード)に依存しているからです。この問題は、2023 年の Haproxy 記事で OpenSSL の遅延が指摘されたことを受け、著者が FreeBSD ビルド上で WolfSSL をテストした際に発覚し、正式に報告されました。

OpenSSL、BoringSSL、AWS‑LC、GnuTLS、LibreSSL など他のライブラリも同様に使い勝手の欠陥を抱えています。Erlang/OTP の SSL ライブラリは WolfSSL サーバーとの失敗を回避するためにデフォルトで

middlebox_comp_mode
を有効化していましたが、TLS 1.3 接続を成功させるにはこれを無効化する必要があります。Elixir 1.17.3 の概念実証では、
middlebox_comp_mode:true
を有効にすると致命的な「unexpected message」エラーが発生し、
false
に設定すれば接続できることが示されています。

著者は開発者に対して、WolfSSL が準拠性を改善するまで LibreSSL を優先するよう勧告しています。適切な構成なしで WolfSSL を継続的に使用すると、接続問題が引き続き発生します。WolfSSL に依存している組み込みデバイスメーカーは、サポートコストの増大や安全に TLS 1.3 を採用するためにライブラリを切り替える必要があります。本稿は WolfSSL の欠点について学ぶ時間が多く費やされたことを嘆きつつ、主に警告として機能していると結論付けています。

翻訳対象テキスト

(incorporating the missing points):**

WolfSSL, a widely used TLS library for embedded devices, fails to support TLS 1.3’s required “middle‑box compatibility mode” unless developers explicitly enable it with

-DWOLFSSL_TLS13_MIDDLEBOX_COMPAT
. This oversight breaks real‑world connections because many networks rely on the middle‑box packets (non‑empty session IDs and dummy change_cipher_spec records) mandated by RFC 8446. The problem surfaced when a 2023 Haproxy article highlighted OpenSSL’s slowdown, prompting the author to test WolfSSL in a FreeBSD build; during testing a bug was discovered and formally reported.

Other libraries—OpenSSL, BoringSSL, AWS‑LC, GnuTLS, and LibreSSL—have similar usability shortcomings. Erlang/OTP’s SSL library had to enable

middlebox_comp_mode
by default to avoid failures with WolfSSL servers, but disabling it is required for successful TLS 1.3 connections. An Elixir 1.17.3 proof‑of‑concept demonstrates that enabling
middlebox_comp_mode:true
triggers a fatal “unexpected message” error, whereas setting it to
false
allows the connection.

The author advises developers to prioritize LibreSSL over WolfSSL until the latter improves compliance; continued use of WolfSSL without proper configuration will keep causing connectivity problems. Embedded‑device manufacturers relying on WolfSSL may face increased support costs or must switch libraries to adopt TLS 1.3 safely. The post ends with a lament that much time was spent learning about WolfSSL’s deficiencies, and the blog serves mainly as a warning rather than a solution.

本文

OpenSSLは酷い。
BoringSSL と AWS‑LC のフォークは Google や Amazon によって無限にクローンされ、彼らは自分たちのユースケースだけを気にしています。GnuTLS を使ったソフトウェアで良い経験があったかどうか覚えておらず、LibreSSL は不完全です…


今何が起きたのか?

昨年、Haproxy の記事で OpenSSL が極端に遅くなったと主張されました。これが私の興味を掻き立て、FreeBSD 用に WolfSSL にビルドされた Haproxy をパッケージ化する手助けをしました。Linux ディストリビューションとは異なり、FreeBSD は標準で WolfSSL 対応 Haproxy が入っている唯一の場所です。ユーザーは自分でビルドしなければなりません。

WolfSSL を使用した際にバグに遭遇し、報告して忘れた後、再び同じ問題に直面しました。動機づけられ、課題を再開し、デバッグを重ねて根本原因を突き止め、ドキュメント化しました。

TLS 1.3(RFC 8446)は TLS 1.2 と大きく異なり、多くの問題を引き起こしました。特に「TLS 1.3 の設計は、広く展開された非準拠の TLS ミドルボックスによって制約されている」という点です。


ミドルボックス・ヘル

ミドルボックスは見えないゴミで、トラフィックを改ざんでき、問題を引き起こすと初めて目立ちます。

  • TLS 1.2 より優れたセキュリティ保証を望むが、ミドルボックスは TLS 1.2 しか理解しない。
  • TLS 1.3 はミドルボックスに耐えるため、TLS 1.2 のふりをする必要があります。

著者らは Middlebox Compatibility Mode(ミドルボックス互換モード) を考案しました:

  • クライアントは ClientHello に非空のセッション ID を設定してミドルボックスを騙す。
  • クライアントとサーバーがダミー
    change_cipher_spec
    レコードを交換(役に立たないが遅延を追加)。

逆転

RFC 8446 はこのモードを次のように定義しています:

この「互換モード」は部分的に交渉されます:クライアントはセッション ID を送るかどうか選択でき、サーバーはそれをエコーします。
クライアントが非空のセッション ID を送った場合、サーバーはこの付録で説明された

change_cipher_spec
を送らなければならない。

WolfSSL は

-DWOLFSSL_TLS13_MIDDLEBOX_COMPAT
でコンパイルしない限り、この規定を無視します。これにより「常時オン」または「オフ」のどちらかになります。その結果:

  • WolfSSL は TLS 1.3 に関して RFC を遵守していません。
  • ライブラリ開発者は問題修正に興味がなく、ユーザーに選択させる方針です。

これは多くの組み込みデバイスで WolfSSL が使用されているため重要です。セキュリティ観点からは TLS 1.3 クライアントでは常にミドルボックス互換モードを有効にすべきですが、現在のリリースでは実現できません。


原告

これまでで唯一確認した被害者は Erlang/OTP の SSL ライブラリです。Joe Armstrong のマントラ(「まず動かせ、次に美しくし、最後に本当に速くする」)を受けて、Erlang/OTP は

middlebox_comp_mode
をデフォルトで有効にしました(速度向上のためオフにできるオプション付き)。結果として:

  • すべての Elixir/Erlang HTTP クライアントが TLS 1.3 が利用可能な WolfSSL HTTPS サーバーへ接続できません。

今後は?

OpenBSD の LibreSSL 選択は正しいようです。LibreSSL に注力し、他のライブラリは放棄する方向に進むべきです。Haproxy は OpenSSL 3.0 の問題の影響を受けません(フォークが早い時点で切り離されたため)が、最適化が不足しています。これは時間とともに解消される妥当なトレードオフです。

TLS 終端を高速化しようとした試みは無駄だったことが分かり、このブログ投稿へ至った経緯です。警告としてお伝えします。


Elixir PoC

#!/usr/bin/env elixir

url = "https://some-wolfssl-endpoint"
url = String.to_charlist(url)

{:ok, _} = Application.ensure_all_started(:inets)
{:ok, _} = Application.ensure_all_started(:ssl)

:logger.set_application_level(:ssl, :debug)

http_options =
  [
    ssl: [
      verify: :verify_peer,
      cacerts: :public_key.cacerts_get(),
      depth: 2,
      customize_hostname_check: [
        match_fun: :public_key.pkix_verify_hostname_match_fun(:https)
      ],
      versions: [:"tlsv1.2", :"tlsv1.3"],
      middlebox_comp_mode: true
    ]
  ]

options = [body_format: :binary]

:httpc.request(:get, {url, []}, http_options, options)

典型的なエラー:

11:00:44.996 [warning] Description: ~c"Failed to assert middlebox server message"
     Reason: [missing: {:change_cipher_spec, 1}]

11:00:45.014 [notice] TLS :client: In state :hello_middlebox_assert at ssl_gen_statem.erl:821 generated CLIENT ALERT: Fatal - Unexpected Message

middlebox_comp_mode
false
に設定すると問題は解消します。

同じ日のほかのニュース

一覧に戻る →

2026/02/14 8:43

**OpenAI のミッションステートメント ― 進化** | 年 | バージョン | |----|------------| | 2015(創設) | 「人工汎用知能(AGI)が人類全体に利益をもたらすことを保証する。」 | | 2019 | 安全性への強調追加: 「安全な AGI を構築し、それを使って誰もが恩恵を受けるようにする。」 | | 2023 | 広範な社会的影響に焦点を絞り改訂: 「OpenAI のミッションは、安全で広く有益な AI システムを創造し、人間の能力を高め、世界全体の福祉を促進することです。」 | *進化を通じて一貫したテーマ* - **安全性** – 開発・展開における継続的優先事項。 - **広範な利益** – 進歩がすべての人々にアクセス可能で有益であることを保証。 - **人間の強化** – AI を活用して人間の潜在能力を拡大し、代替するのではないこと。

## Japanese Translation: OpenAI のミッションステートメントは、2016 年から 2024 年にかけて着実に進化してきました。2024 年版では表現が短縮され、「OpenAI のミッションは人工汎用知能(AGI)が人類全体に利益をもたらすことを確保することである」となり、安全性への明示的な言及や「財務上のリターンを追求する必要がない」というフレーズが削除されています。以前のバージョン(2016、2018、2020–2023)では段階的に表現が洗練されており、2021 年には「汎用人工知能」などの語句が追加され、2022 年には「安全に」という言葉が挿入される一方で、利益圧力なしに人類に利益をもたらすというコミットメントは維持されています。 OpenAI は米国の 501(c)(3) 非営利組織であり、そのミッションステートメントは毎年 IRS に提出されるため、税優遇措置を保持する上で法的な重みがあります。全てのバージョンは GitHub Gist にまとめられており、変更が公開で追跡可能です。同様に Anthropic についても詳細より少ない更新が見つかっています。 2024 年版の表現は財務リターンへの重視を示唆している可能性があり、これが OpenAI が非営利ステータスと商業活動をどのようにバランスさせるかに影響し、税優遇分類が適切であるかどうかを規制当局が検討するきっかけになるかもしれません。競合他社もこの変化を踏まえて、安全性対利益戦略を再評価する可能性があります。

2026/02/14 6:35

**Show HN:データエンジニアリング・ブック – オープンソースでコミュニティ主導のガイド**

## Japanese Translation: GitHubは、コーディング支援、自動化、およびセキュリティを組み合わせたAI搭載の開発者プラットフォームとして自らを位置付けており、あらゆる規模のチームに統合されたエコシステムを提供します。 このプラットフォームは、コード作成を加速するCopilot、Spark、およびModels、ワークフロー自動化と即時クラウド環境を実現するActionsおよびCodespaces、そして作業を整理するための課題/計画追跡機能を提供します。高度なセキュリティ機能―脆弱性検出、シークレット保護、およびビルド時コードレビュー―は開発プロセス全体に安全性を組み込みます。 GitHubは、医療・金融・製造業・政府などの産業別ソリューションでエンタープライズ、中小企業、スタートアップ、非営利団体をターゲットとし、プレミアムサポート層、パートナープログラム、およびSecurity LabやMaintainer Communityなどのコミュニティイニシアチブによって支えられています。エコシステムには、GitHub Advanced Security、Copilot for Business、エンタープライズレベルのAI機能を含むアドオンマーケットプレイスと、ドキュメント、ブログ、変更ログ、トラストセンター、GitHub Sponsors、ウェビナー、電子書籍、レポート、およびビジネスインサイトなどの豊富なリソースが含まれています。 今後、同社はMCP Registryを通じてツール統合を深化させ、AI機能を拡大し、ビルド時のセキュリティチェックを強化することで、開発者に高速で安全なコードを提供し、組織にはより効率的なDevOpsワークフローを実現する総合的かつモダンなソフトウェア開発スタックとしての役割を確固たるものにしていきます。

2026/02/14 2:50

今ではTUI(テキストユーザーインターフェース)の構築が簡単になりました。

## Japanese Translation: **改善された要約** Hatchet は現在積極的に採用を行っており、オープンな求人ポジションが利用可能です。同社の発表は単に「採用中である」と述べているだけで、追加の背景や将来のアクションについては言及されていません。

WolfSSL もまた酷いですね。それで、次はどうすればよいのでしょうか? | そっか~ニュース