福民データの安全性を高めるため、Salesforceプラットフォーム上はいろんな仕組みが提供されています。プログラミングユーティリティとして、CryptoというApexクラスも用意されています。クラスのメソッドは、機密データの暗号化と復号、ダイジェスト、メッセージ認証コード、および署名の作成を行うための標準アルゴリズムを提供します。外部サービスと統合するために使用できます。普段は使う機会があまりないので、このクラスの使い方について少し調べてみました。機密データとは国や業界などにもよりますが、一般的に下記のデータが機密データとみなされます。アドレス、シリアルナンバー、IPアドレスなど)機密データを収集、処理するときに特別な手順が必要になります。機密データを収集、処理するときに特別な手順が必要になります。Cryptoクラスの概要Cryptoクラスは通常、以下のセキュリティ性を強化するために使用されます。Standard)アルゴリズム(AES128、AES192、およびAES256)を使用してデータを暗号化および復号する機能で構成されています。現在、AESアルゴリズムを使用した対称秘密鍵暗号化のみがサポートされていますので、暗号化と復号が同じ鍵を使用します。暗号化はデータ保護のみを提供しますが、送信者を認証せず、メッセージの整合性も保証しません。一方向ハッシュ関数を使用してデータを固定長でユニークな「ダイジェスト」に変換します。ダイジェストは一意であるため、送信されたダイジェストを同じアルゴリズムを使用して受信されたデータから計算されたダイジェストと比較することによって、データの完全性を保証できます。Codes)関数は、ダイジェストを生成したあと、秘密鍵を使用してダイジェストを暗号化します(共通鍵暗号方式)。秘密鍵が受信者にも共有され、受診者は共有秘密鍵を使用してMACを復号して、データが改竄されていないことを確認できるとともに、正しい送信者から送られたものであるという認証も可能となります。デジタル署名の生成デジタル署名は、非対称鍵(公開鍵、秘密鍵)を使用してメッセージの整合性と信頼性の両方を保証します。送信者はダイジェストを生成し、それを秘密鍵に使用して暗号化します。次に、受信者は公開鍵を使用してダイジェストを復号し、受信メッセージから生成されたダイジェストと比較します。以下は、Cryptoクラスの各メソッドでサポートしているさまざまな業界規格です。RSA-SHA1、RSA-SHA256以下暗号化と復号およびデジタル署名の実装について少し詳しくお話します。Cryptoクラスのメソッドは、AESアルゴリズムを使用して暗号化および復号化する機能を提供します。秘密鍵をApexコードにハードコードしていけません。設定)に配置する必要があります。Cryptoクラスは、sign()メソッドを使用してデジタル署名をサポートします。秘密鍵と公開鍵が必要なので、まずopenSSLを使って鍵を生成します。Windows用OpenSSLのインストーラーは下記のサイトからダウンロードできます。#8形式でなければなりません。下記のコマンドで秘密鍵の形式を「pkcs8」に変換します。クラスの構成と基本的な使い方を説明しました。如何でしたでしょうか。興味のある方はぜひ使ってみてください。クラスTerraSkyBaseについてTerraSkyBaseはクラウドサービスを手掛ける株式会社テラスカイのコンテンツプラットフォームです。