Guid attribute proposal
Ryan Doherty
rdoherty at mozilla.com
Thu Jul 29 16:55:18 PDT 2010
So from what I can tell there's two possibilities here:
1) Use a guid (format tbd)
Engineering complexity: low, requires new web API and browser vendors to use the guid if available
Maintenance complexity: low, requires adding guids to database
Ecosystem complexity: high, requires communicating with as many plugin vendors as possible and communicating benefit of adding a guid
2) Use md5
Engineering complexity: high, requires computing hash from installed plugin for database and via browser
Maintenance complexity: medium, requires uploading installers to webapp or computing manually for every release, dealing with changes to install locations, new code written for each plugin
Ecosystem complexity: low-high, requires some communication to plugin vendors on how this system works, if crowdsourced requires methods of gathering and verifying data
Open questions:
* GUID format - I'm fine with a human readable format
* If guids were added, what's the best method of accessing/storing the guid? Sounds like resource data and plists?
I'm not convinced a md5 method would be worth the effort. imo I'd rather take on initially communicating with plugin vendors to get things rolling than deal with designing, building and maintaining a system to compute md5 sums. Sounds brittle to me.
Ryan Doherty
rdoherty at mozilla.com
On Jul 29, 2010, at 8:58 AM, Lloyd Hilaiel wrote:
> On Thu, Jul 29, 2010 at 07:41:02AM -0700, l.m.orchard wrote:
>> I still want to see a GUID, but it seems like there could be
>> benefits to having an MD5 of the plugin binary.
>
> Fair enough.
>
>> One case where this would fail is in a new version of a known plugin
>> we hadn't cataloged yet. We'd probably still be stuck with fuzzy
>> sniffing there. We've been hoping to use that case as a way to clue
>> us in on plugin updates we hadn't heard of from other channels.
>
> Agreed. Another weakness is the local compilation case (as mentioned
> by Kevin). Another weakness would be plugins that dynamically change
> themselves. In the case of plugin check, however, the cost of failure
> for abnormal cases seems low ("We couldn't recognize this plugin!
> would you like to submit it to mozilla for identification?").
>
> And one case where fuzzy sniffing would fail is in the gnash case when
> a plugin is doing its darndest to look like someone else. For the
> purposes of updates, gnash and flash are different products with
> different updates and vulnerabilties at different times. A signature
> solves this.
>
>> It would also take some tooling to produce an MD5 from a plugin,
>> though maybe that same tool could extract the current name / version
>> / mimetype set for the plugin directory. It might be nice to have an
>> upload form in the directory web UI that chews on a binary and
>> produces an auto-filled release record.
>
> Great idea, a little panda that eats plugin binaries/directories and
> poops well structured metadata. Crafting such a thing seems a fun
> experiment ("submit to the plugin eating panda for identification?").
>
>> It would still require browser vendor coordination to expose plugin
>> MD5s / use an update service. I'm not sure whether or not that would
>> be a change to NPAPI.
>
> How about crowd sourcing this? If you could get the binary plugins
> installed on a random selection of 10k end users machines, wouldn't
> you be able to algorithmically build a pretty solid database (I expect
> this problem will require the development of heuristics much less
> sophisticated that what's already been thunk here:
> https://wiki.mozilla.org/PFS2#General_Algorithm)
>
>> I guess the difference isn't in whether participation is desired -
>> it's to what degree and how onerous. Less coordination is good.
>
> Agree. Vendor coordination becomes encouraged, but is not required
> for the system to function well.
>
> lloyd
>
>>
>> --
>> lorchard at mozilla.com
>> {web,mad,computer} scientist
More information about the plugin-futures
mailing list