Gemalto HSMとの統合

Keeper SSO Connectは、オプションでオンプレミスおよびクラウドベースのGemalto HSMデバイスと統合して、鍵の保護と保管を実現します。

Gemalto HSMとの統合

Keeper SSO Connect HSMの概要

SSO Connectのdataフォルダ内には、ファイルがいくつかあります。このうちの2つのファイルには、サーバーで生成された、保護する必要のある秘密鍵が含まれ、エンドユーザーの自動生成されたマスターパスワードの暗号化と復号化に利用されます。また、暗号化されたデータのローカルキャッシュを含む.sqlファイルもあります。重要なのは、このデータフォルダへのアクセスを制限することです。

Windows以外のマシンの場合、dataフォルダはSSO Connectのインストールフォルダ(通常は、$HOME/sso_connect/data)の下にあります。

Windowsマシンの場合、バージョン14.1以降、dataフォルダは、C:\ProgramData\Keeper SSO Connect\data\にあります。バージョン14.1より前は、C:\Program Files\Keeper Security\SSO Connect\data\にありました。

以下に説明するように、HSM(ハードウェアセキュリティモジュール)を利用することで、セキュリティをもう1層追加できます。HSMが使用可能な場合、SSO Connectのインスタンスごとに暗号鍵が生成され、HSMに安全に保存されます。暗号鍵は、data/フォルダ内の重要なプロパティファイルの暗号化に使用されます。

Gemalto Luna HSMの手順

HSMの要件

  1. Gemalto HSMは、Lunaファームウェア6.2以降を実行している必要があります。

ネットワーク要件

  • TCP/443ポートの開放、Keeper SSO Connectからwww.keepersecurity.comへのステートフルな発信

  • TCP/22ポートの開放、HSM管理端末からHSMシステムへのステートフルな発信

  • TCP/22ポートの開放、CLI 設定用のKeeper SSO Connectサーバーへの着信

  • TCP/1792ポートの開放、HSMシステムとの双方向通信

  • TCP/8080ポートの開放、管理者GUIにアクセスするためのKeeper管理者ワークステーションからKeeper SSO Connectへの着信(オプション)

ネットワークアクセスをテスト

$ telnet www.keepersecurity.com 443
Trying 52.204.60.27
Connected to www.keepersecurity.com.
Escape character is '^]'.

$ telnet push.services.keepersecurity.com 443
Trying 52.44.0.141...
Connected to push.services.keepersecurity.com.
Escape character is '^]'.

$ ssh <HSMのIPアドレス(ip address of the HSM)>
password: <管理者パスワード(admin-password)>

Linux固有の要件

CentOS 6または7を推奨しますが、以下の操作を追加すれば、Ubuntuでも実行できます。

UBUNTUのみ:
$ sudo apt-get install zip unzip # used by the Luna installer
$ sudo apt-get install alien # used by the Luna installer to convert .rpm files
$ sudo apt-get install gcc-multilib # Because some Luna programs are 32-bit

/lib/ld-linux.so.2が存在する場合は、次のセクションに進みます。

/lib/ld-linux.so.2が存在しない場合:
    /usr/lib/ld-linux.so.2が存在する場合:
        $ sudo ln -s /usr/lib/ld-linux.so.2 /lib/ld-linux.so.2
    /lib32/ld-linux.so.2が存在する場合:
        $ sudo ln -s /lib32/ld-linux.so.2 /lib/ld-linux.so.2
    それ以外の場合(Ubuntu):
        $ sudo yum install gcc-multilib    # use yum or apt-get

Red Hat(CentOS)をご使用の場合は、次の操作を実行します。
    $ sudo yum install glibc-devel.i686

Lunaクライアントをインストール

Keeper SSO ConnectでLuna HSMを使用するには、Lunaクライアントをインストールして、正しく設定する必要があります。

  • LunaクライアントソフトウェアをSSO Connectサーバーにコピーします。 通常、ファイルの名前は、LunaClient_7.3.0-165_Linux.tar.gzのようになっています。

  • SSO Connectサーバーにログインします。

  • Lunaクライアントのインストーラーを実行します。

$ tar xzf LunaClient_7.3.0-165.Linux.tar.gz
$ cd LunaClient_7.3.0-165_Linux/64
$ sudo sh install.sh
-Luna Network HSMを選択
- (N)extを選択
- Luna JSP (Java)を選択
- (I)nstallを選択

$ sudo gpasswd --add <ユーザー名(username)> hsmusers
- 'groups'と入力して、所属するグループを確認します。
- 新しいグループを識別するために、シェルを新たに作成してください。

「~/.bash_profile」ファイルにエイリアスを追加しておくと便利でしょう。
alias luna='sudo /usr/safenet/lunaclient/bin/lunacm'
  • $JAVA_HOME/jre/lib/security/java.securityを編集します。

    a. セキュリティプロバイダの一覧を見つけます。

    b. security.provider.10=com.safenetinc.luna.provider.LunaProviderを追加します。

    c.ファイルを保存します。

Lunaへのアクセスを設定

要件

  1. HSMマシンのIPアドレスまたはホスト名。

  2. 管理者パスワード(別名、セキュリティ責任者のパスワード)。

  3. 現在使用中のマシンのIPアドレスやユーザーの名前などの一意の文字列。

  4. パーティションのクリプトオフィサーのパスワード。

  5. 鍵を保管するパーティション名(これは設定済みのはずです)。

    注意:パーティションをまだ設定していない場合は、'lunash'プログラムを使用し、管理者としてログインしてパーティションを作成してください。Gemalto Lunaのドキュメントをご参照ください。

HSMの設定を確認

  1. Lunaクライアントを起動します。

$ luna
lunacm (64-bit) v7.3.0-165.Copyright (c) 2018 SafeNet.All rights reserved.

lunacm:> clientconfig deploy -n <HSMのIPアドレス(hsm-ip-address)> -c <一意の文字列(unique-string)> -par <パーティション名(partition-name)> -ur admin -pw <HSMの管理者パスワード(hsm-admin-password)> -v

... make sure it finishes successfully


Available HSMs:

Slot Id -> 0 
Label -> [ご利用のパーティション名]
Serial Number -> 12345678987654321
Model -> LunaSA 7.3.0 
Firmware Version -> 7.3.0 
Configuration -> Luna User Partition With SO (PW) Key Export With Cloning Mode
Slot Description -> Net Token Slot


Current Slot Id:0


lunacm:>role login -n co
enter password: クリプトオフィサーのパスワード

Command Result :No Error

lunacm:>par con # パーティションの内容を表示
lunacm:>exit

HSMにアクセスするためにKeeper SSO Connectを設定

通常のSSO Connect設定の質問に加えて、以下に示すようなHSM固有の質問がいくつかあります。

$ java -jar SSOConnect.jar -config

... 通常のSSO Connect設定の質問...

Configure Secure Key Storage (y/N): y
IMPORTANT:Make sure that this server is already connected to a networked HSM or other secure key storage device.
Type of Secure Key Storage (Gemalto SafeNet Luna HSM): <return>
Secure storage device access parameters (slot,password): <return>
  slot:0
  password: クリプトオフィサーのパスワード
A certificate chain is required in order to store an encryption key.
You may use the SSL certificate file entered previously, or use a different one.
Certificate chain file (/home/ubuntu/keeperSSO/data/sso_keystore.jks): <return>
Certificate chain file password (none): <return>
1 certificates found
Enable Secure Key Storage (Y/n): y

トラブルシューティング

設定のトラブルシューティング

  1. サーバーが適正であることを確認します。CentOS 6または7を推奨します。現時点ではWindowsはサポートしていません。

    $ rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64
    
    $ cat /etc/centos-release
    CentOS Linux release 7.6.1810 (Core)
  2. Lunaクライアントがサーバーに正しくインストールされていることを確認します。Lunaクライアントを実行して、クリプトオフィサーとしてログインし、正常にログインしてパーティションの内容を表示できることを確認します。

    $ sudo /usr/safenet/lunaclient/bin/lunacm
    
    luna> role login -n co
    (パスワードを入力)
    luna> par con
    このHSMを過去にKeeperで使用したことがある場合は、Keeper SSO Properties 514320201573のような名前の既存の鍵があるはずです。
  3. Java 1.8またはJava 11が利用可能であることを確認します。

    $ java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
  4. Lunaライブラリが利用可能であることを確認します。

    $ ls sso_connect/*Luna*
    libLunaAPI.so   LunaProvider.jar
  5. 正しいポートが解放されていることを確認します。ファイアウォールは、ポート22および1792で発着信両方の接続を許可する必要があります。

    ファイアウォールがローカルの場合は、以下のコマンドラインを使用します。
    $ iptables -xvn -L
  6. ユーザーがhsmusersグループのメンバーであることを確認します。

    $ whoami
    centos
    
    $ groups
    centos adm wheel systemd-journal hsmusers
    
    **Lunaソフトウェアでは、Lunaライブラリにアクセスするユーザーがhsmusersグループのメンバーであることが必要です。
    $ sudo gpasswd --add centos hsmusers
    このコマンドが正しく動作したことを確認するには、新しいシェルを開く必要があります。
  7. SSOconnectがマシンにインストールされていることを確認します。

    • 通常、sso_connectKeeperSSO、またはそれに類似した名前のフォルダがあります。フォルダには多数のjarファイルが含まれます。

  8. dataフォルダに不完全な設定がないことを確認します。

    • 以前KeeperSSOを設定しようとして失敗した場合は、

      KeeperSSO/dataフォルダを削除してもう一度やり直すのが安全です。

  9. アプリがdata/フォルダに対する読み取り/書き込み権限を持っていることを確認します。

    $ ls -ld data
    drwxrwxr-x 2 centos centos  181 Feb  4 19:42 data

動作のトラブルシューティング

  1. ログファイルにエラーがないか確認します。SSOconnectのセキュアキーストレージサブシステムは、問題が発生すると、ログにERROR行を出力します。

    $ more logs/ssoconnect.log
  2. エラーは、「セキュアキーストレージが使用できません(Unable to use Secure Key Storage)」といったパターンになります。これは、以下のいずれかの問題を示しています。

      a.Network problem accessing the HSM
         -「設定のトラブルシューティング」の手順2を実行して、HSMへのアクセスをご確認ください。
    
      b.data/sks.properties is missing
         -data/sks.propertiesがない場合は、SSOConnectを再設定する必要があります。
    
      c.The encrypted property files are missing
         -data/instance.encpとdata/shared.encpの有無を確認します。
    
      d.The encryption key is missing from the HSM
         -HSMパーティションが消去された可能性があります。 SSOConnectを再設定する必要があります。
    
      e.The server may be out of disk space
         -ディスク領域を一部消去します。
    
      f.The encryption algorithm used is not supported on the HSM
         -アルゴリズムは、AES/GCM/NoPaddingです。 デバイスの販売業者にお問い合わせください。
    
      g.The file data/sso-keystore.jks is missing
         -このプログラムは、sso_keystore.jksファイルからの証明書チェーンがないと、HSMに鍵を保管できません。
           ファイルを検索し、データフォルダにあることをご確認ください。

バックアップ

dataフォルダにはSSO Connect設定ファイルが含まれています。少なくとも、最初の設定の後、および設定を変更するたびにバックアップする必要があります。設定ファイル以外にも、dataにはデータファイルがありますが、こちらは、Keeperサーバーとの同期が外れると自動的に更新されます。そのため、通常の定期バックアップを利用してもよいですが、必須ではありません。すべてのコンフィグレーション設定がインスタンス間で共有されているわけではないため、各SSO Connectインスタンスのdataフォルダを個別にバックアップする必要があります。

Windows以外のマシンの場合、dataフォルダはSSO Connectのインストールフォルダ(通常は、$HOME/sso_connect/data)の下にあります。

Windowsマシンの場合、バージョン14.1以降、dataフォルダは、C:\ProgramData\Keeper SSO Connect\data\にあります。バージョン14.1より前は、C:\Program Files\Keeper Security\SSO Connect\data\にありました。

回復

サーバーの障害

SSO Connectサーバーが停止した場合は、上記の標準的なインストール手順に従って、代替マシンにLunaとSSO Connectを再インストールする必要があります。

上記のとおり、dataフォルダをバックアップした場合は、データフォルダを復元してから、SSO Connectを起動してください。(SSO Connectを起動したため)dataフォルダがすでに存在する場合は、SSO Connectを停止し、データフォルダ内のファイルをすべて削除し、バックアップしたデータフォルダからファイルをコピーして、SSO Connectを再起動します。SSO Connectが正常に起動するはずです。

dataフォルダをバックアップしていなかった場合、またはバックアップが古い場合は、代替インスタンスを新規でインストールするように設定する必要があります。SSO Connectのインストールガイドに従ってください。

HSMの障害

HSMを使用する場合、HSMは設定ファイルの復号化に使用した暗号鍵をdataフォルダに保存します。HSMへのアクセスは、SSO Connectの起動時に1度、設定が変更されるときにも随時行われます。設定ファイルが暗号化されており、HSMに保存した暗号鍵が失われたか、またはアクセスできない場合は、暗号化されていない設定ファイルを新規作成するために、SSO Connectインスタンスを再度設定する必要があります。dataフォルダの内容を削除し、SSO Connectをもう一度最初から設定します。

HSM/SKSの使用を無効にするには、「SKSを有効にしますか? (Enable SKS?)」という設定の質問に「いいえ(no)」を入力するか、または-disableSKSコマンドラインオプションを使用します。

Last updated