Google reCAPTCHAとはユーザーが人間かロボットかを判定するサービスです。v2は画像選択により判断しますが、v3はユーザーの振る舞いから判断します。
この記事では、Google reCAPTCHA v3 が実装されたウェブサイトをRPA Power Automate Desktop でログインできるか、検証してみました。
そもそも Google reCAPTCHA v3 とは
そもそもGoogle reCAPTCHA v3 とはどのように人間かロボットかを判断するのでしょうか。
以下のGoogle検索セントラルブログに記載がありました。
「アクション」を使ったより正確な bot 検出
reCAPTCHA v3 では、「アクション」タグという新しいコンセプトが導入されています。このタグを使用することで、ユーザーの一連の操作における主要なステップを定義でき、コンテキストをふまえたリスク分析が reCAPTCHA によって実現します。
つまり、reCAPTCHAが導入されているページ内で行われるユーザーの一連の操作を「アクションタグ」というコンセプトで分析して、コンテキストをふまえて、人間かロボットかを判定するもののようです。
ログインページの概要
今回RPAとreCAPTCHAに競っていただくバトルフィールド、もといログインページは以下の構成になっています。
メールアドレスとパスワードを入力して、ボタンをクリックすだけの簡単なページです。
ログイン画面としてはよくありそうな構成ですが、それだけユーザーに求めるアクションが少ないです。アクションが少ないということはreCAPTCHA側が不利になるでしょうか。
Power Automate Desktopのコード
Power Automate Desktop はMicrosoftのRPAです。個人利用であれば無料で利用することができますので、今回の検証で使用させていただきました。
ここまでの機能を無料で使用させて頂けるなんて、素晴らしいですね。
コードはとっても簡単です。
- 開発検証用のページをChromeで開く
- ログイン画面に遷移するリンクをクリックする
- ユーザーIDのテキストボックスにフォーカスを当てる
- ユーザーIDを入力する
- パスワードのテキストボックスにフォーカスを当てる
- パスワードを入力する
- ログインボタンをクリックする
Google reCAPTCHAのコード
Google reCAPTCHAは以下の記事で作成したコードを一部変更しています。
変更箇所は、判定関数の最後に以下を標準出力するようにしています。
- 人間と判定されれば「You are human」と出力する
- 人間と判定されなければ「You are not human」と出力する
いざ、検証!!
・・・・・・あっさりログインできましたね。
スコアはどうだったのか?
スコア分布とは、0.0(不正なトラフィック)から1.0(安全なトラフィック)で表され、サイト内でのアクションが不正か安全かをスコアづけしたものです。
今回のRPAによるアクションについては、0.9であり1.0(安全なトラフィック)に近い数値になりました。
人間っぽくない動きをさせてみる
人間っぽくない動きをさせることでロボットと判断されるか検証してみましょう。
具体的にどうするかというと、メールアドレスとパスワードを保存するチェックボックスを連続して10回くらいクリックさせてから、ログインしてみます。
Power Automate Desktop のコードはこのようになりました。
- 開発検証用のページをChromeで開く
- ログイン画面に遷移するリンクをクリックする
- ループを開始(10回ループする) ←追加部分
- チェックボックスをクリックする ←追加部分
- ループを終了 ←追加部分
- ユーザーIDのテキストボックスにフォーカスを当てる
- ユーザーIDを入力する
- パスワードのテキストボックスにフォーカスを当てる
- パスワードを入力する
- ログインボタンをクリックする
いざ再検証!!
・・・こちらもあっさりログインできました。
スコア確認
実行回数は1回だけでしたけど、スコアは0.9とほぼ安全なトラフィックと判定されました。
まとめ
RPAがブラウザを操作するスピードは人間の操作スピードと同じくらいですので、そりゃ人間かRPAかの判断なんて難しいなと思います。
入力の項目数を増やして、操作スピードも人間業じゃないくらい早くなれば、ロボットと判定されるかもしれません。
コメント