#1 マトリクス認証とは ~Python + GoogleChrome + Selenium でマトリクス認証を突破する~

長編になりそうなので、全4回で記載します。

1. マトリクス認証とは ← 今回
2. SeleniumでWebを自動操作してみる
3. マトリクス認証でパスワードを自動入力する
4. Seleniumをexeファイル化し、クリック1つで認証を完了させる

注意事項

* クラッキング目的ではありません。あくまで個人目的で使用しましょう。
* プログラムが流出するとマトリクス認証を破られます。管理には気を付けてください。
* テストには自分で作成したWebサイトを使用します。エンタープライズのマトリクス認証でテストをするのは避けましょう。

マトリクス認証とは

自分が登録した位置順番に書かれている数字を入力する認証方法です。
f:id:lc-xx16:20200504144716p:plain

上記図のように黄色の網掛けの位置情報と、赤矢印の順番を利用しパスワードを入力します。乱数表(マトリクス表)はアクセスごとに変化するため、パスワードも同時に変化します。(OTP認証) f:id:lc-xx16:20200504144931p:plain

2回目にアクセスした場合のサンプルです。マトリクス表が変化しています。2回目のログインの際には、「2636148023」を入力する必要があります。

この仕組みによりOTP認証を実現しています。マトリクス認証はショルダーハックパスワード流出への強度が高いと言われています。

マトリクス認証を使ってみた個人的の感想

* Webブラウザのパスワード自動入力が使えないためパスワードを毎回入力するのが面倒 パスワードの自動入力ができるのは従来の固定長パスワード認証方式の場合です。今回のように毎回パスワードが変化し、使い捨てするワンタイムパスワードでは使えません。

* 久々に開くと位置と順番を忘れている
記憶力の問題ですね。ただ同じように苦しむ人もいるのではないでしょうか。

マトリクス認証を楽に突破できる方法を考える

Web上でのマトリクス認証の場合、以下のようにHTMLのテーブルでマトリクス表を実現しているケースがあります。

<table border = "1" style="border-collapse: collapse">
        <tr>
            <td width="20px" align="center">2</td>
            <td width="20px" align="center">4</td>
            <td width="20px" align="center">8</td>
            <td width="20px" align="center">1</td>
            <td> </td>
            <td width="20px" align="center">5</td>
            <td width="20px" align="center">9</td>
            <td width="20px" align="center">1</td>
            <td width="20px" align="center">0</td>
            <td> </td>
            <td width="20px" align="center">8</td>
            <td width="20px" align="center">0</td>
            <td width="20px" align="center">9</td>
            <td width="20px" align="center">2</td>
        </tr>
        <tr>
            <td width="20px" align="center">5</td>
         .
         .

※マトリクス表が画像で表示されるケースは今回の対象外です。

パスワード値は変化するけれど、位置と順番は変わらない。」このマトリクス認証の特徴を利用して, Seleniumを使ってマトリクス認証を自動突破する方法を考えていきます。 詳しいSeleniumの説明、セットアップの仕方は第2回「Python + GoogleChrome + Seleniumのセットアップをする」で。