Overview
RM has a security system divided into several modules, each taking care of the following security aspects:
- Authentication - It is realized in a certificate-based model, handled by the Certificate Manager module. For further information, refer to the Certificate Management document.
- Authorization - It is performed by the User Admin service, which takes care of the user accounts and permissions that are bound to them. The User Admin service is part of the User Management package.
- Secure Transports - Several variants of them are included to protect the connection established with the available devices and RAC applications.
Certificate Management
The Certificate Manager is the RM sub-system that provides certificate management functionality. It is also responsible for storing all certificate-related data, like certificates from trusted authorities (CAs), own certificates, own keys etc.
More information about the certificate management is available in the Certificate Management document.
Secure Transports
The secure transports involved in RM, provide certificate-based authentication and authorization mechanisms and ensure message protection against corruption and revealing.
RM uses the following secure transports:
- HTTPS Server- Provided by the HTTP Server bundle (packages/foundation/be/httpnio.server.jar), which overlays the default SSL implementation with HTTPS server to enable a connection to the backend over HTTPS. The HTTPS server can run only on JDK 1.5 or later.
- HTTPS Client - Represents the client side that communicates with the HTTPS Server. It resides either on the device or in the MC/Standalone RAC application. The HTTPS Client uses the standard HTTPS URL handler provided by the JVM.
- SSL - Secures the connection established with RAC (Remote Access Client) applications. It is involved in the SSL Connection bundles - packages/foundation/be/sslconn.jar for OSGi environments, and lib/rac/foundation-rac.jar that provides class library enabling standalone applications to use the security and certificate mechanism when communicating with the RM backend.
- SSL/TCP - Provides an SSL overlay to the TCP connection between RM and the registered devices. RM uses the certificate placed in the mPRM TLS Server domain to perform the required authentications see "Certificate Management"). For the registered OSGi devices, RM will require a certificate when the Certificate Management
mprm.https.needClientAuthsystem property is set to "true" in the default.prs file located at the bin/mserver RM installation directory. - RM Secure Transport - Includes the server (management server) and client (device) sides and overlays protection to the RM Message Service. The Message Service is part of the OSGi Device Management package and provides support for network messaging over various kinds of protocols.
- RM HTTPS Transport - Provides HTTPS support to the communication between RM and the registered devices as well as between RM and console. The credentials of the RM HTTPS Transport server are the same used for the HTTPS server. They are generated from the content of the mPRM TLS Server domain (see Certificate Management). The RM HTTPS Transport client uses the standard HTTPS URL Handler of the JVM.
Login Service
The security of user sessions to RM is established via the Login Service running on the RM backend. The Login Service is responsible for providing authentication of applications trying to establish sessions with the RM backend.To verify the login information supplied by such applications, the Login Service contacts backend Verifier modules. Each Verifier "specializes" in a different means of authentication - for example, passwords, certificates, finger prints, etc.
When a remote application/system tries to establish a user session with the RM backend, the system checks if a user with such a name exists in the RM User Admin service. If it does not exist, the session is rejected. If it exists, the Login Service queries the available Verifiers to find if at least one of them can verify the supplied user credentials. If such a Verifier is available and it confirms user authentication, the user session with the remote application is accepted, otherwise it is rejected.
By default, there are the following RM Verifiers:
- System User Verifier – especially designed for the system user and does not depend on other modules such as the RM User Admin Service or the Certificate Manager. When the system user logs in RM, the System User Verifier compares the supplied password with the one stored in the system.
- Password Verifier – enables users to identify themselves by using a password. The Password Verifier refers to the RM User Admin Service to find out if the supplied password matches the password stored for the corresponding user.
- Certificate Login Verifier – enables users to identify themselves by using a digital certificate. When a user tries to present itself with a certificate, the available Certificate Login Verifier refers to the Certificate Management to find out if such a certificate is available and if its common name matches the supplied user name. If the presented certificate satisfies these conditions, the session is created, otherwise it is rejected.
The default available Verifiers enable applications/users to identify themselves either with a password or with a certificate suitable for the user account.
General Encryption
The Remote Manager's encryption service ensures that:
- sensitive data is encrypted and no user personal information is stored.
- AES 128 is used for ensuring the confidentiality of all sensitive data before storing it in the Database.
Encryption on a database-level should be supported as secure transport between the Remote Manger and the Database is recommended.