MozillaZine.jp フォーラム
https://forums.mozillazine.jp/

署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。
https://forums.mozillazine.jp/viewtopic.php?f=26&t=16509
ページ 11

作成者:  yat81 [ 2017年2月13日(月) 13:53 ]
記事の件名:  署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

お世話になります。
どうか宜しくお願い致します。

【使用環境1】
Firefox 46.0
OS Windows 7 Professional(86bit)

【使用環境2】
Firefox 46.0 (64bit),Firefox 47.0.2 (64bit),Firefox 50.0(64bit)
OS Windows 10 Anniversary Update(64bit)

【状況】
Firefoxの拡張機能を作成しており、署名も付けて過去バージョンで動作することが確認できていました。
しかし、現時点では、最新バージョン(Firefox 51.0)では問題なく動作するのですが、
古いバージョンで署名した拡張機能を登録しようとすると
「拡張機能名 は Firefox での使用が検証できないため無効化されています。」
というメッセージが表示され、無効状態になってしまいます。

ウイルスバスターの「Trend Micro Osprey Firefox Extension」等の拡張機能でも無効化されていることが確認できたので、
Firefoxの仕様として使えなくなってしまったのかと考え調べてみたのですが、
具体的な情報が見当たりませんでした。

【質問事項】
・Firefoxの仕様として過去バージョンでは必ず検証エラーが発生して無効になるようになったのでしょうか?
・ユーザ側で「無効化した拡張機能を許可する」という操作をすることなく有効状態にすることは可能でしょうか?

作成者:  偶然的通行人 [ 2017年2月15日(水) 08:16 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

ぼく自身は拡張機能の開発者ではありませんが、一介のエンドユーザーとして知っていることをコメントさせていただきます。

ご承知のこととは思いますが、以降の共通認識として次のサポート記事を前提とします。
・Firefox のアドオン署名 - Mozilla Support Community
https://support.mozilla.org/t5/Problems ... ta-p/37073

yat81 さんが書きました:
・Firefoxの仕様として過去バージョンでは必ず検証エラーが発生して無効になるようになったのでしょうか?

ご承知のように、現時点でサポートが継続しているのは、通常版の Firefox 51.0.x 系列と ESR 版の Firefox 45.x 系列です。
サポート期間内におこなわれるマイナーバージョンアップはセキュリティ修正が中心ですが、クラッシュをともなうバグなど、致命的な問題に対する修正が加えられることもあります。

サポートが終了したバージョンには、どのような変更も修正も加えられることは絶対にありません。
したがって、Firefox 46.0 や 47.0.2 、50.0 などのバージョンに、いまになって拡張機能の検証に関する仕様変更がおこなわれることはありえません。

一方、Firefox のメジャーバージョンアップでは、仕様変更にともなって拡張機能の互換性や動作に影響が出ることはあります。
こうした仕様変更は開発版の段階から情報が公開されます。拡張機能開発者は開発版でテストをおこない、必要に応じてその拡張機能に修正を加え、正式リリース版で正常に動作するよう調整しています。
(一例)
・Firefox 52 アドオン互換性情報 | Mozilla Developer Street (modest)
https://dev.mozilla.jp/2016/12/firefox- ... atibility/
(他のバージョンのアドオン互換性情報は、modest で探せば出てきます。)

(補足)
自作なさっている拡張機能のソースコードなどに関する質問をしたい場合は、[掲示板トップ ≫ 相互開発サポート ≫ 拡張機能] のカテゴリに投稿なさったほうがいいと思います。

yat81 さんが書きました:
・ユーザ側で「無効化した拡張機能を許可する」という操作をすることなく有効状態にすることは可能でしょうか?

詳しい事情が不明なので断言はできませんが、
(a)Firefox 本体の機能がもつ制限条件に合致した結果、拡張機能が無効化されているような場合、その部分の「操作をすることなく」有効化することは無理だと思います。(もしそんなことができるのなら、大きなセキュリティホールになる気がします。)
(b)もし拡張機能の側に署名の付け方等の問題がって無効化されているのなら、拡張機能側の修正で改善されるかもしれません。
(c)Firefox 本体とは別の部分に原因があって、特定の拡張機能が無効化されているような場合、原因を解決できれば、Firefox 本体側の設定内容に関係なく有効化する手段はあるかもしれません。

【その他の観点】
yat81 さんが書きました:
Firefoxの拡張機能を作成しており、署名も付けて過去バージョンで動作することが確認できていました。

どのようなプロセスで署名を付けておられますか?
念のため、冒頭の「Firefox のアドオン署名」記事とそのリンク先を確認してみてください。次の記事(英語)も参考になるかもしれません。
・Add-ons/Extension Signing - MozillaWiki
https://wiki.mozilla.org/Add-ons/Extension_Signing

「過去バージョンで動作することが確認できていました」というのは、具体的にどのバージョンの Firefox ですか。
例えば、Firefox 45.0 以前では正常に動作していたが、Firefox 46.0 では動作しなくなったということでしょうか。
それとも、Firefox 46.0 でも正常に動作していたが、ある時期から「検証できないため無効化されています」が出るようになったのでしょうか。

使用環境として挙げられている Firefox は、46.0 、47.0.2 、50.0 の3種類ありますが、これらで自作の拡張機能が動作しなくなっているが、51.0 では問題なく動作するのだとしたら、ちょっと不可解に思えます。
古いバージョンには、拡張機能の署名チェックを無効化したり、ホワイトリストに追加することで強制的にインストールできるような過渡的措置が残っていましたが、新しいバージョンに進むにしたがってそのような過渡的措置は廃止され、署名は必須になっているからです。

ひとつ気になるとしたら、複数バージョンの Firefox で1つのプロファイルを共有して使い回すケースでしょうか。

ご提示の使用環境のうち、【使用環境2】は、ひとつのシステム内に 3 種類の Firefox がインストールされているようです。
これらの Firefox は、同一のプロファイルを共有して運用されているのでしょうか。それとも、バージョンごとにプロファイルを分けて運用されているのでしょうか。

もし、異なるバージョンの Firefox で同一のプロファイルを共有して使い回しておられるなら、予期しないトラブルが発生しやすくなります。
なぜなら、新旧のバージョンで変更されているプロファイル内データが混在するようになり、整合性・一貫性を乱しやすくなるからです。
通常、拡張機能はプロファイル内にインストールされますので、拡張機能の動作や検証に関しても同じことがいえます。
【使用環境1】のほうはひとつの Firefox だけが明記されていますが、問題が起こっているのが Firefox 46.0 という意味で、実際は複数バージョンの Firefox がインストールされ、プロファイルを共有しているのなら、上述と同じことが危惧されます。

当該の拡張機能がインストールできない古いバージョンの Firefox 、例えば 46.0 を、追加作成した「新しいプロファイル」で起動させ、まっさらな状態に当該の拡張機能をインストールを試みるとどうなりますか?
(参考)
・基本的なトラブルシューティング - Mozilla Support Community
https://support.mozilla.org/t5/Procedur ... /ta-p/9019

比較として、本来「検証できないため無効化されています」が出るはずのない他のアドオンを、異なるバージョンの Firefox にそれぞれインストールしてみることで、結果の違いを探ることができるかもしれません。
一例を紹介するなら、Mozilla 謹製の拡張機能である Lightbeam(対応バージョン= Firefox 45.0 以降)などがあります。
https://addons.mozilla.org/ja/firefox/addon/lightbeam/

情報の羅列でしかありませんが、とりあえず気になった点は以上です。的外れな話になっていたらすみません。

作成者:  yat81 [ 2017年2月15日(水) 20:22 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

回答ありがとうございます。
それぞれについてこちらの状況を記載致します。
偶然的通行人 さんが書きました:
自作なさっている拡張機能のソースコードなどに関する質問をしたい場合は、[掲示板トップ ≫ 相互開発サポート ≫ 拡張機能] のカテゴリに投稿なさったほうがいいと思います。


自作の拡張機能だけではなく「ウイルスバスターのTrend Micro Osprey Firefox Extension」でも同じ現象が発生していたため、
Firefox全体の仕様の話ではないかと思い今回こちらで質問させていただきました。

偶然的通行人 さんが書きました:
(a)Firefox 本体の機能がもつ制限条件に合致した結果、拡張機能が無効化されているような場合、その部分の「操作をすることなく」有効化することは無理だと思います。(もしそんなことができるのなら、大きなセキュリティホールになる気がします。)
(b)もし拡張機能の側に署名の付け方等の問題がって無効化されているのなら、拡張機能側の修正で改善されるかもしれません。
(c)Firefox 本体とは別の部分に原因があって、特定の拡張機能が無効化されているような場合、原因を解決できれば、Firefox 本体側の設定内容に関係なく有効化する手段はあるかもしれません。



ありがとうございます。
Firefox51.0では強制インストールの設定を行った場合でも、有効になっていたので古いバージョンでも同じように動作させることはできないかという考えでした。

偶然的通行人 さんが書きました:
「過去バージョンで動作することが確認できていました」というのは、具体的にどのバージョンの Firefox ですか。
例えば、Firefox 45.0 以前では正常に動作していたが、Firefox 46.0 では動作しなくなったということでしょうか。
それとも、Firefox 46.0 でも正常に動作していたが、ある時期から「検証できないため無効化されています」が出るようになったのでしょうか。



Firefox 47.0の頃に拡張機能を作成し、その頃は47.0で問題なく動作していました。
しかし現在ふとしたことから古いFirefoxをインストールしてみると「検証できないため無効化されています」が出るようになっていたので今回質問させていただきました。

偶然的通行人 さんが書きました:

もし、異なるバージョンの Firefox で同一のプロファイルを共有して使い回しておられるなら、予期しないトラブルが発生しやすくなります。
当該の拡張機能がインストールできない古いバージョンの Firefox 、例えば 46.0 を、追加作成した「新しいプロファイル」で起動させ、まっさらな状態に当該の拡張機能をインストールを試みるとどうなりますか?


異なるバージョンのFirefoxを同時にインストールはしておらず、クリーンな状態からFirefox46.0をインストールして確認しております。
46.0、47.0.2、50.0のバージョンの確認は46.0をインストールした際に無効状態だったので、
46.0→47.0.2→50.0→51.0とバージョンアップを続けたところ、51.0で初めて有効状態になったという状態です。

偶然的通行人 さんが書きました:
一例を紹介するなら、Mozilla 謹製の拡張機能である Lightbeam(対応バージョン= Firefox 45.0 以降)などがあります。


Lightbeamを「Firefoxへ追加」からインストールした場合は有効状態になりましたが、
私が作成した拡張機能はレジストリの「HKLM\Software\Mozilla\Firefox\Extensions」に「xpiファイル」を指定する等の設定で
全ユーザに自動で拡張機能を適用するようにしておりますのでインストール方法が異なっています。
そのため、状況が少し違うかもしれません。

作成者:  偶然的通行人 [ 2017年2月16日(木) 20:49 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

追加の状況説明、ありがとうございました。

yat81 さんが書きました:
Lightbeamを「Firefoxへ追加」からインストールした場合は有効状態になりましたが、
私が作成した拡張機能はレジストリの「HKLM\Software\Mozilla\Firefox\Extensions」に「xpiファイル」を指定する等の設定で
全ユーザに自動で拡張機能を適用するようにしておりますのでインストール方法が異なっています。
そのため、状況が少し違うかもしれません。

拡張機能が Windows レジストリに登録されているということは、その環境に Firefox をインストールした初回起動時に、自動的に拡張機能として認識されるわけですが、その段階で「検証できないため無効化されています」の警告が出ているというお話だったのですね。
「検証できないため無効化されています」が出るということは、少なくともレジストリ経由の拡張機能として認識はされていることになります。認識できた拡張機能の署名をチェックした結果、検証できないので無効化され、そのことを警告しているということになりましょうか。

で、比較のためにおこなった拡張機能(Lightbeam)の通常インストールでは、Firefox 46.0 などの古いバージョンでも「検証できないため無効化されています」の警告は出ず、ふつうに認識されたということですよね。

yat81 さんが書きました:
Firefox 47.0の頃に拡張機能を作成し、その頃は47.0で問題なく動作していました。
しかし現在ふとしたことから古いFirefoxをインストールしてみると「検証できないため無効化されています」が出るようになっていたので今回質問させていただきました。

レジストリに登録された拡張機能の本体にいっさい変更がないとして、
・その拡張機能は、以前は Firefox 47.0 で問題なく動作していた。
・現在、改めて Firefox 47.0 をインストールすると、同じ拡張機能に対し「検証できないため無効化されています」の警告が出るようになった。
―― というお話なら、ぼくには原因の見当がつきません。

yat81 さんが書きました:
異なるバージョンのFirefoxを同時にインストールはしておらず、クリーンな状態からFirefox46.0をインストールして確認しております。
46.0、47.0.2、50.0のバージョンの確認は46.0をインストールした際に無効状態だったので、
46.0→47.0.2→50.0→51.0とバージョンアップを続けたところ、51.0で初めて有効状態になったという状態です。

「クリーンな状態からFirefox46.0をインストール」ということは、その時点でまったく新規のプロファイルが初期状態で作成されているということですよね。
Firefox 46.0 をインストールした段階で、当該の拡張機能は Firefox に認識されはしたものの、署名の確認がとれずに「検証できないため無効化されています」が出たのであれば、生成されたプロファイル内にその情報が記録されているはずです(*)
その後、同じプロファイルを使ってバージョンアップしていくと、バージョンが新しくなるごとに拡張機能の状態が再チェックされ、51.0 では警告が出ず正常に認識されたという流れも、ちょっと不可解に感じます。46.0 で何かの不都合があって無効化された情報が、47.0 や 50.0 ではリセットされず、51.0 での再チェックで正常に戻ったのでしょうか??

 (*) プロファイル内にある extensions.json ファイルに、各拡張機能の状態が記録されています。
 このうち、「(署名が)検証できないため無効化されています」の拡張機能では、signedState の値が 0 になっているはずです。
 その他、active 、userDisabled 、appDisabled などの値が、正常に認識された拡張機能とは異なる値になっています。
 こうした項目を手動で変更することで、強制的に認識・有効化させることはできます。しかし、あくまで署名がボトルネックになっている場合の緊急回避策として、Firefox がおこなった署名チェック結果を手動で上書きして無理矢理認識させるという乱暴な方法なので、積極的にはお勧めしません。extensions.json が更新されるようなアクションがあった場合、手動で変更した内容が元に戻されることもあると思います。
 加えて、そもそも拡張機能が、使用している Firefox のバージョンに対応していなければ、正常な動作は望めません。

例えば、Firefox 48.0 では、
Firefox 48.0 リリースノート さんが書きました:
Mozilla によって検証・署名されていないアドオンはロードされなくなります
という変更が入っていて、46.0 や 47.0 よりも厳しい対応になっていることがわかります。
(参考)・Firefox 48.0 リリースノート
https://www.mozilla.jp/firefox/48.0/releasenotes/

「46.0→47.0.2→50.0→51.0とバージョンアップを続けた」中で、その拡張機能を正常化しようと about:config などをあれこれ変更したという経過があれば、そのあたりの設定変更と Firefox のバージョンの組み合わせに何か要因があるのかもしれませんが、それも確たることは申し上げられません。
お使いになっているのはいずれも ESR 版ではありませんから、ESR 版固有の条件はなさそうですし...。

比較用に試した Lightbeam では問題ないとすると、現状では、
(a)レジストリ経由で認識させる拡張機能であるという点
(b)「Firefoxの拡張機能を作成しており、署名も付けて」の署名の付け方
―― といったあたりに、何らかの要因があるようにも思えます。
しかし、Firefox 51.0 では問題なく認識され動作も正常という事実とはかみ合いません。

もうひとつ試すとしたら、署名がきちんと検証されている Lightbeam などの拡張機能をレジストリに登録し、レジストリ経由で Firefox に認識させてみるテストでしょうか。
レジストリ経緯であっても、そこに記されたパスにある拡張機能の本体を Firefox が読み込み、META-INF 内をチェックするわけですから、拡張機能が置かれたパス以外に違いはないように思います。ですが同時に、どういう経路で読み込んだ拡張機能かは区別されていますので、そのあたりに何らかの要因があるのかもしれません。なので、通常のインストールでは署名が正常に検証できている拡張機能をレジストリ経由で読み込ませ、各バージョンの Firefox がどのような結果を出すかを調べることで、問題点を探れるかもしれない、ということです。やるなら、バージョンごとに新しいプロファイルでテストしてみてください。

十分な助力ができず心苦しいですが、ぼくの力量ではこの程度のことしか申し上げられません。

(追記)
すでにご覧になっておられるかもしれませんが、直近に次のようなトピックが投稿されています。
(参考)・FireFox43で承認済みのAdd-onが動かなくなりました。
viewtopic.php?f=26&t=16513

作成者:  yat81 [ 2017年2月20日(月) 09:18 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

回答ありがとうございます。

偶然的通行人 さんが書きました:
比較のためにおこなった拡張機能(Lightbeam)の通常インストールでは、Firefox 46.0 などの古いバージョンでも「検証できないため無効化されています」の警告は出ず、ふつうに認識されたということですよね。

はい。その通りです。

偶然的通行人 さんが書きました:
レジストリに登録された拡張機能の本体にいっさい変更がないとして、
・その拡張機能は、以前は Firefox 47.0 で問題なく動作していた。
・現在、改めて Firefox 47.0 をインストールすると、同じ拡張機能に対し「検証できないため無効化されています」の警告が出るようになった。


はい。こちらもその通りです。
なので原因がよくわからない状態となっています…

偶然的通行人 さんが書きました:
もうひとつ試すとしたら、署名がきちんと検証されている Lightbeam などの拡張機能をレジストリに登録し、レジストリ経由で Firefox に認識させてみるテストでしょうか。

試そうとしたのですが、Lightbeamインストールはできてもxpiファイルの入手方法がわかりませんでした…
xpiファイルのダウンロード方法は何かないでしょうか?

偶然的通行人 さんが書きました:
すでにご覧になっておられるかもしれませんが、直近に次のようなトピックが投稿されています。
(参考)・FireFox43で承認済みのAdd-onが動かなくなりました。
viewtopic.php?f=26&t=16513


情報ありがとうございます。こちらについてはまだ試せてはいません。実施でき次第また報告させていただきます。

作成者:  偶然的通行人 [ 2017年2月21日(火) 09:06 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

本筋の話題ではありませんが......。

yat81 さんが書きました:
試そうとしたのですが、Lightbeamインストールはできてもxpiファイルの入手方法がわかりませんでした…
xpiファイルのダウンロード方法は何かないでしょうか?

Lightbeam なら、AMO (addons.mozilla.org) の当該ページにある [+ Firefox へ追加] のボタンを右クリックし、[名前を付けてリンク先を保存] で、lightbeam_for_firefox-1.3.1-fx.xpi がダウンロードできます。

Lightbeam を通常の方法でインストールしたプロファイルがあるなら、そこから抽出することができます。
そのプロファイルで起動した Firefox の [トラブルシューティング情報] を開き、[拡張機能] の項目を見てください。
[名前] 欄で Lightbeam を探し、その右端の [ID] を確認します。
[アプリケーション基本情報] -> [プロファイルフォルダ] -> [フォルダを開く] でプロファイルフォルダが開きます。
その中の [extensions] フォルダ内に <ID>.xpi というファイル、または <ID> 名のフォルダがあります。

AMO からダウンロードしたインストール用ファイルを使う場合も、ID 名が重要になります。
レジストリには、ID 名で登録してください。

以上です。

作成者:  yat81 [ 2017年2月23日(木) 11:44 ]
記事の件名:  Re: 署名した拡張機能でも古いバージョンで「検証できないため無効化されています。」と表示されてしまいます。

偶然的通行人 さんが書きました:
もうひとつ試すとしたら、署名がきちんと検証されている Lightbeam などの拡張機能をレジストリに登録し、レジストリ経由で Firefox に認識させてみるテストでしょうか。

偶然的通行人 さんが書きました:
Lightbeam なら、AMO (addons.mozilla.org) の当該ページにある [+ Firefox へ追加] のボタンを右クリックし、[名前を付けてリンク先を保存] で、lightbeam_for_firefox-1.3.1-fx.xpi がダウンロードできます。


教えていただいた方法でダウンロードができました。
レジストリ経由でlightbeamを登録した場合は問題なく動作しました。

偶然的通行人 さんが書きました:
すでにご覧になっておられるかもしれませんが、直近に次のようなトピックが投稿されています。
(参考)・FireFox43で承認済みのAdd-onが動かなくなりました。
viewtopic.php?f=26&t=16513


こちらにある方法の通り、全く同じ情報で署名を行うと登録することができました。
署名の有効期限のようなものがあるのかもしれないですね・・・

再署名をすることで本件の問題は解決できました。
問題に対応していただきありがとうございました。

ページ 11 All times are UTC + 9 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/