iOSで艦これができないことについて(便利リンク集付き)

iOS15以降、Safariで艦これをプレイしようとすると画面が真っ白になって開けない問題が起こるようになりました。
回避法や専ブラの登場によってある程度のプレイは可能になりましたがまだ依然と不便な状態は続いたままです。
今回はなぜこの状態が起こったのか?なぜ根本的な解決ができないのか?将来この状態が改善される可能性はあるのか?
というのをブックマークレットの開発者であるnaayu1012が解説していきます。
技術的な説明がメインとなりますのでわからない単語は適宜google先生に聞くことをお勧めします
この記事はまだ記述中です。数日おきに更新を行います

なぜこのようなことが起こったのか

Safari15でAuto HTTPS upgradeという機能がデフォルトでOnとなり、https接続が使用可能な場合はたとえhttp接続を行っていてもhttps接続されるようになりました。
https通信とhttp通信が混ざっているページではセキュリティー上の問題でhttp通信がブロックされるようになっているのですが(これを一般的にはMixed-Contentsと言います)今回はdmm gamesのページはhttps通信だったのに対して艦これのゲームはhttp通信だったため読み込まれなくなってしまった…といった感じです

解決する方法はあるのか?

いくつかあります。
・艦これ運営が艦これをhttps通信に対応させる
・iOS Safariがユーザー側の操作でHSTS Super Cookieの削除を可能にする
・iOS SafariがAuto HTTPS upgradeをオフにできるようにする

一つずつ説明していきます

・艦これ運営が艦これをhttps通信に対応させる
これが根本的な解決策です。Mixed-Contentsを解消することでこの問題は起きなくなります

・iOS Safariがユーザー側の操作でHSTS Super Cookieの削除を可能にする
これは原因となっている設定を変更して暫定的に対処する手法であり、根本的な解決には至りません。
account.dmm.comでログインしたときにすべてのサブドメインを対象に半年有効なHSTS Super Cookieを設定されてしまっており、それを削除することで勝手にhttps通信に移行されなくなるのでプレイが可能になります。
しかし、この場合は毎回ログインするたびにHSTSの設定を削除する必要が出てくるためめんどくさいですよね。それに2023/03時点でiOSは特定のサイトのHSTS Super Cookieのみをユーザーが削除できるようにはなっていません。

・iOS SafariがAuto HTTPS upgradeをオフにできるようにする
これも原因となっている設定を変更して対処する手法になります。
こちらも2023/03現在、無効化する手法はありません。


ブックマークレットは何をやっているの?

先ほどhttps通信とhttp通信が混在しているのが問題である…と説明しました。
つまりhttp通信オンリーなら問題なく読み込めることになります。
そこでブックマークレットではhttp通信を使用している艦これの本体を抽出することでプレイ可能にしています

ブックマーク公開後に試したこと

・プロキシサーバーでURLの強制変更
失敗。リダイレクトがうまくいってもsafari側でhttpsに戻されてしまう。そもそも暗号化通信の書き換えにはオレオレ証明書の信頼を行う必要があり、手順が複雑化するだけでなくセキュリティ上の問題があるため不可
・プロビジョニングプロファイルでsafariの設定変更
該当の項目がないため不可能
・細工したDNSサーバーを使って*.dmm.comのipアドレスを変更。事前に用意した中継サーバーに接続するようにし、そこでレスポンスヘッダーを編集する
成功はしたがプロキシサーバーを使用した際と同様セキュリティ面で問題があるため不可
・Access-Control-Allow-Originヘッダーを付与するwebプロキシを作成し、それを経由でアクセス
osapi.dmm.com内のjavascriptにdmm.comにメッセージを送信するものがあり、webプロキシはdmmとは別ドメインなためゲームがクラッシュする

Q:JAVASCRIPTで何とか解決できないかやってみていますが何かいい方法はありますか?

ありません
dmm.comとosapi.dmm.comはcross originなのでCORSポリシーにより互いに干渉することができません

Q:この問題が解決される可能性はありますか?

ほぼほぼないとみて間違いないでしょう。
Appleはセキュリティ強化はかなりの頻度で行いますがその逆はほとんど行いません。
艦これ3期とかの大規模なシステム改修が来たりGoogle Chromeなどの動作確認ブラウザでデフォルトでMixed-Contentsがブロックされるようになったりして半ば強制的に変更を強いられたりしない限りはないでしょう。
艦これ1期=>2期はflashという技術が廃止されるのでその対応として行われたものですが、2期で使用されているHTML5という技術はしばらくメインとして使われるので大規模な改修も見込めませんし、もしそうなったらサ終しそうな気がします

Q:iOS版の専ブラが出たそうですが、大きく変わりますか?

2023/03の時点ではあまり変わりません。ブックマークレットが自動実行されるので少しは楽かもしれません
私は専ブラの開発者の方と連絡を取っているのですが、ダメージ報告や装備確認、大破通知などは現時点では実装されておらず、「可能なら実装を行いたいが実装方法を模索している段階」となっています。

Q:この記事は新しい情報が出たら更新されますか?

はい。
情報が更新され次第更新します。
また、まだここに未記載の技術的な情報が結構あります。
それも適宜追加しますので定期的に見に来ていただけると嬉しいです。
もし質問があればnaayu1012 かdiscord: yussy#5373 までお願いします。

Q:この件に関するプログラムを開発しています。この記事にリンクを記載していただけますか?

naayu1012 か discord: yussy#5373 までお問合せください。

iOSで艦これをプレイするための有志のプログラムのリンク集

iOS15で艦これをプレイするためのブックマークレット(iOS16以降も対応しています): made by naayu1012

iOS15以降で全画面表示で艦これをプレイするためのブックマークレット: made by kininaruberu

conning tower(艦これ専ブラ) made by andychucs


いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
iOSで艦これができないことについて(便利リンク集付き)|dev_yussy
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1