Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

暗号化に関するその他の情報

ここでは、InterSystems IRIS® データ・プラットフォームでの暗号化に関するその他の情報を紹介します。

キー・ファイル暗号化情報

データベース暗号化の管理者名は、キー・ファイルに平文で保存されています。データベース暗号化の管理者パスワードは保存されていません。パスワードを入力すると、他のデータと共にそれを使用してキー暗号化キーが生成されます。有効なパスワードを第三者が推測できる場合、そのパスワードのポリシーは脆弱すぎます。キー暗号化キーは、512 ビットの salt と 65,536 回の反復処理を使用する PBKDF2 アルゴリズムを使用して生成され、ディクショナリおよび総当り攻撃を実行不可能にします。

暗号化、ハッシュ、およびその他のキー関連操作を実行するための呼び出しについて

InterSystems IRIS では、%SYSTEM.EncryptionOpens in a new tab クラスのさまざまなメソッドを使用して、データ暗号化、Base64 エンコーディング、ハッシュ、およびメッセージ認証コードの生成に関連するアクションを実行できます。これには、AES 暗号化、各種の RSA アルゴリズム、SHA-256 ハッシュ関数などを呼び出すメソッドが含まれます。いくつかの呼び出しを以下に示します。

RSAEncrypt および RSADecrypt の使用例

以下に、RSAEncrypt および RSADecrypt の呼び出しの使用例を示します。これは以下を前提としています。

  • コードは Windows で実行されます。

  • 使用可能な証明書、秘密鍵、および認証機関 (CA) 証明書があります(この例を試すには、これらを入手する必要があります)。

  • これら 3 つのアイテムはすべて C:\Keys\ ディレクトリにあります。

処理の詳細は、例の中のコメントを参照してください。

 set dir = "C:\Keys\" 

 // certificate for the instance performing encryption and decryption
 // and private key associated with that above certificate 
 set cert = dir_"test.crt" 
 set key = dir_"test.key" 

 // certificate for the CA of the instance
 set cacert=dir_"ca.crt" 

 set data = "data to be encrypted" 

 // create a local set of X.509 credentials with the 
 // certificate and private key
 set credentials = ##class(%SYS.X509Credentials).%New() 
 set credentials.Alias="TestCreds" 
 write credentials.LoadCertificate(cert) 
 write credentials.LoadPrivateKey(key) 
 write credentials.Save(),! 

 // encrypt the data using the public key in the certificate, write it 
 // to the display, and display error information, if there is any
 set ciphertext=$System.Encryption.RSAEncrypt(data,credentials.Certificate,cacert) 
 write ciphertext,! 
 write $System.Encryption.RSASHA1GetLastError() 
  
 // decrypt the data using the private key, write it to the display,
 // and display error information, if there is any
 write "now decrypting -=-=-=-=-=-=-=-=-=-=-",! 
 set cleartext=$System.Encryption.RSADecrypt(ciphertext,credentials.PrivateKey) 
 write cleartext,! 
 write $System.Encryption.RSASHA1GetLastError() 
FeedbackOpens in a new tab