GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM

Page created by Ashley Kim
 
CONTINUE READING
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access Secure Browser Guide
                           Software Version 2.2
                 Last Updated:February 11, 2015

                                                  ProductNameTM
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Legal Notice
This document, as well as all accompanying documents for this product, is published by Good Technology Corporation
(“Good”). Good may have patents or pending patent applications, trademarks, copyrights, and other intellectual property
rights covering the subject matter in these documents. The furnishing of this, or any other document, does not in any way
imply any license to these or other intellectual properties, except as expressly provided in written license agreements with
Good. This document is for the use of licensed or authorized users only. No part of this document may be used, sold,
reproduced, stored in a database or retrieval system or transmitted in any form or by any means, electronic or physical, for
any purpose, other than the purchaser’s authorized use without the express written permission of Good. Any unauthorized
copying, distribution or disclosure of information is a violation of copyright laws.

While every effort has been made to ensure technical accuracy, information in this document is subject to change without
notice and does not represent a commitment on the part of Good. The software described in this document is furnished
under a license agreement or nondisclosure agreement. The software may be used or copied only in accordance with the
terms of those written agreements.

The documentation provided is subject to change at Good’s sole discretion without notice. It is your responsibility to utilize
the most current documentation available. Good assumes no duty to update you, and therefore Good recommends that
you check frequently for new versions. This documentation is provided “as is” and Good assumes no liability for the
accuracy or completeness of the content. The content of this document may contain information regarding Good’s future
plans, including roadmaps and feature sets not yet available. It is stressed that this information is non-binding and Good
creates no contractual obligation to deliver the features and functionality described herein, and expressly disclaims all
theories of contract, detrimental reliance and/or promissory estoppel or similar theories.

Legal Information
© Copyright 2015. All rights reserved. All use is subject to license terms posted at www.good.com/legal. GOOD, GOOD
TECHNOLOGY, the GOOD logo, GOOD FOR ENTERPRISE, GOOD FOR GOVERNMENT, GOOD FOR YOU, GOOD APPCENTRAL,
GOOD DYNAMICS, SECURED BY GOOD, GOOD MOBILE MANAGER, GOOD CONNECT, GOOD SHARE, GOOD TRUST, GOOD
VAULT, and GOOD DYNAMICS APPKINETICS are trademarks of Good Technology Corporation and its related entities. All
third-party technology products are protected by issued and pending U.S. and foreign patents.

Secure Browser Product Guide                                                                                                 2
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Table of Contents

  Good Access and the Good Dynamics Platform                                        1
         Purpose and Audience                                                       1

      What's New                                                                    1

      About Good Access and Good Control Cloud: Intranet Resources Not Available    2

      How Good Access Protects Your Enterprise                                      2
         Basic Authentication                                                       3

         Digest Authentication                                                      3

         NTLMv2 Authentication                                                      3

         Proxy Authentication                                                       3

         RSA SecurID Soft Token (Two-Factor) Authentication                         4

         Required Format for RSA SecurID CTF URL                                    4

         SSL/TLS                                                                    5

         Containerization of Encrypted Data, Cache, and Cookies                     5

         Remote Data Wipe                                                           5

      Additional Good Access Features and Benefits                                  5
         Kerberos Authentication Support                                            5

         Recommended Good Dynamics Configuration: Direct Connect                    6

         Flexible Deployment                                                        6

         Support for WebKit                                                         7

         ECMA Script/JavaScript Engine                                              7

         Supported File Types                                                       7

         YouTube Videos Not Supported                                               8

         Supported Audio Formats and Required  Tag                           8

      Enabling APK Installation on Android                                          8
         Good Control Settings                                                      8

         Android Device Settings                                                    8

         In Good Access                                                             9

      The GD SDK and the Good Dynamics API                                          9

      Supported Human Languages                                                    10

Secure Browser Product Guide                                                       iii
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
About Cookies                                                              11

  Working with Good Access on iOS                                                11

      Viewing Settings, Bookmarks, History, Downloads                            11

      Opening and Sharing URLs ("Send Link")                                     11

      Adding Bookmarks                                                           12

      Back to Caller App                                                         12

      Adding Pages to Tab View                                                   12

      Using Settings                                                             13
         Pinging, Tracing, and Looking Up                                        13

         Examining the Console to Debug Problems                                 13

         Sending Feedback to Good Technology                                     14

      Importing an RSA SecurID Token                                             14

      Enrolling in Good MDM on iOS with Good Access                              14
         Prerequisites for Enrollment                                            15

         Steps for Activation and Enrollment                                     15

  Environment and System Prerequisites                                           15

      Minimal Server Hardware Specifications                                     16

      Server and OS Software Specifications                                      16

      Server and OS Software Specifications                                      17

      Network Requirements                                                       17
         Intranet Port Configurations                                            17

         Recommended Good Dynamics Configuration: Direct Connect                 18

         SSL Ciphers between GC and GP Servers for Direct Connect                18

         Outbound Firewall Configurations                                        18

      Other Considerations                                                       21

  Installing the Good Dynamics Platform                                          21

      Configuring SSL-Certificate-Based Client Authentication in Good Dynamics   22

  Using Kerberos Authentication                                                  22

      Domain to Kerberos Realm Mapping                                           23

Secure Browser Product Guide                                                     iv
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Control Basics                                24

      Viewing Registered Applications                24

      Granting Application Permissions               25

      Managing Application Permissions for a Group   25

      Setting User Policies                          26
         Security Policies                           26

         Provisioning Policies                       26

         Compliance Policies                         26

      Setting Good Access Application Policy         27
         General Tab                                 27

         Security Tab                                27

         Network Tab                                 27

         RSA Tab                                     28

         Allowing Third-Party Applications           28

  Setting Up a Proxy Auto-Configuration (PAC) File   28

      What is a PAC File?                            28

      Considerations of Syntax and File Size         29

      Why Use a PAC File?                            29

      Example of a Simplified PAC File               29

      Configuring PAC Settings in Good Control       31

      Testing Your PAC Configuration                 32

  Provisioning and Activating Good Access            32
  Good Access User Agent String                      34
  RSA SecurID                                        34
  Choosing Routing Options and Restricting Domains   35
  Supplemental Steps for Existing GFE Customers      37
                                                     37

      Data Loss/Dropped Client Connections           37

      User Cannot Activate Good Access               37

      Good Access Logging and Diagnostics            38

Secure Browser Product Guide                         v
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access Interoperability with Other Good Apps                           39
  Good Access Authentication Delegation                                       39
  Appendix A: Frequently Asked Questions                                      40
  Appendix B: Feature Summary                                                 43
  Appendix C: iOS Browser Support for HTML5 and CSS3                          45
  Appendix D: Android Browser Support for HTML5 and CSS3                      55
  Appendix E: RSA Implementation Guide for Software Token Authenticators      65

      Product Configuration                                                   67

      Configuring a Good Control RSA Application Policy for Good Access       67

      iOS: Enabling and Using the Good Access RSA SecurID Authenticator       68

      Android: Enabling and Using the Good Access RSA SecurID Authenticator   76

  Revision History                                                            86

Secure Browser Product Guide                                                  vi
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access and the Good Dynamics Platform

Good Access and the Good Dynamics Platform
The Good Dynamics (GD) secure mobility platform integrates app containerization, MAM, an enterprise app
store, MDM and more, simplifying the creation of mobile apps and the ongoing management of applications,
data, and devices. As GD’s secure browser, Good Access leverages GD and its framework to give your authorized
users access to the corporate intranet through the enterprise firewall without using a VPN—all while your IT
group automatically controls device settings on any managed or unmanaged device.

Purpose and Audience
This guide is intended both for end users of Good Access and for IT administrators, web developers, and others
possessing equivalent technical knowledge. It describes Good Access, then takes you step-by-step through set
up, deployment, and client device activation of the Good Access application.

Platform requirements and Good Access operational fundamentals are summarized below. More complete
details concerning GD platform administration can be found online on the Good Dynamics Network (GDN).

What's New
The latest release of Good Access includes the following new features:s

Platform Feature
iOS       l   Support for Good Mobile Device Management

              Support for on-device SSL certificate stores. The new Allowed Certificates security policy in
              Good Control specifies which type of certificate store is allowable.

          l   Support for multi-realm/multi-domain Kerberos Constrained Delegation
          l   Support for webclips on iOS:

              l   New application policy in Good Control to enable webclips on iOS.

                  New control in Good Access to save a webclip. Tap the bookmark icon and then tap Save
                  a webclip.

          l   Support for streaming video in HLS format

Secure Browser Product Guide                                                                                     1
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access and the Good Dynamics Platform

Platform Feature
          Previous release:

           l   Support for SSL-certificate-based client authentication with Good Dynamic Direct connect
               deployment configuration
           l   Blocking of third-party keyboards
Android    l   Support for Good Mobile Device Management

               Support for on-device SSL certificate stores. The new Allowed Certificates security policy in
               Good Control specifies which type of certificate store is allowable.

           l   Support for multi-realm/multi-domain Kerberos Constrained Delegation
           l   Support for streaming video in HLS format

          Previous release:

           l   Support for SSL-certificate-based client authentication with Good Dynamic Direct connect
               deployment configuration
           l   Support for Android L

About Good Access and Good Control Cloud: Intranet Resources Not
Available
When you use Good Access with the Good Control Cloud configuration, intranet servers (resources on your
internal network) are not accessible.

In the on-premise configuration of Good Control, the administrator has access to a Good Proxy server, which
must be configured to allow such access from outside the enterprise firewall. However, in the current
configuration of Good Control Cloud, there is no administrator-accessible Good Proxy server, because by
definition of "cloud" the administrator is relieved of tasks or responsibility for servers, ports, web proxies, and
anything relating to the hardware or network (a benefit to the administrator). Unfortunately, this also means
that access to an intranet cannot be configured in Good Control Cloud, because their are multiple distributed
intranets belonging to different enterprises, intranets that for security cannot be part of the shared cloud
configuration.

How Good Access Protects Your Enterprise
The objective of browser security is to establish rules and measures to use against attacks on your network and
sensitive data originating from outside. There are numerous ways to protect the transfer of information. Good
Access employs the most effective methods developed for mobile devices to date, using console policies on
Good Control that determine the list of intranet domains, sub-domains, and embedded internet domains that
you, as IT administrator, want to make available to your mobile users on a user group or individual basis. Good
Access further provides a secure browser history, which can be cleared, along with support for naming and

Secure Browser Product Guide                                                                                          2
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access and the Good Dynamics Platform

editing bookmarks, in addition to pinch and zoom, and landscape mode—all requiring no special end-user
training. Additional network access and data transmission safeguards include:

Basic Authentication
HTTP Basic authentication (BA) implementation is the simplest technique for enforcing access controls to web
resources because it doesn't require cookies, session identifiers or login pages. Rather, HTTP Basic authentication
uses static, standard HTTP headers which means that no handshakes have to be done in anticipation.

However, the BA mechanism provides no confidentiality protection for the transmitted credentials. They are
merely encoded with BASE64 in transit, but not encrypted or hashed in any way. Basic Authentication should
therefore only be used over HTTPS.

Digest Authentication
The Digest Authentication protocol is designed for use with HTTP and SASL exchanges. These exchanges require
that parties that seek to authenticate must demonstrate their knowledge of secret keys. This process improves
upon earlier versions of HTTP authentication, in which users provide passwords that are not encrypted when
they are sent to a server, leaving them vulnerable to capture by attackers, or that are encrypted but sent in an
expensive, ongoing, Secure Sockets Layer (SSL) session.

Digest Authentication has similar security characteristics to the NTLM protocol in that both Digest and NTLM are
challenge/response protocols. Challenge/response protocols require an authenticating server to generate a
challenge containing some amount of unpredictable data. A client then uses a key derived from the user’s
password to encrypt the challenge and forms a response. The server, or a trusted service such as Active Directory,
can verify that the user possesses the correct password by comparing the client’s encrypted response to a stored
response based on the credential associated with the user in Active Directory or in the server account database
for local users. If the responses match, the user is authenticated.

NTLMv2 Authentication
NTLMv2 is a challenge-response authentication protocol and a cryptographically strengthened replacement for
NTLMv1. The core acronym stands for NT LAN Manager in a Windows network. Kerberos, as the preferred
authentication protocol for Windows and Active Directory domains, is used when a server belongs to a Windows
Server domain or if a trust relationship with a Windows Server domain is established in some other way; for
instance, Linux to Windows AD authentication.

Essentially, NTLMv2 sends two 16-byte responses to an 8-byte server challenge. The two responses are (1) the
HMAC-MD5 hash of the server challenge, a randomly generated client challenge, and (2) an HMAC-MD5 hash of
the user's password and other identifying information. The exact formula is to begin with the NT Hash, which is
stored in the SAM or AD, and continue to hash in, using HMAC-MD5, the username and domain name.

Proxy Authentication
In multi-tier environments, proxy authentication allows you to control the security of middle-tier applications by
preserving client identities and privileges through all tiers, and auditing actions taken on behalf of clients. For

Secure Browser Product Guide                                                                                          3
GOOD ACCESS SECURE BROWSER GUIDE - PRODUCTNAMETM
Good Access and the Good Dynamics Platform

example, this feature allows the identity of a user using a web application (also known as a "proxy") to be passed
through the application to the database server.

Proxy authentication allows a user to perform a simple bind to an AD LDS instance, while still maintaining an
association to an Active Directory account. Lightweight Directory Services (LDS), formerly known as Active
Directory Application Mode (ADAM), provide directory services for directory-enabled applications without
incurring the overhead of domains and forests and the requirements of a single schema throughout a forest. In
proxy authentication, two accounts are involved in the transaction. The first is a special object in AD LDS called a
userProxy object. The second is the user's account in Active Directory.

The AD LDS userProxy object is a representation of the Active Directory account. The proxy object is tied to the
Active Directory account through that account's security identifier (SID). There is no password stored on the
actual proxy object itself.

When a user performs a simple bind to an LDS instance with a proxy object, the bind is redirected to Active
Directory by passing the SID and password to a domain controller. The AD LDS server performs the
authentication, and the entire process is invisible to the end user.

RSA SecurID Soft Token (Two-Factor) Authentication
The RSA SecurID soft token authentication mechanism uses a “token” assigned to the end user which generates
an authentication code at fixed intervals (typically 60 seconds) using a built-clock and a ran-dom key known as
the “seed,” which is different for each token. On-demand tokens provide a token¬code via email, eliminating the
need to provision a token to the user. File-based provisioning is also supported.

Essentially, RSA SecurID transforms an iOS or Android device into a SecurID authentication device. The software
consists of an application and a separately installed software-based security token that transfers password
protection and authentication delegation to Good For Enterprise (GFE).

A software token generates a 6-digit or 8-digit pseudorandom number, or tokencode, at regular intervals. When
the tokencode is combined with a PIN, it is called a passcode. The tokencode or passcode serves as a one-time
password (OTP). Authorized device users can use OTP values, along with other security information, to verify
their identity when they attempt to access resources protected by SecurID, such as Virtual Private Networks
(VPNs) and web applications. Users enter a new OTP every time they authenticate to a protected resource.

Required Format for RSA SecurID CTF URL
After you have generated the CTF URL with the RSA Authentication Manager, you need to replace the protocol
portion of the URL to send an HTTP URL to GFE to import the RSA token into Good Access.

Change This                                                  To This
com.rsa.securid://ctf?ctfData=numeric_string                 http://ctf?ctfData=numeric_string
or
com.rsa.securid://ipaddress/ctf?ctfData=numeric_
string

Secure Browser Product Guide                                                                                       4
Good Access and the Good Dynamics Platform

Change This                                                     To This
or
custom_url_scheme://ctf?ctfData=numeric_string

     Note: The seed record must be delivered in an sdtid file or a CTF URL.

After you have replaced the URL format, send the HTTP URL to Good For Enterprise to import the RSA token into
Good Access.

SSL/TLS
The Secure Socket Layer (SSL) transmission protocol employs a cryptographic system that uses two keys to
encrypt data—a public key known to everyone and a private or secret key known only to the recipient of the
message. Transport Layer Security (TLS) is the successor to SSL. Both protocols use X.509 certificates and
asymmetric cryptography to identify the counterparty with whom they are talking, and to exchange a symmetric
key. This session key is then used to encrypt data flowing between the parties, providing data/message
confidentiality, along with message authentication codes for message integrity and message authentication. An
important characteristic is "perfect forward secrecy", so the short term session key cannot be derived from the
long-term asymmetric secret key.

Containerization of Encrypted Data, Cache, and Cookies
A secure container on the client device is used for all Good Access browsing activity, storing all data in encrypted
format. This “containerization” ensures the separation of corporate data from the user’s personal data.

Remote Data Wipe
Wiping data is a process which allows IT admins to remotely erase data from a client device when a violation or
breach of security policy is detected, a user’s network permissions are changed or revoked, or the user’s
employment is terminated. When data is wiped, the secure container on the device where company-owned files
and folders were located is physically rewritten with zeroes to prevent data recovery, in contrast to ordinary files
deletion, wherein only the pointer to the file in the file allocation table is deleted.

Additional Good Access Features and Benefits
Kerberos Authentication Support
On both iOS and Android devices, Good Access fully supports Kerberos Authentication, an integral part of Active
Directory implementations that has increasingly become a centerpiece of enterprise-level interoperability,
providing secure user authentication via the Active Directory domain controller, which maintains the user
account and login information necessary to access your enterprise network.

The Kerberos protocol governs three system “participants”: (1) a Key Distribution Center (KDC), (2) the client
device, and (3) the server it desires to access. The KDC is installed as part of the domain controller and performs
two service functions: the Authentication Service (AS) and the Ticket-Granting Service (TGS).

Secure Browser Product Guide                                                                                          5
Good Access and the Good Dynamics Platform

Essentially, when logging onto your network, users must negotiate access by providing a login name and
password that is verified by the AS portion of the KDC within their domain. The KDC has access to the Active
Directory user account information. Once successfully authenticated, the user is granted a Ticket to Get Tickets
(TGT) that is valid for the local domain. The TGT is cached on the device, which uses it to request sessions with
services throughout the network. The TGT’s default expiration is set and controlled by your IT admin.

To learn how to enable Kerberos authentication for Good Access on Good Dynamics see Domain to Kerberos
Realm Mapping .

In addition, Good Access is now certified for Kerberos Constrained Delegation (KCD), a Good Dynamics
platform feature that lets domain administrators restrict the network resources that a service trusted for
delegation can access. This is done by limiting the scope where application services can act on a user’s behalf.
When configured, KCD restricts which front-end service accounts can delegate to their back-end services. By
supporting constrained delegation across domains, services can be configured to use constrained delegation to
authenticate to servers in other domains rather than using unconstrained delegation. This provides
authentication support for across domain service solutions by using an existing Kerberos infrastructure without
needing to trust front-end services to delegate to any service.

Recommended Good Dynamics Configuration: Direct Connect
To improve performance and reduce latency, with GD Direct Connect, you can establish a connection directly
with a GP server via a DMZ proxy, bypassing the GD NOC relay servers entirely. This results in the following
measurable benefits:

l   Reduces round-trip time when your servers are located across the globe.
l   Reduces latency for heavy data transactions like large document downloads.
l   Restricts the flow of user data over networks in certain geographic locations where compliance requirements
    demand it, even when encrypted.

For details about Direct Connect, see Direct Connect.

Flexible Deployment
As with all sufficiently complex enterprise applications, Good Access and the proprietary web apps you plan to
deploy now or in the future will require a well thought-out deployment strategy to properly orchestrate
interdependent systems. For instance, even a basic web application will need to consider source code,
configuration files, content management data, application data, user data, cached data, search indices, content
delivery networks, background jobs, system monitoring tools, and external services and APIs, in addition to the
all-important user experience, especially during the release process.

For all GD-enabled apps, as well as enterprise web apps securely accessed from Good Access, there are a number
of flexible deployment options and combinations of options your IT group can leverage:

l   On premises deployment
l   Cloud deployment

Secure Browser Product Guide                                                                                        6
Good Access and the Good Dynamics Platform

l   Support for SaaS-based apps

Your Good Professional Services team is available and ready to explain the various options and to assist in the
appropriate implementation for your enterprise.

Support for WebKit
WebKit core classes transparently handle programmatic and client requests. WebKit creates all the necessary
model and view classes used to represent and display the incoming content. When a user clicks a link, WebKit
automatically relinquishes control of the old objects and creates new ones to handle the new page. WebKit views
are designed to handle multiple frames, each with their own scroll bar, and many MIME types. You do not need to
implement custom views for your application to display web content in your application

When desired, you can extend WebKit to handle the details of client requests, frame and resource loading,
window operations, and downloading. You do this by implementing delegate objects. WebKit furnishes a number
of hooks allowing applications to customize the user interface. For example, you can specify the menu items that
are displayed when the user clicks a particular type of resource. You can also implement your own document
models and views to handle specific MIME types. Because of this extensibility, WebKit can be used to develop
increasingly innovative web applications for your corporate intranet users.

One important caveat to Good Access support for WebKit is that, because it is open source and both Apple and
the Google open source community are free to modify and extend it, Good Access will only address the latest
added, amended, and fixed WebKit issues periodically.

ECMA Script/JavaScript Engine
Good Access for iOS uses native UIWebView for rendering, whereas on Android devices Google’s open source V8
JavaScript engine is used. V8 compiles JavaScript to native machine code before executing it, instead of more
traditional techniques such as executing bytecode or interpreting it. The compiled code is additionally optimized
(and re-optimized) dynamically at runtime, based on heuristics of the code's execution profile. Optimization
techniques used include inlining, elimination of expensive runtime properties, and inline caching, among many
others.

Supported File Types
Good Access supports all file types/extension except for the following:

l   .msg Microsoft Outlook message format
l   .zip Compressed file archive

Supported Video Formats on iOS, Required  Tag, and Byte Streaming
To securely play videos on web sites, the HTML 5  tag with the  element's src attribute is
required at the time the page is loaded in the browser. If Good Access cannot detect a  tag, the video
playback is not secured. Here's a sample of the tags:
Good Access and the Good Dynamics Platform
Good Access and the Good Dynamics Platform

3. Scroll to find the Unknown Sources heading.
4. Make sure the checkbox next to this heading is checked.

In Good Access
1. Download the desired APK file. It is stored in your Good Access Downloads folder.
2. Go to your Good Access Downloads folder, find the downloaded APK file, and tap it to begin the installation.

The GD SDK and the Good Dynamics API
Like all GD-enabled apps, the important and powerful security features of Good Access are implemented using
the GD SDK, with versions currently available for both Android and iOS devices.

Short for Software Development Kit, the Good Dynamics Client SDK is the collection of tools you use to securely
enhance and customize your enterprise mobility applications, as well as allowing secured data to be shared
between GD-enabled apps like Good Access. Again, the SDK supports both Android and iOS devices. The server
side of Good Dynamics, known as the GD Platform, is where IT commonly or selectively configures and controls
GD-enabled apps on either type of device even though the respective GD SDKs remain distinct.

In all cases and regardless of device OS, you can impose GD SDK functionality in your apps to securely enforce:

l   User/Device Initialization and Authentication. Every GD-enabled app is required to implement the GD
    initialization process, ensuring that the user’s identity is verified by the NOC, and that the correct security
    policies for the application/user are provisioned for the device. These policies control authentication
    thresholds like password strength, idle timeout, etc.

    For added convenience, where desired, you can also configure GD’s Easy Activation feature for your users.
    Easy Activation simplifies the provisioning process by allowing a Good Dynamics or Good for Enterprise
    application to “hand-off” activation to a suitable Good application that is already installed on the device,
    allowing it to act as the activation delegate. The user will still have to retrieve and manually enter a legitimate
    access key, but only once, right after the first time the app is installed on the device. Thereafter, if a suitable
    activation delegate is detected, the Easy Activation setup option is presented to the user. If an activation
    delegate is not discovered, the user is prompted to use the standard provisioning process with an access key.

l   Secure Data Storage. When employed, the SDK furnishes an encrypted container in which application files
    can be securely stored. Using the SDK you can invoke the secure data storage APIs for file system, database,
    and core data.
l   Secure Communications. Otherwise inaccessible behind your enterprise firewall, the SDK lets you securely
    connect your client apps to your enterprise servers using GD’s Socket, HTTP Request, or URL Loading System
    APIs.
l   Secure Push Channel. More efficient than polling, the SDK lets you create and maintain a secure push
    connection to and from enterprise servers. Though not currently supported by Good Access, this feature will
    be supported in upcoming versions.

Secure Browser Product Guide                                                                                              9
Good Access and the Good Dynamics Platform

l   Shared Services (also known as AppKinetics). Allows secure data sharing between GD apps or for one GD
    application to be used as the authorization delegate for another. An advanced topic currently beyond the
    scope of this particular guide, GD’s AppKinetics technology creates an ecosystem of protected, interoperable,
    mobile applications to maximize employee productivity and effectiveness.

Using the GD SDK to exploit Good Dynamics APIs allows you to create and manage enterprise-class mobile apps
like Good Access that deliver the highest security standards. This means you can:

l   Containerize any app – by quickly embedding encryption and policy controls into your custom apps, even
    when source code is unavailable.
l   Secure your infrastructure – by automatically encrypting app data in motion and providing app-level
    authentication outside the firewall.
l   Secure communications app-to-app – using patent-pending inter-app communication technology to
    automatically secure document transfer between GD-enabled apps (e.g., open in) as well as Good for
    Enterprise.
l   Enable policy controls – empowering your IT group to enforce app-level security controls for jailbreak and
    root detection, password, lock/wipe, compliance, app-specific custom policies and data leak prevention (DLP).
l   Change policy dynamically – allowing IT to modify policy over the air (OTA) at any time without requiring an
    app update.

See GD Platform Infrastructure for a brief overview of the physical architecture.

Otherwise, beginning with Environment and System Prerequisites, succeeding topics, along with additional
resources available on the Good Developers Network (GDN), will take you through the process of setting up the
Good Dynamics infrastructure (if it isn’t set up already), deploying Good Access, and then showing your users
how to activate the browser on their provisioned devices.

Supported Human Languages
Good Access supports the following human languages.

l   Dutch
l   English
l   French
l   Italian
l   German
l   Spanish
l   Swedish

Secure Browser Product Guide                                                                                     10
Working with Good Access on iOS

About Cookies
Good Access supports both persistent and non-persistent cookies, which in general are used to maintain session
information.

Working with Good Access on iOS
Here are some details about working with Good Access controls.

Use the controls at the bottom for different features, which are described below:

Viewing Settings, Bookmarks, History, Downloads

Click the Settings control             to view your bookmarks, browsing history, and the files you have
downloaded. Also, this control includes Settings, which is described in Using Settings .

Opening and Sharing URLs ("Send Link")

When you are browsing web pages, click the bookmarks/sharing icon             to share the hyperlink (sometimes
called "Send Link") you are viewing with some other Good application.

When you click Share, you are prompted to select the application to share with:

Secure Browser Product Guide                                                                                      11
Working with Good Access on iOS

You can open and share many different kinds of URLs, including mailto URLs. When you open URLs, you are
prompted to choose which browser to open it with, either Good Access itself or any other browser apps from
Good on your device.

Adding Bookmarks

With the bookmarks/sharing control        , you can add a bookmark for the current page. For a list of all your
bookmarks, see Viewing Settings, Bookmarks, History, Downloads

Back to Caller App
In many of the interactions between Good Access and other Good applications, after you have completed some
function, you are prompted to return to the original application you shared from. This prompt is Back to Caller
App.

Adding Pages to Tab View

If you have a set of web pages you want to switch among, click        to add them to the tab view, where you
can navigate between them more easily.

Secure Browser Product Guide                                                                                      12
Working with Good Access on iOS

Using Settings

Click the Settings control              to view or change the Good Access configuration settings. You also have
many features in Settings you can use to troubleshoot and send feedback to Good Technology.

Pinging, Tracing, and Looking Up
With the Network Utility, you can use standard networking troubleshooting tools:

l   Ping: This is equivalent to the well-known ping command. You can ping servers on the Internet or otherwise
    to see if your connection is good or if the server is responding.
l   Trace: This is equivalent to the well-known traceroute command. You can find out the path ("hops")
    through the network from your device to some server on the Internet. This is useful especially for debugging
    network latency.
l   Lookup: This is equivalent to the well-known nslookup command. You can enter an IP address to discover its
    associated fully qualified domain name, or vice versa.

To use the network utilities:

1. Tap the Settings control               .
2. Tap Settings.
3. Scroll to find and tap Network Utility.
4. Enter the fully qualified domain name or IP address of the server or device you want to check.
5. Tap Ping.
6. From the control displayed at the bottom, tap Trace or Lookup, if that is what you want to do.
7. Tap Go.

The results of the command are displayed in the area below.

Examining the Console to Debug Problems
You can examine Good Access's built-in console to see the possible causes of difficulties you might encounter.
For example, suppose you are attempting to get at a certain web site, but your access is blocked. You can look at
the console messages to see if your access is blocked by a policy from your IT administrator.

To examine the console messages:

Secure Browser Product Guide                                                                                     13
Working with Good Access on iOS

1. Tap the Settings control              .
2. Tap Settings.
3. Scroll to find and tap Console.
4. Look at the displayed messages to see if they inwhat the problem mdicateight be. For instance, for a block by
   policy, you might see this:

Sending Feedback to Good Technology
Good Technology values your comments, suggestions, and ideas.

To send feedback about Good Access:

1. Tap the Settings control              .
2. Tap Settings.
3. Scroll to find and tap Feedback.
4. Follow the remaining prompts.

Good Technology thanks you for your feedback.

Importing an RSA SecurID Token
This topic is detailed in Appendix E: RSA Implementation Guide for Software Token Authenticators .

Enrolling in Good MDM on iOS with Good Access
Your IT administrator has defined certain device policies that affect the features and behavior of your device,
such as password length or ability to use the camera and other features.

Every iOS mobile device to be managed by Good Mobile Device Management (MDM) must be enrolled in the
service so that these device policies can be applied to your device. Enrollment is a series of steps that places the
device under managed control.

Secure Browser Product Guide                                                                                       14
Environment and System Prerequisites

  Prerequisites for Enrollment
 1. You have at least one Good-based application so your device can be enrolled.
     At this time, Good Technology has supplied Good Access 2.2 for enrollment on iOS, because it has been built
     with the required version of the GD SDK. Download Good Access from the App Store.
 2. Your IT administrator will send an email that includes the name of that application and an access key you need
     to activate that application and enroll in Good MDM.
 3. Multiple device management profiles are not allowed by iOS.

     Any previously installed a device management profile on iOS (such as a profile from GFE) clashes with Good's
     mobile device management profile. The new profile cannot be installed.

     Important: You must remove the old device profile before enrolling in Good MDM.

     This is Apple's design of iOS, not a flaw. iOS does not allow possible conflicts among multiple profiles.

 Steps for Activation and Enrollment

 1. Make sure you are ready with the details discussed in Enrolling in Good MDM on iOS with Good Access
 2. Start the Good-based application provided by your IT administrator.
 3. From the email you received, enter your email address and the access key.
 4. Set a password for this application.
 5. You are informed that the MDM enrollment process will start. Tap Start MDM Enrollment.
 6. You are asked if you want to install the displayed profile. Tap Install.
 7. If you have a passcode on your device, enter it to proceed.
 8. Tap Install to continue.
 9. Tap Install to continue.
10. You are informed that your device will be put under Remote Management. Tap Trust.
11. Enrollment is complete; the profile is installed. Tap Done.

 Environment and System Prerequisites
 Detailed in GD Server Installation, your GD infrastructure is composed of three primary server components: a
 database, Good Control (GC), and Good Proxy (GP).

 The GC and GP servers can be installed on the same host machine. Or, each can reside on its own unique host.
 For production environments, it is strongly recommended that the database reside on a machine separate from
 both GC and GP. However, all three components may be safely installed on the same machine in a development
 and/or test environment.

  Secure Browser Product Guide                                                                                   15
Environment and System Prerequisites

Minimal Server Hardware Specifications
The following are the minimum hardware requirements for the GC and GP servers.

Note: These are minimal and are most often used when deploying all components on a single hardware system.
In production, you will need more power. Exact hardware sizing depends on the performance you need. See the
GD Sizing Guide for results of performance testing to help you make this determination.

                 Minimal
 Component                      Minimum RAM                                                    Minimum Disk
                 Processor

 Good Control    Pentium        4GB. GC allocates approximately 1.5GB of RAM at start-up       100GB. For
                 dual-core,                                                                    installation, a
                 2 GHz                                                                         minimum of 50GB
                                                                                               is required for the
                                                                                               installation files
                                                                                               and log files.

 Good Proxy      Pentium        4GB. The default Java Runtime Engine (JRE) heap size is        100GB. For
                 dual-core,     2.5GB. The recommended heap size is 60% of physical            installation, a
                 2 GHz          memory. You can change the heap size after installation with   minimum of 50GB
                                the instructions in the GC console online help topic           is required for the
                                Maintenance & Troubleshooting > Increasing the GP              installation files
                                Server's Java Heap Size.                                       and log files.

 Database        Pentium                                                                       Initial size
                 dual-core,
                 2 GHz
                                                                                               l   Data files:
                                                                                                   2GB [or
                                                                                                   10GB?], which
                                                                                                   grow
                                                                                                   approximately
                                                                                                   2GB per year.
                                                                                               l   Redo logs:
                                                                                                   100 MB

Server and OS Software Specifications
The GD servers require one of the following operating systems, real or virtualized:

l   Windows Server 2012 or Windows 2012 R2
l   Windows Server 2008 or 2008 R2, 32 or 64-bit versions
l   Windows 7

Secure Browser Product Guide                                                                                         16
Environment and System Prerequisites

       Note: Although Good Technology supports Windows 7 for development and testing,do not use Windows
       7 as a production platform.

The GD servers need the following network connections:

l   A connection to a Microsoft Active Directory server, unless you are installing the Good Proxy in a separate
    domain.
l   A connection to a database (see Server and port diagram for specifics)

Server and OS Software Specifications
The GD servers require one of the following operating systems, real or virtualized:

l   Windows Server 2012 or Windows 2012 R2
l   Windows Server 2008 or 2008 R2, 32 or 64-bit versions
l   Windows 7

       Note: Although Good Technology supports Windows 7 for development and testing,do not use Windows
       7 as a production platform.

The GD servers need the following network connections:

l   A connection to a Microsoft Active Directory server, unless you are installing the Good Proxy in a separate
    domain.
l   A connection to a database (see Server and port diagram for specifics)

Network Requirements
This section describes a standard network integration of the GC and GP servers behind the enterprise firewall.

Intranet Port Configurations
Each GD platform component uses different ports, so you must configure the host machine for each component
accordingly. Make sure the following ports are open and available, and ensure that these ports are not in use by
other servers or processes.

l   The GC server host needs open inbound ports 443 and 17317. Port 443 is required for administrators and
    users to log into the GC console. The GP and GW installers connect to a GC server over port 443 during the
    server setup process. GP servers connect to GC servers on port 17317 during policy updates.

l   The GP server host needs open inbound ports 17080 and 17433. Additionally, it should have at least 30,000
    ports in the dynamic TCP port allocation, which are needed for outbound connections to the GD NOC. (When
    Direct Connect is configured, however, these ports become inbound.)
l   The database host machine needs open inbound port 1521 open for Oracle or port 1433 open for SQL
    Server.

Secure Browser Product Guide                                                                                      17
Environment and System Prerequisites

Recommended Good Dynamics Configuration: Direct Connect
To improve performance and reduce latency, with GD Direct Connect, you can establish a connection directly
with a GP server via a DMZ proxy, bypassing the GD NOC relay servers entirely. This results in the following
measurable benefits:

l   Reduces round-trip time when your servers are located across the globe.
l   Reduces latency for heavy data transactions like large document downloads.
l   Restricts the flow of user data over networks in certain geographic locations where compliance requirements
    demand it, even when encrypted.

For details about Direct Connect, see Direct Connect.

SSL Ciphers between GC and GP Servers for Direct Connect
By default, SSL communications between the GC and GP servers over port 443 for the Direct Connect
configuration uses the following ciphers:

l   TLS_RSA_WITH_AES_256_CBC_SHA256 OR
l   TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

One reason you might need to add more ciphers is if you have your own proxy server between your client
devices and the GP server configured for Direct Connect. This middle proxy is the one that determines which SSL
ciphers to use. You need to ensure that the GP server ciphers correspond to those required by your own proxy.

If you need to add more ciphers, after installation, edit the GP server’s configuration file
c:\good\gps.properties and add the names of the ciphers to the gps.directconnect.supported.ciphers key.
See List of Supported SSL Ciphers between GC and GP Servers for Direct Connect .

Outbound Firewall Configurations
If you limit outbound requests through your enterprise firewall, you need to permit access to the following IP
ranges in order for the GC and GP servers to connect to the GD Network Operations Center (NOC):

l   206.124.114.1 through 206.124.114.254 (206.124.114.0/24) on port 443
l   206.124.121.1 through 206.124.121.254 (206.124.121.0/24) on port 443
l   206.124.122.1 through 206.124.122.254 (206.124.122.0/24) on port 443

You may alternatively wish to permit access to the specific network host names:

l   gdentgw.good.com on port 443
l   gdrelay.good.com on port 443
l   gdweb.good.com on port 443
l   gdmdc.good.com on port 443

Secure Browser Product Guide                                                                                     18
Environment and System Prerequisites

If you make connections through a web proxy server, please make sure to enter the proxy information in both
the GC and GP installers when asked to do so.

Note that no inbound ports through the enterprise firewall are required for the Good Dynamics platform.

The following diagram details the ports and connections between the components of the GD platform. Keep the
following in mind as you read the diagram:

l   All connections are TCP, not UDP.
l   Arrows originate at the point from which communications are established. The direction of the arrows neither
    reflects the flow of data nor the end which initiates commands.
l   The selection of high or low port numbers for clients connecting to Good Technology NOC servers is
    configurable for each enterprise.
l   “Secure Communication” refers to data that is sent by using the GD Socket and GD HTTP Request APIs.

Secure Browser Product Guide                                                                                 19
Environment and System Prerequisites

Server and port diagram

Secure Browser Product Guide           20
Installing the Good Dynamics Platform

Other Considerations
Other initial environment considerations include provisioning for email support and running the GC console on a
Windows PC.

Email Server Configuration Requirements
For email, the GD platform depends on the proper configuration of server software, like Microsoft Exchange,
which is not subject to the direct control of the GD installation software. This essentially means if you are using
Exchange or Domino for email, you will need to configure the respective server to include a dedicated receive
connector for your GC server’s IP address.

Browser Recommendations for GC Console
The following browsers are currently supported:

l   Firefox 3.6 and later
l   Chrome 13 and later
l   IE8, IE9, and IE10

Versions of Internet Explorer older than IE 7 are not supported.

Installing the Good Dynamics Platform
Complete server-side installation instructions for the GD Platform are available in GD Server Installation
Instructions found in the Resource Library on the Good Developer Network. The setup steps concisely
enumerated here are strictly intended to overview the process for level-of-effort scoping purposes.

To successfully deploy your GD Platform infrastructure, you must:

a. Setup the requisite database; either Oracle XE 10g/11g or Microsoft SQL Server, the latter using SQL Server
    Management Studio.
b. Properly install Good Control and Good Proxy behind your firewall, singly or in cluster, allocating the
    appropriate communications channels, port-to-port, between the database, the GD NOC, and your enterprise
    application servers, at which point you can also determine if you wish to also use Direct Connect to speed up
    long-distance transmissions of high-traffic applications.

    Note: Direct Connect requires opening a bidirectional port. Refer to the Direct Connect Feature Summary and
    Configuration Guide for details.
c. Upon completing GD server installation, be sure to look through the GC and GP release notes for the latest
    information on updating your database and server software.
d. Install the GD SDK.
    l   In support of Android clients, see GD SDK for Android: Installation and, for additional detail, Getting
        Started with the GD SDK for Android.

Secure Browser Product Guide                                                                                      21
Using Kerberos Authentication

    l   In support of iOS clients, see GD SDK for iOS: Installation. Additional details are available in Getting Started
        with the GD SDK for iOS.
e. Although the GC and GP server installers generate SSL certificates for your servers to use, you have the option
    of replacing these with certificates signed by well-known certificate authorities like VeriSign and Thawte, or
    with certificates generated by your own enterprise CA. GD Server Installation Instructions contains complete
    instructions for generating, installing, and/or switching to CA-signed SSL certificates.

f. Connect Good Control with the database and configure all GC-related database properties.
g. Configure global GC server properties, namely:
    l   User self-service (optional)
    l   Active Directory settings for searching and verifying new users
    l   GD NOC server locations and connection configurations.
h. Configure all other local and server-specific properties.

    While many properties can be modified directly from the GC console, some properties are view-only and not
    editable. If the property is global in scope, you can change it from any GC console in the cluster. For server-
    specific settings, however, you must log into the console of the server requiring individual modification to
    change its properties.

    Important: Always save property changes to the database.

i. Configure Good Proxy to connect to other servers through a web proxy server and optionally change/switch
    its SSL certificate.

GP server property values are initially set based on information supplied to the GP installer and should not be
modified unless your proxy server configuration changes or you need to use a different proxy server. As well, the
GP installer stores a GC-signed certificate for its use, although you can switch to a CA-signed certificate by
modifying your GP server’s gd.security.keystore.alias property.

Configuring SSL-Certificate-Based Client Authentication in Good Dynamics
Configuring Good Control and Good Proxy in the Direct Connect configuration to enable SSL-certificate-based
client authentication is documented in GD Direct Connect on the Good Developer Network.

Using Kerberos Authentication
Kerberos Constrained Delegation is a GD deployment option for user authentication. The Kerberos ticketing
service issues "authentication tickets" that are used for user authentication.

There are two parts to setting up Kerberos Constrained Delegation for Good Access:

l   Installing Kerberos with the GD servers. This topic is discussed in detail in Kerberos Constrained Delegation.
l   Enabling Kerberos for Good Access. This is discussed below.

Secure Browser Product Guide                                                                                          22
Using Kerberos Authentication

As part of setting an application policy in Good Control for the Good Access application, you can enable Kerberos
fowardable tickets.

1. Login to Good Control.
2. Open Policy Sets, open the desired policy, click the Application Policies tab, find Good Access in the list of
   applications, click the triangle to the left of the name, and click the Network tab.

1. Make sure that Enable Kerberos Forwardable Ticket is checkmarked.
2. If you have multiple Kerberos domains and want to include them as authentication sources, see Domain to
   Kerberos Realm Mapping .
3. Save your changes.

Domain to Kerberos Realm Mapping
When a client attempts to access a service running on a particular server, it knows the name of the service (host)
and the name of the server (foo.example.com), but because more than one Kerberos realm may be deployed
on your network, it must guess at the name of the realm in which the service resides.

By default, the name of the realm is taken to be the DNS domain name of the server, upper-cased.

foo.example.org         → EXAMPLE.ORG
foo.example.com         → EXAMPLE.COM
foo.hq.example.com      → HQ.EXAMPLE.COM

In some configurations, this will be sufficient, but in others, the realm name which is derived will be the name of a
non-existent realm. In these cases, the mapping from the server's DNS domain name to the name of its realm
must be specified

For Good Access domain to realm mapping, you can record a list of comma-separated equivalencies in which the
first mapping in the list is treated as the default domain mapping. It will be used if the user has left the Domain
field empty, as well as when the server requires NTLM or Kerberos authentication.

To map domains to Kerberos realms:

1. Login to Good Control.
2. Open Policy Sets, open the desired policy, click the Application Policies tab, find Good Access inthe list of
   applications, click the triangle to the left of the name, and click the Network tab.

1. Enter the list of comma-separated values in the field provided using this syntax. The value of REALM     must be
   in uppercase:

   REALM=domain
   Example: EASTDOM=east.company.com

2. Save your changes.

Secure Browser Product Guide                                                                                      23
Good Control Basics

Good Control Basics
Complete instructions on navigating and using your GC console are in the online help, accessed by clicking the
Help link in the extreme upper right corner of the screen. Here, we merely cover the basics. Remember that,
before your first application can be setup, the following conditions must be met:

l   GC and other infrastructure components are installed at the enterprise.
l   GC and other infrastructure components are registered on the Good Dynamics network.
l   You have a Good Dynamics client application, like Good Access.
l   The Application Server, if any, is installed at a known address.

With the foregoing in place, your Good Control console can now be used to securely manage three general types
of applications:

l   Good Applications – apps provided by Good are automatically available to your licensed enterprise.
l   Partner Applications – are provided by business partners of Good and are also made available automatically.
l   Enterprise Applications – are custom apps written for or by your enterprise for your enterprise users. Unlike
    Good and Partner apps, these must be manually added through the GC console.

With respect to Good apps and Partner apps, GC admins can choose to allow or deny these applications for the
Everyone user group, applications groups, or even individual users. Administrators cannot, however, modify app
information such as the application name, nor can they add or delete application versions.

By contrast, Enterprise applications must first be registered in the GC console before they can be securely
deployed and managed. Registration information must match the information configured in the client libraries of
each application, and each Application ID must be unique. Then, like all GC-managed apps, you can choose to
allow or deny these applications to user groups and/or individuals as your IT policies dictate. Likewise at this
point, all server-side components requiring access by an app must also be registered in GC.

The following topics cover the basics of Good Control administration:

l   Viewing Registered Applications
l   Granting Application Permissions
l   Managing Application Permissions for a Group
l   Setting User Policies
l   Setting Good Access Application Policy
l   Using Kerberos Authentication

Viewing Registered Applications
To view currently registered applications, click Applications in the main navigation panel on the left side of the
screen. The list of all applications registered with GC are displayed, sorted first by Enterprise apps, followed by
Good and Partner apps.

Secure Browser Product Guide                                                                                          24
Good Control Basics

From the list of Good applications, make sure that Good Access is included.

Granting Application Permissions
Good Control has two levels of application permissions: group level and user level. Creating application groups is
an easy way to apply the same baseline application permissions to many users. By creating a new group, then
setting its allowed and denied applications, you can add users to the group in batch. Each added user inherits all
the permissions of the new group.

An “Everyone” group is automatically created when GC is installed. By default, all GC users belong to this group,
furnishing a quick and reliable method of enabling an application for all users. The following application group
rules apply:

l   Users can belong to multiple groups.
l   The most restrictive permission will apply when a user exists in more than one group.
l   User level permissions set explicitly for an individual always override group level permissions.

Managing Application Permissions for a Group
Application groups are an easy way to apply the same base application permissions to many users.

On the edit screen for a group, make sure the Applications tab is active. To grant permission to an application or
application version, click the Add icon for the Allowed Applications list. A popup displays a list of applications
and application versions not yet permitted or denied for the group. If the list is long, you can use the filter to limit
the list. You can also select from the View dropdown to limit the list to only Organization applications or Good or
Partner Applications.

Important: Your designated Good Control administrator will need to manually enable previous version of Good
Access—specifically versions 1.1.0.0 and 1.0.0.0—so that users who fail to immediately upgrade to the latest
version are not unnecessarily blocked from using the Good Access browser currently on their device. Hence, if
you do not take the following steps, some users will be disabled upon upgrade to the most current version of
Good Access.

To grant permissions to the “Everyone” group to use earlier versions of Good Access:

1. Open the Applications tab, the click the Add icon         for Allowed Applications.
2. Filter the list by entering “good access" in the search field and clicking the checkmark.
3. Explicitly mark (check) both Good Access – 1.1.0.0 and Good Access – 1.0.0.0 (as pictured). Each of these
    versions is registered with Application ID com.good.gdgma.
4. Click OK to apply your changes.

Apart from the app name and version(s), the process is identical for defining group permissions for any other
registered application in Good Control.

Secure Browser Product Guide                                                                                         25
You can also read