この記事ではCordaのサイニングサービスの概要、及びCRL署名機能の仕様に起因する、"CERTIFICATE_REVOCATION_LIST"テーブルのレコード増加にともなうDBサイズの肥大化への対処法についてご紹介します。
背景
CENMではネットワーク内のノードに対して、CRLを定期的に署名し配布を実施します。この署名及び配布の頻度が多すぎる場合、ネットワーク内のノード上に保持してる"CERTIFICATE_REVOCATION_LIST" テーブルのレコードが増加し、DBサイズの過剰な肥大につながるケースがあるため、対処方法を解説します。
ローカルサイニングサービス(テスト環境用)
このサービスはIDM(Identity Manager)にサイニングサービスの機能を統合したものであり、スタンドアロンのサービスであるエクスターナルサイニングサービスの簡易版です。
関連する署名キーを含むローカルキーストアを指定すると、承認されたすべてのCSR(Certificate Signing Request)に自動的に署名する機能です。人による操作は必要はありませんが、キーストアの資格情報を事前に提供する必要があります。
ローカルサイニングサービスは、テスト環境やデモ環境に推奨されます。HSM統合や変更を手動で検証する機能は提供しておらず、本番環境ではこれを使用しないことを強くお勧めします。
ローカルサイニングサービス使用時、CRLの取得頻度はIDM構成ファイルの"signInterval"で設定します。
<IDM構成ファイルの設定例>
localSigner {
keyStore {
file = exampleKeyStore.jks
password = "example-keystore-password"
}
keyAlias = "example-key-alias"
keyPassword = "example-key-password" # optional - defaults to key store password
signInterval = 15000 # signing interval in millis
}
参考リンク:
https://docs.corda.net/docs/cenm/1.2/identity-manager.html#csr-signing-mechanism
エクスターナルサイニングサービス
エクスターナルサイニングサービスは本番運用グレードのサイニングメカニズムです。通常-、サイニングサービスとはこのエクスターナルサイニングサービスの事を指す事がほどんどであり、サイニングサービスをIDMから独立した構成で構築する方法です。
これには上記で開設したローカルサイニングサービスのすべての機能とHSM統合、および管理者ノードの管理者がインタラクティブに受信したCSRを検証して署名する機能があります。
セキュリティと検証チェックが必要なすべての本番運用環境ではこの方式を使用する必要があります。
エクスターナルサイニングサービスはCSR情報を取得するために、内部サーバを介してIDMと通信します。
エクスターナルサイニングサービス使用時、CRLの取得頻度は
Signer構成ファイルのCRL Signer部分の"intarval"で設定します。
<Signer構成ファイルで設定例>
signers = {
"Example CRL Signer" = {
type = CRL
signingKeyAlias = "IdentityManagerLocal"
serviceLocationAlias = "revocation"
crlDistributionPoint = "http://localhost:10000/certificate-revocation-list/doorman"
updatePeriod = 86400000 # 1 day CRL expiry
schedule {
interval = 60minute
}
},
・
・
・
参考リンク:
https://docs.corda.net/docs/cenm/1.2/signing-service.html#signing-tasks
https://docs.corda.net/docs/cenm/1.2/signing-service.html#signing-keys-from-local-key-store
R3社より、推奨値等は公表されておりませんが、個別PJの要件に合わせて設定を変更することをお勧めします。この記事が皆様のお役に立てば幸いです。
Environment:CENM 1.1
Editor: Yoshino
Technical Verification : Iwamoto
Last update :2020/09/09