OpenInsight Data Encryption at Rest (RTIDER)

Transcription

OpenInsight Data Encryption at Rest (RTIDER)
OpenInsight Data Encryption at Rest
(RTIDER)
Version 1.1
A Division of Revelation Technologies, Inc.
COPYRIGHT NOTICE
© 1996-2014
Revelation Technologies, Inc. All rights reserved.
No part of this publication may be reproduced by any means, be it transmitted, transcribed, photocopied, stored in a
retrieval system, or translated into any language in any form, without the written permission of Revelation
Technologies, Inc.
SOFTWARE COPYRIGHT NOTICE
Your license agreement with Revelation Technologies, Inc. authorizes the conditions under which copies of the
software can be made and the restrictions imposed on the computer system(s) on which they may be used. Any
unauthorized duplication or use of any software product produced by Revelation Technologies, Inc., in whole or in
part, in any manner, in print or an electronic storage-and-retrieval system, is strictly forbidden.
TRADEMARK NOTICE
OpenInsight is a registered trademark of Revelation Technologies, Inc.
Windows 2000®, Windows XP Professional®, Windows Vista Business®, Windows 7®, Windows 8®, Windows
Server 2003®, Windows Server 2008®, Windows Server 2012® and above are registered trademarks of Microsoft,
Inc.
Part No. 314-983
Printed in the United States of America.
2
Table of Contents
SECTION I: INTRODUCTION TO RTIDER ....................................................................................... 4 DIFFERENT TYPES OF ENCRYPTED VOLUMES - SITE-SPECIFIC AND PASS .................................................................... 4 SECTION II: CONFIGURATION OF RTIDER SYSTEM .................................................................. 5 RTIDERSERVER INSTALL, SETUP, AND CONFIGURATION ........................................................................................... 5 RTIDERCLIENT INSTALL, SETUP, AND CONFIGURATION .......................................................................................... 13 SECTION III: CONFIGURE ENCRYPTION SERVER .................................................................... 17 SECTION IV: CREATING VOLUMES ............................................................................................... 28 CREATING A RTIDER VOLUME ................................................................................................................................ 28 CREATING A PASS VOLUME ..................................................................................................................................... 31 SECTION IV: CREATING ENCRYPTED TABLES .......................................................................... 35 CREATING A NEW ENCRYPTED TABLE ....................................................................................................................... 36 COPYING AN EXISTING TABLE TO AN ENCRYPTED VOLUME ...................................................................................... 54 CHANGING ENCRYPTION SETTINGS AFTER CREATION ............................................................................................... 65 SECTION V: MOVING DATA BETWEEN NORMAL AND ENCRYPTED VOLUMES ON A
SINGLE SYSTEM ................................................................................................................................... 71 SECTION VI: MOVING DATA BETWEEN RTIDER SYSTEMS ................................................... 72 3
Section I: Introduction to RTIDER
OpenInsight version 9.3 and above incorporates a new encryption service that system administrators can deploy to
encrypt (on a field by field level) data in OpenInsight. The data will be “encrypted at rest” using industry standard
encryption routines. Clients and the encryption service use the Windows Communication Foundation (WCF) to
communicate, thus allowing the data to be encrypted in transit. Through the use of an Encryption Server (normally,
but not necessarily, the same machine as the Universal Driver server), each OpenInsight workstation seamlessly and
securely encrypts data for storage when written into an encrypted volume.
The metadata and actual table contents are stored on the encryption server use AES encryption algorithm with a key
size of 256 and 2 key iterations. For more information on this type of encryption see:
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
Different types of encrypted volumes - site-specific and
PASS
There are two different types of encrypted volumes. A normal RTIDER volume uses encryption keys that are
maintained by the Encryption Server; all workstations accessing this Encryption Server can (with proper
permissions) access the data, but the tables contained in these volumes cannot be used by any other system running
its own Encryption Server. Alternatively, a volume can be defined as an RTIDER PASS (Password Authenticated
Single Session) volume; to access tables in a PASS volume, the user must enter the required passphrases during
table attachment. The PASS volume can be moved among different Encryption Server systems, and is thus suitable
for transporting data either temporarily (for example, when copying tables between fixed systems) or permanently
(for example, putting such tables on a pen drive).
4
Section II: Configuration of RTIDER system
Prior to installing the Encryption Server, system administrators may choose to create a new privileged user on the
Windows PC that will act as the server. This user MUST have permissions to access the registry on the server. If a
new user is not created, an existing user with the proper permissions (NOT the default system user normally
assigned to services) may be used instead.
RTIDERServer install, setup, and configuration
To install the Encryption Server software, system administrators must run the Encryption Server Setup routine.
They will be prompted to enter the address and port number assigned to the Encryption Server, so that this
information can be updated for the subsequent Encryption Client installations. After installation, the system
administrator must change the "Login User" for the Encryption Server service before starting the Encryption Server
software, and must in addition make sure that the specified port number is accessible from all the desired clients.
Administrators will also need to run the "one time configuration" for the Encryption Server, to specify which
Windows groups will be allowed to perform various encryption roles.
5
1. The RTIDERServer setup executable can be found in the DERServer folder under your OpenInsight
directory. Right click on the executable and Run as administrator. 6
7
2. The default location is C:\Revsoft\RTIDERServer. 8
3. If the Service Details are incorrect you will not be able to continue. 9
4. The default TCP port for the Encryption Server is 8188. 10
11
5. Make sure that the RTIDERService is started prior to using the Encryption Server. 12
RTIDERClient install, setup, and configuration
1.
The Encryption Client software is automatically installed during the client setup process (performed by
running the clientsetup.exe contained in the OpenInsight folder).
13
2.
14
Specify the location you want to store the client install files.
3.
Click No to install the .NET 4.0 framework which is required for the Encryption Service.
15
16
Section III: Configure Encryption Server
1.
To configure the Encryption Server open the Database Manager from Application Tools.
17
2.
18
From the Database Manager select Utilitiies, OpenInsight Tables, Data Encryption At Rest, Configure
Server.
19
20
3.
If the Encryption Server has already been configured you will receive the following message. Do NOT
change your Passphrase or Encryption Seed.
4.
Secure your Server Passphrase and Encryption Seed in a secure location. You will need these in the event
of disaster recovery to regain access to your encrypted data.
5.
One or more Windows Groups are assigned to one or more Encryption Server Roles provided with the
Encryption Server.
Members of the groups that are in the Role Manager role are the people who can assign groups to the other
roles.
21
6.
22
The Security Groups can be selected from a popop.
7.
Members of the groups in the Server Manager roles can change the encryption settings on the server.
23
8.
24
Members of the groups that are in the Table Manager role can define or change the encryption settings on
tables.
9.
Members of the groups that are in the Assign Impersonators role can programmatically set which group
they wish to impersonate. This is used when multiple different permissions are required, but all users log
into Windows as the same user (e.g. the O4W user).
25
10. Members of the groups that are in the Data Access roles are allowed to access the encryption system. Any
users who are not members of these groups will not be able to connect to the encryption server.
26
27
Section IV: Creating Volumes
Creating a RTIDER volume
Before encrypted tables can be created, an encrypted volume must first be defined. For a normal RTIDER volume,
the normal CREATE_VOLUME procedure is used, with additional encryption parameters passed in as part of the
"control_location" parameter:
Create_Volume( volume_name , filing_system, location, control_location, status)
The volume_name is the name of the new volume to create; the filing_system must be "RTP57E" for an encrypted
volume; the location is the physical Windows directory for this volume; and the control_location contains the
encryption details, @VM delimited:
server_address : @VM : server_port : @VM : show_protected
Where server_address is the IP address of the Encryption Server, server_port is the port number that the Encryption
Server service is "listening" on, and show_protected is a flag (0 or 1) to indicate whether encrypted fields should be
blanked out (0) or displayed in their encrypted format (1) by users who do not have permissions to decrypt those
fields.
1.
28
To Create a Volume open the Database Manager from Application Tools.
2.
Enter your Volume Name and Location and click the Save button. If Show encrypted is selected then users
with no permissions will see the encrypted value. If Hide encrypted is selected then users with no
permissions will see a blank value for all encrypted data.
29
3.
30
You can add or remove one or more MFS’ to an entire volume instead of individual tables.
Creating a PASS volume
To create a PASS volume, you must use the CREATE_VOLUME_PASS procedure:
Create_Volume_Pass( volume_name, location, control_location, passphrase, initVector, status)
Where volume_name, location, and control_location are defined as above, and passphrase and initVector are the
unique pieces that will be used to encrypt the information in this volume. The passphrase and the initVector are
both user-defined strings or words; they should be unique to each PASS volume, but may be anything that is both
memorable and easy to keep secret.
Note that, since PASS volumes require the passphrase and initVector to be specified each time they are initially
accessed, you should NOT add tables in the PASS volume(s) to your database definition. Instead, you must always
run ATTACH_TABLE_PASS to attach, on a per-session basis, the tables in the PASS volume:
Attach_Table_PASS( volume_pointer_name, tablelist, database, passphrase, initVector, status)
1.
To Create a PASS Volume open the Database Manager from Application Tools.
31
2.
32
Enter your Volume Name and Location. Select PASS and enter the PASS Volume Passphrase and
Encryption Seed. Click the Save button.
1.
To Attach a PASS Volume open the Database Manager from Application Tools.
2.
Select the PASS Volume location and enter the PASS Volume Passphrase and Encryption Seed.
33
34
Section IV: Creating encrypted tables
Tables in the encrypted volume can be created using the CREATE_TABLE procedure, which has now been
extended to include an additional parameter:
Create_Table(locationlist, tablename, dictflag, databaseID, tableattributeslist, protectflag, unused, unused,
encryptInfo)
The encryptInfo parameter defines which fields in the table should be encrypted, which groups should be able to
access the data in the table, and how keys should be processed. This parameter is @FM delimited as follows:
1. list_of_fields
2. list_of_groups
3. error flag
4. key part flag
Field 1 (list_of_fields) contains a list of which fields should be encrypted; this list is comma-delimited, and may
contain 0 (to indicate the key field), 0*<keypart> (for example, 0*1) (to indicate part of the key field), or -1 (to
indicate all fields, including the key field). An example of the list_of_fields may be "0,1,3,4", or "-1".
Field 2 (list_of_groups) defines which Windows groups should have access to each of the encrypted fields; this list
is in the format <fieldnumber>:<groupname>{;<groupname>;<groupname>}{,<fieldnumber>...}. For each field
that may be encrypted (as defined in the list_of_fields), you may specify one or more Windows groups that can
access that fields' information. As above, the field number may contain 0 (for the key field), 0*<keypart> (for a key
part), or -1 (for all fields, including the key field); the group names can also be "*" to indicate "all valid Windows
users in this domain." An example of the list_of_groups may be "0:inventory;acctg,1:*,3:acctg,4:inventory" or "1:*".
If a user attempts to update a record for which he/she does not have full permissions, the Encryption Server can
either "merge" the original record's fields with the updated data, or generate an error. If field 3 (error flag) is set to
1, then an error is returned; if set to 0, then the modified data is merged with the protected fields.
If a key contains multiple parts (separated by the key delimiter "*"), it can be encrypted as a single piece of
information, or each key part can be encrypted separately. If field 4 (key part flag) is set to 1, then each key part is
encrypted separately; if set to 0, the entire key is treated as a single string, and the key delimiters are ignored during
the encryption process).
Please note that it is specifically allowed to create a table with no encryption information in an encrypted volume simply pass in an empty string ("") for the encryptInfo parameter. If instead you wish to create an encrypted table
with the default settings, pass in a parameter with 4 fields, each of which are the empty string ("").
35
Creating a new encrypted table
1.
36
You can create a new encrypted table from Database Manager, Utilities, OpenInsight Tables, Data
Encryption at Rest, Create Table.
2.
You can also create an encrypted table from Database Manager. Choose File, New Table.
37
3.
38
Click the Browse button and select Defined Locations.
4.
Select the location of your Encrypted Volume. Encrypted volumes are denoted with a Filing System of
RTP57E.
39
5.
40
Add your data dictionary columns.
6.
Tables created in encrypted volumes will be prompted with the following form to set the encryption
settings for this table.
41
7.
42
You can set the encryption level at none, all fields or specific fields. For users with no permissions you can
choose to not allow record updates or allow record updates leaving the encrypted field unchanged. Record
keys can be encrypted as a single string or individually by key parts.
8.
Field level encryption can be set by checking the appropriate dictionary name. Access groups are set to
default settings of the Encryption Server.
43
9.
44
Specific Access Groups can be selected on a field level by double clicking on Access Groups.
10. Select the appropriate Access Groups for this field from the popup provided.
45
46
11. The Encryption Attributes can be altered on a table as long as no data has been added to that table. Field
Level encryption settings can only be altered on empty tables. From the Table Builder menu choose File,
Encryption Attributes.
47
12. If a table contains data the only encryption parameter that can be modified is Update rows with restricted
access.
48
13. In this example we will add data rows to our newly created table from Database Manager.
49
14. Right click on the table and choose Table Browser.
50
15. From Table Browser add several data rows and Save.
51
16. The data location of this encrypted table can be seen in line 6 of the SYSTABLES*CONTACTS record.
52
17. If we open this file in Notepad you can see that the fields we selected are encrypted.
53
Copying an existing table to an encrypted volume
1.
54
You can copy an existing table to an encrypted volume by selecting Copy Table wizard from the Database
Manager, Utilities, OpenInsight Tables, Data Encryption at Rest, Copy Table Wizard.
2.
You can also copy an existing table to an encrypted volume from Database Manager. Choose File,
Encrypted Copy Table Wizard.
55
3.
56
Select the table that you want to copy to an encrypted volume.
4.
Tables that contain indexes cannot be copied to an encrypted volume. The indexes must be removed prior
to copying the table.
57
58
5.
Once the indexes have been removed you can select your source table to copy.
6.
Select the location an encrypted volume that you want to copy your table into.
59
60
7.
Choose the application for the copied table.
8.
By default the copied table name is the same as your source table name. You can change the table name.
9.
Choose your level of encryption for this table.
10. Select the columns which will be encrypted.
61
11. You have the option to delete the source unencrypted table (not recommended) upon completion of the
Wizard.
62
12. Upon completion of the Wizard, the table has been copied to the encrypted volume and removed from the
unencrypted volume.
63
13. Table Browser will display the copied data rows.
64
Changing encryption settings after creation
1.
It is possible to change the encryption settings after the table has been created; this is especially useful if
you wish to use the Table Builder to create the proper dictionary definitions before deciding which fields
should be encrypted. However, you MUST change the encryption settings BEFORE any data has been
stored in the table.
65
66
2.
In this example we are changing the Access Groups for the FAX field.
67
3.
68
Users who are not members of this group cannot see the FAX data.
4.
Here we are setting the Access Group back to the original setting.
69
5.
70
Members of this Access Group can now view the FAX field.
Section V: Moving data between normal and encrypted
volumes on a single system
To encrypt existing tables, or remove encryption from an already-encrypted table, you can use the COPY_TABLE
procedure, which now supports an additional parameter:
Copy_Table(tablename, location, database, newtablename, lockflag, deleteflag, overwriteflag, existflag, status,
removerelationalindexing, encryptInfo)
The encryptInfo parameter contains the same information as specified above in CREATE_TABLE. It is only
required when copying to an encrypted (RTP57E) volume. When copying from an encrypted volume to a normal
volume, or between normal (RTP57) volumes, the encryptInfo parameter can be omitted.
71
Section VI: Moving data between RTIDER systems
Data stored in normal RTIDER volumes can only be read by the Encryption Server on which it was created. To
move data to another RTIDER system, you must create a PASS volume, and then use COPY_TABLE to duplicate
the data in the PASS volume. Once completed, the entire contents of the physical Windows folder where the PASS
volume was defined can be moved to the target RTIDER system, attached (using ATTACH_TABLE_PASS), and
then COPY_TABLE can again be called to move the transported data onto the new RTIDER system.
If you do not wish to transport an entire table's contents, but still wish to protect one or more rows via encryption
during transport, the steps to follow are almost the same - create a PASS volume, create an encrypted table in the
PASS volume, use COPY_ROW to copy data from the source table to this "transport" table, move the Windows
folder to the target system, attach the PASS volume with ATTACH_TABLE_PASS, and then COPY_ROW the data
to the target table.
72
Revelation Software, Inc
99 Kinderkamack Road Ste 109
Westwood, NJ 07675
U.S.A
Toll Free: 800-262-4747
Phone: 201-594-1422
Fax: 201-722-9815
www.revelation.com
Revelation Software Ltd.
Boundary House
Boston Road
London, W7 2QE
U.K.
Phone: +44 0 208 912 1000
Fax: +44 0 208 912 1001
[email protected]
BrightIdeas New Zealand
44 Cockle Bay Rd, Howick
Auckland, 2014
New Zealand
Phone: +64 9 534 9134
[email protected]
Revelation Software is a division of Revelation Technologies, Inc.
Part No. 314-983
73