Versions Compared

Key

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

Summary_list
Task6Password complexity
Task5Web interface protocols
Task7Automatic expiry of web user passwords
Task1OverviewIntroduction
Task2Block Blocking invalid login attempts
Task3Changing the default web server port
Task4Enabling High Security mode

...

Info

After changing any of the following settings, you will need to restart the TIM Enterprise service before for the changes will to take effect.

HTML
<a id="Blocking invalid login attempts"></a>

Blocking invalid

...

login attempts

The system can blacklist the source IP address of a would-be attacker if a number of unsuccessful access attempts are made within a specified period of time. The following two Registry entries determine how many invalid login attempts are permissible before the source IP is blacklisted and, if so, for how long the blacklist will remain in place until further attempts are entertained:-

Registry String data valueDescription
FloodFailCount = 0Number of attempts
FloodLockTime = 60Lockout duration

...

HTML
<a id="Changing the default web server port"></a>

Changing the default web server port

If you would like to change the default port used for web traffic, you can edit the WWWServerPort Registry key.

...

HTML
<a id="Enabling High Security mode"></a>

Enabling High Security mode

To enable High Security mode, add the following Registry String value:

...

Within the Windows Registry, right click and select New ? -> String Value and name it HighSecurity.

ThenNext, double-click on it and enter the Value of True, as shown below:

Screenshotmacro
Borderfalse
Shadowfalse
URL/download/attachments/1671316/HighSecurity.png

When the HighSecurity Registry value is set to True, the following restrictions are imposed:

...

HTML
<a id="Web interface protocols"></a>

Web interface protocols

The default behaviour is to allow all protocols TLS1, SSL2 and SSL3.

You can change the type of connection that TIM will respond to, by adding the Registry String Value WWWSSLProtocol.

Note that this this is a case-insensitive string value with one of the following data values:

...

HTML
<a id="Password complexity"></a>

Password complexity

You can configure TIM Enterprise web users with complex passwords to match your organisation's IT password policy.

...

Each part of the complexity string is defined by a pair of characters, a single character denoting the type of policy, immediately followed by a numeric character (0-9) stipulating how many characters of that type are required to satisfy the password policy.

The Type characters are as follows:-

  • A:  Upper- or lower-case characters
  • a:  Lower-case characters
  • !:  Symbol characters
  • #:  Numeric characters

...

Code Block
HKEY_LOCAL_MACHINE\SOFTWARE\Tri-Line\TIM Enterprise\Main\PasswordComplexity = "A6a0!0#2"
Info

The value of PasswordComplexity must always be 8 characters, otherwise the policy will not be implemented. The order of each Type pair ( Type character and amount character) is not important.

HTML
<a id="Automatic expiry of web user passwords"></a>

Automatic expiry of web user passwords

You can force Web users to change the password after a predetermined age has been set. Note that this is a system wide setting.

The server running TIM Enterprise will email the web user advising that a password change is required. The web user must have an email address configured, for notification to take place.

If the password is not changed by the expiry date then , the account is automatically disabled.

Registry String data valueDescription
PasswordExpiryTimeUnitsDetermines the time units that the related expiry entries (below) will use.  Valid values are "minutes", "hours", "days", "weekdays"
Keywordmacro
Labelminutes
,
Keywordmacro
Labelhours
,
Keywordmacro
Labeldays
,
Keywordmacro
Labelweekdays
PasswordExpiryReminderA value, in the units described by the PasswordExpiryTimeUnits entry, after which an email is sent to the web user to remind them to change their password.
PasswordExpiryDisableA value, in the units described by the PasswordExpiryTimeUnits entry, which specifies how long after the reminder email (above) is sent, that a web user's account will be disabled if it hasn't been updated.

...

Therefore, using the default settings, a web user will receive an email reminder after 7 days . The and the account will be disabled after 14 days (7 plus 7).

If the PasswordExpiryReminder value is zero then password reminder functionality is disabled and neither a reminder email will be sent, nor will a web user's account be disabled. Since this value has a default of "7", this value must be explicitly set to zero to disable password reminder functionality.

...

<%%> variableDescription
<%product%>The name of the product eg, e.g. TIM Enterprise
<%expiryunits%>The value of PasswordExpiryTimeUnits
<%expirydate%>A computed date of the above values relative to the date that the email was sent at, in local date/time format.

 

 

 

 

 

 

 

HTML
<h3>Introduction</h3>

<p>The default security settings of TIM Enterprise allow for ease of 
installation and are suitable for the needs of most organisations.  
However, if your organisation's IT security policy demands it, or you 
plan to expose the system to an untrusted network such as the Internet, 
it is recommended you harden the security using the methods described 
below.</p>
Note

NOTE: After changing any of the following settings, you will need to restart the TIM Enterprise service before changes will take effect.

HTML
<h2>Blocking invalid login attempts</h2>

<p>The system can blacklist the source IP address of a would-be attacker if
 a number of unsuccessful access attempts are made within a specified 
period of time.  The following two Registry entries determine how many 
invalid login attempts are permissible before the source IP is 
blacklisted and, if so, for how long the blacklist will remain in place 
until further attempts are entertained:-</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh" width=166>Registry String data value</th>
			<th class="confluenceTh">Description</th>
		</tr>
		<tr>
			<td class="confluenceTd"><span class="keyword">FloodFailCount = 0</span></td>
			<td class="confluenceTd">Number of attempts</td>
		</tr>
		<tr>
			<td class="confluenceTd"><span class="keyword">FloodLockTime = 60</span></td>
			<td class="confluenceTd">Lockout duration</td>
		</tr>
	</tbody>
</table>

<p>All Registry keys for TIM Enterprise are located in the following hive:-</p>
Code Block
themeEclipse
HKEY_LOCAL_MACHINE\SOFTWARE\Tri-Line\TIM Enterprise
HTML
<h2>Changing the default web server port</h2>

<p>If you would like to change the default port used for web traffic you can edit the <span class="keyword">WWWServerPort</span> Registry key.</p>

<table class="confluenceTable">
    <tbody>
        <tr>
            <th class="confluenceTh" width=216>Registry String data value</th>
            <th class="confluenceTh">Description</th>
        </tr>
        <tr>
            <td class="confluenceTd"><span class="keyword">WWWServerPort  = port number</span></td>
            <td class="confluenceTd">Port address for webserver to listen on (Default is 80, unless changed during setup)</td>
        </tr>
    </tbody>
</table>

<h2>Enabling High Security mode</h2>

<p>To enable High Security mode, add the following Registry String value:-</p>
Code Block
themeEclipse
HKEY_LOCAL_MACHINE\SOFTWARE\Tri-Line\TIM Enterprise\Main\HighSecurity = "True"
HTML
<p>Within the Windows Registry, right click and select <span class="keyword">New ? String Value</span> and name it <span class="keyword">HighSecurity</span>.</p>

<p> Then, double-click on it and enter the Value of <span class="keyword">True</span>, as shown below:</p>

<img class="screenshot naked" src="http://www.tri-line.com/common/img/documentation/tim_enterprise/HighSecurity.png" alt="HighSecurity Registry value" />

<p>When the <span class="keyword">HighSecurity</span> Registry value is set to <span class="keyword">True</span>, the following restrictions are imposed:-</p>

<ol>
  	<li> Ability to block individual web scripts by including them in a blacklist file:	
Code Block
themeEclipse
"\ssldata\{class}\blacklist.___" 
HTML
</li>
  	<li> Enforce password complexity for web users (additional Registry entries required)</li>
  	<li> Forbid direct SQL queries through web interface</li> 
  	<li> System alert messages are silently suppressed</li>
  	<li> System database connection tests forbidden</li>
  	<li> Ability to (re)create system database tables inhibited</li>
  	<li> Cannot change or test web (HTTP) port</li>
  	<li> Cannot send test emails</li>
  	<li> Debug information suppressed if a XSL translation error occurs</li>
</ol>

<h2>Web interface protocols</h2>

<p>The default behaviour is to allow all protocols TLS1, SSL2 and SSL3.</p>

<p>You can change the type of connection that TIM will respond to by adding the Registry String Value <span class="keyword">WWWSSLProtocol</span>.</p>

<p>Note that this this is a case-insensitive string value with one of the following data values:</p>

<table class="confluenceTable">
    <tbody>
        <tr>
            <th class="confluenceTh" width=166>Registry String data value</th>
            <th class="confluenceTh">Description</th>
        </tr>
        <tr>
            <td class="confluenceTd"><span class="keyword">nossl</span></td>
            <td class="confluenceTd">No SSL protocols, behave like a standard HTTP server</td>
        </tr>
		<tr>
            <td class="confluenceTd"><span class="keyword">ssl23</span></td>
            <td class="confluenceTd">SSL2 and SSL3 protocols only</td>
        </tr>
		<tr>
            <td class="confluenceTd"><span class="keyword">ssl2</span></td>
            <td class="confluenceTd">SSL2 protocol only</td>
        </tr>
		<tr>
            <td class="confluenceTd"><span class="keyword">ssl3</span></td>
            <td class="confluenceTd">SSL3 protocol only</td>
        </tr>
		<tr>
            <td class="confluenceTd"><span class="keyword">tls1</span></td>
            <td class="confluenceTd">TLS1 protocol only</td>
        </tr>
	</tbody>
</table>

<h2>Password complexity</h2>

<p>You can configure TIM Enterprise web users with complex passwords to match your organisation's IT password policy.</p>

<p>To enable complex passwords, a Registry String Value <span class="keyword">PasswordComplexity</span> must be added.</p>

<p>The use of the following data string values, allows you to configure how complex the passwords are:</p>
Code Block
themeEclipse
"A"+{0-9}+"a"+{0-9}+"!"+{0-9}+"#"+{0-9}
HTML
<p>Each part of the complexity string is defined by a pair of 
characters, a single character denoting the type of policy, immediately 
followed by a numeric character (0-9) stipulating how many characters of
 that type are required to satisfy the password policy.</p>

<p>The Type characters are as follows:-</p>

<ul>
  <li><span class="keyword">A</span>:&nbsp; Upper- or lower-case characters</li>
  <li><span class="keyword">a</span>:&nbsp; Lower-case characters</li>
  <li><span class="keyword">!</span>:&nbsp; Symbol characters</li> 
  <li><span class="keyword">#</span>:&nbsp; Numeric characters</li>
</ul>

<p>For example, to impose a restriction of at least 6 characters with two numbers, the following Registry entry could be used:-</p>
Code Block
themeEclipse
HKEY_LOCAL_MACHINE\SOFTWARE\Tri-Line\TIM Enterprise\Main\PasswordComplexity = "A6a0!0#2"
HTML
<div class="panelMacro"><table class="noteMacro"><colgroup><col width="24"><col></colgroup><tbody><tr><td valign="top"><img width="16" height="16" border="0" align="absmiddle" alt="" src="/images/icons/emoticons/warning.png"></td><td><p><strong>NOTE:</strong> <strong>The value of <span class="keyword">PasswordComplexity</span> must always be 8 characters, otherwise the policy will not be implemented.</strong> The order of each Type pair (Type character and amount character) is not important.</p></td></tr></tbody></table></div>

<h2>Automatic expiry of Web user passwords</h2>

<p>You can force Web users to change the password after a predetermined age has been set. Note that this is a system wide setting.</p>

<p>The server running TIM Enterprise will email the web user advising 
that a password change is required. The web user must have an email 
address configured for notification to take place.</p>

<p>If the password is not changed by the expiry date then the account is automatically disabled.</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh" width=166>Registry String data value</th>
			<th class="confluenceTh">Description</th>
		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword">PasswordExpiryTimeUnits</span></td>
    		<td class="confluenceTd">Determines the time units that the related expiry entries (below) will use.&nbsp; Valid values are "minutes", "hours", "days", "weekdays"</td>
  		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword">PasswordExpiryReminder</span></td>
    		<td class="confluenceTd">A value, in the units described by the <span class="keyword">PasswordExpiryTimeUnits</span> entry, after which an email is sent to the web user to remind them to change their password.</td>
  		</tr>
 		 <tr>
    		<td class="confluenceTd"><span class="keyword">PasswordExpiryDisable</span></td>
    		<td class="confluenceTd">A value, in the units described by the <span class="keyword">PasswordExpiryTimeUnits</span> entry, which specifies how long after the reminder email (above) is sent, that a web user's account will be disabled if it hasn't been updated.</td>
  		</tr>
	</tbody>
</table>

<p>Default values for the above settings are as follows:-</p>

<ul>
  <li><span class="keyword">PasswordExpiryTimeUnits</span> = "days"</li>
  <li><span class="keyword">PasswordExpiryReminder</span> = "7"</li>
  <li><span class="keyword">PasswordExpiryDisable</span> = "7"</li> 
</ul>

<p>Therefore, using the default settings, a web user will receive an 
email reminder after 7 days. The account will be disabled after 14 days 
(7 plus 7).</p>

<p>If the <span class="keyword">PasswordExpiryReminder</span> value is zero then password 
reminder functionality is disabled and neither a reminder email will be 
sent, nor will a web user's account be disabled. Since this value has a 
default of "7", this value must be explicitly set to zero to disable 
password reminder functionality.</p>

<p>If the <span class="keyword">PasswordExpiryDisable</span> value is explicitly set to zero, the disabling of a web user's account is skipped.</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh" width=166>Registry String data value</th>
			<th class="confluenceTh">Description</th>
		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword">PasswordReminderSubject</span></td>
    		<td class="confluenceTd">"Password reset notification"</td>
  		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword">PasswordReminderMessage</span></td>
    		<td class="confluenceTd">"Your password to access the [%productname%] service will 
				expire in <%expiryamount%> <%expiryunits%>.\r\n You should 
				log in to the service before <%expirydate%> to reset your 
				password, otherwise your account will be disabled"</td>
  		</tr>
	</tbody>
</table>

<p>The following <%%> variables are permissible in both the subject  and the body text of the reminder email message:-</p>

<table class="confluenceTable">
	<tbody>
		<tr>
			<th class="confluenceTh" width=166><%%> variable</th>
			<th class="confluenceTh">Description</th>
		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword"><%product%></span></td>
    		<td class="confluenceTd">The name of the product eg. TIM Enterprise</td>
  		</tr>
  		<tr>
    		<td class="confluenceTd"><span class="keyword"><%expiryunits%></span></td>
    		<td class="confluenceTd">The value of <span class="keyword">PasswordExpiryTimeUnits</span></td>
  		</tr>
 		 <tr>
    		<td class="confluenceTd"><span class="keyword"><%expirydate%></span></td>
    		<td class="confluenceTd">A computed date of the above values relative to the date that the email was sent at, in local date/time format.</td>
  		</tr>
	</tbody>
</table>