ガラケー×SSL 開発Tips    Tips2011/10/27 高倉利明
今日の内容いまさらガラケー?→現実的に案件はまだまだあるよね。
今日の内容なぜSSLに特化した話?  SSL→PCサイト構築中心にやってた人は 甘く見がちだが、特にはまりやすい のがSSL関連。
今日の内容目次• テストサイトでも証明書買え!• リダイレクトとSSL• SSL下でのセッション維持
その1テストサイトでも証明書買え!
PCPCの場合→自己認証証明書でとりあえず確認できる。
ガラケー実機の場合  \(^o^)/
自己認証証明書ではガラケー実機でSSLの確認できない!
まとめ:テストサイトでも証明書買え!•ガラケーサイトでは必ず認証局認証済みの証明書を準備する必要がある※特にauは勝手証明書アクセス全滅•どこの証明書買えばいいの?→迷ったらVeriSign
その2リダイレクトとSSL
・リダイレクト回数・au×SSLリダイレクト時 のLocation指定
リダイレクト回数キャリア(&機種)毎にリダイレクト可能な回数がある※エミュレータでは起きないので気づきにくい。
一般的にはDoCoMo: 最大4回(超えた場合は「無効なデータを受信しました」)Softbank: 最大4回(超えた場合は「このページは表示できません」)au: 最大6回(超えた場合は「このページへのアクセスは拒否されました」)※非公式調査なの...
で、リダイレクト回数がSSLと関係あるの?→大あり
SSLなしの場合http://hoge.jp→ http://hoge.jp/→ http://hoge.jp/m/→ http://hoge.jp/m/mypageリダイレクト3回→セーフ
SSLだとhttps://hoge.jp→ https://hoge.jp/→ http://hoge.jp/→ http://hoge.jp/m/→ http://hoge.jp/m/mypage→ https://hoge.jp/m/myp...
au×SSLリダイレクト時のLocation指定au × SSL環境下の場合、リダイレクトのLocationに相対パスで指定する必要がある。※これもエミュレータでは起きないので気づきにくい。
例:PHPの場合https://www.sample.com/aaa/ で~<?phpheader(locaiont”https://www.sample.com/aaa/bbb.php”);?>→502エラー<?phpheader(locat...
まとめ:リダイレクトとSSL•キャリア毎にリダイレクト回数制限がある&SSLかけるとリダイレクト回数増加•au × SSLの場合、リダイレクトのLocationに相対パスで指定する必要あり。•エミュレータでは起きないのでテストフェーズまで気づか...
その3SSL下でのセッション維持
前提PCでのセッション維持→Cookie一択
前提ガラケーでのセッション維持→いろいろ(1)セッションID(2)UID(3)Cookie
(1)セッションID古くからある方法。リンクパラメータでIDを引き回す。http://hoge.jp/?sid=0011AABBCC....問題点リンクが分かればセッション乗っ取れる。→「認証前にセッションを有効にしない」、「Refererでの...
(2)UID (個体識別情報)キャリア毎に用意されている回線契約や端末に紐づくID。これを使用してセッション維持する。注. 今回は説明割愛します。※UIDに種類がいろいろあり説明が複雑になるのと、セキュリティ的に今後非推奨になっていくと思われる...
(3)CookiePCと同じように使う。Web標準。問題点以下の理由によりガラケーでは最近まであまり使われていなかった。•DoCoMoのiモードブラウザ1.0では使えない! ※2009/6 以前発売端末•SSL絡みの挙動 ※後述
ということで・・・•Cookie使える端末 →Cookie•Cookie使えない端末 →セッションIDT木先生もT丸先生も推薦。セキュリティもばっちり! b(^-^)o
よし、SSLでテスト!
( ゚д゚)au端末でセッション切れる・・・
HTTPで発行したCookieのHTTPSとの共有・DoCoMo できる・Softbank できる・au       できない※注.2011/10末 現在
DoCoMoの場合。。。HTTPHTTPで発行したCookieのHTTPS間         Cookie HTTPSとの共有ができる。→しかしiモードブラウザ1.0端末ではCookie使えない。。。
Softbankの場合。。。HTTPHTTPで発行したCookieのHTTPS間         Cookie HTTPSとの共有ができる。※余談:旧仕様 2011/6/30で廃止・HTTP接続: http://hoge.jp/・ HTTPS接...
auの場合。。。HTTPで発行したCookieのHTTPS間との共有はできない。→理由・HTTPS接続:端末にCookie保存・HTTP接続:GWサーバにCookie保存→普通に実装すると、 HTTP⇔HTTPSの遷移でCookieが変わる(=...
auの場合。。。設定時の条件           HTTPでの参照                 HTTPでの参照                     での         HTTPSでの                         ...
余談:2011年秋冬モデル以降は、この縛りはなくなるものと思われる。au/KDDIの「KDDI au: そのほかの技術情報 > Cookie」→Cookieはブラウザ側に全て保存される予定。
上記により以下のケースでセッション維持方針がかわってくる。(1)サイト全てをHTTPSページとする場合 ※問題点あり(2)サイトでHTTP、 HTTPSページを使い分ける場合※(1)の問題点画面遷移やリダイレクト毎にいちいち「SSLで接続します...
まとめ:SSL下でのセッション維持(1)サイト全てをHTTPSページとする場合•Cookie使える端末の場合 →Cookie•Cookie使えない端末の場合 →セッションID(等)
まとめ:SSL下でのセッション維持(2)サイトでHTTP、 HTTPSページを使い分ける場合(i) au以外•Cookie使える端末の場合  →Cookie•Cookie使えない端末の場合  →セッションID(等)
まとめ:SSL下でのセッション維持(2)サイトでHTTP、 HTTPSページを使い分ける場合(ii) auセッションID(等)を使用 orセッション維持用のCookieはHTTPSでセット・変更する
まとめ:SSL下でのセッション維持補足:Cookie使えない場合に「セッションID(等)」としたのは、実案件ではUIDを併用したセッション維持を行わざるを得ないケースも多いため。※かんたんログイン etc
おさらい
まとめ:テストサイトでも証明書買え!•ガラケーサイトでは必ず認証局認証済みの証明書を準備する必要がある※特にauは勝手証明書アクセス全滅•どこの証明書買えばいいの?•→迷ったらVerisign
まとめ:リダイレクトとSSL•キャリア毎にリダイレクト回数制限がある&SSLかけるとリダイレクト回数増加•au × SSLの場合、リダイレクトのLocationに相対パスで指定する必要あり。•エミュレータでは起きないのでテストフェーズまで気づか...
まとめ:SSL下でのセッション維持(1)サイト全てをHTTPSページとする場合•Cookie使える端末の場合 →Cookie•Cookie使えない端末の場合 →セッションID(等)
まとめ:SSL下でのセッション維持(2)サイトでHTTP、 HTTPSページを使い分ける場合(i) au以外•Cookie使える端末の場合  →Cookie•Cookie使えない端末の場合  →セッションID(等)
まとめ:SSL下でのセッション維持(2)サイトでHTTP、 HTTPSページを使い分ける場合(ii) auセッションID(等)を使用 orセッション維持用のCookieはHTTPSでセット・変更する
まとめ:SSL下でのセッション維持補足:Cookie使えない場合に「セッションID(等)」としたのは、実案件ではUIDを併用したセッション維持を行わざるを得ないケースも多いため。※かんたんログイン etc
質疑応答
ご静聴 ありがとうございました。
Upcoming SlideShare
Loading in …5
×

ガラケー×SSL 開発Tips

14,656 views

Published on

Published in: Technology
0 Comments
19 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
14,656
On SlideShare
0
From Embeds
0
Number of Embeds
185
Actions
Shares
0
Downloads
50
Comments
0
Likes
19
Embeds 0
No embeds

No notes for slide

ガラケー×SSL 開発Tips

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

×