コマンドラインソフトウェア用のイントラネットインターフェイスの開発を担当してきましたが、現在はセキュリティオプションを研究しています。コマンドラインアプリケーションは終了しましたが、Webインターフェイスの作成を開始していません。 ssh
は一般的にコマンドラインインターフェースとして受け入れられると思いますが、潜在的な顧客に対するセキュリティ要件が正確に何であるかはわかりません。これを念頭に置いて、私は関連する賛否両論の選択肢のメニューを開発する手助けを求めています。いつか、Webインターフェイスをインターネットにリリースすることを検討するかもしれません。そのため、簡単かつ/または無料であれば、現在必要なセキュリティよりも多くのセキュリティを検討したいと思います。
私は多くの読書をしてきましたが、私の暫定的な結論は、証明書のないSSLセキュリティが最良のアプローチであるということです。セットアップ。セキュリティの専門家ではない私は、セキュリティの専門家以外の人にとってセキュリティがあまり受け入れられない理由を説明する必要はありません。必要に応じて、将来的に証明書を使用するようにアプリケーションをアップグレードできます。
以下に、SSL関連のセキュリティの選択肢のリストを、セキュリティレベルに対する私の意見で並べ替えて、コメントとともに示します。どのレベルの保護が必要ですか?
SSLなし。これは、顧客が従業員がお互いのデータを見たり変更したりすることを心配していない場合に受け入れられるかもしれません。とにかく従業員はお互いに結果を共有したいと思うかもしれません。セキュリティのためにIPベースのアクセス制御やパスワードを使用できます。
証明書なしでSSLを実行します。これにより通信が暗号化され、不正な従業員によるデータの読み取りを少なくとも保護します。パスワードを使用すると、これはコマンドラインのssh
と同じセキュリティレベルになりますよね?イントラネットでの中間者攻撃について心配する必要はありませんか?このアプローチの欠点は、大量のブラウザ警告メッセージがある場合です。
自己署名証明書を使用してSSLを実行します。これにより、証明書が提供されないことがわかりますか? DNSが不適切に変更される可能性がある場合、顧客は私のアプリケーションの懸念が最も少なくなります。別の言い方をすれば、DNSが変更される可能性がある場合、ssh
も脆弱だと思います。
ローカル認証局でSSLを実行します。OpenSSLを使用すると、独自の認証局を作成できます。自己署名証明書では得られないことは何ですか? LANでは、サーバーの検証はそれほど重要ではないと想定しています。
外部認証局とSSLを使用します。イントラネットでこのルートを使用する理由はありますか?オンラインで販売されている「イントラネット証明書」を見つけましたが、彼らが何を提供しているのかは明確ではありません。
参考のために、このページは証明書の比較に役立ちます。
http://httpd.Apache.org/docs/trunk/ssl/ssl_faq.html#aboutcerts
[更新]
Here's パブリックCAから内部証明書を取得する際のリスクとルールを説明する記事。
はい、イントラネットSSLには依然として証明書が役立ちます。
SSHと証明書なしのSSLには重要な違いがあります。SSHを使用してサーバーに初めて接続すると、SSHにサーバーの指紋が保存されます。次に、SSHクライアントが同じマシンであると信じているが、異なるフィンガープリントを取得しているものに接続しようとすると、通信を傍受している可能性があることを警告します。
一方、証明書なしのSSLは、サーバーの指紋を保存しません。あなたの通信は依然として暗号化されますが、誰かが何らかの方法であなたが言及したようにDNSサーバーをハイジャックした場合、または Rushyoが述べているように 、ARPポイズニングまたは同様のものを行った場合、彼らはman-in-中間攻撃。前述のように、SSHは(過去に正しいサーバーに接続していたと仮定して)指紋が変更されたことを通知し、警告します。
自己署名証明書は、セキュリティがSSHに匹敵します。真ん中の人は自分の自己署名証明書を生成できますが、アプリケーションがthat自己署名証明書のみを受け入れるように設定されている限り、 SSHが提供するものと同様のアラートを受け取るはずです。
ローカル認証局は、自己署名証明書と同様のセキュリティを提供しますが、よりスケーラブルな場合があります。複数のサーバーがある場合、それぞれが独自の証明書を持つことができますが、クライアントはそれらすべてを信頼するためにトップレベルのサーバーのみを必要とします。サーバーが危険にさらされた場合、すべてのサーバーの証明書を変更するのではなく、その証明書を取り消すことができます。
外部の認証局に利点があるとは思いませんが、マシンにすでに認証局が信頼されている場合は、構成が少なくなる可能性があります。
最後に、私はそれを評価するのに十分な2要素認証について知りませんが、ほとんどのアプリケーションではSSLで十分です。
免責事項:私はセキュリティの専門家ではありません。
- 外部の認証局でSSLを実行します。イントラネットにこのルートを使用する理由はありますか?オンラインで販売されている「イントラネット証明書」を見つけましたが、彼らが何を提供しているのかは明確ではありません。
利点は、適切な数の証明書やマシンを管理する必要がある場合、独自の認証局をセットアップする方法を学ぶ必要がないことです。このような証明書は、独自の証明書を信頼できるストアにインストールする必要なく、すべてのブラウザですでに信頼されています。
ただし、、誰かが別のイントラネット用の証明書を購入してネットワーク上で使用できるため、これは実際には安全性が低くなります。このため、SSLベンダーはこのサービスを提供しなくなりました。詳細については、以下を参照してください: https://www.godaddy.com/help/phasing-out-intranet-names-and-ip-addresses-in-ssls-6935
非常に小さなイントラネットしかない場合は、自己署名証明書を使用して、各自己署名証明書を各コンピューターの信頼できるストアに追加することをお勧めします。
ただし、新しいコンピューターを追加するたびにイントラネット内のすべてのコンピューターに新しい証明書をインストールすることは、すぐに非現実的になります。この時点で、各コンピューターの信頼できるストアに1つのCA証明書のみをインストールする必要があるように、独自の認証局をセットアップします。