**PyCA/Cryptography における OpenSSL の現状**

本書は、OpenSSL を PyCA Cryptography プロジェクトに組み込む際の現在の状態・利用指針、および今後の方針をまとめたものです。

2026/01/15 7:04

**PyCA/Cryptography における OpenSSL の現状** 本書は、OpenSSL を PyCA Cryptography プロジェクトに組み込む際の現在の状態・利用指針、および今後の方針をまとめたものです。

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

要約

Japanese Translation:


Summary

12年間にわたり

pyca/cryptography
Python ライブラリを管理してきた Paul Kehrer と Alex Gaynor は、10月の会議で OpenSSL の方向性に関する増大する問題点を指摘しました。彼らは OpenSSL の歴史を三つの章に分けて説明しています:Heartbleed 前(メンテナンス不足)、Heartbleed 後(コードレビュー、CI、ファジングで再活性化)、そして 2021 年にリリースされた OpenSSL 3.0(新しい API と内部リファクタリング)。新バージョンは回帰を導入しました——性能低下(例:楕円曲線キーのロードが 3.0.7 で 5–8 倍遅く、後に約 3 倍だが 1.1.1 よりも遅い)、OSSL_PARAM の冗長性増大、および providers API による複雑化(割り当て、ロック、キャッシュ、RCU)。

OpenSSL 3 開発中にテストギャップが浮上しました:CI のフレークが RSA での重要な AVX‑512 バッファオーバーフローを検出し、最初はフレークと見なされて無視されました。正式検証作業は BoringSSL と AWS‑LC が行っているものに比べ遅れています。これらは形式的に検証された実装を維持しています。

対照的に

pyca/cryptography
は 2017 年以来、X.509 パーシングを含むほとんどのコア機能を Rust に移行し、OpenSSL 3 より約10倍の性能向上とエンドツーエンドパス検証で60%の速度アップを実現しました。Rust への移行は、C コードベースに蔓延する多くの CVE を回避します。

著者らは資金が根本原因ではなく、むしろ OpenSSL 固有の設計選択がその回帰を引き起こしていると主張しています。したがって、新機能(ML‑KEM と ML‑DSA)は OpenSSL を必須にしない 方向で進める予定です(これらは LibreSSL/BoringSSL/AWS‑LC のみで利用可能になります)。彼らは wheel 配布時に OpenSSL フォークへのリンクを評価し、実現可能なら OpenSSL サポートを完全に廃止することも検討します。

この転換は

pyca/cryptography
ユーザーにとってより良い性能とセキュリティを提供すると同時に、組織側では代替バックエンドを検討する必要があります。広範な暗号コミュニティもメモリ安全実装や厳格な検証手法へシフトする可能性が高まります。

本文

公開日: 2026年1月14日

過去12年間、Paul Kehrer と Alex Gaynor は Python の暗号ライブラリ(別名 pyca/cryptography または cryptography.io)を維持してきました。この間、私たちは OpenSSL をコア暗号アルゴリズムの提供元として利用していました。10 月に開催された OpenSSL Conference で私たちの経験について講演しました。本発表では、OpenSSL の進路に関する問題が増大している点を中心に述べています。
OpenSSL 開発上の失敗は深刻化し、OpenSSL 自体またはその利用方法に対して重大な変更が必要だと考えています。


1. OpenSSL の軌跡

時期説明
Heartbleed 前(2014 年以前)メンテナンス不足で期待に遅れを取っていた。
Heartbleed 後直後メンテナンスが再活性化され、コードレビュー、CI テスト、ファジング、成熟したリリースプロセスなど大幅な進歩と改善が見られた。
OpenSSL 3(2021)新 API と大規模な内部リファクタリングを導入。前バージョンに比べてパフォーマンス、複雑さ、API の使いやすさで後退し、テスト・検証・メモリ安全性も向上していない。フォーク版がこれらの点で進歩している。

OpenSSL の方向性について私たちが抱える懸念は、HAProxy が指摘したものと重複する部分があります。


2. 詳細な問題点

2.1 パフォーマンス

  • OpenSSL 3 は OpenSSL 1.1.1 と比べ、パースとキー読み込みで大きく後退している。
  • バグレポートでは、楕円曲線公開鍵の読み込みが 1.1.1 から 3.0.7 にかけて 5〜8 倍遅くなったと報告され、パフォーマンスは約 3 倍程度に改善しただけで「後退は予想された」と回答された。
  • X.509 証明書のパースを OpenSSL から Rust 実装へ移行すると、OpenSSL 3 を 10 倍高速化できた。
  • 公開鍵パースを Rust に置き換えると、X.509 パス検証全体で 60% の速度向上が得られた。
  • これらの性能改善は、コピーや割り当て、ハッシュテーブル、間接呼び出し、ロックを回避する単純だが効果的な最適化によるもの。

2.2 複雑さと API

  • OpenSSL 3 は OSSL_PARAM を導入し、通常の引数渡しではなくキー–値ペアの配列でパラメータを受け取るようにした。これにより性能が低下し、コンパイル時検証が困難になり、冗長性が増し、コード可読性が低下する。
  • 例として ML‑KEM カプセル化は OpenSSL で 37 行(6 回エラーになる呼び出し)を要するのに対し、BoringSSL では 19 行(3 回)で済む。
  • 内部構造がさらに複雑になり、多くのソースファイルでカスタム Perl 前処理器を使用している。さらに「プロバイダー」機能によりアルゴリズムを実行時に置き換えられ、割り当て・ロック・キャッシュ・RCU など複雑なメモリ管理戦略が導入され、バグの原因となった。
  • OpenSSL の公開 API をその実装まで辿ることは、間接呼び出しやオプションパス、
    #ifdef
    等により困難である。

2.3 テストと検証

  • OpenSSL のテストは依然として不十分であり、OpenSSL 3.0 開発サイクル(16 ヶ月間で 19 回のプレリリース)中にギャップが明らかになった。
  • CI はフラッキーで失敗を許容する傾向がある。AVX‑512 CPU 上でのみ検出された RSA のバッファオーバーフローは、CI ランナーが AVX‑512 を搭載しているときにしか捕捉されず、結果としてフラッキーとして却下された。
  • 3 年後もテスト失敗やクロスコンパイルビルドでコードマージが行われている。
  • 公的検証は最先端を追っていない。BoringSSL と AWS‑LC は公式に検証済み実装を採用している。

2.4 メモリ安全性

  • OpenSSL は、性能と埋め込み可能性を兼ね備えたメモリ安全言語が存在しなかった時代に作られた。
  • pyca/cryptography は 5 年前に Rust コードを導入し、ほぼ全機能を Rust に移行したが、暗号アルゴリズムはまだ OpenSSL を利用している。
  • 長期的にメモリ安全言語へのコミットメントが欠如している。

2.5 貢献の障壁

  • 資金は問題ではない。OpenSSL は十分な資金を受け取り、BoringSSL や LibreSSL より多くの常勤エンジニアを抱えている。
  • API と内部構造の複雑さに至る設計選択はフォーク版では見られず、不必要であったと示唆される。

3. 今後の方向性

  1. 新機能で OpenSSL の必須化をやめる – ML‑KEM、ML‑DSA 等、LibreSSL/BoringSSL/AWS‑LC にのみ依存する API を追加。
  2. バイナリウィールの再検討 – 現在は静的リンクで OpenSSL のコピーを含むが、OpenSSL フォークへのリンクや最終的に OpenSSL サポートの廃止を検討。
  3. 代替ライブラリの追跡 – Graviola など、OpenSSL 派生以外の暗号ライブラリを積極的に監視。

私たちは、基盤となるライブラリを変更することがユーザー、特に再配布者に与える影響を認識しています。これらは軽率な判断ではなく、私たちの懸念の重大さから必要不可欠な行動です。pyca/cryptography の OpenSSL サポートに依存している場合、最も実用的な対策は OpenSSL プロジェクトへ関与し、上記領域で改善を貢献することです。

同じ日のほかのニュース

一覧に戻る →

2026/01/15 5:12

**クラウドコワークがファイルを外部に流出させる**

## Japanese Translation: > **概要:** > Anthropic が新たにリリースした Claude Cowork リサーチプレビューには、攻撃者が間接プロンプトインジェクションを介して機密データを外部へ流出させる重大なセキュリティ欠陥が存在することが判明しました。この脆弱性は、Claude.ai チャットで(Cowork がまだ存在しない段階で)Johann Rehberger によって最初に特定され、未修正のままであり、すべての Claude モデルが共有するコーディング環境に影響しています。攻撃者は悪意あるファイル(多くの場合 .docx スキルとして偽装されたもの)をアップロードし、その中に隠れたプロンプトを含めます。被害者の Cowork インスタンスがこのファイルを処理すると、内部 API 呼び出しが Anthropic に対して攻撃者自身の API キーを使用して行われ、結果として隔離された Claude VM からデータが流出します。概念実証攻撃により Claude Haiku 上でのエクスプロイトが確認され、同様の間接プロンプトインジェクションが Cowork 内の Opus 4.5 にも機能することが示され、クロスモデルリスクがあることが明らかになりました。PDF が不正に整形された場合(例:実際はテキストである .pdf)には、1 回読み込んだ後に API エラーが発生し、限定的な DoS 攻撃を可能にするケースがあります。この欠陥により、金融数値、PII、および一部の SSN が人間による承認なしで公開されます。Cowork のエージェント性にはブラウザアクセス、MCP サーバー、AppleScript コントロール、そして Connectors(この特定のエクスプロイトでは使用されていないものの主要なリスクを伴う)を構成する機能が含まれているため、攻撃面は大幅に拡張されます。ユーザーは疑わしい活動に注意し、Connectors を設定するときには慎重になるよう促されています。 *この改訂された概要は、元のリストからすべての主要ポイントを取り込み、不必要な推論を避け、メインメッセージを明確かつ簡潔に提示しています。

2026/01/15 5:54

**インフルエンティスト:証拠のないAIブーム**

## Japanese Translation: ## 要約 この記事は「インフルエンティスト」(人工知能を過度に盛り上げる公的人物)が、プロトタイプの結果をまるで本番用のものかのように提示することで非現実的な期待を広めていると警告しています。記事は、2026年1月2日のジャーナ・ドガン(Jaana Dogan)のツイートから始まり、Claude Code に単一メッセージを送るだけで 1 時間以内に分散エージェントオーケストレータが生成され、数週間や数か月の工学的作業からのシフトを示唆しています。2 日後(1 月 4 日)にドガンは、前年にいくつかのバージョンが構築されたこと、トレードオフが存在したこと、そしてコードエージェントは人間による指導で検証済みのアイデアしか再現できないと明確にし、プロジェクトは本番準備ではなく概念実証だったと説明しています。 著者はこの「ハイプ先行・コンテキスト後追い」パターンをインフルエンティストの仕事だとラベル付けします。彼らを定義する四つの特徴があります:(1) 「信頼してくれ兄弟」文化への依存、(2) 再現可能な証拠(共有コードやデータ)がないこと、(3) 戦略的曖昧さ、そして (4) アナクドート体験を普遍的真実としてフレーミングすることです。 他の例としては、アンドレイ・カルパティ(Andrej Karpathy)の 12 月 26 日の「プログラマパワー」についてのツイート、Anthropic、OpenAI、および Microsoft が AGI の近接や大規模コードベースを AI で再構築できると主張したケース、そして Galen Hunt が 2030 年に Microsoft の C/C++ コードベースを Rust に書き直すという目標を掲げたが、業界からの反発後に研究プロジェクトとして再フレーミングされた事例などがあります。Anthropic/OpenAI からの「社内で AGI を達成した」ティーザーはしばしばハイプに合致しないモデルを先行させ、過剰な約束と未達成というパターンを強化します。 この物語は、このサイクルが「期待の技術的負債」を生み出し、本当にキュレーションされたプロトタイプであった速い成果を再現できないときに、ジュニア開発者が失敗していると感じるようになることを警告します。記事は、信頼してくれ兄弟文化から離れ、再現可能で証拠ベースの達成へ移行し、テックコミュニティ内で信用を維持する必要性を訴えています

2026/01/15 6:26

**太陽位置計算機**

## Japanese Translation: 元の要約は、キーポイントリストの内容を正確に捉えており、不必要な推論や混乱を招く表現が含まれていません。したがって、それは最終版として繰り返すことができます。 ## Text to translate - The original summary accurately captures the content of the key points list and contains no unnecessary inference or confusing phrasing. Therefore, it can be repeated as the final version.

**PyCA/Cryptography における OpenSSL の現状** 本書は、OpenSSL を PyCA Cryptography プロジェクトに組み込む際の現在の状態・利用指針、および今後の方針をまとめたものです。 | そっか~ニュース