Gemalto HSMとの統合
Keeper SSOコネクトは、オプションでオンプレミスおよびクラウドベースのGemalto HSMデバイスと統合して、鍵の保護と保管を実現します。
Last updated
Keeper SSOコネクトは、オプションでオンプレミスおよびクラウドベースのGemalto HSMデバイスと統合して、鍵の保護と保管を実現します。
Last updated
SSOコネクトのdata
フォルダ内には、ファイルがいくつかあります。このうちの2つのファイルには、サーバーで生成された、保護する必要のある秘密鍵が含まれ、エンドユーザーの自動生成されたマスターパスワードの暗号化と復号化に利用されます。また、暗号化されたデータのローカルキャッシュを含む.sql
ファイルもあります。重要なのは、このデータフォルダへのアクセスを制限することです。
Windows以外のマシンの場合、data
フォルダはSSOコネクトのインストールフォルダ (通常は、$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コネクトのインスタンスごとに暗号鍵が生成され、HSMに安全に保存されます。暗号鍵は、data/
フォルダ内の重要なプロパティファイルの暗号化に使用されます。
Gemalto HSMは、Lunaファームウェア6.2以降を実行している必要があります。
TCP/443ポートの開放、Keeper SSOコネクトからwww.keepersecurity.comへのステートフルな発信
TCP/22ポートの開放、HSM管理端末からHSMシステムへのステートフルな発信
TCP/22ポートの開放、CLI 設定用のKeeper SSOコネクトサーバーへの着信
TCP/1792ポートの開放、HSMシステムとの双方向通信
TCP/8080ポートの開放、管理者GUIにアクセスするためのKeeper管理者ワークステーションからKeeper SSOコネクトへの着信 (オプション)
$ 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)>
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
Keeper SSOコネクトでLuna HSMを使用するには、Lunaクライアントをインストールして、正しく設定する必要があります。
LunaクライアントソフトウェアをSSOコネクトサーバーにコピーします。 通常、ファイルの名前は、LunaClient_7.3.0-165_Linux.tar.gz
のようになっています。
SSOコネクトサーバーにログインします。
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.ファイルを保存します。
HSMマシンのIPアドレスまたはホスト名。
管理者パスワード (別名、セキュリティ責任者のパスワード)。
現在使用中のマシンのIPアドレスやユーザーの名前などの一意の文字列。
パーティションのクリプトオフィサーのパスワード。
鍵を保管するパーティション名 (これは設定済みのはずです)。
パーティションをまだ設定していない場合は、'lunash'プログラムを使用し、管理者としてログインしてパーティションを作成してください。Gemalto Lunaのドキュメントをご参照ください。
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
通常のSSOコネクト設定の質問に加えて、以下に示すような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
サーバーが適正であることを確認します。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)
Lunaクライアントがサーバーに正しくインストールされていることを確認します。Lunaクライアントを実行して、クリプトオフィサーとしてログインし、正常にログインしてパーティションの内容を表示できることを確認します。
$ sudo /usr/safenet/lunaclient/bin/lunacm
luna> role login -n co
(パスワードを入力)
luna> par con
このHSMを過去にKeeperで使用したことがある場合は、Keeper SSO Properties 514320201573のような名前の既存の鍵があるはずです。
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)
Lunaライブラリが利用可能であることを確認します。
$ ls sso_connect/*Luna*
libLunaAPI.so LunaProvider.jar
正しいポートが解放されていることを確認します。ファイアウォールは、ポート22および1792で発着信両方の接続を許可する必要があります。
ファイアウォールがローカルの場合は、以下のコマンドラインを使用します。
$ iptables -xvn -L
ユーザーがhsmusersグループのメンバーであることを確認します。
$ whoami
centos
$ groups
centos adm wheel systemd-journal hsmusers
**Lunaソフトウェアでは、Lunaライブラリにアクセスするユーザーがhsmusersグループのメンバーであることが必要です。
$ sudo gpasswd --add centos hsmusers
このコマンドが正しく動作したことを確認するには、新しいシェルを開く必要があります。
SSOconnectがマシンにインストールされていることを確認します。
通常、sso_connect
、KeeperSSO
、またはそれに類似した名前のフォルダがあります。フォルダには多数のjarファイルが含まれます。
data
フォルダに不完全な設定がないことを確認します。
以前KeeperSSOを設定しようとして失敗した場合は、
KeeperSSO/data
フォルダを削除してもう一度やり直すのが安全です。
アプリがdata/
フォルダに対する読み取り/書き込み権限を持っていることを確認します。
$ ls -ld data
drwxrwxr-x 2 centos centos 181 Feb 4 19:42 data
ログファイルにエラーがないか確認します。SSOconnectのセキュアキーストレージサブシステムは、問題が発生すると、ログにERROR行を出力します。
$ more logs/ssoconnect.log
エラーは、「セキュアキーストレージが使用できません (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コネクト設定ファイルが含まれています。少なくとも、最初の設定の後、および設定を変更するたびにバックアップする必要があります。設定ファイル以外にも、data
にはデータファイルがありますが、こちらは、Keeperサーバーとの同期が外れると自動的に更新されます。そのため、通常の定期バックアップを利用してもよいですが、必須ではありません。すべてのコンフィグレーション設定がインスタンス間で共有されているわけではないため、各SSOコネクトインスタンスのdata
フォルダを個別にバックアップする必要があります。
Windows以外のマシンの場合、data
フォルダはSSOコネクトのインストールフォルダ (通常は、$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コネクトサーバーが停止した場合は、上記の標準的なインストール手順に従って、代替マシンにLunaとSSOコネクトを再インストールする必要があります。
上記のとおり、data
フォルダをバックアップした場合は、データフォルダを復元してから、SSOコネクトを起動してください。(SSOコネクトを起動したため) data
フォルダがすでに存在する場合は、SSOコネクトを停止し、データフォルダ内のファイルをすべて削除し、バックアップしたデータフォルダからファイルをコピーして、SSOコネクトを再起動します。SSOコネクトが正常に起動するはずです。
data
フォルダをバックアップしていなかった場合、またはバックアップが古い場合は、代替インスタンスを新規でインストールするように設定する必要があります。SSOコネクトのインストールガイドに従ってください。
HSMを使用する場合、HSMは設定ファイルの復号化に使用した暗号鍵をdata
フォルダに保存します。HSMへのアクセスは、SSOコネクトの起動時に1度、設定が変更されるときにも随時行われます。設定ファイルが暗号化されており、HSMに保存した暗号鍵が失われたか、またはアクセスできない場合は、暗号化されていない設定ファイルを新規作成するために、SSOコネクトインスタンスを再度設定する必要があります。data
フォルダの内容を削除し、SSOコネクトをもう一度最初から設定します。
HSM/SKSの使用を無効にするには、「SKSを有効にしますか? (Enable SKS?)」という設定の質問に「いいえ(no)」を入力するか、または-disableSKS
コマンドラインオプションを使用します。