X-Road v7.0.0 Release Notes

X-Road v7.0.0 Release Notes

Release Info

Version number

7.0.0

Release date

30.11.2021

Supported versions

  • 7.0.0

  • 6.26.0

  • 6.25.0

Supported platforms

Central Server

  • Ubuntu 18.04 LTS

  • Ubuntu 20.04 LTS

Configuration Proxy

  • Ubuntu 18.04 LTS

  • Ubuntu 20.04 LTS

Security Server

  • Ubuntu 18.04 LTS

  • Ubuntu 20.04 LTS

  • RHEL 7

  • RHEL 8

  • Docker

Official documentation

https://github.com/nordic-institute/X-Road/tree/master/doc

Source code

https://github.com/nordic-institute/X-Road/tree/master

Software license

MIT

On this page:

Changes in This Release

Summary

  • New X-Road 7 look and feel for the Security Server UI.

  • Security improvements on the Security Server:

    • Encrypt backup files (opt-in)

    • Verify integrity of backup files on restore.

    • Remove executable files from backups.

  • Improvements in Security Server message logging:

    • Encrypt message payload in message log database (opt-in)

    • Encrypt message log archives (opt-in)

    • Group message log archives by subsystem (opt-in)

    • Support for fully disabling message logging.

  • Change PIN code on the Security Server.

  • Return REST API type (OPENAPI3 / REST) and API endpoints in REST metaservice responses.

  • Run the Security Server on Java 11 by default.

  • Make Security Server more modular by enabling installation without a local Postgres server

  • Version compatibility check for version upgrades - it is no longer possible to update from an unsupported version.

  • Official Docker support added to the Security Server with the Security Server Sidecar images.

  • Other enhancements and bug fixes.

The following blog posts provide additional information about the biggest changes in X-Road 7.0.0:

The X-Road 7 migration guide is available here

Upgrade to version 7.0.0 is supported from version 6.26.0 only. In case you're running an older version, please upgrade to version 6.26.0 first, and then to version 7.0.0.

Completed Issues

Issue ID

Type

Summary

Issue ID

Type

Summary

XRDDEV-333

Improvement

Update the timestamping service URL automatically on the Security Server when the URL is updated on the Central Server.

The feature is disabled by default. To enable it, add the following configuration to /etc/xroad/conf.d/local.ini

[proxy-ui-api] auto-update-timestamp-service-url=true

When the timestamping URL is updated by the Security Server there is an info level log entry in the following file: /var/log/xroad/proxy_ui_api.log

When there are multiple timestamping services with the same name and the URL and one of those is updated on the Central Server, the Security Server does not perform the update because it's not able to distinguish between the services. Instead it adds a warning level log entry.

XRDDEV-427

Improvement

Add "x-forwarded-for" HTTP header to the Security Server proxy access log ("/var/log/xroad/clientproxy_access.log"). If a client information system connects to the Security Server through a proxy, the header contains the original IP address of the client.

XRDDEV-541

Improvement

Diagnostics now correctly reports if it is unable to verify the OCSP response due to an application level problem, e.g., invalid OCSP responder certificate.

If the response verification fails and other responders are available, those will be also tried.

If there are configuration changes affecting available OCSP responders, obsolete OCSP responders will be removed from the diagnostics view. Previously that required restarting signer.

Fixes a vulnerability that caused the OCSP responder certificate not being verified properly. Before the fix, it wasn't verified that the OCSP responder certificate was signed by the CA that issued the certificate.

XRDDEV-542

Improvement

Diagnostics now correctly reports if it is unable to verify the timestamp returned by a TSA due to an application level problem, e.g., invalid TSA certificate. Previously a successful simple connection check masked all application level errors.

TSA diagnostics now shows both connection and application level failures from batch timestamping attempts.

XRDDEV-964

Improvement

Invalidate the internal key cache in the Security Server immediately when the internal TLS key or certificate changes instead of waiting for the cache to expire. In this way, the changes become effective immediately.

XRDDEV-1092

New

Add support to install the Security Server and Central Server without a local PostgreSQL server. If a remote database is used, it's not necessary to install a local PostgreSQL server.

Installing with a local database works like before - installing xroad-securityserver and xroad-centralserver packages install a local PostgreSQL server.

Installing the local PostgreSQL server can be skipped by explicitly installing the xroad-database-remote package, e.g.:

apt/yum install xroad-database-remote xroad-securityserver

The relevant documentation is available here:

XRDDEV-1184

New

Add support to the Security Server management API to allow changing the software token pin code.

XRDDEV-1225

New

Add support to the signer console to allow changing the software token pin code.

XRDDEV-1226

New

Add support to the Security Server UI to allow changing the software token pin code.

XRDDEV-1295

Improvement

Clarify the error messages that are returned when the TLS handshake between two Security Servers fails and when the connection between the provider Security Server and a service fails due to a certificate error. Before, the same error message was returned in both cases. After the change, different error messages are returned.

XRDDEV-1351

Improvement

Improve permission handling in the new Security Server UI to make it more resilient to issues.

XRDDEV-1397

New

Create a shared UI library for the Security Server and new Central Server.

XRDDEV-1450

New

Implement the new X-Road 7 look and feel in the Security Server UI.

XRDDEV-1461

Fix

Fix a bug in the Security Server management API that caused inconsistencies in how certificate-related permissions were handled.

XRDDEV-1468

Fix

Remove the "Please enter soft token PIN" link from global alerts in the Security Server UI if the user does not have the required permission to carry out the action.

XRDDEV-1469

Fix

Fix the Security Server UI keys and certificates filtering to include both the friendly name and ID so that both of them can be used for filtering.

XRDDEV-1470

Fix

Fix the Security Server UI Add Services dialog in the Service Clients wizard so that long lists of services don't hide the dialog action buttons.

XRDDEV-1471

Improvement

Various small improvements to the Security Server UI code so that it follows best practices.

XRDDEV-1477

Improvement

Improve the usability of Security Server UI's Local Group Add Members dialog and Service Access Rights dialog.

XRDDEV-1507

New

Add a check that prevents version upgrades from an unsupported X-Road version.

X-Road’s current lifecycle policy is to support the latest version plus two previous versions. The supported versions are defined on MAJOR.MINOR level so the release of patch versions (MAJOR.MINOR.PATCH) does not effect on the support. Also, version upgrades are supported and tested between the supported versions. However, with X-Road 7.0.0, there's one exception – upgrade to version 7.0.0 is supported from version 6.26.0 only. If you're running an older version of X-Road, upgrade to version 6.26.0 is required first before upgrading to version 7.0.0.

XRDDEV-1525

Improvement

Improve the Security Server UI keys and certificates table to provide better visual feedback about different key and certificate statuses.

XRDDEV-1544

Improvement

Improve the way message log records are updated in the database to better handle cases where multiple nodes might be trying to update the same records, e.g., a Security Server cluster with an external load balancer uses a shared message log database between the nodes.

XRDDEV-1549

Improvement

Improve the way the Security Server handles control characters in identifiers so that they don't cause issues on the frontend or management API level.

XRDDEV-1551

Fix

Fix a bug in the Security Server UI certificate details page where updating the page caused some information to be missing from the UI.

XRDDEV-1559

Improvement

Improve the Add Client wizard on the Security Server. Enable sending a client registration request only if the client to be registered has valid sign certificate with a good OCSP response.

XRDDEV-1569

Improvement

Add Java version information to the Security Server UI diagnostics page.

XRDDEV-1581

Improvement

Make the OpenAPI description of the Security Server management REST API available on the Security Server.

The API description is now available on the Security Server at: "https://<hostname/ip>:4000/api/v1/openapi.yaml"

XRDDEV-1590

Fix

Fix an issue in the Central Server UI that caused the System Settings view to break when the member owning the management services Security Server was deleted.

XRDDEV-1597

Improvement

Improve the "getOpenAPI" metaservice so that the host part is removed from the server URL when an OpenAPI description is returned. After the change, the behavior is consistent with the "getWsdl" metaservice for SOAP services.

This changes the current behaviour of the metaservice for getting the OpenAPI descriptor in the following way when handling the "server.url" parameters inside the description:

  • If the URL contains parameter(s), nothing is removed and the URL is returned as-is

  • Otherwise the protocol and host are removed from the URL and only the path is returned

For example:

  • https://service/v1 → /v1

  • https://service/v1/entities/entity → /v1/entities/entity

  • https://service/v1/entities/entity/{:entityId} → https://service/v1/entities/entity/{:entityId}

XRDDEV-1604

New

Update the Security Server to run on JAVA 11 by default.

XRDDEV-1605

New

Add support to encrypt Security Server backups.

The feature is opt-in and is disabled by default.

Details on how to configure and enable backup encryption can be found in the Security Server user manual:

XRDDEV-1610

Fix

Fix the Security Server UI diagnostics view timestamping service column name to be "Previous update" instead of "Next update" to correctly label the data.

XRDDEV-1611

New

Add integrity verification of Security Server backup files on restore.

XRDDEV-1612

New

Remove executable files from the Central Server and Security Server backups. The change requires manual migration if local configuration overrides have been defined in ""/etc/xroad/services/local.conf".

The X-Road 7 migration guide is available here

This changes the current backup and restore mechanism in a considerable way so please review your usage to make sure you update your settings to work with the new restrictions.

  • Executable files from "/etc/xroad/services/*.conf" are no longer backed up.

  • For local configuration changes, properties can be set in "/etc/xroad/services/local.properties" file.

    • Only a fixed set of environment variables can be changed, others are ignored (see the local.properties file for supported values).

  • The old "/etc/xroad/services/local.conf" file is still usable but please note that this file is no longer included in the backups.

  • Permissions for all the restored files are set to safe constant values during restore (permissions in the backup are ignored).

  • For the Security Server database backup a custom backup format is used, this prevents execution of arbitrary commands during the restoration process.

Please note that the backups are incompatible between X-Road 6 and X-Road 7.

XRDDEV-1626

Improvement

Add a basic certificate profile that doesn't contain a hard-coded country code and therefore, is not connected to any specific country. The basic profile can be used to get started with X-Road. The profile can be used by setting the below CertificateProfileInfo value on the Central Server.

CertificateProfileInfo value
ee.ria.xroad.common.certificateprofile.impl.BasicCertificateProfileInfoProvider

XRDDEV-1629

Fix

Fix a XSS vulnerability in the Central Server UI system settings view, where users could add executable Javascript code into the description of a member class, which would be executed on page load.

XRDDEV-1634

Improvement

Increase the maximum width of the Security Server UI views to better use the available screen space.

XRDDEV-1639

Improvement

Overhaul the Security Server UI keys and certificates view to provide a better user experience.

XRDDEV-1648

New

Add support to group message log archives by member or subsystem.

Grouping is opt-in and is not enabled by default.

  • The property "messagelog.archive-grouping" controls the grouping and can have one of the following values: none, member, subsystem

  • The archive files, depending on the setting, use the following naming pattern: mlog[CLASS-MEMBER[-SUBSYSTEM]]-<starttime>-<endtime>-<random>.zip

  • Even with the property set to "none", the records are sorted by member/subsystem, but the archive files can contain records from several members

  • According to long-term tests, setting the grouping property to none does not seem have an significant effect on the archiving speed, however, there is an additional index that takes some space, and the query fetching the records from database is slower than previously

More information about the message log configuration can be found in the Security Server user manual:

XRDDEV-1653

Improvement

Improve the page not found error page design in the Security Server UI.

XRDDEV-1659

Improvement

Improve the verification of the Security Server's internal TLS certificate when a new certificate is uploaded. After the change, the Security Server verifies that the certificate belongs to the Security Server's internal TLS key, otherwise an error message is returned.

XRDDEV-1661

Improvement

Restart the relevant Security Server services after a country-specific metapackage install so that the configuration overrides are picked up automatically without a manual restart.

XRDDEV-1664

New

Move the message log archiving to a separate process to improve the fault tolerance of the Security Server.

This change introduces a new X-Road java process (systemd unit: xroad-addon-messagelog.service) that logs to "/var/log/xroad/messagelog-archiver.log".

RHEL only: After upgrading, it is necessary to manually start the archiver service with:

systemctl start xroad-addon-messagelog

XRDDEV-1667

Fix

Fix the profile of the SSL certificate used by the Security Server UI and management API so that curl is able to validate the certificate.

XRDDEV-1670

New

Change X-Road specific configuration properties to start with the prefix "XROAD_" on the Central Server, Security Server and Configuration Proxy. The change requires manual migration if local configuration overrides have been defined in ""/etc/xroad/services/local.conf".

The X-Road 7 migration guide is available here

More information about the configuration properties in X-Road 7 is available at:

XRDDEV-1671

New

Add a permission denied page to the Security Server UI to give better visual feedback in case users try to visit a page their role does not allow them to.

XRDDEV-1679

New

Add an option to install the Security Server with the message log addon disabled. When the message log addon is disabled, no messages are logged and no timestamping service is needed.

XRDDEV-1691

New

Add support to encrypt message log archives files on the Security Server.

This feature is opt-in and is disabled by default.

More information on how to configure the feature is available in the Security Server user manual:

XRDDEV-1692

New

Add support to encrypt the message log database records on the Security Server.

This feature is opt-in and is disabled by default.

More information on how to configure the feature is available in the Security Server user manual:

XRDDEV-1696

Improvement

Update the message log archive file names to be deterministic. In practice, it means that given the same input (grouping, message records, previous archive linking info digest), the output (file name and contents) is the same after possible encryption is removed.

More information on the archive file names is available in the Security Server user manual:

XRDDEV-1697

Improvement

Improve OpenAPI service description checks on the Security Server to verify that the description is using a supported version. When a new REST API with OpenAPI description is added to the Security Server, the OpenAPI version of the service description is verified and an error is returned if the version number is not supported by the Security Server.

XRDDEV-1702

Improvement

Add content security policy headers to the web interfaces for the Security Server and Central Server to improve security.

XRDDEV-1704

Improvement

Remove references to BDR plugin version 1 for PostgreSQL by 2ndQuadrant from the Central Server scripts so that other BDR versions can be used. Before the change, the Central Server installation scripts contained hard-coded references to BDR1 that caused errors in case a later BDR version was used.

XRDDEV-1705

Improvement

Add ability to skip database restoration during a restore operation on the Central Server so that it can be done manually for 3rd party database replication and high availability solutions (e.g. BDR3).

This can be done only using the command-line to initiate the restoration.

More information can be found in the Central Server user manual: