Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page is for administrators who need to migrate local user information to use BCrypt encryption.

Overview

PhixFlow users can be set up as:

  • external - all user authentication and permissions are handled externally for example by a SAML single-sign-on service or Active Directory.
  • mixed - user authentication is handled externally but a assigned to user groups in PhixFlow, which handle permissions
  • local - both user authentication and permissions are handled locally.



Panel
borderColor#7da054
titleColorwhite
titleBGColor#7da054
borderStylesolid
titleSections on this page

Table of Contents
indent12px
stylenone


For local users, in version 8.3.0, PhixFlow's encryption method was upgraded to one-way encrypt:

  • Security answers using normalized Bcrypt.
    • This changes all letters to lower case and removes spaces before encrytpting.
    • It does not use the pepper key, so security answers will work if the user account is imported to another instance.
  • User passwords using a pepper key and Bcrypt.
    • This requires an exact string match for the password.
    • The pepper key is specific to the PhixFlow instance, and is stored in the keystore.

      Note

      You can export/import user accounts from one instance to another. However user passwords will not work in the new instance because the pepper key will be different. The user will need to have their password reset in the import instance.


After upgrading to 8.3.0, new or reset passwords and security answers automatically use the Bcrypt method.

Passwords and security answers that were created in older versions of PhixFlow were encrypted using the previous encryption method. These will continue to work because the configuration file phixflow-instance.xml has a list of all the encryption methods.

Code Block
titlephixflow-instance.xml encryption configuration
<bean id="passwordEncoder" class="com.accipia.centerview.util.security.ConfigurablePasswordEncoder">
  <property name="matchEncoders">
    <list>
      <ref bean="pepperedBcrypt" />
      <ref bean="legacyEncoder" />
      <ref bean="startupEncoder" />
    </list>
  </property>
  <property name="setterEncoder" ref="pepperedBcrypt" />
</bean>

To check a passoword or security answer, PhixFlow identifies which method has been used to encrypt it. It then uses the same method to encrypt the string supplied by the user. PhixFlow then compares the two encrypted versions and ensures these match.

How to Migrate Security Information

As Bcrypt is more secure, we recommend all security information is migrated to Bcrypt as soon as possible.

To do this, all users must change their passwords and their security answers.

Removing Old Encoders

You can update phixflow-instance.xml to remove old encoders when:

  • At least one administration user can log into PhixFlow;.
    This means the startup user is no longer required.
  • You installed a new version of PhixFlow version 8.3.0 or later.
    This means all passwords and security answers automatically use BCrypt encryption
  • After upgrading to 8.3.0 or later, all users updated their passwords and security answers.
    This means all existing passwords and security answers have been migrated to use BCrypt encryption.
Warning

There is no way to check if passwords or security answers are still using the legacy encoder. Removing the old encoders from phixflow-instance.xml will disable passwords or security answers that still use the legacy encoder.  

  1.  In your PhixFlow installation directory,  go to webapp/WEB-INF/classes/ and edit phixflow-instance.xml
  2. Find the bean: <bean id="passwordEncoder"
  3. Delete the lines
    • <ref bean="legacyEncoder" /> to disable passwords or security answers that do not use BCrypt
    • <ref bean="startupEncoder" /> to disable the startup user account.

For passwords disabled by this process, users can reset their password; see Password Reset.

Tip

If you subsequently need to reinstate these encoders, you can copy them from webapp/WEB-INF/classes/phixflow-instance-example.xml.

About the Pepper Key

The pepper key for your PhixFlow instance is created at installation or uprade to 8.3.0. If you are unfamiliar with the concept of a pepper key, see Wikipedia article on Pepper Encrytption.

Once it is set, all new or reset passwords have the pepper key added to them. The pepper key itself is stored in the keystore; see Adding Data to a Keystore. The pepper key alias is stored in phixflow-instance.xml.

Warning

Do not change the pepper key as this will disable all user passwords, including administrator passwords.