- Jan 07, 2016
-
-
Morris Jobke authored
-
- Dec 18, 2015
-
-
Morris Jobke authored
-
- Dec 17, 2015
-
-
Roeland Jago Douma authored
Replaced all calls to OC_Helper::linkToRoute with OC::$server->getURLGenerator()->linkToRoute
-
Roeland Jago Douma authored
Replaced with suggested (and calling body of)
-
Roeland Jago Douma authored
-
- Dec 01, 2015
-
-
Lukas Reschke authored
This PR implements the base foundation of the code signing and integrity check. In this PR implemented is the signing and verification logic, as well as commands to sign single apps or the core repository. Furthermore, there is a basic implementation to display problems with the code integrity on the update screen. Code signing basically happens the following way: - There is a ownCloud Root Certificate authority stored `resources/codesigning/root.crt` (in this PR I also ship the private key which we obviously need to change before a release
). This certificate is not intended to be used for signing directly and only is used to sign new certificates. - Using the `integrity:sign-core` and `integrity:sign-app` commands developers can sign either the core release or a single app. The core release needs to be signed with a certificate that has a CN of `core`, apps need to be signed with a certificate that either has a CN of `core` (shipped apps!) or the AppID. - The command generates a signature.json file of the following format: ```json { "hashes": { "/filename.php": "2401fed2eea6f2c1027c482a633e8e25cd46701f811e2d2c10dc213fd95fa60e350bccbbebdccc73a042b1a2799f673fbabadc783284cc288e4f1a1eacb74e3d", "/lib/base.php": "55548cc16b457cd74241990cc9d3b72b6335f2e5f45eee95171da024087d114fcbc2effc3d5818a6d5d55f2ae960ab39fd0414d0c542b72a3b9e08eb21206dd9" }, "certificate": "-----BEGIN CERTIFICATE-----MIIBvTCCASagAwIBAgIUPvawyqJwCwYazcv7iz16TWxfeUMwDQYJKoZIhvcNAQEF\nBQAwIzEhMB8GA1UECgwYb3duQ2xvdWQgQ29kZSBTaWduaW5nIENBMB4XDTE1MTAx\nNDEzMTcxMFoXDTE2MTAxNDEzMTcxMFowEzERMA8GA1UEAwwIY29udGFjdHMwgZ8w\nDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANoQesGdCW0L2L+a2xITYipixkScrIpB\nkX5Snu3fs45MscDb61xByjBSlFgR4QI6McoCipPw4SUr28EaExVvgPSvqUjYLGps\nfiv0Cvgquzbx/X3mUcdk9LcFo1uWGtrTfkuXSKX41PnJGTr6RQWGIBd1V52q1qbC\nJKkfzyeMeuQfAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAvF/KIhRMQ3tYTmgHWsiM\nwDMgIDb7iaHF0fS+/Nvo4PzoTO/trev6tMyjLbJ7hgdCpz/1sNzE11Cibf6V6dsz\njCE9invP368Xv0bTRObRqeSNsGogGl5ceAvR0c9BG+NRIKHcly3At3gLkS2791bC\niG+UxI/MNcWV0uJg9S63LF8=\n-----END CERTIFICATE-----", "signature": "U29tZVNpZ25lZERhdGFFeGFtcGxl" } ``` `hashes` is an array of all files in the folder with their corresponding SHA512 hashes (this is actually quite cheap to calculate), the `certificate` is the certificate used for signing. It has to be issued by the ownCloud Root Authority and it's CN needs to be permitted to perform the required action. The `signature` is then a signature of the `hashes` which can be verified using the `certificate`. Steps to do in other PRs, this is already a quite huge one: - Add nag screen in case the code check fails to ensure that administrators are aware of this. - Add code verification also to OCC upgrade and unify display code more. - Add enforced code verification to apps shipped from the appstore with a level of "official" - Add enfocrced code verification to apps shipped from the appstore that were already signed in a previous release - Add some developer documentation on how devs can request their own certificate - Check when installing ownCloud - Add support for CRLs to allow revoking certificates **Note:** The upgrade checks are only run when the instance has a defined release channel of `stable` (defined in `version.php`). If you want to test this, you need to change the channel thus and then generate the core signature: ``` ➜ master git:(add-integrity-checker) ✗ ./occ integrity:sign-core --privateKey=resources/codesigning/core.key --certificate=resources/codesigning/core.crt Successfully signed "core" ``` Then increase the version and you should see something like the following:  As you can see a failed code check will not prevent the further update. It will instead just be a notice to the admin. In a next step we will add some nag screen. For packaging stable releases this requires the following additional steps as a last action before zipping: 1. Run `./occ integrity:sign-core` once 2. Run `./occ integrity:sign-app` _for each_ app. However, this can be simply automated using a simple foreach on the apps folder.
-
- Nov 28, 2015
-
-
Lukas Reschke authored
In case the update server may deliver malicious content this would allow an adversary to inject arbitrary HTML into the response. So very bad stuff. While signing the response would be better and something we can also do in the future (considering the code signing work), this is already a good first start.
-
- Oct 09, 2015
-
-
Thomas Müller authored
-
- Sep 28, 2015
-
-
Thomas Müller authored
-
Thomas Müller authored
-
- Sep 23, 2015
-
-
Thomas Müller authored
-
- Jun 25, 2015
-
-
Morris Jobke authored
-
- Jun 11, 2015
-
-
Clark Tomlinson authored
-
- May 03, 2015
-
-
Morris Jobke authored
* instead of a static rendering inside PHP use the JS OC.Notification.showTemporary to hide the notification after 7 seconds automatically * fixes #14811
-
- Apr 03, 2015
-
-
Lukas Reschke authored
Allows administrators to disable or enabled experimental applications as well as show the trust level.
-
- Mar 26, 2015
-
-
Jenkins for ownCloud authored
-
- Mar 17, 2015
-
-
Adam Williamson authored
If the asset is, for example, in an apps directory that is outside the $SERVERROOT, we won't be able to get a relative path. We shouldn't just fail hard in this case. Fall back to using the absolute path instead (as we used to).
-
- Mar 04, 2015
-
-
Joas Schilling authored
-
- Feb 26, 2015
-
-
Morris Jobke authored
This reverts commit 6a1a4880.
-
- Feb 24, 2015
-
-
Thomas Müller authored
-
- Feb 23, 2015
-
-
Jenkins for ownCloud authored
-
- Feb 16, 2015
-
-
Lukas Reschke authored
This changeset removes the static class `OC_Request` and moves the functions either into `IRequest` which is accessible via `\OC::$server::->getRequest()` or into a separated `TrustedDomainHelper` class for some helper methods which should not be publicly exposed. This changes only internal methods and nothing on the public API. Some public functions in `util.php` have been deprecated though in favour of the new non-static functions. Unfortunately some part of this code uses things like `__DIR__` and thus is not completely unit-testable. Where tests where possible they ahve been added though. Fixes https://github.com/owncloud/core/issues/13976 which was requested in https://github.com/owncloud/core/pull/13973#issuecomment-73492969
-
- Feb 02, 2015
-
-
Thomas Müller authored
-
- Jan 05, 2015
-
-
Adam Williamson authored
This allows the directory where CSS/JS asset collections are written to be changed, in case SERVERROOT is not writeable. Note it does *not* allow the expected URL to be changed: whatever directory is used, the server must be configured to serve it at WEBROOT/assets. It may be possible to add another config parameter to allow the admin to specify a custom asset URL, but I thought I'd keep the first implementation simple.
-
Robin McCorkell authored
At some point SeparatorFilter should be included upstream (kriswallsmith/assetic), then lib/private/assetic/separatorfilter.php can be removed and the `use` in lib/private/templatelayout.php rewritten. SeparatorFilter inserts a separator between assets, preventing issues when files are incorrectly terminated. For JS this is a semicolon.
-
- Dec 09, 2014
-
-
Victor Dubiniuk authored
-
- Dec 06, 2014
-
-
Victor Dubiniuk authored
-
- Nov 12, 2014
-
-
Morris Jobke authored
-
- Oct 23, 2014
-
-
Christopher Schäpers authored
* fix #7484 * use UID, css, and div instead of span
-
Clark Tomlinson authored
-
- Oct 20, 2014
-
-
Lukas Reschke authored
There is no need to refer to the absolute path here if we can use the relative one. Conflicts: lib/private/templatelayout.php
-
Thomas Müller authored
-
- Oct 17, 2014
-
-
Thomas Müller authored
adding argument deleteSelf to rmdirr() - if false the directory itself will not be deleted only it's content adding repair step to clean the asset cache after upgrade + coding style adjustments
-
- Oct 16, 2014
-
-
Thomas Müller authored
-
- Oct 15, 2014
-
-
Lukas Reschke authored
This leads to the regeneration of the hash in case a single application is updated. Fixes https://github.com/owncloud/core/issues/11374
-
- Oct 06, 2014
-
-
Victor Dubiniuk authored
-
- Sep 17, 2014
-
-
Remco Brenninkmeijer authored
-
Morris Jobke authored
-
- Sep 11, 2014
-
-
Lukas Reschke authored
Conflicts: core/templates/layout.guest.php Step one, open guest layout for different styles.
-
- Aug 29, 2014
-
-
Robin Appelman authored
-