- 締切済み
非SSLページからSSLページへの遷移時の暗号化
SSLについて人によって意見がまちまちな問題が 浮上しており、困っております。 ぜひお詳しい方のお知恵をお借りできたらと思い投稿させていただきました。 非SSLページ(入力フォーム)→SSLページ(確認ページ) という単純な遷移です。 非SSLページは静的なhtmlファイルで 個人情報を入れてpostでsubmitするフォームになっています。 このとき、私の認識では、個人情報は暗号化されると 思っていました。 しかし、入力フォームもSSLページでなければ暗号化 されないという意見とそうでない意見が交錯しています。 遷移先がSSLであれば、証明書等チェックが入って 最終的にフォームの値含め、通信データは暗号化されて送信 されると思っていますが間違っているでしょうか? ちなみに個人情報を入れるページは心理的にはhttps であったほうがいいということは間違い無いと思います。 技術的な見地でお願いします。 よろしくお願いしますm(_ _)m
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- cyanberry
- ベストアンサー率50% (117/230)
No.1で書いたものです。 ちゃんと調べてみたら内容に誤りがあったことに気付いたので訂正します。 「技術的な観点だけなら入力フォームは非SSLでも良い」が正解です。 接続先がhttpsであれば、SSL認証→リクエストを暗号化して送信を一度に行ってなってしまうので、入力フォームのページは非SSLで問題ないようです。別々なタイミングで行われているものだと勘違いしておりました。 ただ、モラル的にはやはり入力フォームの段階でSSLページである方が入力するユーザが安心できるので、入力フォームの段階でSSLページであるべきです。 浅はかな知識で適当な回答してしまい、失礼いたしました。
接続先がhttps://でSSLハンドシェイク終わる前に非暗号のデータ送ったらブラウザのバグです SSLがOSI参照モデルのどの層にあるのか判ってないんじゃないんですかね 入力フォームがhttpsは心理的、は間違いです 技術的にhttpsである"べき"です
お礼
ご回答ありがとうございます! ブラウザのバグがあればもうどうしようもないですね。。 ご回答からですと、やはり非SSLページからでも 暗号化されると理解しました。 技術的にhttpsであるべきというお言葉は、 私も一技術者として頼もしいお言葉だと思います。 サービス提供の場合、暗号化されていないと認識されるユーザー様もおそらくまだまだ多く、そこでCV率を落とすワケにもいかず、悩むところです。。 ありがとうございます!
- cyanberry
- ベストアンサー率50% (117/230)
入力フォームはSSLページでなければいけません。 SSLの暗号化のやり取りは簡単に説明するとに以下のような感じになります クライアント:SSLの接続要求(httpsでリクエストする) ↓ サーバ:サーバ証明書を返す ↓ クライアント:サーバ証明書を検証し問題なければ共通鍵を生成しサーバの公開鍵で暗号化した上サーバに渡す ↓ サーバ:受け取った共通鍵を秘密鍵で復号する ↓ 以降サーバ・クライアント双方で、共通鍵で暗号化・復号を行いながら通信する 上記のとおりクライアントからのSSL接続要求を行った後に初めて暗号化通信を行う準備が整うので、入力フォームが表示される段階でSSLページになっていないと意味がありません。 もし、入力フォームが非SSLページの場合、最初の「クライアント:SSLの接続要求」の段階ではデータは暗号化されないので、入力フォームの内容が平文のままサーバまでの道程を流れていってしまいます。 もしそういったことを考慮して、「リクエスト先がhttpsの場合は、最初にSSLの接続要求のみのリクエストを投げて、それが完了してから本来送ろうとしていたリクエストを投げる」なんて気の利いたブラウザがあるのであれば入力フォームは非SSLで良いのでしょうが、今のところ私はそんなブラウザは知らないですし、それはそれで別な問題が起きると思いますので無い方が良いです。
お礼
ご回答ありがとうございます! ブラウザがどのような挙動をするのかが私の 最大の謎でした。 ネットで調べても本を調べてもその部分に触れられて いないからです。 ご回答からは、SSLページにいる状態でなければ、 ブラウザはサーバーからの返答に対してSSLのハンドシェークをしてくれないという理解をしました。 書かれているフローは私の認識とも一致するのですが、 まだ疑問なのが、私はそのフローは毎回リロードするたびに 1から繰り返されるものだと思っています。 その認識で合っていますか? それから、 >もし、入力フォームが非SSLページの場合、最初の「クライアント:SSLの接続要求」の段階ではデータは暗号化されないので、入力フォームの内容が平文のまま・・・ という部分ですが、最初の「クライアント:SSLの接続要求」の段階では暗号化されている必要は無いと思っています。ここはハンドシェークだけであってまだ入力フォームのデータは含まれていないはずだと思っているからです。これは間違っていますか? よろしくお願いします。
お礼
ご回答ありがとうございます! 結論的には暗号化されるというところで ずいぶんすっきりいたしました。 フィッシング対策という意味でのSSLという使い方もあるのは 勉強になりました。 しかし!また違った観点からの情報もあるのではと思い、どうせなら証明機関大手3社にも聞いてしまおうということで、聞いてみました結果、以下のような回答をいただきましたので、この場をお借りしましてご報告します。 V社→暗号化されない S社→クライアントとサーバーの設定によりけりでどちらとも言えない G社→暗号化されない ということで、益々?な状態です。 S社のみ技術者対応で、V社、G社は技術サポートも少しできると思われるオペレータでしたが、G社は断言されていました。 ちなみに3社とも利用者の心理面的にSSLページにしておくことを勧めておられました。そこは営業的には分かりますが・・ なんともしっくり来ないご回答で。。 ありがとうございます。