メインコンテンツまでスキップ

v0.7.0

Release Information​


OP Inspector​

検証中の警告と情報を詳細情報画面で確認できるようになりました。また、Profile Annotation Issuer 登録証 PA の検証方法を見直しました。

Added​

  • 詳細情報画面に、検証中に発生した警告 (Warnings) と情報 (Info) を表示するようにしました。 非推奨の Certificate モデルの使用や、digestSRI の欠落と不一致などを、ブラウザーのコンソールを開かずに確認できます。
  • Content Attestation はあるものの Site Profile がないサイトで、「サイトプロファイルが見つかりませんでした」と表示するようにしました。
  • External Resource Target の cssSelector プロパティに対応しました。→ ドキュメント cssSelector があれば、HTML 要素に integrity 属性を付けなくても対象要素を特定できます。

v0.6:

{
"type": "ExternalResourceTargetIntegrity",
"integrity": "sha256-OYP9B9EPFBi1vs0dUqOhSbHmtP+ZSTsUv2/OjSzWK0w="
}
<img
src="https://example.com/image.jpg"
integrity="sha256-OYP9B9EPFBi1vs0dUqOhSbHmtP+ZSTsUv2/OjSzWK0w="
/>

v0.7:

{
"type": "ExternalResourceTargetIntegrity",
"cssSelector": "#hero-image",
"integrity": "sha256-OYP9B9EPFBi1vs0dUqOhSbHmtP+ZSTsUv2/OjSzWK0w="
}
<img src="https://example.com/image.jpg" id="hero-image" />

Changed​

  • Profile Annotation Issuer 登録証 PA の検証で、OP レジストリ (トラストアンカー) が発行した登録証 PA を認可チェックから免除する例外規定を撤廃しました。→ ドキュメント
  • PA 発行者の認可を確認できない場合は、警告ではなく情報として通知するようにしました。 認可を確認できないことは、PA が無効であることを意味しないためです。
  • Site Profile がないサイトで表示する文言を「このサイトはまだOPに対応していません」に変更しました。
  • リンク先確認 (広告リンクの遷移先が、コンテンツの表明した運営者のサイトかを確認する機能) で、リンク先の OP の署名も検証するようにしました。
  • アイコンを iconify API 経由で取得せず、拡張機能に同梱するようにしました。
  • Site Profile に含まれる Website Profile の一部をデコードできない場合も、残りの Website Profile を検証するようにしました。 エラーメッセージには、デコードできなかった Website Profile の位置 (sites[1] など) を示します。

Deprecated​

  • VisibleTextTargetIntegrity を非推奨としました。 innerText によるレンダリング結果はブラウザー間で一致しないため、完全性の検証には使えません。 この Target Integrity を含む Content Attestation を検証すると警告を表示します。 TextTargetIntegrity (あるいは HtmlTargetIntegrity) に移行してください。→ ドキュメント

v0.6:

{
"type": "VisibleTextTargetIntegrity",
"cssSelector": "#main",
"integrity": "sha256-GYC9PqfIw0qWahU6OlReQfuurCI5VLJplslVdF7M95U="
}

v0.7:

{
"type": "TextTargetIntegrity",
"cssSelector": "#main",
"integrity": "sha256-GtNUUolQVlwIkQU9JknWkwkhfdiVmHr/BOnLFFHC5jI="
}

integrity の値は再計算が必要です。

Removed​

  • ビルド時に同梱した認証情報を使って、レジストリ API に Basic 認証でアクセスする機能を削除しました。 これに伴い、拡張機能が要求する権限から webRequest と webRequestAuthProvider を削除しました。

Fixed​

  • Chrome ウェブストアのようにコンテンツスクリプトを注入できないページで、非サポート画面と詳細情報からエラーの理由が消えていた不具合を修正しました。
  • リンク先確認の Warning 画面と詳細情報に、誤った組織名が表示される不具合を修正しました。
  • リンク先確認の Warning 画面で「このままアクセスする」を選んでも、しばらく操作していなかった場合に再び警告が表示される不具合を修正しました。
  • オーバーレイの CSS の誤記 (outilne) を修正しました。

WordPress プラグイン​

Added​

  • CA Manager に、指定した URL パターンに一致する記事を CA の自動発行から除外する設定を追加しました。 たとえば /blog/** を設定すると、/blog/ 配下の記事を公開または更新しても CA を発行しません。 設定は次回の公開または更新から適用され、発行済みの CA は削除も失効もしません。
  • 画像の integrity 値を取得できず署名に失敗した場合に、ログを出力するようにしました。
  • 管理画面で VisibleTextTargetIntegrity が非推奨であることを表示するようにしました。
  • 公開済みの記事に CA を一括で発行する画面を「ツール > CA一括発行」に追加しました。 投稿タイプ、公開日、カテゴリで対象を絞り込み、「未発行のみ」か「全件」を選んで発行できます。 処理は 1 記事ずつ進み、一時停止、再開、キャンセルと、失敗した記事の再試行に対応します。 URL パターンによる除外設定も適用します。
  • 画像の External Resource Target に cssSelector を含めるようにしました。 WordPress が画像ブロックの <img> 要素に付ける wp-image-{添付 ID} クラスから、img.wp-image-123 のようなセレクターを求めます。 以前に署名した CA を検証できるように、<img> 要素への integrity 属性の付与は続けます。

Changed​

  • CA サーバーのホスト名の初期値を playground.originator-profile.org に変更しました。
  • サポート対象の PHP をアクティブなセキュリティサポートがあるものとする方針を README に明記しました。

Fixed​

  • WordPress 7.x でパーマリンク設定が「基本」のとき、API 認証 (OIDC) 画面が 404 エラーになる不具合を修正しました。 OIDC リダイレクト URL の変更は、CA サーバーの次期リリースで対応する予定です。

npm パッケージ​

Added​

  • CA サーバーで Content Attestation に署名するためのクライアントライブラリ @originator-profile/ca-client を追加しました。
    • createCaClient:未署名 CA への署名 (sign) と既存 CAS の再署名 (reSign) を CA サーバーに依頼するクライアントを生成します。
    • writeCasFile / readCasFile:Content Attestation Set ファイルを読み書きします。
    • detectDrift:ビルド後の HTML から Target Integrity を再計算し、CAS に記録された値とのずれを検出します。
  • @originator-profile/verify:サイトを対象とする verifyWebsite と文書を対象とする verifyDocuments を追加しました。 OP Inspector と同じ一連の検証処理を、他のアプリケーションから利用できます。
  • @originator-profile/verify:VC Data Model 2.0 の検証結果に倣った、シリアライズ可能な検証結果の型を追加しました。 エラーは エラーリファレンス の URL を type に持つ Problem Details として、所在を示す pointer とともに記録します。 警告と情報は warnings / info に記録します。
  • @originator-profile/verify:検証中の警告と情報の出力先を、logger オプション ({ warn, info }、デフォルトは console) で差し替えられるようにしました。
  • @originator-profile/presentation / @originator-profile/verify:VC の取得結果と、OPS および CAS の検証結果に、取得経路 (source) を含めるようにしました。 取得経路は、レジストリ、Site Profile、HTML への埋め込みのいずれかです。
  • @originator-profile/sign:signJwtVc / signWsp / signCp / signCa の鍵引数で CryptoKey / KeyObject と、外部の署名者を表す JwtSigner を受け付けるようにしました。 HSM やクラウド KMS など、秘密鍵を取り出せない環境で署名できます。
  • @originator-profile/model:External Resource Target に cssSelector プロパティを追加しました。
  • @originator-profile/model:UnsignedContentAttestation の credentialSubject.id を省略可能にしました。 省略すると CA サーバーが CA ID を採番します。

Changed​

  • 破壊的変更 @originator-profile/verify:verifyImageDigestSri / OpsVerifier / SpVerifier の末尾の省略可能な引数 (fetcher / validator / verifyOrigin) を、オプションオブジェクトにまとめました。

v0.6:

await verifyImageDigestSri(image, fetcher);

OpsVerifier(ops, keys, issuer, validator);

SpVerifier(sp, keys, issuer, origin, verifyOrigin, validator);

v0.7:

await verifyImageDigestSri(image, { fetcher });

OpsVerifier(ops, keys, issuer, { validator });

SpVerifier(sp, keys, issuer, origin, { verifyOrigin, validator });
  • @originator-profile/verify:SpVerifier は、Website Profile の一部をデコードできない場合も残りを検証し、すべての Website Profile の検証結果を元の順序のまま SiteProfileInvalid に含めて返すようにしました。

Deprecated​

  • @originator-profile/model:VisibleTextTargetIntegrity を非推奨としました。

Removed​

  • 破壊的変更 @originator-profile/opvc:signByServer を削除しました。 代わりに @originator-profile/ca-client の createCaClient を使用してください。 認証はアクセストークンから OAuth client credentials (ccspConfig) に変わります。 issuedAt / expiredAt は指定できず、署名時刻から 1 年間有効な CA となります。

v0.6:

import { ContentAttestation } from "@originator-profile/opvc";

const jwt = await ContentAttestation.signByServer(uca, {
endpoint: "https://example.com/ca",
accessToken: process.env.CA_SERVER_ACCESS_TOKEN!,
});

v0.7:

import { createCaClient } from "@originator-profile/ca-client";

const client = createCaClient({
endpoint: "https://example.com/ca",
issuer: "dns:example.com",
ccspConfig: process.env.CA_SERVER_CCSP_CONFIG!,
});
const jwt = await client.sign(uca);

What's Changed​

Details
  • docs: 公開パッケージの README に npm version / jsDocs.io バッジを追加 by @kou029w in (#438)
  • feat(inspector): 詳細情報画面に検証中の警告ログを表示 by @kou029w in (#437)
  • feat(opvc): CA server 署名で CA ID を server 採番に委ねられるようにする by @knokmki612 in (#439)
  • oxlint への移行 by @Sa-R390 in (#440)
  • chore(deps): update dependency turbo to v2.9.14 [security] by @renovate[bot] in (#446)
  • chore(inspector): AMO 提出用の build-for-amo スクリプトを追加 by @kou029w in (#443)
  • chore(deps): update dependency vite to v8.0.16 [security] by @renovate[bot] in (#447)
  • chore: type-check タスクを削除し oxlint typeCheck に統合 by @kou029w in (#441)
  • chore(deps): update dependency dompurify to v3.4.11 [security] by @renovate[bot] in (#444)
  • chore(deps): update dependency astro to v6.4.6 [security] by @renovate[bot] in (#448)
  • chore(deps): update dependency react-router to v7.15.1 [security] by @renovate[bot] in (#450)
  • chore(deps): update dependency nuxt to v4.4.7 [security] by @renovate[bot] in (#445)
  • chore(deps): lock file maintenance by @renovate[bot] in (#451)
  • chore(deps): update dependency react-router to v7.18.2 [security] by @renovate[bot] in (#459)
  • chore(deps): update dependency dompurify to v3.4.13 [security] by @renovate[bot] in (#454)
  • chore(deps): update dependency nuxt to v4.5.1 [security] by @renovate[bot] in (#458)
  • chore(deps): update dependency astro to v7 [security] by @renovate[bot] in (#460)
  • feat(wordpress): 画像の署名が失敗するケースに関してログの追加 by @YuukiTsuchida in (#462)
  • feat: signJwtVc の鍵引数を Jwk | JwtSigner に拡張 by @kou029w in (#463)
  • CA だけで SP がない場合の表示の追加 by @Sa-R390 in (#465)
  • ca-client: packageディレクトリに雛形の空ディレクトリを追加 by @YouheiNozaki in (#466)
  • iconify icon データの iconify API 経由での取得をやめる by @santarts in (#452)
  • chore(deps): update dependency esbuild to v0.28.1 [security] by @renovate[bot] in (#449)
  • chore(deps): update dependency js-yaml to v5.2.2 [security] by @renovate[bot] in (#455)
  • chore(deps): update dependency postcss to v8.5.23 [security] by @renovate[bot] in (#456)
  • chore(deps): update dependency wp-coding-standards/wpcs to v3.4.1 [security] by @renovate[bot] in (#457)
  • chore(deps): lock file maintenance by @renovate[bot] in (#461)
  • feat(ca-client): createCaClientを作成 by @YouheiNozaki in (#470)
  • feat(cas-client): writeCasFileを作成 by @YouheiNozaki in (#471)
  • feat(ca-client): detectDriftを公開する by @YouheiNozaki in (#473)
  • fix(wordpress): PHPサポート方針の明確化 by @kou029w in (#481)
  • feat: PA Issuer Registration のトラストアンカー免除撤廃・認可状態通知 by @kou029w in (#476)
  • feat(ca-client):エラーコードとリトライサンプルの整理 by @YouheiNozaki in (#478)
  • e2e テストにて issuer と holder を分けて指定できるように修正 by @Sa-R390 in (#482)
  • docs(cas-client): READMEの整理 by @YouheiNozaki in (#483)
  • fix(wordpress): CAサーバーのホスト名初期値の更新 by @kou029w in (#485)
  • External Resource Target に cssSelector を追加 by @knokmki612 in (#480)
  • 検証対象を Web コンテンツ (サイト、文書) とした検証器の抽出 by @knokmki612 in (#501)
  • [opvc] signByServerを削除 by @YouheiNozaki in (#508)
  • [ca-client] readCasFileを公開する by @YouheiNozaki in (#511)
  • style: spが存在しないときの文言を修正 by @YuukiTsuchida in (#442)
  • feat: VC DM 2.0 検証結果風&シリアライザブルな戻り値 by @knokmki612 in (#506)
  • chore: typedoc と docs 用の astro ビルドを削除 by @kou029w in (#516)
  • fix(wordpress): WordPressプラグイン API認証(OIDC)画面404エラー対応 by @xkanei in (#518)
  • fix(wordpress): admin.php の代入演算子の位置揃えを修正 by @kou029w in (#519)
  • refactor: inspector の表示以外の実装を extension-common に外部化する by @knokmki612 in (#515)
  • refactor(extension-common): #515 で移動したコードを片付ける by @knokmki612 in (#520)
  • VCに取得経路の情報を追加 by @YuukiTsuchida in (#484)
  • feat: VisibleTextTargetIntegrity を非推奨化 by @kou029w in (#524)
  • fix(ci): lerna.json に npmClient と syncWorkspaceLock を明示する by @kou029w in (#526)
  • fix(extension-common): リンク先確認の組織解決を直し、語彙と構造を整える by @knokmki612 in (#521)
  • refactor(extension-common): タブのバッジ更新の配線を tab-badge へ移す by @knokmki612 in (#522)
  • fix(inspector): Fix typo in overlay CSS: outilne → outline by @kou029w in (#532)
  • fix(inspector): 非サポート画面と詳細情報でエラーの理由が消えるのを直す by @knokmki612 in (#528)
  • feat(op-lens): Inspector を複製して OP Lens のコードベースを作る by @knokmki612 in (#531)
  • fix(op-lens): 複製後に inspector 側だけ直った不具合を取り込む by @knokmki612 in (#538)
  • skill: clsx から twMerge に移行済みなので注釈を外す by @knokmki612 in (#542)
  • fix(inspector): リンク先確認 e2e の遷移先判定をホスト名の完全一致にする by @knokmki612 in (#541)
  • refactor: 拡張機能の使われていない実装を削除し、Menu の配置を直す by @knokmki612 in (#539)
  • feat!: レジストリの Basic 認証パス機能を廃止する by @knokmki612 in (#540)
  • CAS Monitor:CLIツールの作成 by @Sa-R390 in (#547)
  • chore: 不要になった public ディレクトリを削除 by @kou029w in (#551)
  • feat(wordpress): URLパターンによるCA発行対象の絞り込みを追加 by @xxj in (#544)
  • fix(deps): update dependency dompurify to v3.4.16 [security] by @renovate[bot] in (#553)
  • chore(deps): update dependency js-yaml to v5.4.1 [security] by @renovate[bot] in (#555)
  • chore(deps): update dependency vitest to v4.1.11 [security] by @renovate[bot] in (#552)
  • chore(deps): update dependency astro to v7.2.8 [security] by @renovate[bot] in (#554)
  • feat(wordpress): 既存記事のCA一括発行を追加 by @xxj in (#545)
  • feat(verify): wspのデコード失敗しても成功した内容を呼び出し元に伝える by @YuukiTsuchida in (#548)
  • feat(wordpress): 画像の External Resource Target に cssSelector を付与する by @kou029w in (#556)

Full Changelog: v0.6.1...v0.7.0

Download​

ヒント

Google Chrome をお使いの場合、「Chrome ウェブストア」から入手可能です。 Mozilla Firefox をお使いの場合、「Firefox Add-ons」から入手可能です。

下記の Assets セクションからダウンロードしてください。

Installation Instructions​