SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Data Tech 2024

2024年11月21日(木)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

ここから始めよう SQL Server 2016 新機能

Always Encrypted 登場!(後編)

 こんにちは、日本マイクロソフト プレミアフィールド エンジニアの本間です。前編に引き続き、Always Encryptedについて紹介を続けていきます!後編では、予告した通り、既に作成してある簡単なサンプルアプリケーションとデータを、Always Encryptedに対応させる流れを見てみたいと思います。

サンプルアプリケーション

 サンプルアプリケーションは、引数としてnameを1つ取って下記のテーブルに対してクエリを実行し、該当レコードを表示するという、とても単純なアプリケーションとなります。

表1) customers テーブルのデータ
表1) customers テーブルのデータ

 .NET Framework 4.5.2を使用したコンソールアプリケーションで、実行すると以下のように素っ気なく、該当レコードを表示してくれます。

図1) 実行イメージ
図1) 実行イメージ

 ……えっと、まあ、なんというか、アレな感じですが、普段コード書かない仕事なので、今回はこれくらいで勘弁してください(涙)。

 動作としては、上記のようなとても簡素ですが、移行シナリオの都合上、きちんと以下のことは実装しています。

 1) 引数をSqlParameterとしてバインドしている

 2) 接続文字列はConfigurationファイルから読み込んでいる

 さて、サンプルアプリケーションについて説明したところで、早速Always Encrypted対応を進めていきます。

暗号化するカラムと暗号化の方式を考える

 Always Encryptedでは、下記の表のように2種類の暗号化の方式をサポートしています。前述のとおり、customersテーブルは、3つのカラムを持っていますので、これらのカラムの内、どのカラムをどの方式で暗号化するか検討します。

表2) サポートする暗号化方法
表2) サポートする暗号化方法

 Randomized encryptionの方が、より安全ということになりますが、検索条件としては使用できないので、適用するカラムを選ぶ必要があります。

 今回のサンプルアプリケーションでは、nameカラムを検索条件としているので、必然的にnameカラムの暗号化方式はDeterministic encryptionになります。cardnumberカラムについては、どっちでもいいのですが、まあ、折角なのでRandomized encryptionを選ぶことにします。

 さて、既存のアプリケーションである以上、すでにテーブルも存在しており、データを保持した状態です。この状態から、直接ALTER TABLE等でAlways Encryptedに対応したテーブルに変更はできません。SQL ServerはCMKにアクセスできないので、CEKを使用してデータを暗号化できないですからね。

 ということで、一旦、別の名前でテーブルを作りましょう。こんな感じで、nameカラムとcardnumber カラムをCEKを使用して暗号化カラムとして指定します。

図2) テーブル作成クエリ
図2) テーブル作成クエリ

次のページ
暗号化しながらのデータの移行

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
ここから始めよう SQL Server 2016 新機能連載記事一覧

もっと読む

この記事の著者

本間崇(ホンマタカシ)

 日本マイクロソフト株式会社
 プレミアフィールドエンジニアリング
 プレミアフィールドエンジニア 2001年5月にMicrosoftに入社以来、2015年5月までサポート部門で、サポートエスカレーションエンジニアとして勤務していました。現在は、プレミアフィールドエンジニアとして、密やか...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/7965 2016/05/10 06:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング