@@ -4,47 +4,47 @@ Security Considerations
44=======================
55
66CernVM-FS provides end-to-end data integrity and authenticity using a signed
7- Merkle Tree. CernVM-FS clients verify the signature and the content hashes of
8- all downloaded data. Once a particular revision of a file system is stored in
7+ Merkle Tree. CernVM-FS clients verify the signature and the content hashes of
8+ all downloaded data. Once a particular revision of a file system is stored in
99a client's local cache, the client will not apply an older revision anymore.
1010
1111The public key used to ultimately verify a repository's signature needs to be
1212distributed to clients through a channel different from CernVM-FS content
13- distribution. In practice, these public keys are distributed as part of the
14- source code or through ``cvmfs-config-... `` packages. One or multiple public
13+ distribution. In practice, these public keys are distributed as part of the
14+ source code or through ``cvmfs-config-... `` packages. One or multiple public
1515keys can be configured for a repository (the *fully qualified repository name *),
1616all repositories within a specific domain (like ``*.cern.ch ``) or all
17- repositories (``* ``). If multiple keys are configured, it is sufficient if any
17+ repositories (``* ``). If multiple keys are configured, it is sufficient if any
1818of them validates a signature.
1919
2020Besides the client, data is also verified by the replication code (Stratum 1 or
2121preloaded cache) and by the release manager machine in case the repository is
2222stored in S3 and not on a local file system.
2323
24- CernVM-FS does **not ** provide data confidentiality out of the box. By default
24+ CernVM-FS does **not ** provide data confidentiality out of the box. By default,
2525data is transferred through HTTP and thus only public data should be stored on
26- CernVM-FS. However, CernVM-FS can be operated with HTTPS data transport. In
26+ CernVM-FS. However, CernVM-FS can be operated with HTTPS data transport. In
2727combination with client-authentication using an authz helper (see Section
2828:ref: `sct_authz `), CernVM-FS can be configured for end-to-end data
2929confidentiality.
3030
3131Once downloaded and stored in a cache, the CernVM-FS client fully trusts the
32- cache. Data in the cache can be checked for silent corruption but no integrity
32+ cache. Data in the cache can be checked for silent corruption but no integrity
3333re-check takes place.
3434
3535Signature Details
3636-----------------
3737
38- Creating and validating a repository signature is a two-step process. The
38+ Creating and validating a repository signature is a two-step process. The
3939*repository manifest * (the file ``.cvmfspublished ``) is signed by a private RSA
4040key whose public part is stored in the form of an X.509 certificate in the
41- repository. The fingerprint of all certificates that are allowed to sign a
41+ repository. The fingerprint of all certificates that are allowed to sign a
4242repository is stored on a *repository whitelist * (the file ``.cvmfswhitelist ``).
4343The whitelist is signed with a different RSA key, the *repository master key *.
4444Only the public part of this master key needs to be distributed to clients.
4545
4646The X.509 certificate currently only serves as an envelope for the public part
47- of a repository key. No further certificate validation takes place.
47+ of a repository key. No further certificate validation takes place.
4848
4949The repository manifest contains, among other information, the content hash of
5050the root file catalog, the content hash of the signing certificate, the fully
@@ -53,11 +53,11 @@ content of the manifest is hashed and encrypted with a private repository key.
5353The timestamp and repository name are used prevent replay attacks.
5454
5555The whitelist contains the fully qualified repository name, a creation
56- timestamp, an expiry timestamp, and the certificate fingerprints. Since the
56+ timestamp, an expiry timestamp, and the certificate fingerprints. Since the
5757whitelist expires, it needs to be regularly resigned.
5858
5959The private part of the repository key needs to be accessible on the release
60- manager machine. The private part of the repository master key used to sign the
60+ manager machine. The private part of the repository master key used to sign the
6161whitelist *can * be maintained on a file on the release manager machine.
6262We recommend, however, to use a smart card to store this private key.
6363See section :ref: `sct_master_keys ` for more details.
@@ -67,27 +67,27 @@ Content Hashes
6767--------------
6868
6969CernVM-FS supports multiple content hash algorithms: SHA-1 (default),
70- RIPEMD-160, and SHAKE-128 with 160 output bits. The content hash algorithm
71- can be changed with every repository publish operation. Files and file catalogs
72- hashed with different content hash algorithms can co-exist. On changing the
70+ RIPEMD-160, and SHAKE-128 with 160 output bits. The content hash algorithm
71+ can be changed with every repository publish operation. Files and file catalogs
72+ hashed with different content hash algorithms can co-exist. On changing the
7373algorithm, new and changed files are hashed with the new algorithm, existing
74- data remains unchanged. That allows seamless migration from one algorithm to
74+ data remains unchanged. That allows seamless migration from one algorithm to
7575another.
7676
7777
7878Local UNIX Permissions
7979----------------------
8080
81- Most parts of CernVM-FS do not require root privileges. On the server side,
81+ Most parts of CernVM-FS do not require root privileges. On the server side,
8282only creating and deleting a repository (or replica) requires root privileges.
8383Repository transactions and snapshots can be performed with an unprivileged user
84- account. In order to remount a new file system revision after publishing a
85- transaction, the release manager machines uses a custom suid binary.
84+ account. In order to remount a new file system revision after publishing a
85+ transaction, the release manager machine uses a custom suid binary.
8686
87- On client side, the CernVM-FS fuse module is normally started as root. It drops
87+ On client side, the CernVM-FS fuse module is normally started as root. It drops
8888root privileges and changes the persona to the ``cvmfs `` user early in the file
89- system initialization. The client RPM package installs SElinux rules for RHEL6
90- and RHEL7. The cache directory should be labeled as ``cvmfs_cache_t ``.
89+ system initialization. The client RPM package installs SElinux rules for RHEL6
90+ and RHEL7. The cache directory should be labeled as ``cvmfs_cache_t ``.
9191
9292
9393.. _sct_running_client_as_normal_user :
@@ -96,15 +96,15 @@ Running the client as a normal user
9696-----------------------------------
9797
9898The client can also be started as a normal user. In this case, the user needs
99- to have access to /dev/fuse. On Linux kernels < 4.18, mounting /dev/fuse is
99+ to have access to /dev/fuse. On Linux kernels < 4.18, mounting /dev/fuse is
100100either performed by fuse's ``fusermount `` utility or through a pre-mounted file
101101descriptor. On newer Linux kernels, the client can mount as an unprivileged
102102user in a user namespace with a detached mount namespace.
103103
104104The easiest way to run the client as a normal user is with the
105- `cvmfsexec <https://github.com/cvmfs/cvmfsexec >`_ package. It supports
105+ `cvmfsexec <https://github.com/cvmfs/cvmfsexec >`_ package. It supports
106106four ways to run cvmfs as an unprivileged user, depending on the
107- capabilities available on the host. See the README there for details.
107+ capabilities available on the host. See the README there for details.
108108
109109
110110SETUID bit and file capabilities
@@ -120,7 +120,7 @@ and file capabilities is restored.
120120CernVM-FS Software Distribution
121121-------------------------------
122122
123- CernVM-FS software is distributed through HTTPS in packages. There are yum and
124- apt repositories for Linux and ``pkg `` packages for OS X. Software is available
125- from HTTPS servers. The Linux packages and repositories are signed with a GPG
123+ CernVM-FS software is distributed through HTTPS in packages. There are yum and
124+ apt repositories for Linux and ``pkg `` packages for OS X. Software is available
125+ from HTTPS servers. The Linux packages and repositories are signed with a GPG
126126key.
0 commit comments