Download - ガラケー×SSL 開発Tips
![Page 1: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/1.jpg)
ガラケー×SSLTips開発Tips
2011/10/27 高倉利明2011/10/27 高倉利明
![Page 2: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/2.jpg)
今日の内容
いまさらガラケー?
→現実的に案件はまだまだあるよね。
![Page 3: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/3.jpg)
今日の内容
なぜSSLに特化した話?SSL
→PCサイト構築中心にやってた人は甘く見がちだが、特にはまりやすいのがSSL関連。のがSSL関連。
![Page 4: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/4.jpg)
今日の内容
目次
•テストサイトでも証明書買え!•リダイレクトとSSL• SSL下でのセッション維持• SSL下でのセッション維持
![Page 5: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/5.jpg)
その1
テストサイトでもテストサイトでも証明書買え!
![Page 6: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/6.jpg)
PCの場合PC→自己認証証明書でとりあえず確認できる。
![Page 7: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/7.jpg)
ガラケー実機の場合
\(^o^)/
![Page 8: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/8.jpg)
自己認証証明書では自己認証証明書ではガラケー実機でSSLの確認できない!
![Page 9: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/9.jpg)
•ガラケーサイトでは必ず認証局認証済みの証明書を準備する必要がある
まとめ:テストサイトでも証明書買え!
証明書を準備する必要がある※特にauは勝手証明書アクセス全滅
•どこの証明書買えばいいの?→迷ったらVeriSign
![Page 10: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/10.jpg)
その2
リダイレクトとSSLリダイレクトとSSL
![Page 11: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/11.jpg)
・リダイレクト回数・リダイレクト回数
・au×SSLリダイレクト時のLocation指定のLocation指定
![Page 12: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/12.jpg)
リダイレクト回数
キャリア(&機種)毎にリダイレキャリア(&機種)毎にリダイレクト可能な回数がある
※エミュレータでは起きないの※エミュレータでは起きないので気づきにくい。
![Page 13: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/13.jpg)
一般的にはDoCoMo: 最大4回(超えた場合は「無効なデータを受信しました」)(超えた場合は「無効なデータを受信しました」)
Softbank: 最大4回(超えた場合は「このページは表示できません」)
au: 最大6回(超えた場合は「このページへのアクセスは拒否されました」)(超えた場合は「このページへのアクセスは拒否されました」)
※非公式調査なので注意
![Page 14: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/14.jpg)
で、リダイレクト回数がSSLと関係あるの?SSLと関係あるの?
→大あり
![Page 15: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/15.jpg)
SSLなしの場合%http://hoge.jp→ http://hoge.jp/→ http://hoge.jp/→ http://hoge.jp/m/→ http://hoge.jp/m/mypage
リダイレクト3回→セーフリダイレクト3回→セーフ
![Page 16: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/16.jpg)
SSLだと%https://hoge.jp→ https://hoge.jp/→ https://hoge.jp/→ http://hoge.jp/→ http://hoge.jp/m/→ http://hoge.jp/m/mypage→ https://hoge.jp/m/mypage→ https://hoge.jp/m/mypage
リダイレクト5回→アウト
![Page 17: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/17.jpg)
au×SSLリダイレクト時のLocation指定
au × SSL環境下の場合、リダイレクトのau × SSL環境下の場合、リダイレクトのLocationに相対パスで指定する必要がある。
※これもエミュレータでは起きないので気※これもエミュレータでは起きないので気づきにくい。
![Page 18: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/18.jpg)
例:PHPの場合
https://www.sample.com/aaa/で~
<?phpheader(locaiont”https://www.sample.com/aaa/bbb.php”);?>
→502エラー
<?phpheader(location:”bbb.php”);?>
→正常にリダイレクト
![Page 19: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/19.jpg)
•キャリア毎にリダイレクト回数制限がある&SSLかけるとリダイレクト回数増加
まとめ:リダイレクトとSSL
•au × SSLの場合、リダイレクトのLocationに相対パスで指定する必要あり。
•エミュレータでは起きないのでテストフェーズ•エミュレータでは起きないのでテストフェーズまで気づかないことが多い→回避するには大幅なプログラム修正要→開発の早い段階で実機確認を行うべし。
![Page 20: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/20.jpg)
その3
SSL下でのSSL下での
セッション維持
![Page 21: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/21.jpg)
前提PCでのセッション維持→Cookie一択→Cookie一択
![Page 22: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/22.jpg)
前提ガラケーでのセッション維持→いろいろ→いろいろ(1)セッションID(2)UID(3)Cookie(3)Cookie
![Page 23: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/23.jpg)
(1)セッションID古くからある方法。リンクパラメータでIDを引き回す。リンクパラメータでIDを引き回す。http://hoge.jp/?sid=0011AABBCC....
問題点リンクが分かればセッション乗っ取れる。→「認証前にセッションを有効にしない」、→「認証前にセッションを有効にしない」、「Refererでの漏洩を防ぐ」「セッションIDの一定期間での振り替え」などを考慮。
![Page 24: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/24.jpg)
(2)UID (個体識別情報)キャリア毎に用意されている回線契約や端末に紐づくID。これを使用してセッショ端末に紐づくID。これを使用してセッション維持する。
注. 今回は説明割愛します。※UIDに種類がいろいろあり説明が複雑にな※UIDに種類がいろいろあり説明が複雑になるのと、セキュリティ的に今後非推奨になっていくと思われるので。
![Page 25: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/25.jpg)
(3)CookiePCと同じように使う。Web標準。
問題点以下の理由によりガラケーでは最近まであまり使われていなかった。
•DoCoMoのiモードブラウザ1.0では使えな•DoCoMoのiモードブラウザ1.0では使えない!※2009/6 以前発売端末•SSL絡みの挙動※後述
![Page 26: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/26.jpg)
ということで・・・•Cookie使える端末
→Cookie→Cookie•Cookie使えない端末
→セッションID
T木先生もT丸先生も推薦。T木先生もT丸先生も推薦。セキュリティもばっちり! b(^-^)o
![Page 27: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/27.jpg)
よし、SSLでよし、SSLでテスト!
![Page 28: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/28.jpg)
( ゚д゚)( ゚д゚)au端末でセッション切れる・・・ン切れる・・・
![Page 29: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/29.jpg)
HTTPで発行したCookieのHTTPSとの共有
・DoCoMo できる・DoCoMo できる・Softbank できる・au できない・au できない
※注.2011/10末現在
![Page 30: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/30.jpg)
DoCoMoの場合。。。
HTTPで発行したCookieのHTTPS間HTTP Cookie HTTPSとの共有ができる。
→しかしiモードブラウザ1.0端末ではCookie使えない。。。ではCookie使えない。。。
![Page 31: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/31.jpg)
Softbankの場合。。。
HTTPで発行したCookieのHTTPS間HTTP Cookie HTTPSとの共有ができる。
※余談:旧仕様 2011/6/30で廃止・HTTP接続:http://hoge.jp/http://hoge.jp/・ HTTPS接続:https://secure.softbank.ne.jp/hoge.jp/
→ドメインが違うので、Cookieを引き継げない。
![Page 32: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/32.jpg)
auの場合。。。
HTTPで発行したCookieのHTTPS間との共有はできない。有はできない。→理由・HTTPS接続:端末にCookie保存・HTTP接続:GWサーバにCookie保存
→普通に実装すると、 HTTP⇔HTTPSの遷移でCookieが変わる(=セッションが引き継がれない)
![Page 33: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/33.jpg)
auの場合。。。
設定時の条件設定時の条件設定時の条件設定時の条件 HTTPHTTPHTTPHTTPでのでのでのでの参照参照参照参照 HTTPSHTTPSHTTPSHTTPSでのでのでのでの参照参照参照参照
HTTPで設定 ○ × (本来○であるべき)
→このためセッション維持のためHTTPとHTTPS両方か
HTTPSで設定(セキュア属性なし)
○ ○
HTTPSで設定(セキュア属性付き)
× ○
→このためセッション維持のためHTTPとHTTPS両方から参照できるCookieを設定するためには、HTTPS側でCookieを設定する必要がある。=プログラム側で大幅な改造が必要。
![Page 34: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/34.jpg)
余談:2011年秋冬モデル以降は、この縛りはなくなるものと思われる。
au/KDDIの「KDDI au: そのほかの技術情報 > Cookie」au/KDDIの「KDDI au: そのほかの技術情報 > Cookie」→Cookieはブラウザ側に全て保存される予定。
![Page 35: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/35.jpg)
上記により以下のケースでセッション維持方針がかわってくる。
(1)サイト全てをHTTPSページとする場合※問題点あり(2)サイトでHTTP、 HTTPSページを使い分ける場合使い分ける場合
※(1)の問題点画面遷移やリダイレクト毎にいちいち「SSLで接続します」等のダイアログが出てしまうので、UI的に非常にイケていない。
![Page 36: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/36.jpg)
まとめ:SSL下でのセッション維持
(1)サイト全てをHTTPSページとする場合場合
•Cookie使える端末の場合→Cookie
•Cookie使えない端末の場合•Cookie使えない端末の場合→セッションID(等)
![Page 37: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/37.jpg)
まとめ:SSL下でのセッション維持
(2)サイトでHTTP、 HTTPSページを使い分ける場合使い分ける場合
(i) au以外•Cookie使える端末の場合
→Cookie→Cookie•Cookie使えない端末の場合
→セッションID(等)
![Page 38: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/38.jpg)
まとめ:SSL下でのセッション維持
(2)サイトでHTTP、 HTTPSページを使い分ける場合使い分ける場合
(ii) auセッションID(等)を使用 orセッション維持用のCookieはHTTPSでセット・セッション維持用のCookieはHTTPSでセット・変更する
![Page 39: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/39.jpg)
まとめ:SSL下でのセッション維持
補足:Cookie使えない場合に「セッションIDCookie使えない場合に「セッションID(等)」としたのは、実案件ではUIDを併用したセッション維持を行わざるを得ないケースも多いため。
※かんたんログイン%etc
![Page 40: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/40.jpg)
おさらいおさらい
![Page 41: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/41.jpg)
•ガラケーサイトでは必ず認証局認証済みの証明書を準備する必要がある
まとめ:テストサイトでも証明書買え!
証明書を準備する必要がある※特にauは勝手証明書アクセス全滅
•どこの証明書買えばいいの?•→迷ったらVerisign
![Page 42: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/42.jpg)
•キャリア毎にリダイレクト回数制限がある&SSLかけるとリダイレクト回数増加
まとめ:リダイレクトとSSL
•au × SSLの場合、リダイレクトのLocationに相対パスで指定する必要あり。
•エミュレータでは起きないのでテストフェーズ•エミュレータでは起きないのでテストフェーズまで気づかないことが多い→回避するには大幅なプログラム修正要→開発の早い段階で実機確認を行うべし。
![Page 43: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/43.jpg)
まとめ:SSL下でのセッション維持
(1)サイト全てをHTTPSページとする場合場合
•Cookie使える端末の場合→Cookie
•Cookie使えない端末の場合•Cookie使えない端末の場合→セッションID(等)
![Page 44: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/44.jpg)
まとめ:SSL下でのセッション維持
(2)サイトでHTTP、 HTTPSページを使い分ける場合使い分ける場合
(i) au以外•Cookie使える端末の場合
→Cookie→Cookie•Cookie使えない端末の場合
→セッションID(等)
![Page 45: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/45.jpg)
まとめ:SSL下でのセッション維持
(2)サイトでHTTP、 HTTPSページを使い分ける場合使い分ける場合
(ii) auセッションID(等)を使用 orセッション維持用のCookieはHTTPSでセット・セッション維持用のCookieはHTTPSでセット・変更する
![Page 46: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/46.jpg)
まとめ:SSL下でのセッション維持
補足:Cookie使えない場合に「セッションIDCookie使えない場合に「セッションID(等)」としたのは、実案件ではUIDを併用したセッション維持を行わざるを得ないケースも多いため。
※かんたんログイン%etc
![Page 47: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/47.jpg)
質疑応答質疑応答
![Page 48: ガラケー×SSL 開発Tips](https://reader033.vdocuments.pub/reader033/viewer/2022052301/557e0fe8d8b42ac22a8b4ae5/html5/thumbnails/48.jpg)
ご静聴ご静聴ありがとうございました。ございました。