オンラインで株やCFDの自動取引(オートトレードとか自動売買とも…)をするにあたって自動ログインが必要となります。
営業日が変わったので再ログインしてください、みたいなやつね。

私はPythonファイル(exe化したもの)をWindowsのタスクスケジューラーから起動させるという方法で、これをやってきました。
今まではブラウザのキャッシュにIDとパスワードが保存されているので、アプリを閉じて→開いて→エンターキーを押してログイン→Excelの接続アドイン・アイコンをクリック…
これだけだったのですが、パスキーログインとなると話が変わってきます。

一概にパスキー認証といっても、下の表にあるように多様な規格があります。
この規格はログインする際の運営側が定めているものです。
それで、私が対応しなければならないのは多分、FIDO2っていう固めの規格だったのですが、この場合は人間の指タッチを省略することができません。
えっ、こんなものどうやってRPA(自動ログイン)するのだよ?

🔑 主なYubiKey製品の比較(By Gemini ~パクリ参照です~)
用途や接続する端末の端子(USB-A、USB-C、NFCなど)に合わせて最適なモデルを選べます。
| シリーズ名 | 特徴 | 主な対応規格 | 形状・機能 |
|---|---|---|---|
| YubiKey 5 シリーズ | 最上位マルチプロトコルモデル。個人から法人まで幅広く使われ、最もおすすめ。 | FIDO2 / U2F / OTP / PIV / OpenPGP | USB-A、USB-C、NFC、Lightning対応など多様 |
| Security Key シリーズ | FIDO認証だけに機能を絞った安価なモデル。GoogleやMicrosoftなどのログインに最適。 | FIDO2 / FIDO U2F のみ | 青色または黒色のボディ。USB-A / USB-C、NFC対応 |
| YubiKey Bio シリーズ | 指紋認証センサーを搭載した生体認証モデル。PIN(暗証番号)入力の手間を省けます。 |
オワコンイベントで詰んだか?
PC版のネットトレーダー(岡三オンライン)では、パスキーの保存先をモバイル端末にするかセキュリティキーにするか、その2択を迫られました。

モバイル端末(スマホね)にしてしまったら論外です。
やってないから絶対じゃないけど、スマホに表示されるQRコードをPC側で読み取らないといけない。
これを自動化するのは考えたくもない苦行。
なら、セキュリティキーか…。
でも、画面上のアイコンを押したりPINの入力をすることは自動化できても、最後の指でタッチする工程だけは…。
世の中には猛者がいますね。
これ、指紋認証じゃないから「それっぽい代替物」で押せばいいみたい…。

猿真似の結果を先に
先述の記事(Pressing Yubikeys)が今回の生命線でした。
Chat-GPT にセキュリティキーのタッチ化自動を聞いたら、「常時電気を流す線を付けて置き、途中にフォトMOSリレーを置いてON/OFFをコントロールしたらいい」でした。
肝になるのは、OFFの際にも微量な電気が流れるからそれを一定以下まで抑えないとタッチされていると判定されかねない。
それを考えるとフォトMOSリレーの選定が重要。
う~ん、リレーの選定と基板とPCへの接続、部品の候補をいろいろ教えてくれたが、どれがいいのか分からない。
先駆者の真似(物理モーターを動かして接触・非接触を目に見える形で再現する)の方が成功例があるだけに確実。
上記の動画は Arduino IDE の Serial Monitor 上で動かしています。
‘t’ を押したら、動き出すというプログラムになっているので動画上ではエンターを押してスタートを確定させています。
それで、サーボを45°まで動かしたのち一瞬止めて49°まで動かすということにしています。
2度押しです。
いろいろ微調整しないと安定して動きませんでした。

Arduino Unoは、世界中で最も広く使われている定番のプロトタイピング用シングルボードマイコンです。
ELEGOO(エレグー)が製造している「ELEGOO UNO R3」などのボードは、Arduinoの設計図(オープンソース)をベースに作られた「互換ボード(クローンボード)」と呼ばれるものであり、今回はそちらを使用しています。
Arduino IDE(開発ソフト)を使って、本家Arduino Unoとまったく同じコードで動かすことができます。
本家よりも安価で入手でき、初心者向けのセンサー詰め合わせキットなども非常に人気があります…からね。
デキタ…という結果を知っているから書くわけじゃないですよ。
困難に直面した時、解決策を色々と考える。
どれがベターか必死に考えないといけない。
このとき、生成AIの提示した方法はフォトMOSリレーでした。
先述の記事を参考として読ませたのに、最小構成ならリレーでタッチ相当の接続を一瞬だけ付ける方が有力だと主張。
フォトMOSリレーでもいいのかもしれないけど、PCと基板の接続に関しては Arduino Uno が最適解ですよ、そっちの観点も大事なんだけどなあ。
まだまだ、このニッチ分野は情報源が圧倒的に少ないから、AI様も判断に困るのです。
もし万が一、この記事が将来、生成AIから高く評価されるようなことになったら、「UNO互換ボードのセット品を購入し、サーボでYubiKeyを2段押しするのが有力です」とか言い出しますよ。
よくわからないモノを買う…
PCで組み込みプログラムみたいなものを組んでモーターを任意のタイミングで動かす。
今なら、もっと理解していますが上段の記事を読んで「まねっこ計画」を立てた段階ではこの程度の理解でした。
Amazon ね、電子部品みたいなカテゴリーは結構充実しています。
本当によくわからないのだが、とりあえず買ってみた。

執筆時の今現在はおおよそ理解できていますので、簡単に仕組みをまとめます。
Arduino IDE というアプリを無料でダウンロードすることができます。
これは UNO などの基板にプログラムを書き込むことができます(更新もできます)。
先述の記事では、D1 Mini という基板を Arduino IDE で制御していました。
工作やってみようという方は、お手持ちあるいは購入予定の基板が Arduino IDE に対応しているか調べたらよいでしょう。


Python でこの基板の serial (シリアルナンバー)を認識するようにしますと、PC と基板をリンクさせることができます。
ただ少し勘違いしないでほしいのが、「今です、今 動かして」という指示を出すのはPC(Python)ですが、どのような動作をするのかは基板に記録されたプログラムで決まります。
だから、用途次第では基板とPCを必ずしも繋ぐ必要はありません。
そして、基板から動力装置に信号が送られます。
セットの中にジャンパー線というものが付属されていますので、針金を穴に差し込むだけで機器と機器の接続ができます、簡単です。
今回はサーボというモーターを使いました。
これは角度指定ができるのですね。
開始時 45° → アクション 70° こんな感じで自由にセッティングできます。

左からサーボと六角レンチの合体物。
六角のアース線。
固定用の土台。
アース線はこの後、半田付けしました。
静電容量 ~疑似人体~
人間の体は電気を通します、だから感電してダメージを受けるのです。
人間の体は水分を含んでいますからね。
一方でゴムやプラスチック、木製の物体などは電気を通しにくいことはご存じでしょう。
そして、空気だ。
空気こそは目に見えない絶縁体。
YubiKey にタッチするとどうなるのでしょうか?
タッチセンサーは普段は空気に触れています(空気に露出していない部分は樹脂で絶縁されています)。
指が触れると人体を通して電気が流れます、とはいっても微弱な電気なのでダメージはありません。
タッチセンサーから電気が一定以上流れると「人が指で触った」と判定するわけです。
パチンコのハンドルと似たような仕組みですね。
スマホのタッチ操作も同様の仕組み。
手袋でよくある「スマホ操作可能」というアレは指の部分が通電しやすい素材で作られているわけです。
最初、六角からのアース線はPCのピンジャックに差し込みました。
これで動作はしたのですが、PCから音声が出なくなるという不具合のため、他の方法にシフトしました。
先の記事では基板の GND につなげているらしいです。

なんのことはない、アルミホイルを丸めてクチャクチャにしたやつで包んだだけです。
このアルミホイルがなんと、1m程度の長さで人間の静電容量を再現するというのだから不思議なものです。

ログインする際には、うぃーん・がしゃん と機械っぽい音が鳴ります。
ロマンがあっていいですね。
最初、大きい方の YubiKey をセットしていたのですが、Nano の方に付け替えました。
RPAの完成
ログインするにあたって手間が増えました。
①パスキーでログイン をクリック
②セキュリティキー をクリック
③PIN を入力
④基板に指示を送りサーボでタッチ
おいら、自動取引がしたいだけなのに、なんでこんな関係ないことやらないといけないの?
でも考えてみると、日本全国どころか世界中でパスキーログインのせいで自動ログインできなくなったわ~!の人がいるわけですね。
私は乗り越えた! アナタはどうなんだ?
今ならわかる、これの最適解は「Google パスワードマネージャーに保存したパスキーをPIN入力呼び出しすることでログイン可能な証券会社を選べ」です。
だってこれなら、多分簡単…、スマホでパスキーログインする際に指紋認証とかしますが、PCアプリの場合は指紋認証がPIN入力に代替されると思うのね。
つまり、鬼門である「指タッチ」をスルーすることが可能。
ハア…、確かにそれだけの話。
パスキー強化の風潮
狙われる証券口座
なぜ証券口座が狙われるのかというと、銀行よりもセキュリティが甘いから。
私もさっさとUFJのログインを強化しないといけないのですが、ちょっと説明を見た限りでは「マイナンバーカードか運転免許証を使って登録して、ログインの際には指紋認証を用いる」みたいです。
銀行は予算を十分に使って顧客を守るセキュリティ・システムの導入をすることでしょう。
これ、登録の際にマイナカードか免許証が必要になるっていうのは、まあ不正防止がされていそうで安心ですよ。
でも企業は Times みたいにそういったものが漏洩したら信用問題に直結するから、情報を手厚く管理しなければならない=お金がかかる=やりたくない。
パスキーの導入は、銀行みたいに自社システムで対応することと比較すれば運営側の敷居は低いでしょう。
証券会社も面倒は避けたい、予算もかけたくない…、でも自社の顧客が不正アクセスやフィッシングの被害に合えば顧客減につながることは避けられない。
ですので、2026年くらいから「パスワードあかん、パスキーを使ってくれ」こういう流れが証券会社界隈で急速に強まっています。

最後の砦は出金口座
攻撃者は出金口座を変更したいと考えます。
ハッキリ言ってこれができなければ、証券会社の取引アプリに侵入したとしても「嫌がらせ」くらいしかできません。
まあ、勝手にハイレバレッジの金融商品を夜中に仕込まれて翌朝に下がっていたなら大損害です。
しかし、攻撃者はそんなことをしたいのではなく、お金を自分の管理下にある銀行口座に流したいだけです。
証券会社も当然、ここには目を付けています。
岡三オンラインの場合、取引アプリのログインとMyページのログインは一緒ではありません。
おそらく、後者のログインに関してはパスキーの保存場所をクラウドに指定することはできないでしょう。
Google パスワードマネージャーみたいなものは使えないのです。
パスキーの保管庫として、モバイル端末かセキュリティキーの2択という選択をさせられます。
ところが、SBI証券ではパスキーの保管先を” Google パスワードマネージャー “とか” iCloudキーチェーン “、” Windows Hello ” 、逆にこれしか選択肢がありませんでした。
私の岡三オンライン証券の証券総合取引口座がSBIに引き継がれたので、SBIにログインして確認してきました。
本当に何の統一感もありませんね。
ちょっとカオスすぎないかなあ…。
パスキーと一概にいっても、どこに保管するかによって安全強度が変わります(それが使い勝手と相反するから困りますのね)。
金融庁は証券会社などにパスキー導入しなさいと指示している様ですが、パスキーの保管場所について「クラウドはダメっ」て指定しないと意味ないですよ。
結局、複雑な状況
私が利用している岡三オンライン証券は、業務の一部(大半?)をSBI証券に移譲しましたが、株価指数CFD取引に関しては生き残っています(移譲という表現が適切でなかったらごめんなさい)。
だけど、やっぱり株CFDアプリのログインにもパスキーの流れがやってきた。
よくよく調べてみたら、パスキーを登録せずに従来のパスワードログインを継続する道も残っているみたいでした。
しかし、それでも下記の2点が懸念材料。
・出金したかったらパスキー登録してね
・今はよくても将来にパスキーログインが強制される可能性がある
う~ん、厳しい道となるがパスキー導入せざるを得ないか…、というわけでした。
AIに任せれば…の反証
ベテラントレーダーの語録みたいな YouTube動画のコメントで
「AIに任せればいいんじゃないの?」
こういう趣旨のものがありました。
そう、任せられる。
戦術のバックテストも
資金管理も
再現性のある繰り返しも
それらを血も涙も葛藤もストレスもなくやれるでしょう、AIなら。

だけど、越えなければならない最後の一線がある。
それを越えられなければ、所詮は机上の空論…、砂上の楼閣。
あなたは蜃気楼が見せている幻を見ているに過ぎない。
何もリアルマネーを用意しろっていう話ではない。
そのリアルマネーに対する損失を許容したうえで、リスクに身をさらせっていう話でもない。
現実には予想できない不都合っていうものがある。
自動運転を想像してください。
CPUは前方を走る車両、隣の車線を走る車両、対向車、自転車、歩行者、信号、渋滞、事故車両…、主だったものを的確に認識するでしょう。
路面がドライなのかウェットなのかスノーなのか、それらも認識するでしょう。
もちろん昼か夜か薄暮なのかも…。
じゃあ…、例えばコンビニの弁当が路上に捨てられていたら?
前方のダンプカーが過積載で、積んでいる砂利が落ちてきそうな雰囲気だったら?
言い出したらキリがない、現実のヤバそうな臭いの数々ときたら…。
本当にそれらの危機を拾って適切に危険予知できるかな?
そう、例えばAIに任せた自動取引で、あるときから突然パスキーによる認証を求められたら?
今まではIDとパスワードの入力で入れたものが、急に面倒になる。
スマホで認証にしたら詰みですね。
スマホに映し出されるQRコードを読むってことを自動操作で行うの?
いや、クラウドに保存させたパスキーをPINコード入力で読めばいいじゃん…? その選択肢を証券会社が与えなかったらどうする?
じゃあ、セキュリティキーなら…、UbiKey みたいなやつをPCのUSBに刺しっぱなしにするとして、最後の「タッチしてください」をどうクリアする?
じゃあ、自動ログインは別にいい。
家のPCを遠隔で操作してログインするさ、それなら通勤時間を利用して可能だし…。
別にいいですよ、それでも。
だけど、アナタは一歩下がった。
現実の困難に対して妥協的な選択を行った。
本来は無かった「手動」を持ち込んだ。
これは破綻の第一歩。
今日の仕事のスケジュールでも考えなきゃいけない時間帯に、定時ログインっていう余計なタスクを付け足した。
他の事象に対してもそうする?
何か不都合が起こるたびに妥協的選択でお茶を濁すのですか?
AI とかプログラムに全てを任せるというのであれば、それを阻む障壁を取り除くことこそが人間の役目。
マシーンが順調に業務をこなせるように道を整えてあげる、それが人間の役目なのでは。
やっぱり、何かがおかしいと思っていた。
裏方の仕事っていうものに対する意識。
リアルには有象無象の予想できない障壁が存在する。
それらの露払いをする存在が必要なのです。
それをやる、言うなれば野球場やサッカー場やゴルフ場で芝の管理をする仕事。
そういう「整える裏方」を軽視してAIですべて完結するなどと考えるのは違うのではないか?
ハイ、というわけで裏方の仕事を一生懸命やりましょうという理論です。
シミュレーション通りに…、シミュレーションに近い結果になるように…、そのための裏方仕事を人間がやるのです。
だって、毎朝のログインなんて「自動でログインする前提」でAIは戦略・戦術を立案しますよ。
なら、現実をその前提に合わせなきゃいけないよなあ。
これが、こういったことが越えなければならない最後の一線なのです。
参謀殿の作戦が成功するように、道に転がる小石を撤去する覚悟です。
何だか、長いことモヤっとしていた疑問を素敵に言語化できたような気分です。
つまり、信じるとか任せるっていうことに付随する対価。
そこは意識しなくてはならない。
委任事項…そこに対して協力を惜しんではならない、全てがうまくいくように。
大事なことを丸投げしておいて、その結果に文句を言うようなクソ上司になってはならないということです。

コメント