Loading...
 
Skip to main content

History: User Encryption

Source of version: 37 (current)

Copy to clipboard
            See also ((Shared Secrets))

^ As of 2014-07-29, this is a tool for developers only. You need to write code for the external system to access the information. See developer documentation at ((dev:User Encryption)). The system is designed so that encryption can later be implemented for data in Tiki (files, tracker items, etc.)  ^ 

! User Encryption

User encryption aims to a provide secure, personal storage of sensitive data, e.g. external usernames and passwords.


!! About User Encryption
When linking multiple systems together, it is often required to have a username and a password for the target system available, in order to login. The other system can be an external database, a web service, etc.

User Encryption enables secure storage of such external log-in credentials. ===The decryption key is __not __stored by Tiki===, and it is only available when the user is logged in.

Notes:
* This is a new an experimental feature in ((Tiki13|Tiki 13)) and has been [http://sourceforge.net/p/tikiwiki/code/51166|backported] for ((Tiki12|Tiki 12.2)), so it is available (as experimental) in the LTS version
* Use the Domain Password module to allow the user to specify username and password
* CryptLib must be integrated by coding to access the domain. CryptLib provides the decrypted domain credentials

See also ((dev:User Encryption)).

!! Password Domains
Each linked system makes up a "password domain". Multiple users can log in to a domain. A password domain has a name. The name must be unique.

The interface to a linked system, uses the password domain name to look-up a user's credentials for the system.

The module "Domain Password", prompts the user for a password. 
The password is encrypted and saved associated with the domain specified in the module.

!!! Configuring Password domains
Configure in the Admin / Security panel.
{REMARKSBOX(type="warning" title="Make sure OpenSSL (Tiki18+) / Mcrypt (Tiki pre-18) is available")}Before you enable "User Encryption", make sure that the OpenSSL (Tiki18+) / Mcrypt (Tiki pre-18) PHP extension is available. It is required to encrypt the passwords securely.{REMARKSBOX}

{img type="src" src="display945" link="display945" width="500" styleimage="border" align="center" desc="Click to expand"}

The names of the password domains must be unique.

!!! Specifying domain credentials
The module "Domain Password" allows users to specify a password (and possibly a username) for a domain. Only defined password domains can be specified.

{img src="display946" link="display946" styleimage="border"}

By default the currently logged in Tiki username will be used. By setting "Use current user" = "n", the user must also specify a username. 

The view mode is displayed initially. The user can choose to edit the credentials, if the module configuration allows it.
{img type="src" src="display947" link="display947"  styleimage="border" }

If the password domain is misconfigured, an error message is displayed.
{img src="display949" link="display949"    styleimage="border"}

If the user click edit, the credentials can be edited.
If the current Tiki user is being used, only the password can be edited.
{img type="src" src="display948" link="display948"   styleimage="border"  }

!! Code integration
See [http://dev.tiki.org/User+Encryption|User Encryption @ dev.tiki.org]