質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Q&A

解決済

1回答

4312閲覧

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

Obayashi

総合スコア77

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

0グッド

2クリップ

投稿2017/04/30 13:18

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


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


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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

自己署名証明書の問題は「その証明書が本物なのかがわからない」ということです。正式証明書は、信頼されたルート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/04/30 14:04

編集2017/04/30 14:12
raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Obayashi

2017/05/08 14:02

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問