Security

Intro
Installation
SysAdmin 
HTTP 
Logs 
Protection 
Security
Intercept 
Scalability 
Alerts 
Events 
CLI/API 
Monitors 
Network
Objects
Transfer
Access
Services
Directory
Data Files
Clusters
WebApp
WebMail
Miscellaneous
HowTo
HelpMe
Licensing
The CommuniGate Pro Server ensures that only certain users are allowed to access certain resources.

The CommuniGate Pro Server can authenticate its users, and it can also reject connections from outside of the "client networks".


Authentication Methods

The CommuniGate Pro Server supports both clear-text and secure SASL authentication methods for the following protocols:

These secure methods allow mail clients to send encrypted passwords over non-encrypted and insecure links. If anybody can monitor your network traffic, SASL methods ensure that the real passwords cannot be detected by watching the client-server network traffic.

As an alternative to SASL methods, secure links (SSL/TLS) can be used between the client mailer and the server. When an SSL link is established, the entire network traffic between the server and the client is encrypted, and passwords can be sent in clear text over these secure links.

You can force an account user to use either a SASL authentication method or SSL/TLS links if you enable the Secure Method Required option in the Account Settings. When this option is enabled, the Server rejects all authentication requests that send passwords in the clear text format over insecure links.

The CommuniGate Pro Server supports the following insecure (clear text) SASL authentication methods:

The CommuniGate Pro Server supports the following secure SASL authentication methods:

The CommuniGate Pro Server supports the non-standard NTLM and MSN SASL methods used in Microsoft® products.

The CommuniGate Pro Server supports the following GSSAPI authentication methods:

The CommuniGate Pro supports the secure APOP authentication method (used mostly for the POP protocol), and the insecure "regular login" method for the protocols that support Clear Text Login.

The CommuniGate Pro Server supports the special WebUser authenticaton method.

Use the WebAdmin Interface to open the Obscure page in the Settings realm to switch the Advertise Secure SASL Methods, the Advertise APOP Method, the Advertise MSN SASL Method, and the Advertise NTLM SASL Method options:

Login Security  
Advertise Secure SASL methods Advertise MSN SASL method
Advertise APOP method Advertise NTLM SASL method
Advertise GSSAPI method Enable WebUser SASL method

Advertise Secure SASL methods
In certain situations (for example, when all Accounts use External Autherntication or OS Passwords), you may want to disable this option, so your Server will not advertise the supported secure SASL methods.
Advertise Secure APOP methods
In certain situations (for example, when all Accounts use External Autherntication or OS Passwords), you may want to disable this option, so your Server will not show the special key element on some services (POP, PWD) prompt line, thus disabling the APOP login method.
Advertise GSSAPI methods
You may want to disable this method is you have not set your Server to support GSSAPI methods (for example, you have not specified the Kerberos Keys for the Domains).

Advertise MSN SASL method
Disable this option if you do not want your Server to advertise the non-standard MSN SASL method used in some Microsoft products. The Microsoft Outlook products for various versions of MacOS do not work correctly with the MSN method if more that one account is configured in those products.

Advertise NTLM SASL method
Some Microsoft products send incorrect credentials when they detect that the server supports the NTLM SASL method. While those products then resend the correct credentials, the failed login attempts produce Failure-level Log records and may increase the "failed logins" counter too quicky, so the account becomes "temporarily locked". Disable this option if you do not want your Server to advertise the NTLM SASL method.

Enable WebUser SASL method
This option enables the WebUser authentication method.

Note: these Advertise options control only the session-type services (SMTP, POP, IMAP, ACAP, PWD, FTP), and they do not have any effect on the transaction-type services (HTTP, SIP).


Account Passwords

The CommuniGate Pro Server supports several passwords for each account.

One password is the CommuniGate Pro's "own password ". This password is stored as an element of the Account Settings, and it can be used with the CommuniGate Pro Server only.

The other password is the "OS password". The user may be registered with the Server OS and the CommuniGate Pro Server can check the supplied password against the password set in the Server OS registration information for this user.

An account can have the External Password option enabled. In this case, user authentication is done using any custom authentication program running as a separate process (see below).

The system administrator can enable any set of passwords for any user account. On larger sites, it is better to enable these options using the Server-wide or Domain-wide Default Account Settings.

When several passwords are enabled for an account, the Server first checks the CommuniGate (internal) password, then the OS password, and then tries to use the External Authentication program. If at least one of these passwords matches the password presented with the client application, the application is granted access to that account.


CommuniGate Passwords

CommuniGate passwords are strings stored in the Account Settings. Password strings can be stored in the clear-text format or in encoded format. The Password Encryption Account Setting specifies the encryption to use when the account password is updated. When this setting is changed, the currently stored password is not re-encrypted.

When the U-crpt Password Encryption option is selected, the CommuniGate passwords are stored using the standard Unix crypt routine. If the UB-crpt Password Encryption option is selected, an enchanced Blowfish-based encryption is used.
U-crpt and UB-crpt methods implement a one-way encryption. As a result, the Server cannot decrypt them into their original (clear text) form, and it cannot use them for secure (SASL) Authentication Methods. Use these encryption methods only if you need compatibility with legacy password strings, but cannot use the OS passwords - it is usually more important to support "on-the-wire" security (using SASL methods), rather then "on-the-disk" security (using one-way password encryption methods).

U-crpt passwords can contain special prefices. These prefices allow you to import passwords encypted using other password encryption methods. See the Migration section for more details.

If the CommuniGate Password is absent or empty, it cannot be used to log into the account even if the Use CommuniGate Password option is enabled. But if the user has logged in using the OS Password or the External Authentication method, the user can specify (update) the Account CommuniGate Password. This feature can be used to migrate users from legacy mail systems where you can not compose the list of accounts with non-crypted user passwords.


OS Passwords

When the Server checks the OS password, it composes the username string using the account OS User Name setting. When the default setting * is used, the composed OS user name is the same as the account name. By changing the OS User Name settings you can use different OS usernames for accounts in different CommuniGate Pro domains.

Server Operating System Notes about OS Passwords
Microsoft Windows 95/98/ME OS does not support passwords, the Use OS Password option does not work.
Microsoft Windows 200x/XP/NT The Windows NT domain authentication system is used. The Windows account used to run the CommuniGate Pro Messaging Server should have the Act as part of the operating system privilege.

The --BatchLogon command line option can be used to tell the Server to use the LOGON_BATCH authentication method (if the option is not present, the LOGON_NETWORK method is used).

The Server checks if the composed OS user name contains the percent (%) symbol. If the symbol is found, the part of the name before that symbol is used as the Windows account name, and the part after that symbol is used as the Windows domain name.
If Accounts in the company1.dom CommuniGate Pro domain have the OS User Name setting set to *%comp1, then the OS user name for the CommuniGate Pro Account joe will be joe%comp1, and the CommuniGate Pro Server will use the Windows LogonUser API to try to authenticate the mail client as the Windows user joe in the Windows domain comp1.

Unix-based systems The passwd and shadow or other OS-supported authentication mechanisms are used.
OS/400 systems The user profile authentication mechanisms are used.
OpenVMS systems The supplied user name and password strings are converted to uppercase, and then the OpenVMS authentication mechanisms are used.
BeOS OS does not support passwords, the Use OS Password option does not work.

The OS passwords are one-way-encrypted passwords. As a result, they cannot be used for Secure Authentication Methods.


Kerberos Authentication

The CommuniGate Pro Server supports the Kerberos authenitcation method. The Kerberos method is based on the "tickets" that client applications send to the server. These tickets are issued by Kerberos authorities (Key Distribution Centers, KDC) that share a common "key" with the Server. See the Kerberos documentation for the details.

To support Kerberos Authentication, you need to add Kerberos Server key(s) to the CommuniGate Pro Server, on the per-domain basis. Create a server "principal" in your KDC database. The principal name should be equal to the name of CommuniGate Pro Domain or one of its Domain Aliases. Export the created key as a keytab file.

Open the Domain Settings using the CommuniGate Pro WebAdmin Interface, and follow the Security and Kerberos links. The list of Domain Kerberos Keys will be displayed:

 RealmPrincipal IssuedVersionType
REALM1.COM(3)imap/domain1.com19-05-2004 17:36:336RC4-HMAC
REALM1.COM(3)imap/domain1.com21-05-2004 17:32:359DES-MD5
REALM1.COM(3)imap/domain1.com24-05-2004 12:41:5510DES-MD5
REALM1.COM(3)imap/domain1.com24-05-2004 17:33:2713DES-CRC32

Each Domain can have several Kerberos Keys. To add Keys, click the browser file-select button and select the keytab file exported from KDC. Click the Import Keys button to add keys from the file to the set of the Domain Kerberos Keys.

To remove Keys, mark the Keys using checkboxes and click the Delete Marked button.

When the Server receives a Kerberos Ticket, it extracts the Server Name ("sname") from the Ticket and looks for the Domain with that name. To support Domain Aliases, the Server builds a fictitious E-mail address: LoginPage@ticket-name and tries to route this address.

If the target Domain is found, the Server looks for the proper key in the list of the Kerberos Keys for that Domain. If the Key is found, and the Ticket and Authorization info can be decrypted with that Key, the user is authenticated. The name of the account is taken from the Client Name specified in the Ticket. That name must be a "simple" name, i.e. it cannot contain @ or % symbols.

CommuniGate Pro adds the name of the target Domain to the retrieved user name and uses the resulting E-mail address as the name of the Account to open.

Note: The Kerberos Authentication mechanism does NOT run the resulting user name via the Router. It cannot use the Router, because a name in one Domain can be routed to a name in a different Domain, so the Kerberos Keys valid for one Domain would provide access to Accounts in a different Domain. As a side effect, the Account Aliases cannot be used instead of the Account name.

In order to be able to login using the Kerberos Authentication method, the user's Account should have the Use Kerberos option enabled.

Integrating with Microsoft Active Directory

You may want to use Microsoft Active Directory as your Kerberos Key Distribution Center (KDC). Follow these steps:

  • create an Active Directory account cgatepro (you may want to use a different name)
  • use the Microsoft ktpass utility to export keys:
    ktpass -princ imap/domainName@REALMNAME -mapuser cgatepro -pass password -out keytab.data -crypto DES-CBC-MD5 -ptype KRB5_NT_SRV_HST -kvno 0
    where
    domainName
    is the name of the CommuniGate Pro Domain your Kerberos users should log into
    REALMNAME
    is the name of the Kerberos Realm - the Active Directory domain name with which you want to authenticate
    password
    is the password to assign to the cgatepro account.
  • Import the resulting keytab.data file into the CommuniGate Pro Domain Kerberos settings, as specified above.

See the Microsoft Knowledge Base artcile Q324144 for more details.


External Authentication

The CommuniGate Pro Server can use an external Helper program for user authentication. That program should be created by your own technical staff and it can implement authentication mechanisms required at your site but not supported directly with the CommuniGate Pro Server.

The program name and its optional parameters should be specified using the WebAdmin Helpers page. Open the General page in the Settings realm, and click the Helpers link:
External Authentication
Log: Program Path:
Time-out: Auto-Restart:

See the Helper Programs section to learn the meaning of these options. The External Authentication module System Log records are marked with the EXTAUTH tag.

If the External Authentication program is not running, all External Authentication requests are rejected.

The External Authenitcator Interface protocol is based on the generic Helper Protocol.

This manual describes the External Authenitcator Interface Version 5.

When a user should be authenticated using the clear text method, the Server sends the following command:
nnnnnn VRFY name@domain password
or
nnnnnn VRFY (mode) name@domain password
where:

nnnnnn
a unique sequence number for this request
mode
the name of the service (IMAP, POP, FTP, etc.) that requested this authentication operation. This parameter can be absent if the request has been received from an unnamed Server component. If the service name is specified, it is enclosed into the parenthesis. If the protocol version supported with the External Authenticator program is less than 1, the server never sends the mode parameter.
name
user account name
domain
user account domain name
password
password string to verify. If the password contains special symbols, it is encoded as a quoted String.

When a user should be authenticated using a secure SASL method, the following command is sent:
nnnnnn SASL(method) name@domain password key EOL
or
nnnnnn SASL(method) (mode) name@domain password key EOL
where:

method
the name of the secure SASL method used (CRAM-MD5, APOP)
key
the challenge string sent to the client mailer. If the challenge contains special symbols, it is encoded as a quoted String.

If the password is accepted, the External Authernticator should return a positive response:
nnnnnn OK

If the password was not accepted, a negative response should be returned:
nnnnnn ERROR optional-error-message

Sample session (I: - server commands sent to the program standard input, O: - responses the program writes to its standard output):

I: 00001 INTF 1
O: 00001 INTF 1
I: 00010 VRFY user1@domain1.com dsyui134
O: 00010 OK
I: 00011 VRFY (IMAP) user2@domain2.com jskj23#45
O: 00011 ERROR incorrect password
I: 00012 SASL(CRAM-MD5) user4@domain2.com hdkj547812329394055 <pop-23456@mydomain.com>
I: 00013 VRFY (IMAP) user2@domain2.com "jskj23\"45"
O: 00013 OK
O: 00012 ERROR unsupported SASL method

The External Authentication program can be used to process unknown names, too. For example, the program can consult an external database, check if the user exists in that database, create an Account, Alias, Group, Mailing List, or Forwarder using the CommuniGate Pro CLI/API, and return a positive response to the Server. In this case, CommuniGate Pro will re-try to open a domain object with the specified name.

To check an unknown name, the Server sends the following command:
nnnnnn NEW name@domain relayType
where:

relayType
[MAIL] if the command is sent as a part of mail-type routing process,
[LIVE] if the command is sent as a part of realtime-type routing process,
[ACCESS] if the command is sent as a part of access-type routing process.
name@domain
the full name of the addresses unknown local object.

If the program sends the OK response, the Server tries to find the name object in the domain Domain again.

If the program sends the ROUTED address response, the Server takes the supplied address response and restarts the Router procedure with this address. The routed address gets a "can Relay" attribute, unless it is specified with the [NORELAY] prefix.

If the program sends the FAILURE response, the Server Router returns a "temporary internal error" code (this code causes SMTP module to return a 4xx error code, not a permanent 5xx error code).

If the program sends any other response, the Server Router returns the "unknown user account" error.

Sample session:

I: 00010 NEW user1@domain1.com [MAIL]
O: 00010 ERROR this account is not known
I: 00011 NEW user2@domain2.com [MAIL]
I: 00012 NEW user3@domain2.com [ACCESS]
O: 00012 OK
O: 00011 ROUTED [NORELAY] userX@domain2.com

The Consult External Authenticator Domain Setting tells the Server to use the External Authenticator program when an unknown name is addressed.

Sample External Authentication programs and scripts can be found at the http://www.stalker.com/CGAUTH/ site.


Account Name Harvesting

Some spammers use 'brute force' attacks on mail systems, sending random names and passwords to system POP, IMAP, and other access ports. If the system sends different error messages for the "unknown account" and "incorrect password" situations, the attacker can harvest a large portion of the system account names and then use those names for spam mailings.

To prevent this type of attack, you may want to enable the Hide Unknown Account messages option, located on the Obscure page in the WebAdmin Settings realm:

Login Security
 Hide Unknown Account messages
Suspend Account after   failed logins within 
Hide Unknown Account messages
If this option is enabled, the Server does not send the Unknown Account and Incorrect Password error messages. Instead, both messages are replaced with the Incorrect Account Name or Password error message.


Account Password Attacks

The CommuniGate Pro server can temporarily disable all types of login operation for an Account that has seen too many incorrect login attempts. The Login Security panel shown above allows you to specify a time period and the number of incorrect login attempts that a user or users can make before the Account is disabled for login operations. The Account is re-enabled after the same period of time.


Granting Access Rights to Users

In order to control, monitor, and maintain the CommuniGate Pro Server, one Postmaster account is usually enough. But you may want to allow other users to connect to the CommuniGate Pro Server: for example, you may want to allow an operator to monitor the Logs, but you do not want to grant that operator all Postmaster access rights.

You should be logged in as the Postmaster, or you should have the "Can Modify Access Rights" right in order to assign access rights.

To grant access rights to a user and/or to revoke those rights, open that user Account (the Account Setting page), and click the Access Rights link. The Access Rights page will appear.

The page lists all Access Rights and the rights granted to the selected user are marked.

The following access rights can be granted only to the users (accounts) in the main domain:

Can Modify Access Rights (unlimited access):
This setting specifies if the user is allowed to modify Access Rights of CommuniGate Pro users. If some users are granted this right, they can access all Server settings and pages (i.e., all other rights are granted, too).
Can Modify User Accounts
This setting specifies if the user is allowed to create, remove and delete Accounts and Domains, and to change Account and Domain Settings.
Can Modify Server Settings
This setting specifies if the user is allowed to change configurations of CommuniGate Pro services (SMTP, POP, Router, etc.).
Can Monitor Server
This setting specifies if the user is allowed to view Server Logs, to monitor Server Queues, etc.

The following access rights can be granted to users in any domain:

Can Modify This Domain and its Account Settings:
This setting specifies if the user is allowed to create, remove and delete Accounts within its own domain, and to change some of the Domain Settings. You usually assign this right to a user ("domain master") who will manage the domain.

Initially, the user Postmaster in the main domain has the Unlimited Access right.

Select the desired Access Rights and click the Update button.

The Access Rights are stored in one file for each domain, the Access.settings file stored in the Settings subdirectory of the domain directory. This makes it easy to check to whom the Server administration rights are granted.


Restricting Access

If you do not plan to support mobile users, you may want to restrict access to the Server accounts. Use the following option on the Protection page:

Reject all Logins from Non-Client Addresses
When this option is selected, all "login" operations (needed for POP, IMAP, WebUser Interface, ACAP, PWD, etc.) are accepted only from the Server computer itself, and from the Client IP Addresses.

When an access module accepts a connection from an unlisted network address, and this option is selected, the module sends an error code to the client application, and the connection is closed immediately. Links with the rest of the Internet will be used only for mail Transfer and access to Personal Web Sites.

When this option is selected, the SMTP AUTH operation can be used only if a client mailer or server connects from the network address included into Client Addresses list.

Note: Before you enable this option, make sure that the address you are using is included into the Client Addresses list: otherwise you will immediately lose access to the Server.

You can also specify the access restrictions on the lower (TCP) connection level. For each service (module), open the Listener page and specify the addresses the service (module) should or should not accept connections from. If a connection comes from an address that is not included into the Grant list or is included into the Deny list, the connection is closed immediately, and no module-level operations are performed.


Using SSL/TLS Secure Connections

The CommuniGate Pro Server supports secure (encrypted) connection for all its services and modules. Secure connections can be established in two ways:

To specify the server SSL/TLS processing parameters, open the Obscure page in the Settings section of the WebAdmin Interface:

TLS Sessions
Log: Time To Live:

Log
Use this setting to specify what kind of information the TLS module should put in the Server Log. The TLS module records in the System Log are marked with the TLS tag.

Time To Live
This setting specifies the cache time for TLS sessions. When all connections using the same TLS session are closed, the Server waits for the specified time before deleting the TLS session parameters. This feature allows clients to open new connections resuming the old TLS sessions. It increases connection speeds and decreases the Server CPU load. This feature is especially important for HTTP clients that open and close connections very often.


Certificates and Private Keys

When a secure connection is being established (using the TLS/SSL protocol), a public key cryptography is used to:

A server must possess a so-called "private key" and a "certificate" that contains a public key. When a client starts to establish a secure connection, the server sends its certificate to the client. The client:

The Certificates themselves use the Public Key cryptography, too. The Certificate contains the information about the server and the information about the organization or entity that has issued the Certificate. The entire Certificate is digitally signed using the Private Key of the issuer, and it is practically impossible to forge a certificate without make the digital signature invalid.

Modern browsers and mail clients have the Public Keys of several "known authorities" (issuers) built-in. As a result, they can verify the digital signatures of the Certificates issued by those "known authorities". It is assumed that such "known authorities" take reasonable steps to ensure that they issue a Certificate for abc.def domain to the legal owner of that domain.


Domain Security Settings

CommuniGate Pro allows you to specify Private Keys and Certificates on the per-domain basis. The Keys and Certificates can be assigned only to the CommuniGate Pro Domains that have one or several assigned network (IP) addresses. This limitation comes from the secure versions of the mail protocols used today: when a client wants to initiate a secure connection, the Server has no information about the Domain the client wants to connect to, and only the local IP address to which the client has connected is known.

When the CommuniGate Pro Server starts, it generates a Test Certificate. The Test Certificate has the Server Main Domain name as its Subject and Stalker Software, Inc. as the Certificate issuer. The Test Certificate expires 30 days after the Server start time.

You can configure a CommuniGate Pro Domain to use this Test Certificate, but you should use this feature for testing purposes only.

To enter the domain Private Key and Certificate, use the WebAdmin Interface and follow the Security link on the Domain Settings page. The Domain Security page will open:

SSL/TLS Certificate To Use:
This option allows you to specify which private keys and certificates the CommuniGate Pro Server should use when a client wants to establish a secure (SSL/TLS) connection with this Domain.

No
If this option is selected, secure communications with this Domain are disabled. If this option is selected, all other Domain Security settings have no effect.

Test
If this option is selected, the Server-wide Test Private key and Certificate are used for this Domain. You do not have to configure any other Domain Security settings if this option is selected. Use this mode for testing purposes only.

Custom
If this option is selected, the Domain Private Key and Certificate are used to establish secure (SSL/TLS) connections with this Domain.

Assigning a Private Key

Initially CommuniGate Pro Domains do not have any Private Keys assigned. You should select the size of the key and click the Generate Key button to create a random Private Key and assign it to the Domain.
Private Key
Size:

Note: depending on your server hardware platform, it can take up to several minutes to generate a 2048-bit Key.

Only after you assign a Private Key, the Certificate-related fields will appear on the Security page.

You can use any third-party program (such as OpenSSL) to generate a Private Key in the so-called PEM format (as shown below), and assign that Key to the Domain. Select "Custom" in the Size: field and click the Generate Key button. A multi-line text field appears. Copy the PEM-encoded Key into that text field, and click the Generate Key button:

Private Key
Size:
Enter a PEM-encoded Private Key:

Note: Because of the export regulations, some US-made products (such as Netscape 4.x) disable strong (more than 512 bit) cryptography for SSL/TLS "shared secret" exchange. Those products expect a server to send them a temporary 512-bit key instead, with the generated longer key being used for certificate validation only. If your users employ software products with disabled strong cryptography, generate and use 512-bit keys only: in this situation longer keys will only increase the server load without any increase in the security level. Alternatively, you can use special Certificates (see below) issued by VeriSign and other companies. Those Certificates contain supplementary attributes that tell "weak" products to lift the restrictions and use strong cryptography instead. If you want to use those special certificates, you should generate 1024-bit or 2048-bit keys.

If the Private Key was set correctly, and the Key can be used for public/private key cryptography, you will see the following panel:

Private Key
MIIBPAIBAAJBAKrbeqkuRk8V...
Key Test: Verification String is OK

If the Key Test field indicates an error, the generated Private Key cannot be used for public/private key cryptography.

Use the Remove button if you want to remove the entered Domain Private Key. Since the Domain Certificate can be used with one and only one Private Ke, it becomes useless when you delete the Private Key, so the existing Domain Certificate will be removed, too.

Assigning a Certificate

To accept secure connections, the Domain must have a certificate issued for that domain. Please note that the clients compare the name in the Certificate to the name they used to connect to the Server. If a CommuniGate Pro Domain has domain aliases, attempts to connect to the Server using a domain alias name will result in warning messages on the client workstations notifying users about the name mismatch. Since the certificate can contain only one name, select the name (real Domain name or one of the Domain Aliases) that your users will use in the mail client settings. If your CommuniGate Pro Domain name is company.dom, and that domain name does not have a DNS A-record, but the Domain has an Alias mail.company.dom that has an A-record pointing to the CommuniGate Pro Server, your users will use the mail.company.dom name in their client settings and WebUser Interface URLs, so the Domain Certificate should be issued for the mail.company.dom name rather than the company.dom name.

To create a Certificate, fill the fields in the Certificate Attributes table:

Certificate
Common Name:
Country:
Province/State:
City/Town:
Organization Name:
Organization Unit:
Contact E-mail:

Common Name
Each certificate can contain only one Common Name, while a CommuniGate Pro domain can have many aliases. Client applications check that the Certificate Common Name matches the name the user has specified in the URL and/or in the mailer settings.
If the domain.dom domain users have to specify the domain alias mail.domain.dom name to connect to that CommuniGate Pro domain (because the domain.dom name does not have a DNS A-record), then select the mail.domain.dom name as the Certificate Common Name.

Contact E-mail
This field must contain a valid E-mail address, though that address does not have to be inside this CommuniGate Pro Domain.

All other fields are optional.

You can create a Self-Signed Certificate if you do not want to use any external authority. Click the Generate Self-Signed button and the CommuniGate Pro Server creates a so-called self-signed certificate: the issuer will be same entity you have specified, and the entire certificate will be signed using the Domain Private Key. When a Domain has a Self-Signed Certificate, client applications will warn user that the addressed server has presented a certificate "issued by an unknown authority". Users can "install" self-signed certificates to avoid these warnings.

To receive a Certificate from an external source ("trusted authority"), click the Generate Signing Request button. A text field containing the PEM-encoded CSR (Certificate Signing Request) will appear:

Certificate
Common Name:
Country:
Province/State:
City/Town:
Organization Name:
Organization Unit:
Contact E-mail:
Certificate Signing Request (CSR)

submit this request to a Certification Authority and paste the result below
Enter a PEM-encoded Certificate


Copy the CSR text and submit it to the Certification Authority (CA) of your choice. You can submit via E-mail or using a Web form on the CA site. The Certification Authority should send you back the signed Certificate in the PEM-format. Enter that Certificate into the bottom field and click the Set Certificate button.

If the Certificate is accepted, the Certificate information is displayed:

Certificate
Issued to:
Country:US
Province:CA
City:Sausalito
Organization:ACME Yacht Rentals, Inc.
Unit:On-line Services
Common Name:d1.stalker.com
Contact:bill@domain.company
Issued by:
Country:ZA
Province:FOR TESTING PURPOSES ONLY
Organization:Thawte Certification
Unit:TEST TEST TEST
Common Name:Thawte Test CA Root
Valid:
From:06-Jun-03Till:06-Jan-05
The Certificate panel shows the information about the issuer (the Certificate Authority), the information about the "subject" (the data you have entered and the domain name) and the validity period of this Certificate.

Note: the entered Private Key and Certificate will be used for the Domain secure communications ONLY if the Secure Certificate To Use option is set to Custom.

Note: the Certificate contains the domain name as a part of the "Subject" data. If you rename the CommuniGate Pro Domain, the domain name in the certificate does not change, and the client applications may start to warn users about the name mismatch.

Click the Remove Certificate button to remove the Domain Certificate.

Assigning a Certificate Authority Chain

If the Certificate issuer is known to the users client software (mailers and browsers), the warning message does not appear on the user screen when the client software receives a Certificate from the Server. In many cases, the "trusted authority" does not issue certificates itself. Instead, it delegates the right to issue certificates to some other, intermediate authority. When your Server uses a Certificate issued by such an authority, the Server should also present the Certificate of that authority issued by the "trusted authority". The client software would check your Certificate first, then it will detect that the issuer of your Certificate is not a "trusted authority" and it will check the additional Certificate(s) the Server has sent. If that additional Certificate is issued by a "trusted authority", and it certifies the issuer of your Domain Certificate, your Certificate is accepted without a warning.

When you receive a Certificate from a Certificate Authority that is not listed among the "trusted authorities" in the client software settings, that intermediate Certificate Authority (CA) should also give you its own Certificate signed with a "trusted authority". That Certificate should be in the same PEM format as your Domain Certificate:

Certificate Authority Chain (Optional)


The CA Chain may include several certifcates: the first one certifies the issuer of the Domain certificate you have entered, but it itself may be issued by some intermediate authority. The next certiciate certifies that intermediate authority, etc. The last certificate in the chain should be issued by some authority "known" to client browser/mailer software - usually, some "root" authority.

If your CA Chain contains several certificates, enter all of them (PEM-encoded) into the Certificate Authority Chain field, with the "root" certificate being the last one in the list.

Click the Set CA Chain button to assign the Certificate Authority Chain to the Domian. If all certificates in the Chain are decoded successfully and their format is correct, the list of CA Chain certificates is displayed:

Certificate Authority Chain (Optional)
Issued toIssued byValid FromValid Till
Organization:VeriSign Trust Network
Unit:VeriSign, Inc.
Unit:VeriSign International Server CA - Class 3
Unit:www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign
Country:US
Organization:VeriSign, Inc.
Unit:Class 3 Public Primary Certification Authority
16-Apr-9707-Jan-04

Note: CommuniGate Pro checks only the format of each certificate in the Chain. It does not check that each certificate really certifies the issuer of the previous certificate and that the last certificate in the Chain is issued by a "known" authority.

When set, the Certificate Authority Chain is sent to clients together with the Domain Certificate.

Click the Remove CA Chain button to remove the Certificate Authority Chain from the Domain Security Settings.


Using Default and Self-Signed Certificates

Web browsers and mailer programs check if the server certificate is issued by a "known authority". The list of "known authorities" is built into those programs. If a domain on your CommuniGate Pro server uses either a "Server" certificate, or a custom self-signed certificate, or a custom certificate signed by an authority not known to client browser or mailer, the client application will display an alert message every time it estaiblishes a secure connection with your Server domain.

Your users can "install" your Server domain certificates into their mailers and browsers. Once installed into the client software, a certificate becomes a "trusted" one. For some programs (such as Mac versions of Microsoft Outlook and Outlook Express) installing an "untrusted" certificate is the only way to enable secure communications.

To install a domain certificate, the user should use a browser application and connect to the login page of the WebUser Interface for the selected domain. If the domain has an enabled Certificate, the Secure Certificate link appears. The user should click on that link to download the domain certificate and "open" it. The browser should allow the user to verify the certificate and install it as a "trusted" certificate.


Using the WebUser Authentication Method

The CommuniGate Pro Server supports the special WebUser authenticaton method. This method uses the session ID of a WebUser session instead of the account password. The method is useful for CGI programs and scripts. This method is disabled by default (see above).

The WebUser SASL method works only for programs running on the same Server computer, or for programs running on other servers in the CommuniGate Pro Cluster.

The method is a SASL method and requires "immediate" parameters in the authentication protocol command. The first parameter is the account name, the second parameter, separated with the space symbol, is the WebUser session ID.
The WebUser authenitcaiton operation for the PWD module is:

AUTH WEBUSER userName session-ID

The WebUser authenitcaiton operation for the IMAP module is:
AUTH WEBUSER bindata
where bindata are base64-encoded parameter data:
userName session-ID

If the user john@doe.dom has an open WebUser Session with the 114-bXaKw92JK1pZVB5taj1r ID, then the PWD command:

AUTH WEBUSER john@doe.dom 114-bXaKw92JK1pZVB5taj1r
opens the john@doe.dom account in this PWD session.

CommuniGate® Pro Guide. Copyright © 1998-2005, Stalker Software, Inc.