多数のサイト(理想的には最大1 000 000)を表示するために必要なすべてのDNSクエリのリストを作成する必要があります。リストは、クエリを必要とするページにクエリを割り当てる必要があります。
例:google.comにアクセスするには、google.com、ssl.gstatic.com、apis.google.com、およびその他のサイトのDNSクエリが必要でした。私のリストは次の行に沿って何かを読むでしょう
google.com:google.com,ssl.gstatic.com,apis.google.com,...
(ここでは正確な形式は関係ありません)
私は現在、これを行う方法について2つのアイデアを持っています。
- ロギングを使用してDNSサーバーをセットアップし、DNSサーバーをリゾルバーとして使用してドメインの特定のリストにアクセスするスクリプトを作成します
- サイトのソースコードをロードするスクリプトを作成し(たとえば、Pythonのurllib2を考えてください)、すべての埋め込みコンテンツを解析し、必要となるクエリのリストを作成します
ただし、どちらのアイデアにも問題があります。訪問の間隔が2秒の1000000ドメインへの訪問(後で訪問したサイトにクエリを割り当てることができるようにするため)、ロードに約1秒かかる(これはかなり楽観的です)と、34日以上かかります。しかし、パーサーを構築するには、DNSクエリを生成する可能性のあるすべての形式の埋め込みコンテンツの完全なリストが必要です。また、ターゲットURLの一部(iframeを考えてください)もクエリする必要があり、一部のコンテンツは不可能です。さらにクエリをチェックします(他のサーバーに接続するフラッシュコンテンツを考えてください)。
私はここでちょっと立ち往生しているので、これに対処する方法についていくつかの意見をいただければ幸いです。URLのリストをおそらく100000に短縮することは可能ですが、それより少なくすると、結果の使用が大幅に減少します。
コンテキストについて:提案されたDNSプライバシー拡張機能に対する攻撃戦略を扱う学位論文にこのリストが必要です。