自宅サーバにアクセスする際にオレオレ証明書を使用する問題点

解決済

回答 1

投稿

  • 評価
  • クリップ 2
  • VIEW 2,268

Obayashi

score 74

外出中に自宅サーバにアクセスして作業するために
自宅サーバとの通信の暗号化にhttpsを使用しています。
この際必要になる証明書は自作のオレオレ証明書です。
これによって外出先のブラウザからの通信は暗号化されており安全と思っています。
ただ、ブラウザでアクセスする際に以下の警告が毎回出るのが少し気持ち悪いです。


この Web サイトのセキュリティ証明書には問題があります
だれかがユーザーを騙そうとしているか、
サーバーに送信されたデータを盗み取ろうとしている可能性があります。
このサイトをすぐに閉じてください。


オレオレ証明書だからだと思っていますが
このサーバにはパスワードをかけており自分しかアクセスしないので
オレオレ証明書であっても特に問題ないかと思っています。
何かセキュリティ的な欠陥がありましたらご教授お願い致します。

なお、ネットワークの概要は以下になります。

外出先ブラウザ→パスワード入力→httpsで暗号化して自宅サーバに送信
→自宅サーバで復号しパスワード認証→認証が通ればサーバ上で各種処理実行

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+9

自己署名証明書の問題は「その証明書が本物なのかがわからない」ということです。正式証明書は、信頼されたルートCA証明書がその証明書を(直接的にまたは中間証明書を用いて間接的に)信頼することで、その証明書が本物であること(そのドメインの所有者が作成した事や実在する会社等であること)を保証してくれます。しかし、自己署名証明書は誰でも作ることができるため本当にそのドメインを所有している人が作ったのか、実在する会社なのかが信頼できません。それが、自己署名証明書の問題点です。

問題点はわかったと思います。そして、気付いたと思います。ルートCA証明書から信頼という方法以外の方法でその証明書が本物であることを保証できれば、何も問題はありません。方法はいくつかあります。

  1. 拇印を確認する。
    証明書には拇印(指紋、フィンガープリントとも)という固有の番号があります。これは証明書ごとに異なり同じ物は(とてつもなく低い確率でしか)存在しません。また、同じ拇印の証明書を作成することも(現実的ではない多くの時間をかけなければ)できません。そのため、本物の証明書の拇印をメモしておき、アクセスしたときの証明書の拇印が同じであることを確認すれば、本物であると言うことを保証できます。
    拇印にはSHA256とSHA1があります。たとえば、teratail.comの証明書のSHA256の拇印は50:27:4F:D7:2D:63:2E:AF:7A:CD:36:55:B0:0B:F7:11:45:DE:4F:03:2F:DC:0F:9A:3E:DB:61:3F:7E:F5:F6:BBという32バイト(256bits)のデータです。上は16進数でわかりやすく表記した場合です。パターンは2の256乗(一無量大数(10の68乗)の約11億倍)あるため、同じ物が存在する確率はほぼ0です。よって、この拇印であれば、ルートCA証明書がどうなっていようが、teratail.comの本物の証明書であると信頼しても問題ありません。
  2. ブラウザに登録する。
    拇印は確実ですが、毎回確認するのは大変です。それに、もし、1bitでも異なればそれは偽者ですから、一文字一文字正確に確認する必要があります。そこで、拇印を確認する、証明書を作成したときにコピーしておく、等の方法で本物だとわかった証明書について、ブラウザで「この証明書は信頼できる」と登録してしまう方法があります。登録方法はブラウザによって異なるので割愛しますが、一度登録してしまえば、正式証明書と同様に、自動的に本物か確認して判断してくれます。その後は警告やエラーがでることはありません。(もちろん、偽者であれば警告やエラーが表示されます)
  3. 自分で作ったルートCA証明書を使う。
    これまでの方法は証明書一つだけなら問題ありませんが、もし、多くの証明書を管理するとなると、その一つ一つについて拇印の確認と証明書の登録を行うのは大変な手間です。そこで、自分だけのルートCA証明書を作って、そこから保証してくれるようにします。ただ、ルートCA証明書の運用は一歩間違うと重大なセキュリティ上の欠陥が発生します。生半可な知識では大変危険ですので、オススメは全くできません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/08 23:02

    詳細な解説どうもありがとうございました

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.21%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる