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
Copy file name to clipboardExpand all lines: user/securely-signing-software.md
+19-10Lines changed: 19 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Before getting started, make sure you have:
20
20
21
21
A passwordless private PEM key can be generated by the account holder or organization admin and uploaded to Travis CI.
22
22
Upload the Key to a [personal account](https://app.travis-ci.com/account/preferences)
23
-
or an Organizational account(e.g.: https://app.travis-ci.com/organizations/[org_name]/preferences). The key name can contain only alphanumeric characters and the underscore character (_). Make sure to note down the name of the key. The key name must be unique within the scope of personal account or organization.
23
+
or an Organizational account(e.g.: https://app.travis-ci.com/organizations/[org_name]/preferences). The key name can contain only alphanumeric characters and the underscore character (_). Make sure to note down the name of the key. The key name must be unique within the scope of a personal account or organization.
24
24
25
25
The key provided will be available for all builds run under this account (either personal or organizational). Please pay attention to individual Repository Settings, particularly the [Security Settings -> Share SSH key with forks](user/web-ui#share-ssh-keys-with-forks) setting. If enabled, the signing key may be also made available when a forked repository files a Pull Request against the original (base repository).
26
26
@@ -81,21 +81,30 @@ script:
81
81
82
82
Whenever in doubt, please consult the [Cosign KMS Support documentation page](https://docs.sigstore.dev/cosign/kms_support)
83
83
84
+
### Add SSH Key
85
+
86
+
Add a new SSH key, a private key in PEM format only.
87
+
88
+
Complete the following fields to add a new SSH key:
89
+
- **Identifier**: field to add an identifier name.
90
+
- **Description**: field to add a short description.
91
+
- **SSH Key**: field to add your SSH key code.
92
+
84
93
## Security considerations
85
94
86
95
As much as the feature is meant to help you prove the source of the file or image via signature, please at all times consider following aspects of ensuring security of the key used for signing the files or images during the CI/CD process.
87
96
88
97
The key used for signing uploaded to Travis CI under a personal account or organization account can be used under every repository owned by this entity (assuming proper tag and key identifier are present in the respective repository `.travis.yml`). The key downloaded from Hashicorp Vault to a specific build job or build can be used, respectively, within a specific build job or every build job of a build.
89
98
90
-
Therefore please carefully review repository settings in Travis CI for repositories belonging to the account and assess the risk of the key used for signing being exposed, e.g. via malicious pull request from a fork or accidental debug message. We’d recommend paying attention whether the repository is public (which makes the job logs public by default), if the pull requests from forks are allowed, are the repository SSH keys shared and who may access the job logs. Please mind that job logs, especially public, can be used to expose the secret via a malicious or accidental debug message in the pull request or commit that triggers a build in Travis CI.
99
+
Therefore, please carefully review repository settings in Travis CI for repositories belonging to the account and assess the risk of the key used for signing being exposed, e.g., via malicious pull request from a fork or accidental debug message. We’d recommend paying attention whether the repository is public (which makes the job logs public by default), if the pull requests from forks are allowed, are the repository SSH keys shared and who may access the job logs. Please mind that job logs, especially public, can be used to expose the secret via a malicious or accidental debug message in the pull request or commit that triggers a build in Travis CI.
91
100
92
-
We recommend considering following security measures:
93
-
* using separate key just for purpose of file/image signing
94
-
* using private repository to trigger builds, during which the files are signed, if possible
95
-
* reviewing who has push/write access to such repository
96
-
* reviewing Repository Settings, particularly the [Security Settings -> Share SSH key with forks](user/web-ui#share-ssh-keys-with-forks) setting
97
-
* excluding a build, which signs the release to a separate account/organization (if possible and viable) with limited list of collaborators
98
-
* [limiting access to repository job logs](/user/disable-job-logs/) in individual repository settings
99
-
* if using Hashicorp Vault KMS as a source of the key used for signing: always encrypt secrets needed to connect to Vault in the respective Repository Settings or the .travis.yml file
101
+
We recommend considering the following security measures:
102
+
* using separate key just for the purpose of file/image signing.
103
+
* using a private repository to trigger builds, during which the files are signed, if possible.
104
+
* reviewing who has push/write access to such repository.
105
+
* reviewing Repository Settings, particularly the [Security Settings -> Share SSH key with forks](user/web-ui#share-ssh-keys-with-forks) setting.
106
+
* excluding a build, which signs the release to a separate account/organization (if possible and viable) with a limited list of collaborators.
107
+
* [limiting access to repository job logs](/user/disable-job-logs/) in individual repository settings.
108
+
* if using Hashicorp Vault KMS as a source of the key used for signing: always encrypt secrets needed to connect to Vault in the respective Repository Settings or the .travis.yml file.
100
109
101
110
Travis CI will attempt to obfuscate secrets in the job logs, yet since there are many ways to print them in the output there’s no guarantee all vulnerable data will be spotted and masked. Since Travis is a cloud CI/CD system, please be wary of associated risks and ways to minimize these. Please read also [Best Practices in Securing Your Data](/user/best-practices-security).
0 commit comments