You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With 11.0, we will enable the certificate check for apps from the appstore by default. This offers the following advantages:
If the appstore is hacked it won't be possible to deliver malicious updates (since the updates have to be signed)
We don't have to do this enormous kind of moderation we did on https://apps.owncloud.com/ with all the spam uploads. If an app is not signed we don't need to display it at all.
Additionally, this is also required for a proper user experience when updating form an older version. Basically for updates we use the app ID now and to avoid any issues with having somebody else claim an app ID we need to ensure those are signed. While the verification on the Nextcloud side is in place, it still is possible to spam the app list.
Technical implementation
I don't think it's necessary to validate the signature, that one the server can do. But we should check for a valid certificate.
Basically in appinfo/signature.json there is a text field certificate, that one looks as following:
Ok. We go with an easier way of signing, basically the tar files have to be signed used openssl dgst -sha256 -sign /Users/lukasreschke/Documents/Programming/nextcloud/stable9/tests/data/integritycheck/SomeApp.Key app.tar.bz2 | openssl base64. The PHP implementation can be found at https://gist.github.com/LukasReschke/f1f91925291495ec2e388bb3eaac6989
The appstore needs to deliver the certificate and the signature and that's it.
With 11.0, we will enable the certificate check for apps from the appstore by default. This offers the following advantages:
While this is a little bit of additional work for the dev, requesting the certificate is quick and easy: https://docs.nextcloud.com/server/10/developer_manual/app/code_signing.html#how-to-get-your-app-signed
Additionally, this is also required for a proper user experience when updating form an older version. Basically for updates we use the app ID now and to avoid any issues with having somebody else claim an app ID we need to ensure those are signed. While the verification on the Nextcloud side is in place, it still is possible to spam the app list.
Technical implementation
I don't think it's necessary to validate the signature, that one the server can do. But we should check for a valid certificate.
Basically in
appinfo/signature.json
there is a text fieldcertificate
, that one looks as following:This decodes to:
What has to happen here is:
core
)Nextcloud Code Signing Intermediate Authority
. You can find the certs at https://github.com/nextcloud/server/blob/master/resources/codesigning/root.crtIf not: Throw an error.
The text was updated successfully, but these errors were encountered: