
FileMakerエンジニア

4月になりました。4月といえば新年度、2025年度の始まりです。
年度とは暦年の新年とは別に、それぞれの目的に合わせて決められた1年の区切りを言います。
ところで、なぜ年度は4月から始まるのかご存じでしょうか。
由来は諸説あるそうですが、遡ると明治時代に4月の年度制が導入されており、始まりが4月ではない年度もあったそうですが、最終的に4月に落ち着いたとか。
認識が統一されていると、管理や物事がスムーズに運べますよね。
FileMaker(ファイルメーカー)においても、認識を合わせるためのなぜ、というものはつきものです。
今回のBriller FileMaker Laboratory(BFL)も、そのなぜを追って、新たな知見を得ていきたいと思いますのでよろしくお願いします。
目次
テーマ
今回のテーマは「様々な暗号化関数の調査」です!
実はFileMaker(ファイルメーカー)には、暗号化できる関数が複数あります。
例えば4月になると新入生や新卒といった人の入れ替わりが多くありますが、個人情報を管理する上で、必要に応じ情報を暗号化しなければならない。と、いうこともあると思われます。
そんなとき、いざ暗号化しようと思っても、どうやればいいのかわからない、なんてこともあるかもしれません。
なので今回は、暗号化にはどういったものがあるのか、どう使えばいいのかを、実際に試していきたいと思います。
暗号化について
暗号化(encryption:エンクリプション)とはそもそもどういうことか。
簡単に説明しますと、情報を他者に見られてもわからないように変換することを言い、一般的には暗号化したい情報(平文)を暗号文に置き換え、暗号を戻すためのキーとなる情報(暗号鍵)を用いることで、暗号化前の状態に復元(復号)し、利用することができます。
詳しくはe-Wordsの暗号化の記事を参照ください。
FileMaker(ファイルメーカー)においても基本的には上記の流れで暗号化を行います。
FileMakerの暗号化関数について
正確にはFileMaker(ファイルメーカー)のオブジェクト関数になりますが、便宜上暗号化関数と称します。
関数 | 説明 |
CryptAuthCode | 指定された暗号化ハッシュアルゴリズムを使用してバイナリ HMAC (Keyed-Hash Message Authentication Code) を返します。 |
CryptDecrypt | 指定されたキーでオブジェクトデータを復号してテキストまたはオブジェクトデータを返します。 |
CryptDecryptBase64 | 指定されたキーで Base64 エンコードテキストを復号してテキストまたはオブジェクトデータを返します。 |
CryptDigest | 指定された暗号化ハッシュアルゴリズムにより生成されたバイナリハッシュ値を返します。 |
CryptEncrypt | 指定されたキーでデータを暗号化してオブジェクトデータを返します。 |
CryptEncryptBase64 | 指定されたキーでデータを暗号化して Base64 フォーマットのテキストを返します。 |
CryptGenerateSignature | データのデジタル署名を生成します。 |
CryptVerifySignature | デジタル署名がこのデータに対して有効かどうかを検証します。 |
ハッシュ化について
今回はあまり多くは触れませんが、暗号化とは別にハッシュ化という手法があります。
ハッシュ化は暗号化と違い、不可逆的な変換であるため、復号による利用ではなく、データの同一性を確認するために利用されます。
ハッシュ化を行うためのアルゴリズムをハッシュ関数といい、FileMaker(ファイルメーカー)では下記のハッシュ関数が利用できます。
・MD5
・SHA1
・SHA224
・SHA256
・SHA384
・SHA512
このうちMD5、SHA1は現在では脆弱性があるため利用は非推奨とされています。
しかしながらこれまでの仕組みに組み込まれていたりすると、継続して利用しなければならない状況もあるため、非推奨ではありますが使えないわけではありません。
2025年現在ではSHA256、SHA384、SHA512が推奨(電子政府推奨暗号リストより)されており、中でもSHA256かSHA512が一般的なので、特に理由がなければそちらを利用することをおすすめします。(SHA256よりSHA512の方がより安全ですが、SHA256のセキュリティレベルでも十分とされています)
環境
検証するにあたっての環境を紹介します。
今回もスペックは関係ないので外しております。
ソフトウェア:FileMaker Pro 21.1.1.41
OS:Windows 11 Pro(24H2)
検証方法
ファイルの準備
まずは下図のようなファイルを用意します。
こちらは暗号化関数で使用するデータを入力するためのフィールドになります。

スクリプトの用意
次にスクリプトを用意します。
スクリプトは関数フィールドによる条件分岐で、各種暗号化処理による結果を表示します。

レイアウトの用意
最後にレイアウトを用意します。
1レコード毎に関数と入力値を設定することで、スクリプトを起動させて結果を確認します。

検証の手順
検証の手順として、先にハッシュ化、暗号化、署名生成を行う以下の関数の結果を確認します。
・CryptAuthCode
・CryptDigest
・CryptEncrypt
・CryptEncryptBase64
・CryptGenerateSignature
上記の結果の情報から復号、署名検証を行う以下の関数の結果を確認します。
・CryptDecrypt
・CryptDecryptBase64
・CryptVerifySignature
検証結果
ハッシュ化


暗号化


署名生成

復号


署名検証

まとめ
【ハッシュ化について】
CryptAuthCodeはhmac.data、CryptDigestはdigest.dataがオブジェクトフィールドに作成されました。
テキストが「FileMakerシステム開発ならブリエ」で、アルゴリズムが「SHA256」、CryptAuthCodeの場合、キーが「BFL」ならば、同じファイルが作成されるので、こちらを利用することで入力されたデータが同じものであるか確認することができます。
【暗号化について】
CryptEncryptではオブジェクトデータ、CryptEncryptBase64ではテキストデータとして暗号化したものをCryptDecrypt、CryptDecryptBase64でぞれぞれ復号すると、同じ「FileMakerシステム開発ならブリエ」のテキストが結果として得られました。
キーが同じ「BFL」でないと暗号化した情報の復号はできないため、セキュリティ性が向上しているのがわかります。
【署名生成について】
デジタル署名は情報を暗号化し、本人性、同一性があることを証明する仕組みです。
データとアルゴリズムの設定はハッシュと同様ですが、キーの持ち方が秘密鍵と公開鍵に分かれており、署名の作成と検証でそれぞれのキーが必要となります。(作成はOpenSSLなどで行います)
CryptGenerateSignatureでは結果として、signature.dataという署名ファイルが作成されました。
こちらをCryptVerifySignatureを使って、データを検証したところ、一致しているデータなので結果に1(真)が返ってきました。
FileMaker(ファイルメーカー)における暗号化関数の内容は以上のものとなります。
暗号化と言ってもやり方は様々で、ハッシュやデジタル署名を使って検証するのか、暗号文に変換し、復号して利用するのかといった、状況に応じて使い分ける必要性があることがよくわかりました。
暗号化に対する知識もそうですが、FileMaker(ファイルメーカー)で実際に使ってみて、どういう風になるのかといったことに関しては、私自身もあまり経験はなかったため、今回の調査で理解を深められたこと、大変ありがたく思います。
システムのセキュリティへの配慮は、そのまま企業のセキュリティ意識に直結します。
サイバー犯罪が増加する昨今、対策はできるだけ行った方がよいので、今回のBFLもそんな皆様の意識を促す一助になれば幸いです。
以上が【BFL vol.5】FileMakerの様々な暗号化関数を使ってみたの検証となります。
ここまで読んでくださって誠にありがとうございました。また次回のBFLもお楽しみに!
また、株式会社ブリエでは、FileMakerを活用したシステム開発や運用支援を行っています。
業務システムのセキュリティについてのご相談もお気軽にお問い合わせください。

株式会社ブリエFileMakerエンジニア。ローコード開発を筆頭にプロコードからフロントエンドまで、多種多様な開発経験を活かしたフットワークの軽さが自慢のオールラウンダー。より便利に、より使いやすいUI/UXデザインをモットーに、新しい分野にも積極的に挑戦することで、あらゆるニーズに柔軟に対応できるよう、日々勉強を続けております。