mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
66 lines
3.2 KiB
XML
66 lines
3.2 KiB
XML
<?xml version='1.0' encoding='utf-8' ?>
|
||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||
%BOOK_ENTITIES;
|
||
]>
|
||
<!-- Licensed to the Apache Software Foundation (ASF) under one
|
||
or more contributor license agreements. See the NOTICE file
|
||
distributed with this work for additional information
|
||
regarding copyright ownership. The ASF licenses this file
|
||
to you under the Apache License, Version 2.0 (the
|
||
"License"); you may not use this file except in compliance
|
||
with the License. You may obtain a copy of the License at
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
Unless required by applicable law or agreed to in writing,
|
||
software distributed under the License is distributed on an
|
||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
KIND, either express or implied. See the License for the
|
||
specific language governing permissions and limitations
|
||
under the License.
|
||
-->
|
||
<section id="about-password-encryption">
|
||
<title>About Password and Key Encryption</title>
|
||
<para>&PRODUCT; stores several sensitive passwords and secret keys that are used to provide
|
||
security. These values are always automatically encrypted:</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Database secret key</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Database password</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>SSH keys</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>Compute node root password</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para> VPN password</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>User API secret key</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>VNC password</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para>&PRODUCT; uses the Java Simplified Encryption (JASYPT) library. The data values are
|
||
encrypted and decrypted using a database secret key, which is stored in one of &PRODUCT;’s
|
||
internal properties files along with the database password. The other encrypted values listed
|
||
above, such as SSH keys, are in the &PRODUCT; internal database.</para>
|
||
<para>Of course, the database secret key itself can not be stored in the open – it must be
|
||
encrypted. How then does &PRODUCT; read it? A second secret key must be provided from an
|
||
external source during Management Server startup. This key can be provided in one of two ways:
|
||
loaded from a file or provided by the &PRODUCT; administrator. The &PRODUCT; database has a new
|
||
configuration setting that lets it know which of these methods will be used. If the encryption
|
||
type is set to "file," the key must be in a file in a known location. If the encryption type is
|
||
set to "web," the administrator runs the utility
|
||
com.cloud.utils.crypt.EncryptionSecretKeySender, which relays the key to the Management Server
|
||
over a known port.</para>
|
||
<para>The encryption type, database secret key, and Management Server secret key are set during
|
||
&PRODUCT; installation. They are all parameters to the &PRODUCT; database setup script
|
||
(cloud-setup-databases). The default values are file, password, and password. It is, of course,
|
||
highly recommended that you change these to more secure keys.</para>
|
||
</section>
|