大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介

大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介
Satoshi Kobayashi • Tokyo, Japan • Japanese • Talk

Date: October 26, 2024
Published: December 10, 2024
Announced: unknown

https://kaigionrails.org/2024/talks/f-world21/

【発表概要】
近年WEBサービスに対する攻撃が増しており情報漏洩などが相次いでいますが、漏洩した場合の被害を抑える手法の1つにデータの暗号化があります。
RailsにはActiveRecord Encryptionという組み込みの暗号化機構がありますが、デフォルトの使い方では暗号鍵を人間が管理する必要があり依然として流出のリスクがあります。

暗号化の安全度を高めるためには
1)AWS等が提供するKMS(Key Management Service)などを使い暗号鍵の管理をオフロードする
2)個人情報やクレジットカード番号、マイナンバーのような最重要情報を保存する場合にはレコードごとに異なる暗号鍵を使う
といったさらなる工夫が必要ですが、現状のActiveRecord Encryptionでこれらを実現するにはかなりのカスタマイズが必要になります(2はそもそも実現できない)。
またビジネス要件として暗号化はしたいが検索もしたい場合もあります。

本発表ではRailsにおけるActiveRecord Encryptionを含めその他の暗号化手法を併せて紹介し、attr_encrypted gemを用いて上記のような複雑な要件を満たす方法や、永続化層では暗号化しつつ検索可能にする実装方法についても紹介します。
本発表を通じて各暗号化手法のメリット・デメリットや使い所を理解して頂くことを目的とします。

【発表者】
小林悟史(小林ノエル)
GitHub https://github.com/f-world21

Kaigi on Railsは、初学者から上級者までが楽しめるWeb系の技術カンファレンスです。
https://kaigionrails.org/

Kaigi on Rails 2024

Explore all talks recorded at Kaigi on Rails 2024
+31