キーをアップロードする場合の手順は次のとおりです。
通常の運用ポリシーに従い、データは当社が管理する DEK を使用して暗号化され、当社の KMS に保存されます。さらに、その DEK は当社の KEK を使用して暗号化され、別サーバーに保存されます。
お客様の KEK をアップロードするには、当社が提供する証明書から公開キーを抽出し、その公開キーを使用してお客様のキーを暗号化およびハッシュする必要があります。
暗号化済み KEK とハッシュ化された KEK を Zoho Directory にアップロードします。
当社は自社の KEK を使用して DEK を復号し、平文の DEK を取得します。
取得した平文の DEK を、お客様が提供した KEK を使用して暗号化します。
Zoho Directory にサインインします 。
Admin Panel をクリックし、続いて Security をクリックします。
BYOK をクリックし、右上の 管理 certificates をクリックします。
追加する certificates をクリックし、証明書に一意の名前を入力して、追加する をクリックします。 追加した証明書にカーソルを合わせ、ダウンロードアイコンをクリックします。
'bcprov-jdk18on' jar のバージョンが 1.78.1 以上であること
次の Java コードスニペットを使用して、ダウンロードした証明書ファイルから公開キーを抽出し、キーを暗号化します。
クリック here to 表示する the 完了 コード snippet
/**
* @param fileName
* - ダウンロードしたファイル名
* @param plainKeyBytes
* - 生成済みキーのバイト配列
* @return - 暗号化されたキー
* @throws Exception
*/
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 = new X509EncodedKeySpec(publicKeyBytes);
KeyFactory keyFactory = KeyFactory.getInstance('RSA');
PublicKey publicKey = keyFactory.generatePublic(keySpec);
Cipher encryptCipher = Cipher.getInstance('RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING');
OAEPParameterSpec oaepParams = new OAEPParameterSpec('SHA-256', 'MGF1', new MGF1ParameterSpec('SHA-256'), PSource.PSpecified.DEFAULT);
encryptCipher.init(Cipher.ENCRYPT_MODE, publicKey, oaepParams);
byte[] encryptedBytes = encryptCipher.doFinal(plainKeyBytes);
return Base64.getEncoder().encodeToString(encryptedBytes);
}
以下のコードスニペットを使用して AES キーのハッシュ値を生成します
public static String getHashValue(byte[] plainKeyBytes) throws NoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance('SHA-256');
byte[] hashed = digest.digest(plainKeyBytes);
return Base64.getEncoder().encodeToString(hashed);
}
Zoho Directory にサインインします Zoho Directory 。
[Admin Panel]をクリックし、次に[Security]をクリックします。
メモ: すでにキーが追加されている場合は、右側の[+ キーを追加]をクリックします。
[キーを追加]画面で、キー名を入力し、アプリケーションを選択し、キー種別で[キーをアップロード]を選択します。
[キーの詳細]で、すでにEncrypted KEKとHashed KEKを作成済みの利用可能な証明書のいずれかを選択します。
メモ: [+]アイコンを[利用可能な証明書]の横でクリックして証明書を追加し、上記の Java コードスニペットを使用して Encrypted KEK と Hashed KEK を生成することもできます。
Hashed KEK を .txt ファイルとして参照してアップロードします。
Encrypted KEK を .txt ファイルとして参照してアップロードします。
[追加]をクリックします。
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。