職場では、インターネット監視ソフトウェア(Websense)を使用しています。すべてのトラフィックが暗号化されているため、https sslで暗号化されたサイト( https://secure.example.com など)にアクセスしたかどうかはわかりません。 。しかし、彼らが私が訪問したことがわかる https://secure.example.com ?
暗号化された接続は、HTTPリクエストが実行される前に最初に確立されます(GET
、POST
、HEAD
など)。ただし、ホスト名とポートは表示されます。
他にも、アクセスしているサイトを検出する方法はたくさんあります。たとえば、次のような方法があります。
Websenseプロキシを回避する一般的な方法は、最初にHTTPS経由で外部プロキシへの接続を確立し(例 https://proxy.org/ )、そこからリクエストを行うことです。
可能ですが、設定が必要です。ここでは、それがどのように行われ、どのようにわかるかを示します。
ソフトウェアの更新が中央の場所からプッシュされる企業のコンピューターでは、コンピューターに "信頼された"証明書を送信できます。この証明書は、VerisingやEntrustなどの信頼できる証明書の横に保存されます。
会社のプロキシはその証明書の秘密鍵を保持します。
https://mybank.com/ のようなHTTPS Webサイトにアクセスすると、プロキシが途中に配置されます。ブラウザでHTTPS接続を確立し、mybank.comの証明書をオンザフライで生成します。プロキシからmybank.comへの新しい接続でのすべてのトラフィックを再生(およびおそらく監視またはログ)します。
これが当てはまるかどうかは、南京錠のアイコンで確認できます。 mybank.comの証明書がacmesprockets.com(会社名)によって発行されたことがわかった場合は、「暗号化された」トラフィックを彼らが見ることができます。ただし、会社はコンピュータに任意の証明書を信頼させることができるため、「Entrust.net Secure Server Certification Authority」などのよく知られた名前を使用して証明書を作成することができます(商標法で違法となる可能性がある場合でも)。
では、どうすればわかりますか? Webサイトに接続したら、証明書を確認します。詳細はブラウザごとに異なりますが、通常は、httpsの横にある南京錠のアイコンをクリックして開始します。その証明書から、証明書の拇印を見つけてオンラインで調べます。さらに良いことに、認証局で同じことを行います。オンラインで証明書のサムプリンが見つからない場合(ただし、自宅や電話で確認できる場合)、途中でHTTPSトラフィックが復号化される可能性があります。
単純なプロキシでもサーバーの名前を記録と表示されます。たとえば https://example.com/some/address.html にアクセスすると、ブラウザからプロキシサーバーに次のようなリクエストが作成されます。
CONNECT example.org:443 HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:2.0b13pre) ...
Proxy-Connection: keep-alive
Host: example.org
接続の残りの部分は暗号化され、単純なプロキシが転送するだけです。
。
ただし、プレーンテキストで完全なトラフィックを表示できる複雑なプロキシサーバーは他にもあります。ただし、これらの種類のプロキシサーバーでは、サーバー証明書を即座に作成できるルート証明書がインストールされている必要があります。
ブラウザで証明書チェーンを見ると、通常、この種の中間者攻撃が明らかになります。少なくとも、政府機関ではなく、自社で行われているという一般的なケースでは、
HTTPSを使用すると、SSL/TLSトンネルが確立されfirst、HTTPトラフィックはそのトンネル内でのみ発生します。一部の情報はまだ漏れています:
クライアントがプロキシを使用している場合、プロキシへの接続はCONNECT www.example.com:443
とターゲットサーバー名のようになります。または、クライアントがターゲットサーバーのIPアドレスを送信することもできますが、これは明らかにされにくいだけです。また、クライアントはサーバーのIPアドレスを知るために、会社自体が提供するDNSサーバーを使用して名前解決を行う必要があります。
最近の十分な数のクライアントが、最初のSSLハンドシェイクの一部としてターゲットサーバー名を送信します(これは サーバー名表示 拡張です)。
サーバーは、証明書を送り返すことによって応答します。証明書には、プレーンビューでの定義とサーバー名が含まれます。
これらから、ターゲットサーバー名は絶対に秘密ではないと結論付けることができます。あなたはあなたの会社がそれを学んでいると思い込むかもしれません。
通信の残りの部分は暗号化されているため、部外者から名目上アクセスできません。ただし、クライアントによって送受信されるデータパケットのlengthは、任意の盗聴者によって(RC4暗号スイートが使用されている場合は1バイトの精度で)推測できます。これは、状況に応じて、多くの情報を明らかにすることもできます。
セキュリティに真剣に取り組んでいる場合Blue Coat's ProxySG のようなより高度なプロキシがインストールされている可能性があります。このようなシステムは、ターゲットサーバーの偽の証明書を動的に生成することで 中間者攻撃 を実行します。これにより、SSLがないかのように、完全なデータにアクセスできます。
ただし、このような傍受は、プロキシが偽の証明書を発行するために使用するルートCA証明書をデスクトップシステムのトラストストアに追加できる場合にのみ可能です。これはかなり侵入的なアクションです。したがって、もし彼らがそれをすることができたならなぜ彼らはそこで止まるのでしょうか? Webブラウザー、キーボード、ディスプレイを接続するスパイソフトウェアを簡単に挿入した可能性があります。そして、あなたがマシンで行うすべては彼らに知られています。
または、ifマシンが会社からの干渉を受けていないことを確認できます(例: 自分のデバイス であり、会社をインストールしていません-その上で提供されたソフトウェア)、MitM-proxyはSSL接続を復号化できません。
あなたの会社からあなたのトラフィックを隠す非常に簡単な方法は彼らの施設をまったく使わないことです。 3Gキー(またはスマートフォンにテザリング)を備えた自分のラップトップを持参してください。自分のインターネットにお金を払うことで、ネットワークベースの検出を回避し、有料の作業(しかしもちろん、検出)を行う代わりにWebをローミングすることができますたるみの数は、コンピュータ化されたギズモの使用のみに制限されたことはありません)。
ログ記録するようにWebsenseが設定されている場合、はい、彼らはあなたがどこに行ったか、あなたがアクセスしたすべてのURLを見ることができます。
コンテンツが表示される可能性は低くなります-これは、websense/proxyの設定方法によって異なります-可能です。 SSLセッションがブラウザーからサーバーへのものであるか、それともプロキシーへのものであるかによって異なります(効果的に中間者攻撃を実行しています)。
BlueCoatプロキシなどを使用している場合、暗号化されていないすべてのSSLトラフィックを見ることができます。多くの大企業がこれを行っています。
Guillaumeの回答に続いて、不正行為をチェックする別の方法は、 "Perspectives" Firefoxアドオンを使用することです。 httpsサイトにアクセスすると、(インターネット「公証人」を介して)(Webサーバー証明書を介して)受け取った公開鍵が実際にアクセスしているサイトに属していることを確認します。
はい、会社はSSLトラフィックを監視できます。
他の回答は、SSLは確かに安全だと言っています。
ただし、次の画像に示すように、企業プロキシは暗号化されたトラフィックを傍受して検査できます。
この画像は、仕事用のコンピュータでGoogleにアクセスしたときのものです。
ここで、彼らは Forefront Threat Management Gateway 201 を使用します。これは私と安全なサイトの間の接続を傍受する可能性があります。
説明:
SSL(Secure Socket Layer)およびTLS(Transport Layer Security)のセキュリティは、PKI(Public Key Infrastruture)に基づいています。
PKIは、ルート証明書と呼ばれる一連の信頼できる証明書で構成されています。
私の会社では、ルート証明書の1つが、アクセスするWebサイトごとにForefrontが証明書を生成する証明書です。
私のコンピュータはプロキシが使用した証明書を信頼しているため、警告は生成されず、接続は安全に行われますが、プロキシサーバーで検査できます。
証明書だけでなく、ハンドシェイクメッセージからもサーバー名情報を取得できます。私がテストしたように、トラフィックの%80には、クライアントのhelloメッセージ(httpsプロトコルでクライアントからサーバーに送信される最初のメッセージ)にserver_name拡張が含まれています。ただし、この拡張機能はオプションであり、存在しない場合もあります。この場合、証明書を確認できます。証明書には、サーバー名が再び存在します。