SBI証券の二段階認証を突破する(Yahooメールのログイン自動化)

僕の環境では9月13日よりSBI証券の二段階認証メールが「HTMLメール」に変わった。

 

二段階認証を受け取っていた「さくらインターネット」の有料Webメーラーはセキュリティ上、HTMLメールは非対応。

 

 

HTMLメール非対応の場合には二段階認証URLをクリックしても、有効なURLと判断されない仕様になってしまった……。

 
 

ふ、ふざけるな!!!!!!

 
 

【写真】ARuFa氏

 
 

HTMLメールは「Webビーコン」を埋め込まれたりと、犯罪に使われやすいから禁止にしている企業やサービスだって未だに多くある。

何も書かれていないSPAMメールの意図は何か軽く調べた
最近 届く SAPM メールには文章が存在しない。その場合は、大抵カーソルを合わせると本文が記載されるハズの場所にリンクが存在していたりする。タグが使えるわけだから、ひょっとして・・と送られてきたSPAMメールを...

半年で4回も仕様をコロコロ変えるSBIの企業体制は疑問しかない。40秒の時間制限も60秒に伸びてたし。

ちなみに全資産を楽天証券に近々移行予定だ。

5月、6月、8月に変更して、今回の変更で合計4回目となった。

SBI証券のメール二段階認証 ログイン完全自動化(Python)【8月9日対応版】
その日は突然やってきた。2025/8/9(土)以降、リアルタイムフィッシングによる詐欺対策として、デバイス認証による認証手順を、現行の「認証コードをEメールで送信する方式」から、「認証コード入力画面のURLを送信する方式」に変更する...
【追記】SBI証券でデバイス認証(二段階認証)のログイン完全自動化(Python)
証券会社を狙う不正取引問題が続く中で、ログイン時のセキュリティ対策として、多要素認証が「必須化」となってしまった……。これで困るのは自動化システムを作っている個人投資家...

今回提案する方法は

 

二段階認証キーをYahooメールで受け取る処理を自動化

 

となる。

多くの人はGmail/Yahooメール/Hotmailを利用していると思うので、汎用性は高い方法だ。

「じゃぁ最初からやれよ」となるが、Yahooメールはセキュリティ対策として幾つもの画面制御を入れてるから動きを理解するのに時間がかかった。

Yahoo!メールへログインし二段階認証を突破する

SBI証券の二段階認証突破は前回作った部分がそのまま利用できる。

SBI証券のメール二段階認証 ログイン完全自動化(Python)【8月9日対応版】
その日は突然やってきた。2025/8/9(土)以降、リアルタイムフィッシングによる詐欺対策として、デバイス認証による認証手順を、現行の「認証コードをEメールで送信する方式」から、「認証コード入力画面のURLを送信する方式」に変更する...

今回はYahooメールの自動化に焦点をあてる。

「文字認証(CAPTCHA)」を突破する(自動対応)

自動でログインしようとすると次のような文字認証が表示される。

手動によるChromeのシークレットモードでは表示されない。ロジックが分からないが次の理由だと書かれてる。

このページが表示される理由として以下のケースが考えられます。

  • ブラウザー設定やネットワーク環境による影響の場合
  • 連続して誤った入力を行った場合
  • スパイウエアやウイルスによる影響の場合

全く分からないね……

文字認証を真面目に突破するなら「2Captcha」や「Anti-Captcha」などの外部サービスを利用する。ただし有料。

表示理由さえ分かれば表示されなくできると思っている。誰か教えて欲しい。

 

最初にして最大の難関

 

これが表示されるからYahooメールの自動化を諦めていたと言っても過言ではない。

 

が、試行錯誤を繰り返して「新規タブ」を開く事で文字認証を回避できることを発見した。

 

恐らく

 

同一コンテキスト内でセッション情報(クッキーや認証状態)が共有され、Yahoo!が連続アクセスを信頼済みと判断するため

 

だと思ってる。

ただし 抜け穴でありYahooに対策されそうな気がしてる。内密にね❤

てか、これが抜け穴なら全く役に立ってないww

「追加認証」を突破する(手動対応)

初回デバイス&ブラウザでアクセスすると次のような画面が表示される事がある。

これは初回アクセスすれば表示されなくなる(はず)ので手動で行う。実装による突破は未対応。

「第三者からの不正アクセス」画面を突破する(手動対応)

初回デバイス&ブラウザでアクセスすると次のような画面が表示される事がある。

これも初回アクセスすれば表示されなくなる(はず)ので手動で行う。実装による突破は未対応。

「SMS認証設定画面」を突破する(自動対応)

これも表示された。

これが表示された場合には「あとで設定する」ように実装に追加している。

恐らく何日か経過したら再度表示されるたぐいだと思ってる。

呼び出し方法

前回、再利用性を考慮した実装にしたため変更箇所は「mail_operation関数」だけだ。

SBI証券のメール二段階認証 ログイン完全自動化(Python)【8月9日対応版】
その日は突然やってきた。2025/8/9(土)以降、リアルタイムフィッシングによる詐欺対策として、デバイス認証による認証手順を、現行の「認証コードをEメールで送信する方式」から、「認証コード入力画面のURLを送信する方式」に変更する...

呼び出し部分は変わらない。

動作確認のためにヘッドレス設定を「False」にしているが、動作することが分かれば「True」にする。

【main.py】

おわりに

注意としてメール設定はSMS認証やワンタイムパスワード等は全て「未設定」にする必要がある。

今後Yahooメールにも不正アクセス等が問題化すると、新しい認証方式が必須化されるかもしれない。

 

そうなると「SBI証券の仕様変更」「Yahooメールの仕様変更」両方に影響されてしまう。

今回の対応だけでも動作確認&ブログ執筆で3連休が潰れたのに……僕はもう疲れたよパトラッシュ。

 

ソースコード

「sbiauth.py」という名前で同じフォルダに置いておく。

変更箇所は「mail_operation」だけだ。そういう実装にしていたからね。

今回は特殊環境ではない実装なのでGitHubに置いておいた。

GitHub - nehori/py-sbi-yahoo-auth
Contribute to nehori/py-sbi-yahoo-auth development by creating an account on GitHub.
タイトルとURLをコピーしました