「暗号化」アクションを使いこなす

Power Automate Desktop
「暗号化」アクションを使いこなす

Power Automate Desktopでは指定したテキストやファイルを暗号化したり、復号(暗号化を解除)したりするためのアクションが用意されています。暗号化とは元のデータや通信内容を不規則な文字列に変換する処理のことを言います。このページでは暗号化に関して用意されている8つのアクションの動きをひとつひとつ確認していきましょう。

(なお、2022/8/17執筆時点でのアクション数であり、今後、利用できるオプションが増える可能性があります。)

1. AESでテキストを暗号化

AESでテキストを暗号化

「AESでテキストを暗号化」を利用すると共通鍵方式でテキストを暗号化することができます。現在の主流の暗号化技術のひとつで、インターネット上のHTTPS通信はAESの技術も使われています。

設定画面を開くと最初にエンコード方式を選択します。エンコードとは文字の変換方式のことで、日本ではUTF-8やSHIFT-JISなどが知られています。続いて暗号化するテキストを入力します。「暗号化キー」は復号するときに必要なキーとなります。詳細では更にセキュリティの強度を高めるためのいくつかの設定ができます。AESはブロック暗号方式と呼ばれ、データを一定のサイズのブロックに分割し、ブロック単位で暗号化します。この時、元データがブロックサイズで割り切れない場合に追加されるのがパディングです。AESでは「PKCS7」がよく使用されます。「キーサイズ」では暗号化キーのサイズを決めます。一般的にはキーの長さが長いほど暗号強度は高まります。「salt」はパスワードをハッシュ化する前に付加するランダムな文字列のことを指します。「初期化ベクトル」は同じデータを毎回違う暗号文に置き換えるための仕組みです。「salt」も「初期化ベクトル」もセキュリティの強度を上げるために利用されます。

AESでテキストを暗号化設定画面

実行すると、下図のように「こんにちは」を暗号化したテキストが取得できます。「salt」と「初期化ベクトル」をONにした場合は、それぞれの値も別途変数に格納されます。

実行後取得変数

2. AESでテキストを解読する

AESでテキストを解読する

「AESでテキストを解読する」を実行すると、暗号化したテキストを復号することができます。設定画面ではまず暗号化時のエンコードを設定してください。同じエンコード方式を選択しないと復号されても文字化けしてしまいます。次に暗号化を解除するテキストを選択します。「解読キー」には暗号化した時のキーを入力します。詳細メニューの「パディング」「キーサイズ」では暗号化した時と同じ方式を選択し、「salt」と「初期化ベクトル」は暗号化時に生成された値を入力します。

AESでテキストを解読する設定画面

実行すると、復号されたテキストを取得できます。文字化けしてしまった場合などは暗号化時と同じエンコード方式になっているかどうかなどを確認しましょう。

実行後取得変数

3. AESでファイルから暗号化

AESでファイルから暗号化

「AESでファイルから暗号化」を利用すると、ファイルの中身を暗号化してテキスト値で取得することができます。設定画面ではまずエンコード方式を選択します。この時、ファイルで使用しているエンコード方式と揃えるようにしてください。続いて暗号化するファイルのフルパスを入力します。「暗号化キー」には復号するときに必要なパスワードを入力します。AESはブロック暗号方式と呼ばれ、データを一定のサイズのブロックに分割し、ブロック単位で暗号化します。この時、元データがブロックサイズで割り切れない場合に追加されるのがパディングです。詳細メニューの「パディング」ではいくつかの選択肢が用意されていますが、AESでは「PKCS7」がよく使用されます。「キーサイズ」は値が大きいほど、一般的にはセキュリティ強度が高まります。「salt」はパスワードをハッシュ化する前に付加される文字列のことを言います。「初期化ベクトル」は同じデータを毎回違う暗号文に置き換えるための仕組みです。「salt」と「初期化ベクトル」のどちらもセキュリティを高めるために利用されます。

AESでファイルから暗号化設定画面

実行すると下図のようにテキストファイルにあった「こんにちは」という単語が暗号化され、テキスト値で変数に取得されます。

サンプルファイル 実行後取得変数

4. AESでファイルに解読する

AESでファイルに解読する

「AESでファイルに解読する」を利用すると暗号化されたテキストを復号した上で、指定したファイルに書き込むことができます。設定画面ではエンコードを指定します。暗号化した時と同じエンコードを選択します。続いて復号させたいテキストを入力します。「解読キー」には「暗号化キー」を入力します。「ファイルに解読する」には復号したテキストを書き込みたいファイルをフルパスで入力します。続いてすでにファイルが存在する場合の挙動について、「上書き」するか、「連番で新しくファイルを作成」するか、「何もしない」かの3つから選択できます。「パディング」「キーサイズ」は暗号化した時の設定を選択してください。「salt」「初期化ベクトル」は暗号化した時に生成された値を入力します。

AESでファイルに解読する設定画面

実行すると、指定したファイルに復号されたテキストが書き込まれます。

実行結果

5. テキストをハッシュ化します

テキストをハッシュ化します

「テキストをハッシュ化します」を利用すると、指定したテキストをハッシュ化することができます。ハッシュ化とは元のデータを不規則な文字列に置換する処理のことを言い、不可逆的な性質を持ちます。この不可逆性が暗号化との大きな違いになります。例えば、ハッシュ化された値(以下、ハッシュ値)を取得したからと言って元のデータを復号することはできません。ただし、ハッシュ化のアルゴリズムはいくつかに集約されているので、推測しやすいパスワードなどのデータを設定していた場合は、推測したパスワードをハッシュ化した値と入手したハッシュ値を比べることでパスワードが盗まれることはあります。

設定画面ではハッシュアルゴリズムを先に選択します。下図にある「SHA256」とはハッシュ化するための関数の1つです。どんな大きな値を入力したとしても戻り値は256ビットになります。次にエンコードを選択します。最後にハッシュ化させたいテキストを入力したら終了です。

テキストをハッシュ化します設定画面

実行したら、下図のように「こんにちは」というテキストがハッシュ化されます。

実行後取得変数

6. ファイルをハッシュ化します

ファイルをハッシュ化します

「ファイルをハッシュ化します」を利用するとファイルの中のテキストをハッシュ化することができます。設定画面ではまずハッシュ化アルゴリズムを選択します。下図のように「SHA512」を選択した場合、ハッシュ関数でハッシュ化した後の戻り値が512ビットになります。次にエンコードを選択します。最後にハッシュ化したいファイルを入力したら終了です。

ファイルをハッシュ化します設定画面

実行すると下図のように「こんにちは」というテキストをハッシュ化した値を取得できました。

サンプルファイル 実行後取得変数

7. キーを使ってテキストをハッシュ化

キーを使ってテキストをハッシュ化

「キーを使ってテキストをハッシュ化」では、単にテキストをハッシュ化させるのではなく、決まった計算式のもとテキストとキーを組み合わせてハッシュ化を行います。設定画面ではまずハッシュ化させるアルゴリズムを選択します。「HMAC」はHash-based Massage Authentication Codeの頭文字をとったもので、データ転送時のデータの破損や改ざんの検出などに力を発揮します。また、キーという要素が追加されることによって、単にハッシュ化させるよりもセキュリティが向上します。「エンコード」では文字を変換する形式を選択してください。「ハッシュ化するテキスト」では対象のテキストを入力します。最後にキーを入力したら終了です。

キーを使ってテキストをハッシュ化設定画面

実行すると、「こんにちは」という文字がハッシュ化されます。同じ「こんにちは」というテキストでも「テキストをハッシュ化します」アクションのときとは値が異なるのが見て取れると思います。

実行後取得変数

8. キーを使ってファイルをハッシュ化

キーを使ってファイルをハッシュ化

「キーを使ってファイルをハッシュ化」を利用するとファイルの中のテキストをキーと組み合わせてハッシュ化させることができます。設定画面では最初にハッシュ化させるアルゴリズムを選択します。続いてエンコード方式を選択してください。「ハッシュ化するファイル」では対象となるファイルを入力してください。最後に「ハッシュキー」を入力したら終了です。

キーを使ってファイルをハッシュ化設定画面

実行してみると、下図のようにテキストがハッシュ化されます。同じ「こんにちは」というテキストをハッシュ化させましたが、キーがあるので「ファイルをハッシュ化します」アクションとは異なる結果になるのがわかります。

サンプルファイル 実行後取得変数

以上、「暗号化」についての解説でした。サーバー攻撃の件数は年々増えており、2021年は前年比で85%国内の攻撃件数が増えたそうです。自社の情報資産を守るためにもセキュリティへの備えはますます必要となっていくでしょう。データの暗号化に関する理解も深めてより安全なRPAを作成できるようになってください。

→「Power Automate Desktop」の他の操作も見る

執筆者プロフィール

プロフィール画像

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。

タイトルとURLをコピーしました