Bring Your Own キー(BYOK)は、ZohoのKEKの代わりに自身のキー暗号化キー(KEK)を使用できる機能です。キーは、お好みの外部キー管理(EKM)から追加するか、暗号化されたキーを手動でアップロードすることができます。
キーをアップロードする場合の手順は以下の通りです。
当社のスタンダードな運用に従い、データは当社が管理するDEKで暗号化され、KMSに保存されます。DEKはさらに当社のKEKで暗号化され、別のサーバーに保存されます。
KEKをアップロードするには、当社が提供する証明書から公開キーを抽出し、その公開キーを使って自身のキーを暗号化・ハッシュ化する必要があります。
暗号化されたKEKおよびハッシュ化されたKEKをZoho Oneにアップロードします。
当社はKEKを利用してDEKを復号し、プレーンなDEKを取得します。
このプレーンなDEKは、お客様が提供したKEKで暗号化されます。
各アプリケーションごとにキーを個別設定することも、2つ以上のアプリケーションやその他のアプリケーションをグループ化して設定することも、組織内のすべてのアプリケーションに対して単一のキーを設定することも可能です。
1. BYOK証明書を追加します。
Zoho Oneにサインイン し、画面右上の「Directory」をクリックします。
「Security」をクリックします。
「BYOK」をクリックし、次に画面右上の「管理 certificates」をクリックします。
「追加する certificates」をクリックし、証明書の一意の名前を入力して、「追加する」をクリックします。追加した証明書にカーソルを合わせ、ダウンロードするアイコンをクリックします。
2. 暗号化された KEK を生成するには:
前提条件:
'bcprov-jdk18on' jar のバージョンが 1.78.1 以上または同等であること
以下の Java コードスニペットを使用して、ダウンロードした証明書ファイルから公開キーを抽出し、キーを暗号化してください。
/**
* @param fileName
* - ダウンロードしたファイル名
* @param plainKeyBytes
* - 生成済みキーのバイト列
* @returns - 暗号化されたキー
* @throws 例外
*/
public static String encryptKeyWithPublicKey(String fileName, byte[] plainKeyBytes) throws Exception {
PemReader reader = new PemReader(new FileReader(new File(fileName)));
PemObject pemObject = reader.readPemObject();
byte[] content = pemObject.getContent();
reader.close();
InputStream fin = new ByteArrayInputStream(content);
CertificateFactory f = CertificateFactory.getInstance('X.509');
X509Certificate certificate = (X509Certificate) f.generateCertificate(fin);
PublicKey pk = certificate.getPublicKey();
byte[] publicKeyBytes = pk.getEncoded();
X509EncodedKeySpec keySpec = 新規 X509EncodedKeySpec(publicKeyBytes);
KeyFactory keyFactory = KeyFactory。getInstance('RSA');
PublicKey publicKey = keyFactory。generatePublic(keySpec);
Cipher encryptCipher = Cipher。getInstance('RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING');
OAEPParameterSpec oaepParams = 新規 OAEPParameterSpec('SHA-256', 'MGF1', 新規 MGF1ParameterSpec('SHA-256'), PSource。PSpecified。初期設定);
encryptCipher。init(Cipher。ENCRYPT_MODE, publicKey, oaepParams);
byte[] encryptedBytes = encryptCipher。doFinal(plainKeyBytes);
返品する Base64。getEncoder().encodeToString(encryptedBytes);
}
3. hashed KEK を生成するには:
AES キーの hash 値を生成 下記のコードスニペットを使用:
公開する staticString getHashValue(byte[] plainKeyBytes) throwsNoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance('SHA-256');
byte[] hashed = digest。digest(plainKeyBytes);
返品するBase64.getEncoder().encodeToString(hashed);
}
4. キーをアップロードするには:
Zoho One にサインインしZoho One 、左側メニューのDirectoryをクリックします。
次にAdmin Panelをクリックし、さらにSecurityをクリックします。
続いてBYOKをクリックし、設定をクリックします。
メモ: すでにキーが追加されている場合は、右側の+ 追加する キーをクリックしてください。
「追加する キー」画面で、キー 名前を入力し、アプリケーションを選択、有効にする場合はavailabilityキーを有効化してください(設定済みのキーが利用できない場合のデータ復旧用)。 また、キー 種類としてアップロードする キーを選択します。
メモ: 1つのキーのみアプリに申請可能で、すでに割り当てられているアプリは利用可能 アプリケーションには表示されません。
「キー 詳細」で、すでに作成済みのEncrypted KEKおよびHashed KEKのいずれかの利用可能な証明書を選択します。
メモ:
証明書を追加するには、+ アイコンを 利用可能 certificates の横でクリックしてください。上記の Java コードスニペットを使用して、暗号化された KEK およびハッシュ化された KEK を生成できます。
ハッシュ化された KEK を .txt ファイルとして参照し、アップロードします。
暗号化された KEK を .txt ファイルとして参照し、アップロードします。
「追加する」をクリックします。
1. BYOK証明書を追加します。
Zoho One にサインインし、Zoho One 次に、左側のメニューからDirectoryをクリックします。
「Security」をクリックします。
「BYOK」をクリックし、右上の「管理 certificates」をクリックします。
「追加する certificates」をクリックし、証明書の一意の名前を入力して、「追加する」をクリックします。 追加した証明書にカーソルを合わせ、ダウンロードするアイコンをクリックしてください。
2. 暗号化されたKEKを生成するには:
前提条件:
'bcprov-jdk18on' jar、バージョンが1.78.1以上または同等であること
以下のJavaコードスニペットを使用し、ダウンロードした証明書ファイルから公開キーを抽出し、キーを暗号化してください。
/**
* @param fileName
* - ダウンロードしたファイル名
* @param plainKeyBytes
* - 作成済みキーのバイト列
* @returns - 暗号化されたキー
* @throws 例外
*/
公開 static String encryptKeyWithPublicKey(String fileName, byte[] plainKeyBytes) throws Exception {
PemReader reader = 新規 PemReader(新規 FileReader(新規 File(fileName)));
PemObject pemObject = reader。readPemObject();
byte[] content = pemObject。getContent();
reader。閉じる();
InputStream fin = 新規 ByteArrayInputStream(content);
CertificateFactory f = CertificateFactory。getInstance('X。509');
X509Certificate certificate = (X509Certificate) f。generateCertificate(fin);
PublicKey pk = certificate。getPublicKey();
byte[] publicKeyBytes = pk。getEncoded();
X509EncodedKeySpec keySpec = 新規 X509EncodedKeySpec(publicKeyBytes);
KeyFactory keyFactory = KeyFactory。getInstance('RSA');
PublicKey publicKey = keyFactory。generatePublic(keySpec);
Cipher encryptCipher = Cipher。getInstance('RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING');
OAEPParameterSpec oaepParams = 新規 OAEPParameterSpec('SHA-256', 'MGF1', 新規 MGF1ParameterSpec('SHA-256'), PSource。PSpecified。初期設定);
encryptCipher。init(Cipher。ENCRYPT_MODE, publicKey, oaepParams);
byte[] encryptedBytes = encryptCipher。doFinal(plainKeyBytes);
返品する Base64。getEncoder().encodeToString(encryptedBytes);
}
3. ハッシュ化された KEK を生成するには:
AESキーのハッシュ値を生成 以下のコードスニペットを使用してください:
公開する staticString getHashValue(byte[] plainKeyBytes) throwsNoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance('SHA-256');
byte[] hashed = digest。digest(plainKeyBytes);
返品するBase64.getEncoder().encodeToString(hashed);
}
4. キーをアップロードするには:
Zoho One にサインインし、Zoho One 左側のメニューから「Directory」をクリックします。
「Admin Panel」をクリックし、次に「Security」をクリックします。
「BYOK」をクリックし、「設定」をクリックします。
メモ: すでにキーが追加されている場合は、右側の「+ 追加する キー」をクリックしてください。
「追加する キー」画面で、キー 名前を入力し、アプリケーションを選択します。設定済みのキーが利用できなくなった場合のデータ復旧に使用する場合は、availability キーを有効にしてください。 また、キー 種類でアップロードする キーを選択してください。
メモ: 1つのキーのみアプリに申請済みであり、既に割り当てられているアプリは利用可能 アプリケーションには表示されません。
「キー 詳細」で、既に作成済みのEncrypted KEKおよびHashed KEKに対応する利用可能な証明書のいずれかを選択してください。
メモ: + アイコンをクリックして証明書を追加できます。利用可能 certificatesの横に表示されます。また、上記のJavaコードスニペットを使用して、暗号化されたKEKやハッシュ化されたKEKを生成できます。
ハッシュ化されたKEKを.txtファイルとして参照・アップロードします。
暗号化されたKEKを.txtファイルとして参照・アップロードします。
「追加する」をクリックします。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。