[wp-trac] [WordPress Trac] #49200: Allow Developers to Cryptographically Sign Their Own Plugins/Themes with the Gossamer Public Key Infrastructure (PKI)

WordPress Trac noreply at wordpress.org
Wed Jan 15 23:52:42 UTC 2020


#49200: Allow Developers to Cryptographically Sign Their Own Plugins/Themes with
the Gossamer Public Key Infrastructure (PKI)
------------------------------------------+------------------------------
 Reporter:  paragoninitiativeenterprises  |       Owner:  (none)
     Type:  enhancement                   |      Status:  new
 Priority:  normal                        |   Milestone:  Awaiting Review
Component:  Upgrade/Install               |     Version:  trunk
 Severity:  normal                        |  Resolution:
 Keywords:                                |     Focuses:
------------------------------------------+------------------------------

Comment (by ayeshrajans):

 Thank you for posting the ticket @paragoninitiativeenterprises . I'm not a
 decision maker here, but I would like to put my thoughts up as someone who
 is active/invested in Drupal and Phar-io package updates and signing.

 Without going in detail for possible padding attacks or possibility to
 select to bad ciphers, I find the update signing in Composer and Phar-IO
 to be least invasive yet functional. They rely on openssl and gpg, which
 had several security vulnerabilities, but are trusted available to be used
 by pretty much every LAMP stack.

 I appreciate the amazing and often unfathomable effort you have put in
 developing these libraries such as Sodium compat, Chronicle, and now
 Gossamer. I'm sure those who use it will certainly appreciate it too. If
 this were to go in WordPress core, I would like to point out the amount of
 trust WordPress community has to put on your work. I remember the last
 time this topic came up, the conversation was stalled at a point about
 lack of an audit in `paragonie/sodium_compat` package. A fully implemented
 Gossamer + Chronicle instances would assume many packages from the same
 vendor:

  - paragonie/certainty
  - paragonie/easydb
  - paragonie/sodium_compat
  - paragonie/slim-sapient
  - paragonie/blakechain
  - paragonie/sapient

 Further, because Chronicle package builds on top of Slim, we will be
 trusting `slim/slim` and related packages too.

 I doubt there are other active members in WordPress community that are
 familiar with these libraries (other than you of course). In addition to
 trusting all your packages, this will add maintenance overhead for package
 updates, security releases, and general bug fixes. If it takes 2 versions
 to add a package, it would take at least 5 to remove it. Libraries that
 once had maintainers are not practically maintained by WordPress
 community, such as kses and a considerable amount of packages in `wp-
 includes`.

 WordPress already carries several libraries in both PHP and JS
 departments, and keeping up with their updates is not easy, nor happens in
 a regular or pragmatic fashion. Because of the lack of an audit, and the
 novel approach instead of using established PKI, all these 35.5% of web
 sites would be indirectly trusting your organization to keep the word and
 take ''your'' PKI approach instead.

 I think the question ultimately comes down to the politics and trust
 considerations whether WordPress community is ready to trust all the
 packages above to function correctly, will be maintained, secure, and
 whether the PKI approach can stand against the masses. OpenSSL package
 probably had been reviewed many times by bounty hunters and security
 professionals, and yet Heartbleed took a long time to be discovered. What
 sort of trust do we (as WordPress community) has for Gossamer to be
 included by default in world's most wide-spread web platform?


 Although WordPress comes as a single easy to use package, most modern
 deployments in fact use packages projects and packages such as
 [https://wpackagist.org/ wpackagist],
 [https://github.com/johnpbloch/wordpress johnpbloch/wordpress] and
 [https://github.com/roots/bedrock roots/bedrock]. I also maintain
 [https://github.com/phpwatch/WordPress-Security-Advisories WordPress-
 Security-Advisories]. None of these packages come bundled, and they have
 to earn the trust of the community. As someone who wishes WordPress (and
 many PHP packages for that matter) to adopt automatic updates that trust
 for developers are established without secure channels or middleman, I
 really wish your efforts will fruitful. May I ask what prevents you from
 providing this solution as a plugin? I'm sure WordPress provides necessary
 hooks to validate updates before they are written to disk. If the
 necessary hooks do not exist, it would be relatively easy and bite-size
 patches to WordPress core to be accepted.

 If the community accepts this plugin as a de-facto update guard plugin,
 I'm sure the decision makers will be inclined to ship the solution along
 with WordPress core.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/49200#comment:2>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list