УРОВЕНЬ ТЕХНИКИ
[0001] Изобретение относится к системам и способам защиты конфиденциальности онлайн-коммуникации и, в частности, к предотвращению получения удаленным объектом информации о привычках просмотра интернет-пользователей.
[0002] Просмотр Интернета стал неотъемлемой составляющей современной жизни и работы. После взрыва доступности к Интернету некоторые коммерческие, а также вредоносные организации оказались все больше заинтересованы в доступе и анализе истории просмотров и/или шаблонов отдельных пользователей Интернета. Такая информация может затем использоваться для таргетирования рекламы и предоставления различных услуг соответствующим пользователям. Тем не менее, информация того же типа может использоваться для профилирования и/или таргетирования пользователей в соответствии с более чувствительными аспектами их личности, такими как сексуальная ориентация, политические и религиозные взгляды, раса, употребление препаратов, интеллект и т. д. Все большее число пользователей Интернета обеспокоены конфиденциальностью и тем, как разрешение компаниям и/или государству отслеживать их поведение в Интернете может влиять на их права и подвергать их различным угрозам и злоупотреблениям.
[0003] Распространенным способом сбора истории просмотров пользователя являются запросы службы доменных имен (DNS). DNS обычно относится к службе преобразования доменных имен в сетевые (например, IP) адреса, которая затем позволяет электронным устройствам обмениваться данными по сетям связи. Поскольку DNS изначально была разработана для скорости и удобства, а не для конфиденциальности, традиционно DNS-провайдеры и интернет-провайдеры имели практически беспрепятственный доступ к DNS-запросам, выдаваемым клиентами. В последние годы некоторые усилия были направлены на предоставление альтернатив классическому DNS. Некоторые примеры включают набор протоколов, известных как «DNS поверх протокола безопасности транспортного уровня (TLS)» и «DNS поверх протокола защищённой передачи гипертекста (HTTPS)». Такие версии DNS шифруют индивидуальные запросы от клиентов и/или ответы сервера, так что в принципе ни один объект, кроме конечного клиента и сервера имен, не имеет доступа к соответствующим данным. Например, такие протоколы могут предотвращать отслеживание поставщиком интернет-услуг и/или вредоносной третьей стороной DNS-запросов пользователя. Однако, поскольку данные шифруются только во время транспортировки между клиентом и сервером имен, такие протоколы не мешают самому DNS-провайдеру собирать данные просмотра соответствующего пользователя.
[0004] Поэтому существует значительный интерес к разработке более функциональной и надежной службы доменных имен, сохраняющей конфиденциальность.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0005] Согласно одному аспекту, способ выполнения поиска службы доменных имен (DNS) содержит использование по меньшей мере одного аппаратного процессора компьютерной системы, в ответ на получение индикатора доменного имени, чтобы определять, выполняется ли условие конфиденциальности в соответствии с доменным именем. Способ дополнительно содержит, в ответ на определение, выполняется ли условие конфиденциальности, если да, формулирование частного запроса, содержащего шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем. Способ дополнительно содержит, в ответ на формулирование частного запроса, передачу частного запроса на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифрование содержимого частного ответа в соответствии с процедурой гомоморфного дешифрования.
[0006] Согласно другому аспекту, компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы в ответ на получение индикатора доменного имени, определять, выполняется ли условие конфиденциальности в соответствии с доменным именем. По меньшей мере один аппаратный процессор дополнительно конфигурирован, в ответ на определение, выполняется ли условие конфиденциальности, если да, формулировать частный запрос, содержащий шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем. По меньшей мере один аппаратный процессор дополнительно конфигурирован, в ответ на формулирование частного запроса, передавать частный запрос на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифровать содержимое частного ответа в соответствии с процедурой гомоморфного дешифрования.
[0007] Согласно другому аспекту, невременный машиночитаемый носитель хранит инструкции, которые, при исполнении по меньшей мере одним аппаратным процессором компьютерной системы, побуждают компьютерную систему, в ответ на получение индикатора доменного имени определять, выполняется ли условие конфиденциальности в соответствии с доменным именем. Инструкции дополнительно побуждают компьютерную систему, в ответ на определение, выполняется ли условие конфиденциальности, если да, формулировать частный запрос, содержащий шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем. Инструкции дополнительно побуждают компьютерную систему, в ответ на формулирование частного запроса, передавать частный запрос на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифровать содержимое частного ответа в соответствии с процедурой гомоморфного дешифрования.
[0008] Согласно другому аспекту, серверная компьютерная система конфигурирована для участия в транзакциях службы доменных имен (DNS) с множеством клиентов. Серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы принимать частный запрос от клиента из множества клиентов, причем частный запрос содержит шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы в ответ на получение частного запроса, выполнять зашифрованный поиск в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и передавать клиенту частный ответ, содержащий шифрование записи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения следующего ниже подробного описания, данного со ссылками на чертежи, на которых изображено следующее:
[0010] На фиг. 1 показан пример системы электронной связи, сохраняющей конфиденциальность, в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0011] На фиг. 2 показан пример серверной системы службы доменных имен (DNS), содержащей множество коммуникативно связанных серверов имен в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0012] На фиг. 3 показана типичная транзакция DNS, известная из предшествующего уровня техники.
[0013] На фиг. 4 проиллюстрирован DNS-запрос и ответ, известный из предшествующего уровня техники.
[0014] На фиг. 5 показаны примеры полного доменного имени (FQDN) и множество иллюстративных частично квалифицированных доменных имен (PQDN) домена Интернета в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0015] На фиг. 6 показан пример пространства доменных имен в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0016] На фиг. 7 показана транзакция DNS в соответствии с некоторыми вариантами осуществления настоящего изобретения, причем транзакция содержит частный запрос и частный ответ.
[0017] На фиг. 8 проиллюстрирован пример содержания базы данных доменных имен в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0018] На фиг. 9 проиллюстрирован пример запроса на извлечение конфиденциальной информации (PIR) и пример PIR-ответа в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0019] На фиг. 10 показаны примеры компонентов, выполняющихся в клиентской системе в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0020] На фиг. 11 показан пример последовательности этапов, выполняемых DNS-резолвером клиентской системы в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0021] На фиг. 12 проиллюстрированы примеры компонентов, выполняемых в серверной системе DNS в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0022] На фиг. 13 показан пример последовательности этапов, выполняемых модулем обслуживания базы данных DNS-сервера в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0023] На фиг. 14 показан пример последовательности этапов, выполняемых модулем PIR DNS-сервера в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0024] На фиг. 15 показан пример последовательности этапов, выполняемых DNS-резолвером клиента для выполнения поиска DNS в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0025] На фиг. 16 показан пример набора доменов, сгруппированных в кластеры в соответствии с некоторыми вариантами осуществления настоящего изобретения.
[0026] На фиг. 17 показаны примеры аппаратных компонентов вычислительного устройства, выполненных с возможностью осуществления некоторых из способов и алгоритмов, описанных в данном документе.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0027] Следует понимать, что в нижеследующем описании все перечисленные соединения между структурами могут быть прямыми функциональными соединениями или непрямыми функциональными соединениями через промежуточные структуры. Набор элементов включает в себя один или более элементов. Считается, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном проиллюстрированном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, сгенерированный обработкой второго элемента и, опционально, других данных. Принятие определения или решения в соответствии с параметром включает в себя принятие определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа – это последовательность инструкций процессора, выполняющих задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными объектами программного обеспечения или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Сетевой домен состоит из группы взаимосвязанных вычислительных устройств, образующих отдельную часть компьютерной сети. Интернет-домен – это сетевой домен, подключенный к общедоступному Интернету. Доменное имя – это метка/псевдоним, идентифицирующий адрес сетевого/интернет-домена. Термин «база данных» используется здесь для обозначения любого организованного набора данных. Машиночитаемые носители включают в себя невременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также каналы связи, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящее изобретение обеспечивает, среди прочего, компьютерные системы, содержащие аппаратные средства (например, один или более процессоров), запрограммированные для выполнения описанных здесь способов, а также машиночитаемые инструкции кодирования мультимедиа для выполнения способов, описанных в данном документе.
[0028] Нижеследующее описание иллюстрирует варианты осуществления изобретения в качестве примера, а не обязательно в качестве ограничения.
[0029] На фиг. 1 показан пример системы электронной связи, сохраняющей конфиденциальность, в соответствии с некоторыми вариантами осуществления настоящего изобретения. Набор примерных клиентских устройств 12a-f обмениваются данными друг с другом и/или с удаленным компьютером 16 сервера контента по каналам связи для обмена данными, такими как веб-контент, электронные сообщения, различные документы и т. д. Клиентские устройства 12a-f могут включать в себя персональные компьютерные системы, корпоративные мэйнфреймы, мобильные вычислительные платформы (например, портативные компьютеры, планшеты, мобильные телефоны), развлекательные устройства (например, телевизоры, игровые консоли), носимые устройства (например, умные часы, фитнес-браслеты), бытовые приборы (например, холодильники, стиральные машины) и любое другое электронное устройство, содержащее процессор, память и интерфейс связи, позволяющий соответствующему устройству взаимодействовать с другими устройствами/компьютерными системами.
[0030] В приведенной в качестве примера конфигурации на фиг. 1 клиентские устройства 12a-e соединены между собой локальной сетью 13, такой как локальная вычислительная сеть (LAN). В одном примере сценария использования устройства 12a-e представляют собой электронные устройства в доме, а локальная сеть 13 представляет собой домашнюю сеть. В другом сценарии использования клиентские устройства 12a-e могут представлять собой компьютеры, расположенные в офисе или отделе корпорации и соединенные между собой корпоративной LAN. Устройства 12a-e могут быть дополнительно подключены к расширенной сети 15, такой как глобальная вычислительная сеть (WAN) и/или Интернет. В некоторых вариантах осуществления маршрутизатор 14 управляет и/или регулирует трафик данных в локальной сети 13, например, путем назначения сетевых адресов клиентам 12a-e, подключенным к локальной сети 13, и маршрутизации отдельных сообщений в соответствии с такими адресами. В некоторых вариантах осуществления, как проиллюстрировано на фиг. 1, маршрутизатор 14 выполнен в виде шлюза к локальной сети 13 в том смысле, что по меньшей мере часть сетевого трафика между клиентскими устройствами 12a-e и расширенной сетью 15 проходит через маршрутизатор 14. Другие клиентские устройства, такие как приведенное в качестве примера устройство 12f на фиг. 1, могут не подключаться к локальной сети 13, а вместо этого подключаться непосредственно к расширенной сети 15, например, посредством сети мобильной телефонии или общедоступной точки доступа Wi-Fi.
[0031] Серверная система 20 службы доменных имен (DNS) предоставляет службы доменных имен, сохраняющие конфиденциальность, клиентским устройствам 12a-f в соответствии с некоторыми вариантами осуществления настоящего изобретения. В данном документе подразумевается, что службы доменных имен включают преобразование доменных имен в сетевые адреса и/или наоборот и предоставление другой информации о домене, включая, среди прочего, данные регистрации домена (например, данные WHOIS) и индикаторы того, принадлежит ли конкретный домен к конкретной категории/кластеру доменов, распространяет ли домен контент для взрослых, участвует ли домен во вредоносной деятельности (например, ботнетах, интернет-мошенничестве) и т. д. Серверная система 20 DNS в общем представляет собой набор связанных с возможностью обмена данными компьютеров, таких как примеры серверов 20a-d имен, показанных на фиг. 2. Функция каждого такого сервера имен более подробно описана ниже. Отправка запроса серверной системе 20 DNS включает в себя отправку соответствующего запроса любому из серверов 20a-d имен.
[0032] Типичный обмен данными между клиентским устройством 12a-f и контент-сервером 16 содержит несколько этапов. Передача обычно требует знания сетевого адреса (например, Интернет-протокол – IP-адрес) контент-сервера 16. Часто этот адрес не известен клиентскому устройству по разным причинам. Например, может быть множество зеркальных контент-серверов, и клиент может быть динамически направлен на наиболее удобный в соответствии с текущей нагрузкой каждого зеркального сервера или в соответствии с текущим географическим местоположением клиентского устройства. Однако клиентское устройство может знать доменное имя сервера 16. Термин «доменное имя» в настоящем документе обозначает любой псевдоним требуемого сетевого адреса. Таким образом, для установления соединения с контент-сервером 16 программный объект, выполняемый на соответствующем клиентском устройстве, может выдавать запрос на доступ к соответствующему доменному имени вместо IP-адреса как такового. В ответ другой программный объект (например, компонент операционной системы, выполняющийся на соответствующем клиенте) может перехватить запрос и попытаться преобразовать псевдоним/доменное имя в фактический сетевой адрес, а затем передать запрос в правильное сетевое местоположение. Такое преобразование может вызывать провайдера DNS, такого как серверная система 20 на фиг. 1.
[0033] На фиг. 3-4 проиллюстрирован типичный обмен сообщениями в соответствии с протоколом DNS, известным в данной области техники. Клиентское устройство 12 передает DNS-запрос 22 в серверную систему 20 DNS, причем запрос 22 содержит индикатор домена 30 Интернета (например, доменное имя, как показано на фиг. 3) и индикатор типа вопроса Q. Тип вопроса указывает тип записи ресурса DNS, возвращаемой DNS-сервером 20. Примеры вопросов включают «A», который запрашивает IP-адрес, сформулированный в 4-й версии Интернет-протокола (IPv4), и «AAAA», который возвращает IP-адрес, сформулированный в 6-й версии Интернет-протокола (IPv6). Другие примеры вопросов/типов записей ресурсов включают «TXT», «PTR», «LOC» и т. д. В ответ серверная система 20 DNS может возвращать DNS-ответ 24 запрашивающему клиенту, причем ответ 24 включает в себя кодирование сети записи ресурса, соответствующей соответствующему доменному имени/псевдониму. В примере на фиг. 4 типом записи является IP-адрес 40 в 32-битном формате IPv4. В некоторых случаях, например, в системах, использующих DNS поверх протокола HTTPS, DNS-запрос 22 и/или DNS-ответ 24 могут быть зашифрованы.
[0034] На фиг. 5 показан пример доменного имени интернет-домена. Доменное имя может состоять из полностью определенного доменного имени (FQDN) 36, которое полностью и однозначно определяет соответствующий домен посредством упорядоченной последовательности токенов/меток 32a-d, разделенных разделительным символом 34 (в проиллюстрированном примере точка). Фрагмент FQDN 36, содержащий поднабор/подпоследовательность токенов 32a-d FQDN, обычно известен как частично определенное доменное имя (PQDN). Элементы 38a-c иллюстрируют различные примеры PQDN FQDN 36. В отличие от FQDN 36, каждое PQDN 38a-c определяет соответствующий домен с некоторым уровнем неоднозначности, то есть может существовать множество FQDN, имеющих одинаковые характеристики PQDN.
[0035] Представление доменного имени в виде последовательности токенов (см. фиг. 5) согласуется с древовидным иерархическим представлением пространства доменных имен, как показано на фиг. 6, причем каждый токен 32a-d FQDN 36 соответствует ветви дерева, а каждый экземпляр разделителя (например, точка) соответствует точке ветвления. Иерархия доменных имен имеет несколько заметных уровней, содержащих по меньшей мере корневой уровень («.»), уровень домена верхнего уровня (TLD), содержащий токены, такие как com, net, fashion, tv, и маркеры, указывающие на страну, такие как ro, fr и т. д., уровень домена, содержащий токены, такие как wikipedia, facebook и т. д., и уровень поддомена, содержащий различные токены префикса, специфичные для домена. Таким образом, сборка FQDN 36 из отдельных токенов эквивалентна прохождению иерархии дерева от конечного листа до корня, как проиллюстрировано на фиг. 6. Для ясности, токены, характеризующие доменное имя на уровне TLD (обычно последний токен FQDN 36), будут в настоящем документе считаться токенами TLD. Аналогичным образом, токены, характеризующие доменное имя на уровне домена (обычно предпоследний токен FQDN 36), будут в настоящем документе считаться токенами домена. Наконец, все токены, предшествующие токену домена в FQDN 36, в данном документе будут считаться токенами префикса.
[0036] Служба доменных имен может быть организована таким образом, что ни один сервер имен не может самостоятельно разрешить полностью определенное доменное имя. Вместо этого пространство доменных имен разделено на множество зон полномочий, причем каждая зона полномочий разрешается отдельным сервером имен. Как правило, каждая зона полномочий содержит выбранное поддерево/ветвь иерархии доменных имен, как проиллюстрировано примерами зон 37a-c полномочий на фиг. 6. В проиллюстрированном примере серверы 20b-c-d имен разрешают доменные имена в зонах 37a-b-c полномочий, соответственно.
[0037] В некоторых вариантах осуществления разрешение FQDN в соответствующий IP-адрес происходит итеративным образом, причем каждая последовательная итерация прогрессирует до последовательного уровня иерархии доменных имен. Каждая последовательная итерация может быть определена в соответствии с отдельным токеном FQDN 36. Каждая итерация может содержать отправку DNS-запроса на отдельный сервер имен и в ответ получение ответа DNS, указывающего IP-адрес другого сервера имен. Серверы, разрешающие уровень TLD доменного имени, то есть токены TLD, такие как «.org», в настоящем документе считаются корневыми серверами имен (см., например, корневой сервер имен 20b). Серверы, разрешающие доменное имя на уровне домена, то есть токен домена FQDN 36, в настоящем документе считаются серверами имен TLD (см., например, сервер имен TLD 20c, разрешающий среди доменов домена верхнего уровня «.org»). Серверы, разрешающие уровень поддомена, то есть токен(ы) префикса FQDN 36, в настоящем документе считаются авторитативными серверами для соответствующего домена (см., например, авторитативный сервер 20d, разрешающий среди поддоменов «wikimedia.org»). В одном примере в соответствии с фиг. 6 разрешение доменного имени «text-lb.codfw.wikimedia.org» содержит отправку первого DNS-запроса на корневой сервер 20b имен и в ответ получение от сервера 20b имен IP-адреса сервера 20c имен TLD, ответственного за разрешение зоны полномочий домена верхнего уровня «.org». Следующий этап итерации может содержать отправку второго DNS-запроса на сервер 20c имен TLD и в ответ получение от сервера 20c имен IP-адреса авторитативного сервера 20d имен домена «wikimedia.org». Еще один этап итерации может содержать отправку третьего DNS-запроса на авторитативный сервер 20d имен и в ответ получение от сервера 20d имен IP-адреса контент-сервера, идентифицированного FQDN «text-lb.codfw.wikimedia.org».
[0038] В некоторых вариантах осуществления запросы, передаваемые на всех этапах итеративного разрешения DNS, содержат полностью определенное доменное имя. В альтернативных вариантах осуществления, повышающих конфиденциальность, DNS-запрос, отправленный в каждой итерации, может содержать, среди прочего, отдельное PQDN (например, один токен) и, возможно, дополнительные символы, такие как подстановочный знак «*». Например, PQDN, отправленное на выбранный сервер имен, может содержать соответствующее FQDN, разделенное только на один токен, больше, чем зона полномочий соответствующего сервера имен. В примере на фиг. 6 DNS-запрос, отправленный на корневой сервер 20b имен, может запрашивать о PQDN «.org», в то время как DNS-запрос, отправленный на сервер 20c имен TLD, может запрашивать о PQDN «*.wikimedia.org».
[0039] В некоторых вариантах осуществления такое итеративное разрешение домена осуществляется специализированным сервером 20a имен резолвера (фиг. 2), который может дополнительно управлять кешем DNS, содержащим результаты недавних и/или популярных поисков DNS. В таких конфигурациях клиентские устройства 12a-f могут передавать один DNS-запрос к серверу 20a имен резолвера, причем соответствующий запрос запрашивает разрешение полностью определенного доменного имени. Сервер 20a имен может затем выполнять поиск в кеше и/или выполнять требуемые итеративные DNS-запросы от имени клиента. Когда соответствующее FQDN полностью разрешено, сервер 20a имен может вернуть запрашивающему клиенту IP-адрес, связанный с соответствующим FQDN.
[0040] Фиг. 7 иллюстрирует примерную DNS-транзакцию, сохраняющую конфиденциальность, в соответствии с некоторыми вариантами осуществления настоящего изобретения. Транзакция содержит первую сторону (например, клиента), выдающую запрос на элемент второй стороне (например, серверу), и вторая сторона извлекает запрошенный элемент из хранилища/базы данных, причем процедура извлечения выполняется без раскрытия элемента второй стороне. Иначе говоря, сервер не знает, какой элемент был запрошен, но тем не менее извлекает запрошенный элемент из хранилища. В одном примере транзакции, сохраняющей конфиденциальность, как подробно описано ниже, запрос, выданный клиентом, шифруется, и сервер извлекает зашифрованную версию запрошенного элемента без дешифрования запроса. Таким образом, конфиденциальность клиента сохраняется.
[0041] В некоторых вариантах осуществления DNS-транзакции, сохраняющие конфиденциальность, выполняются в соответствии с процедурой извлечения конфиденциальной информации (PIR). Пример обмена, проиллюстрированный на фиг. 7, содержит клиентское устройство 12 (которое в общем представляет любое из клиентских устройств 12a-f на фиг. 1), передающее частный запрос (проиллюстрированный как PIR-запрос 52) в серверную систему 20 DNS и в ответ получающее от серверной системы 20 частный ответ (проиллюстрированный как PIR-ответ 54).
[0042] В некоторых вариантах осуществления процедура PIR использует гомоморфное шифрование для обеспечения конфиденциальности обмена. Гомоморфное шифрование – это конкретный вид шифрования, который позволяет выполнять определенные вычисления (например сложение и/или умножение) зашифрованных данных, при этом дешифрование результата таких вычислений производит такой же вывод, как и применение соответствующих вычислений к незашифрованной версии тех же данных. Другими словами, если Enc(p) = c обозначает операцию гомоморфного шифрования, где m обозначает сообщение с открытым текстом, а c обозначает соответствующий ему зашифрованный текст, Dec(c) = m обозначает операцию гомоморфного дешифрования, которая восстанавливает соответствующее сообщение из своего зашифрованного текста, и Eval (F, {c1,..., ck}) = C обозначает процедуру гомоморфной оценки, создающую зашифрованный текст C, применяя функцию F к набору зашифрованных текстов ci, то:
[1]
где mi =Dec(ci), i =1, ..., k. В формальном математическом языке говорят, что процедуры шифрования и дешифрования гомоморфной схемы шифрования являются гомоморфизмами между пространством с открытым текстом и пространством зашифрованного текста.
[0043] В данной области техники известно несколько схем/криптосистем гомоморфного шифрования. Схемы, которые сохраняют гомоморфное свойство над любой комбинацией сложений и умножений, широко известны как полностью гомоморфные. В качестве примера можно привести, в частности, схему Джентри-Сахаи-Уотерс (GSW). Другие схемы/алгоритмы являются гомоморфными только для определенного типа операции, например, только сложение в случае схемы Пайе, и только умножение в случае схемы Ривеста-Шамира-Адельмана (RSA). Такие схемы известны в данной области техники как частично гомоморфные. В отличие от этого, шифры, которые не имеют гомоморфного свойства, описанного выше, в настоящем документе считаются негомоморфными. Примеры негомоморфных шифров включают в себя Расширенный стандарт шифрования (AES) и другие шифры, используемые в семействе безопасности транспортного уровня (TLS) протоколов связи.
[0044] В примере процедуры PIR с использованием гомоморфного шифрования функция F может заменять набор операций, составляющих выполнение поиска в базе данных. В простом примере сервер содержит три элемента в базе данных: D= {a, b, c}. Клиент хочет извлечь второй элемент (т. е. «b»), не разглашая эту информацию серверу. Клиент может указать требуемый элемент, используя индекс поиска, например, битовый массив I, который содержит нули везде, кроме позиции требуемого элемента в базе D данных. В текущем примере I={0, 1, 0}. Затем клиент может гомоморфно зашифровать соответствующий битовый массив и передать его на сервер. В свою очередь, сервер может применить функцию F к зашифрованному битовому массиву:
, [2]
где * обозначает матричное умножение, а T обозначает транспозицию. Затем сервер передает полученный зашифрованный вектор C обратно клиенту. Гомоморфное свойство гарантирует, что дешифрование C дает тот же результат, что и применение функции F к незашифрованному битовому массиву I:
[3]
Таким образом, клиент извлекает b, в то время как сервер видит только зашифрованные битовые массивы и выполняет все операции без дешифрования информации, полученной от клиента.
[0045] В некоторых вариантах осуществления серверная система 20 DNS соединена с возможностью обмена данными с базой 50 данных доменных имен, которая хранит набор записей, индексированных в соответствии с доменным именем. Индекс, прикрепленный к каждой записи, может указывать местоположение соответствующей записи в соответствующем хранилище данных или иным образом обеспечивать выборочную идентификацию/извлечение соответствующей записи в/из базы 50 данных. В простом примере, в котором данные организованы в табличной форме, каждая строка может представлять отдельную запись, и строки индексируются с помощью различных номеров строк и/или меток. Каждая запись может содержать набор информационных элементов, указывающих на различные характеристики соответствующего домена. В одном варианте осуществления службы поиска DNS примеры информационных элементов включают в себя IP-адрес компьютера, образующего часть соответствующего домена, и/или IP-адрес сервера имен (см., например, серверы 20a-d имен на фиг. 2 и 6). Другие примеры информационных элементов содержат регистрационные данные домена для соответствующего домена (например, идентификационные данные владельца, платежные данные, контактные данные владельца, такие как уличный адрес, номер телефона, адрес электронной почты, дата истечения срока действия доменного имени, идентификатор текущего регистратора домена и т. д.). Другие примеры информационных элементов могут включать в себя индикаторы того, принадлежит ли соответствующий домен к определенной категории или нет, или индикатор категории, к которой принадлежит соответствующий домен. Например, информационный элемент может указывать, находится ли соответствующий домен в черном/белом списке, известно ли, что соответствующий домен распространяет мошеннические документы и/или нежелательные сообщения (спам), является ли соответствующий домен частью ботнета или участвует в атаках типа «отказ в обслуживании» (DoS). Другой пример информационного элемента может указывать, находится ли соответствующий домен в пределах выбранной географической области или подсети (например, геозоны). Еще пример информационного элемента может указывать, принадлежит ли соответствующий домен или связан с выбранной коммерческой организацией. Другие примеры будут обсуждаться ниже.
[0046] В некоторых вариантах осуществления индекс, идентифицирующий каждую запись, определяется в соответствии с доменным именем, таким образом обеспечивая связь между различными информационными элементами соответствующей записи и доменным именем. Соответствующее доменное имя может представлять собой FQDN или PQDN. Один пример индекса содержит хеш, вычисленный в соответствии с соответствующим доменным именем. Хеш в настоящем документе обозначает результат применения хеш-функции. Хеш-функция – это особый вид математической функции, которая преобразует данные произвольного размера в числа, имеющие заданную универсальную верхнюю границу. Поскольку строки символов могут быть выражены в виде чисел, хеш-функции также могут преобразовывать любую строку символов в число, например, в 256-битное целое число. Примеры хеш-функций включают в себя H(n)= n mod m, где n и m представляют собой целые числа, хеши контрольной суммы (например, циклическая проверка избыточности – CRC), а также криптографические хеш-функции, такие как семейство хеш-функций дайджеста сообщений (например, MD5) и безопасное семейство хеш-функций (например, SHA-3), среди прочих. Индекс, вычисленный в соответствии с результатом применения хеш-функции, в настоящем документе считается хеш-индексом.
[0047] В некоторых вариантах осуществления индекс, идентифицирующий запись базы 50 данных доменных имен, вычисляется с использованием схемы хеширования кукушки, которая использует множество хеш-функций H1, ..., Hk. Пример такого хеширования проиллюстрирован на фиг. 8, где база 50 данных содержит множество хеш-таблиц 51a-c. Каждая строка каждой хеш-таблицы представляет собой отдельную запись, индексированную в соответствии с соответствующим доменным именем, обозначенным как dj, j= 1,2,.... Каждая запись содержит по меньшей мере информационный элемент, обозначенный как e(dj), который может содержать, например, IP-адрес соответствующего домена. В каждой хеш-таблице 51a-c индекс, идентифицирующий каждую запись, определяется путем применения хеш-функции к соответствующему доменному имени. Однако каждая таблица 51a-c использует отдельную хеш-функцию для определения соответствующих индексов. В примере хеш-схемы кукушки записи вставляются последовательно путем вычисления индекса для каждой записи с использованием первой хеш-функции. Когда строка, указанная соответствующим индексом, пуста, текущая запись вставляется в эту строку. Если соответствующая строка уже занята, вычисляется другой хеш-индекс в соответствии со второй хеш-функцией и т. д. Когда индексы, рассчитанные в соответствии со всеми хеш-функциями, указывают на строки, которые уже заняты, одна из резидентных записей смещается текущей записью. Затем предыдущий обитатель соответствующей строки помещается в альтернативное место (т. е. в индекс, вычисленный с использованием другой хеш-функции), возможно, смещая другую запись. Процесс продолжается рекурсивно до тех пор, пока все записи не найдут место в той или иной хеш-таблице. Однако этот процесс вставки может потерпеть неудачу, например, путем ввода бесконечного цикла. В этом случае хеш-таблицы перестраиваются с использованием нового выбора хеш-функций.
[0048] Фиг. 9 иллюстрирует пример содержания PIR-запроса 52 и PIR-ответа 54 в соответствии с некоторыми вариантами осуществления настоящего изобретения. PIR-запрос 52 может содержать зашифрованный текст, содержащий шифрование индекса, идентифицирующего выбранную запись базы 50 данных доменных имен. В примере на фиг. 9 индекс содержит хеш доменного имени. В варианте осуществления, в котором используется хеширование кукушки, для каждого доменного имени клиентское устройство 12 может отправлять множество зашифрованных хеш-индексов, каждый из которых вычисляется в соответствии с отдельной хеш-функцией Hj. Такие зашифрованные хеш-индексы могут быть упакованы в отдельные PIR-запросы или объединены в один PIR-запрос.
[0049] В некоторых вариантах осуществления PIR-запрос 52 дополнительно содержит индикатор (в данном документе обозначенный как h) хеш-функции, используемой для вычисления соответствующего хеш-индекса. Например, h может содержать номер версии программного обеспечения или какое-либо другое значение параметра, позволяющее серверной системе 20 DNS определять, совпадают ли хеш-функции, используемые соответствующим клиентом, с теми, которые используются для построения хеш-таблиц базы 50 данных доменных имен. Более подробная информация о проверке согласованности хеширования приведена ниже в отношении фиг. 13.
[0050] Когда база 50 данных содержит запись, идентифицированную соответствующим индексом, PIR-ответ 54 может возвращать зашифрованный текст, содержащий шифрование по меньшей мере записи e соответствующей записи базы данных. Когда такая запись не существует в базе 50 данных, некоторые варианты осуществления могут отвечать шифрованием предварительно определенной фиктивной записи (например, предварительно определенным символом, указывающим, что база 50 данных в настоящее время не имеет записи с запрошенным индексом).
[0051] На фиг. 10 показаны примеры компонентов, выполняющихся на клиентском устройстве 12 в соответствии с некоторыми вариантами осуществления настоящего изобретения. Такое программное обеспечение может включать в себя операционную систему (ОС) 62, которая может представлять собой любую широкодоступную операционную систему, такую как Microsoft WindowsТ, MacOSТ, LinuxТ, iOSТ или AndroidТ, среди прочих. ОС 62 обеспечивает интерфейс между аппаратным обеспечением клиентского устройства 12 и набором приложений, включающим в себя, среди прочего, клиентское приложение 64 и резолвер 66 доменных имен. Клиентское приложение 64 в общем представляет собой любую компьютерную программу, такую как, среди прочего, текстовая обработка, электронная таблица, обработка изображений, игры, электронная связь, просмотр веб-страниц и приложение для социальных сетей. В некоторых вариантах осуществления приложение 64 предоставляет услуги компьютерной безопасности соответствующей клиентской системе, например, путем фильтрации/блокирования трафика в/из определенных доменов Интернета, определения того, содержат ли входящие и/или исходящие электронные сообщения вредоносный код или нежелательный контент (спам) и т. д.
[0052] Приложение 64 может подключаться к контент-серверу 16 для обмена данными, например, через набор HTTP-запросов. В рамках таких обменов приложение 64 может передавать индикатор доменного имени d в резолвер 66 доменных имен и в ответ получать информационный элемент базы данных доменных имен e(d), характеризующий соответствующий домен, от резолвера 66. В простом примере поиска DNS e(d) может содержать IP-адрес домена d. В другом примере e(d) может содержать набор регистрационных данных для домена d (например, личность владельца соответствующего домена). В еще одном примере e(d) может содержать индикатор того, подвергает ли доступ к домену d соответствующего клиента угрозе компьютерной безопасности, например, известно ли, что домен d распространяет мошеннические документы. В общем, e(d) может содержать любые данные, хранящиеся в базе 50 данных доменных имен и индексированные в домене d.
[0053] В некоторых вариантах осуществления резолвер 66 доменных имен выполнен с возможностью участия в DNS-транзакциях, сохраняющих конфиденциальность, с серверной системой 20 DNS (см. также фиг. 8). Таким образом, резолвер 66 может формулировать и отправлять PIR-запрос 52 в соответствии с доменным именем, полученным от приложения 64. Резолвер 66 может дополнительно принимать PIR-ответ 54, извлекать информационный элемент данных с открытым текстом e(d) и пересылать его в приложение 64. Резолвер 66 доменных имен может дополнительно содержать криптографический механизм 68, выполненный с возможностью выполнения операций шифрования и/или дешифрования. В некоторых вариантах осуществления механизм 68 реализует набор алгоритмов/процедур гомоморфного шифрования. Криптографический механизм 68 может быть реализован в программном обеспечении, аппаратном обеспечении или их комбинации.
[0054] В альтернативном варианте осуществления, показанном на фиг. 10, резолвер 66 доменных имен может выполняться частично или полностью на машине, отличной от клиентского устройства 12, например, на маршрутизаторе 14 или другом шлюзовом устройстве, соединяющем клиентское устройство 12 с расширенной сетью 15 (см. фиг. 1), или на сервере 20a имен резолвера (фиг. 2).
[0055] На фиг. 11 показан пример последовательности этапов, выполняемых резолвером 66 доменных имен в соответствии с некоторыми вариантами осуществления настоящего изобретения. Проиллюстрированный резолвер может ожидать событие-триггер, такой как сообщение, полученное от приложения 64 и/или удаленных серверов. При обнаружении события определяют порядок действий в соответствии с типом события. Когда обнаруженное событие содержит запрос поиска домена от приложения 64 (этап 206 возвращает «да»), то на этапе 208 некоторые варианты осуществления могут выбрать сервер имен в соответствии с принятым запросом поиска. В некоторых вариантах осуществления различные типы служб доменных имен могут предоставляться различными серверами. Например, некоторые серверы имен могут быть выделены для возврата IP-адресов, в то время как другие могут возвращать информационные элементы базы данных, связанные с компьютерной безопасностью. Кроме того, когда служба доменных имен содержит определение IP-адреса выбранного домена, некоторые варианты осуществления могут использовать PIR только при запросе выбранных серверов имен (см. подробности ниже).
[0056] Затем на этапе 210 резолвер 66 может формулировать по меньшей мере один PIR-запрос 52 в соответствии с соответствующим доменным именем. Этап 210 может содержать, среди прочего, применение выбранной хеш-функции к соответствующему доменному имени и использование криптографического механизма 68 для шифрования результата хеширования, например, с использованием процедуры/алгоритма гомоморфного шифрования. Механизм 68 может использовать любую процедуру гомоморфного шифрования, известную в данной области техники, например, алгоритм шифрования полностью гомоморфной схемы шифрования, такой как Gentry-Sahai-Waters (GSW). Некоторые такие процедуры содержат дополнительные манипуляции с данными, направленные на снижение вычислительной нагрузки на стороне клиента и/или сервера, как подробно описано, например, в Gentry C., Halevi S. "Compressible FHE with Applications to PIR", In: Hofheinz D., Rosen A. (eds) Theory of Cryptography, TCC 2019, Lecture Notes in Computer Science, vol 11892, Springer, Cham. Затем зашифрованные PIR-запросы передаются на выбранный сервер имен.
[0057] Когда событие-триггер содержит получение PIR-ответа 54 от сервера, на этапе 216 резолвер 66 может использовать криптографический механизм 68 для дешифрования зашифрованного текста(ов), включенного(ых) в ответ 54, таким образом восстанавливая информационный элемент базы данных (например, IP-адрес), связанный с запрашиваемым доменным именем. Когда база 50 данных доменных имен не содержит информационных элементов, связанных с соответствующим доменным именем, дешифрование соответствующего(их) зашифрованного(ых) текста(ов) может создавать фиктивное сообщение, указывающее на сбой. Дополнительный этап 218 может передавать результат процедуры дешифрования в приложение 64. На этапе 216 используется процедура/алгоритм гомоморфного дешифрования, например, полностью гомоморфного, как описано в Gentry C., Halevi S. "Compressible FHE with Applications to PIR", In: Hofheinz D., Rosen A. (eds) Theory of Cryptography, TCC 2019, Lecture Notes in Computer Science, vol 11892, Springer, Cham.
[0058] На фиг. 12 проиллюстрированы примеры компонентов серверной системы 20 DNS в соответствии с некоторыми вариантами осуществления настоящего изобретения. Проиллюстрированные компоненты могут выполняться на одной физической машине или на отдельных связанных с возможностью передачи данных машинах. Серверная система 20 в общем представляет собой набор серверов имен, как проиллюстрировано на фиг. 2.
[0059] В некоторых вариантах осуществления модуль 26 обслуживания базы данных выполнен с возможностью поддерживать базу 50 данных доменных имен в актуальном состоянии путем вставки записей, соответствующих новым доменным именам, внесения изменений в выбранные записи (например, изменения регистрационных данных домена, изменения назначения кластера соответствующего домена, исключения соответствующего домена из черного списка и т. д.) и/или удаления просроченных записей. Пример работы модуля 26 показан на фиг. 13. В последовательности этапов 222-224 модуль 26 может проверять, выполняется ли условие обновления базы данных. Некоторые варианты осуществления могут выполнять обновления базы данных в соответствии с графиком (например, каждый час) или по требованию. В альтернативном варианте осуществления агент обновления может накапливать входящие данные 55 домена в очереди и определять, что условие обновления выполняется, когда очередь заполнена. Когда условие обновления выполняется, этап 226 может попытаться обновить базу данных 50, например, путем вставки набора новых записей. Этап 226 может содержать вычисление хеш-индекса, например, путем применения хеш-функции к каждому новому доменному имени, и вставку записи в строку таблицы с вновь вычисленным индексом. Однако такие операции вставки могут потерпеть неудачу, например, в случае коллизии хешей, то есть, когда два разных доменных имени хешируются в один и тот же индекс. В вариантах осуществления с использованием хеш-схемы кукушки конфликт может быть разрешен путем вычисления другого индекса с использованием второй хеш-функции и т. д. Даже в таких вариантах осуществления вставка конкретной записи может быть невозможной из-за множественных коллизий хеширования. Такие ситуации могут потребовать выбора нового набора хеш-функций и переиндексации базы 50 данных с использованием новых хеш-функций (этапы 230-232 на фиг. 13).
[0060] В ответ на успешное обновление базы данных, когда хеш-функции изменились, этап 234 может распределять набор обновленных спецификаций 56 хеш-функций клиентам (см., например, фиг. 7, 10 и 12). Таким образом, этап 234 может обеспечить согласованность хеширования, то есть, чтобы все клиенты согласованно формулировали PIR-запросы, используя версию хеш-функций, которые использовались при индексировании базы 50 данных.
[0061] В некоторых вариантах осуществления PIR-модуль 28 серверной системы 20 DNS выполнен с возможностью выполнения зашифрованного поиска в базе 50 данных доменных имен в соответствии с запросом 52. Термин «зашифрованный поиск» в данном документе относится к извлечению записи из базы 50 данных, на которую указывает индекс, включенный в зашифрованном виде в PIR-запрос 52, без дешифрования соответствующего индекса. Процедура зашифрованного поиска может содержать выполнение набора операций, таких как сложение и умножение, непосредственно на зашифрованных данных для получения зашифрованного результата, как показано в уравнении [2] выше. Таким образом, зашифрованный поиск не охватывает сначала дешифрование запроса для создания индекса с открытым текстом и поиск индекса с открытым текстом в соответствующей базе данных, как это может быть сделано, например, в обычных версиях зашифрованных DNS, таких как DNS поверх HTTPS.
[0062] Пример работы PIR-модуля 28 проиллюстрирован на фиг. 14. Последовательность этапов 242-244 может прослушивать входящие PIR-запросы. При получении запроса этап 246 может проверять согласованность хеширования. Иначе говоря, этап 246 может определять, был ли соответствующий запрос сформулирован в соответствии с теми же спецификациями хеш-функций, которые используются для индексации базы 50 данных доменных имен. Когда нет, на этапе 254 серверная система 20 может возвращать сообщение об ошибке соответствующему запрашивающему клиенту. Некоторые варианты осуществления могут дополнительно передавать обновленные спецификации 56 хеш-функций соответствующему клиенту.
[0063] В ответ на определение того, что хеширование является согласованным, этап 248 выполняет зашифрованный поиск в базе 50 данных в соответствии с PIR-запросом 52. Этап 248 может использовать любой способ, известный в данной области техники, например, описанный в Gentry C., Halevi S. "Compressible FHE with Applications to PIR", In: Hofheinz D., Rosen A. (eds) Theory of Cryptography, TCC 2019, Lecture Notes in Computer Science, vol 11892, Springer, Cham. Затем последовательность этапов 250-252 может формулировать PIR-ответ 54 и передавать ответ 54 на соответствующее клиентское устройство.
[0064] Различные службы доменных имен могут быть реализованы сохраняющим конфиденциальность образом, как описано выше. Некоторые примеры сценариев использования включают:
Разрешение доменных имен в адреса (поиск IP-адресов)
[0065] Одно из применений систем и способов, описанных в настоящем документе, заключается в выполнении поиска DNS, то есть возвращении IP-адреса, связанного с выбранным доменным именем. В таких вариантах осуществления база 50 данных доменных имен может хранить набор IP-адресов, индексированных по доменному имени. PIR-запрос 52 может включать в себя шифрование индекса, определенного путем хеширования соответствующего доменного имени и, возможно, других данных (например, кодирование вопроса Q, см., например, фиг. 9). В ответ серверная система 20 DNS может возвращать PIR-ответ 54, содержащий шифрование соответствующего IP-адреса. Затем клиент (или другая машина, взаимодействующая с соответствующим клиентом) может дешифровать и использовать соответствующий IP-адрес для маршрутизации электронных сообщений (например, просмотра веб-страниц).
[0066] Пример последовательности этапов, выполняемых резолвером 66 доменных имен в варианте осуществления, конфигурированном для выполнения разрешения доменных имен (сопоставления доменных имен с IP-адресами), показан на фиг. 15. Чтобы оптимизировать поиск DNS, некоторые варианты осуществления могут поддерживать локальный кеш, хранящий ранее разрешенные IP-адреса TLD и/или авторитативных серверов имен. В ответ на получение запроса на разрешение выбранного доменного имени некоторые варианты осуществления могут итерироваться через последовательные уровни иерархии доменных имен. Когда соответствующее FQDN еще не полностью разрешено для IP-адреса, этап 268 может определить PQDN соответствующего доменного имени. PQDN может содержать часть FQDN, указанную до выбранного уровня иерархии (например, до уровня TLD, например, «.org» (см. фиг. 6). На этапе 270 резолвер 66 может проверить, было ли соответствующее PQDN ранее разрешено путем выполнения поиска кеша. Когда да, кеш может содержать IP-адрес для сервера имен, который может разрешить следующий уровень FQDN 36. Когда нет, этап 272 может выбрать сервер имен для разрешения текущего PQDN. В одном примере, в котором PQDN представляет собой «.org», выбранный сервер имен может представлять собой корневой сервер 20b имен и т. д.
[0067] Некоторые варианты осуществления основаны на наблюдении, что процедуры PIR являются вычислительно дорогими, как по нагрузке на процессор, так и по размеру связи. Кроме того, как показано выше в отношении фиг. 6, типичный поиск DNS может потребовать множество итеративных запросов, например, сначала к корневому серверу имен, затем к серверу имен TLD, а затем, в конечном итоге, к авторитативному серверу. Иначе говоря, один поиск DNS может умножить стоимость многообразия процедур PIR. Еще более усложняет дело тот факт, что поиски DNS являются относительно частыми, например, доступ к одной веб-странице может включать в себя множество последовательных операций поиска DNS.
[0068] Некоторые варианты осуществления дополнительно основаны на наблюдении, что некоторые FQDN являются более чувствительными к конфиденциальности, чем другие. Например, пользователи могут не беспокоиться о раскрытии выбранных частей своей истории просмотров (например, посещение онлайн-новостей или справочных сайтов, таких как Википедия, среди прочего), в отличие от других частей (например, посещение сайта с контентом для взрослых). Кроме того, некоторые части FQDN могут быть более чувствительными к конфиденциальности, чем другие. Например, используя пример на фиг. 6, знание того, что пользователь хочет получить доступ к домену верхнего уровня .org, является гораздо менее информативным или конфиденциальным, чем знание того, что пользователь фактически пытается получить доступ к wikimedia.org.
[0069] Поэтому, чтобы уменьшить некоторые вычислительные затраты, понесенные PIR, некоторые варианты осуществления намеренно используют PIR только для поднабора DNS-запросов. Определение того, следует ли использовать PIR или нет, может содержать определение того, выполняется ли условие конфиденциальности, то есть определение того, является ли текущий запрос чувствительным к конфиденциальности или нет. Примерный этап 274 на фиг. 15 оценивает условие конфиденциальности. Когда текущий запрос считается чувствительным к конфиденциальности (ветвь ДА), последовательность этапов 276-277 может сформулировать текущий запрос с использованием гомоморфного шифрования (PIR). В противном случае текущий запрос может быть выполнен с использованием обычного DNS.
[0070] Некоторые варианты осуществления определяют, выполняется ли условие конфиденциальности в соответствии с зоной полномочий выбранного сервера имен. Например, некоторые варианты осуществления только передают PIR-запросы на сервер(ы) 20c имен TLD и/или авторитативный сервер(ы) 20d имен, в то время как запросы, адресованные корневому серверу(ам) 20b имен, формулируются с использованием обычного DNS. Иначе говоря, такие варианты осуществления разрешают токены TLD FQDN 36 с помощью обычных (не частных) DNS-запросов и токенов домена и/или префикса с использованием PIR.
[0071] Некоторые варианты осуществления резолвера 66 определяют, выполняется ли условие конфиденциальности в соответствии по меньшей мере с одним из токенов FQDN 36. Например, резолвер 66 может использовать обычные (т.е. не-PIR) DNS-запросы для разрешения выбранных PQDN, например, «google.com», «wikipedia.org», «amazonaws.com» и т. д., и PIR-запросы для разрешения других PQDN, таких как «facebook.com», «pornhub.com» и т. д. Такие варианты осуществления основаны на наблюдении о том, что некоторые виды сетевой активности (например, проведение поиска в Google, доступ к новостному сайту, поиск прогноза погоды или результатов спортивных соревнований и т. д.) могут быть менее опасными для конфиденциальности, чем другие (например, доступ к контенту для взрослых, потоковая передача фильма, доступ к выбранной электронной коммерции, онлайн-банкингу или порталу социальных сетей и т. д.). В другом примере знание того, что пользователь обращается к службе облачных вычислений (например, Amazon Web Services™ от Amazon, Inc., или Microsoft Azure™), может быть не очень информативным или конфиденциальным, поскольку соответствующий домен может содержать тысячи различных поддоменов. Для обеспечения селективного PIR-запроса некоторые варианты осуществления поддерживают черный список PQDN, считающийся чувствительным к конфиденциальности, и/или белый список PQDN, который можно искать с использованием обычной DNS. Примерный белый список может содержать, среди прочего, домены поисковых систем, новостные домены, домены онлайн-рекламы и/или другие домены распространения контента, а также домены, предоставляющие различные услуги облачных вычислений (хостинг файлов, инфраструктура как услуга и т. д.). Затем этап 274 может содержать поиск текущего токена PQDN/доменного имени в белом списке и решение отправить обычный запрос, когда соответствующий PQDN/токен находится в белом списке, и PIR-запрос в противном случае. В качестве альтернативы, резолвер 66 может найти черный список и решить отправить PIR-запрос, когда соответствующий PQDN/токен находится в черном списке, и обычный DNS-запрос в противном случае.
[0072] Выборочный PIR-запрос также может выполняться на уровне поддомена. Некоторые варианты осуществления основаны на наблюдении о том, что в случаях, когда утечка PQDN на уровне домена может не представлять особой проблемы конфиденциальности (например, google.com), утечка некоторых токенов поддомена может быть проблематичной. Например, «www.google.com» может быть менее чувствительным к конфиденциальности, чем «meet.google.com». Следовательно, некоторые варианты осуществления поддерживают белый список и/или черный список токенов префикса и/или FQDN и определяют, следует ли запрашивать соответствующий авторитативный сервер с использованием PIR или обычного DNS. Простой вариант осуществления для разрешения поддомена «www» может использовать обычные DNS-запросы, а в противном случае – PIR-запросы.
[0073] В таблице 1 приведены еще несколько примеров FQDN и связанных с ними проблем конфиденциальности.
Таблица 1
[0074] Когда на этапе 274 определяется, что выполняется условие для использования PIR, на этапе 276 резолвер 66 может согласовывать набор параметров гомоморфного шифрования (например, ключей, общих секретов, одноразовых кодов и т. д.) с серверной системой 20. Некоторые варианты осуществления генерируют пару приватных-открытых ключей или и пару ключей шифрования-дешифрования с использованием схемы гомоморфного шифрования. Затем этап 277 может формулировать PIR-запрос 52, например, путем хеширования соответствующего PQDN и шифрования соответствующего хеша и, возможно, других данных, таких как индикатор вопроса Q (см. фиг. 9), с использованием открытого ключа согласованной пары.
[0075] В случаях, когда этап 274 определяет, что условие для использования PIR не выполняется, некоторые варианты осуществления могут формулировать обычный DNS-запрос (см. фиг. 3-4). Этап 278 может дополнительно содержать согласование пары ключей шифрования сеанса по протоколу DNS поверх HTTP, например, и шифрование соответствующего DNS-запроса с использованием открытого ключа пары ключей. В некоторых вариантах осуществления как обычные, так и PIR-запросы шифруются и отправляются по протоколу, такому как DNS поверх HTTP. Такие стратегии могут извлекать выгоду из других особенностей указанного протокола, таких как обеспечение целостности соответствующей передачи. Однако PIR-запрос содержит дополнительный уровень шифрования по сравнению с обычным DNS-запросом, причем дополнительный уровень составляет гомоморфное шифрование, обеспечивающее PIR. Уровень шифрования, соответствующий DNS поверх HTTP или аналогичным протоколам, удаляется сервером. Тем не менее, хотя такое дешифрование создает версию с открытым текстом обычного DNS-запроса, сервер не удаляет уровень гомоморфного шифрования из PIR-запроса, поэтому PIR-запрос остается нечитаемым серверной системой 20 DNS.
[0076] Передав запрос на соответствующий сервер имен, на этапе 282 резолвер 66 может ожидать ответа от соответствующего сервера. Дальнейшая последовательность этапов 284-286 может извлекать IP-адрес, связанный с текущим PQDN, из ответа сервера и может кешировать соответствующий IP-адрес для дальнейшего использования. Соответствующий IP-адрес может содержать адрес сервера имен полностью разрешенного IP-адреса, связанного с текущим FQDN. Когда ответ сервера содержит PIR-ответ 54, этап 284 может содержать дешифрование заключенного IP-адреса с использованием процедуры гомоморфного дешифрования.
[0077] В некоторых вариантах осуществления реализована дальнейшая оптимизация для снижения существенных вычислительных затрат PIR. Один из таких примеров содержит уменьшение размера базы данных 50 доменных имен путем разделения ее на субъединицы/группы в соответствии с общим количеством записей и/или в соответствии с требуемой производительностью поиска и/или требуемым уровнем конфиденциальности. В таких вариантах осуществления вместо поиска в полной базе данных доменных имен сервер будет искать только внутри группы (групп), содержащей запись соответствующего домена. Меньшие группы обеспечивают большее сокращение времени поиска, но в то же время обеспечивают меньшую конфиденциальность, поскольку идентичность соответствующего домена менее неопределенна. Пример размера группы, который может предложить компромисс между скоростью и конфиденциальностью, составляет 216=65536, то есть соответствующая группа позволяет разрешать не более 65536 различных доменных имен. Каждая группа может дополнительно хранить множество хеш-таблиц, как описано выше со ссылкой на фиг. 8. Отдельные группы могут управляться отдельными компьютерными системами, распределяться между отдельными процессорными ядрами одного и того же компьютера и т. д.
[0078] Затем некоторые варианты осуществления могут использовать хеш-функцию (например, вариант хеша Фаулера-Нолл-Во, такой как FNV-1) для идентификации группы, содержащей соответствующую запись. Выход хеш-функции может быть усечен до количества групп путем применения операции по модулю. На стороне сервера пример индекса группы может быть вычислен как:
, [4]
где d и Q обозначают доменное имя и вопрос (например, A по сравнению с AAAA), соответственно, HB обозначает хеш-функцию, используемую для группирования, NB обозначает количество групп, а [Q d] обозначает конкатенацию Q и d. Специалисту в данной области техники будет понятно, что проиллюстрированный способ расчета индекса группирования предназначен только в качестве примера и не ограничивает объем правовой охраны настоящего изобретения.
[0079] Для каждого доменного имени в базе 50 данных модуль 26 обслуживания базы данных может вычислять IB и помещать соответствующую запись в группу с индексом IB. Размещение записи может содержать применение схемы хеширования кукушки для поиска местоположения для соответствующей записи в одной из множества хеш-таблиц и т. д., как описано выше. В свою очередь, на стороне клиента резолвер 66 может вычислять IB и присоединять его к PIR-запросу 52. Индекс группы может быть отправлен в виде открытого или зашифрованного текста. При приеме PIR-запроса 52 сервер 20 может определять группу в соответствии с запросом 52, а затем выполнять PIR в соответствии с содержимым соответствующей группы для получения PIR-ответа 54.
Приложения для компьютерной безопасности и аналитики
[0080] Некоторые варианты осуществления могут быть адаптированы для приложений компьютерной безопасности и анализа данных. В таких сценариях использования база 50 данных доменных имен хранит записи, указывающие на принадлежность соответствующего домена к конкретному классу или категории доменов. В некоторых вариантах осуществления категории могут иметь отношение к компьютерной безопасности. Например, категория может содержать домены, характеризующиеся распределением контента для взрослых. Другой пример категории содержит черный список доменов, которые известны как участвующие в мошеннических действиях. Другой пример категории содержит домены, характеризующиеся участием в атаках типа «отказ в обслуживании» (например, члены конкретной бот-сети).
[0081] Другие категории могут иметь отношение к различным аспектам анализа данных. Например, домены могут быть сгруппированы в классы/категории в соответствии с содержанием (например, игры, новости, справочная информация, образование и т. д.). Другие критерии группировки/классификации могут включать в себя право собственности и/или коммерческие отношения. Например, все домены, принадлежащие одной и той же корпорации или членам одного и того же конгломерата или альянса компаний, могут быть сгруппированы в отдельную категорию доменов. Другой критерий классификации включает в себя членство в конкретной онлайн-активности. Например, все доменные имена, связанные с конкретной онлайн-игрой и/или играми, созданными конкретным производителем игр, могут быть сгруппированы в отдельную категорию. Еще один критерий классификации может включать в себя геолокацию: домены из конкретных географических регионов, стран и т. д. могут быть сгруппированы вместе. Другие примеры критериев могут содержать возраст домена/время первой регистрации.
[0082] В еще одном примере классификации домены могут быть сгруппированы в кластеры в соответствии с общими характеристиками или другим типом междоменного сходства. На фиг. 16 показан набор доменов 30a-b и набор кластеров 60a-b в соответствии с некоторыми вариантами осуществления настоящего изобретения. Членство в кластере не обязательно должно быть исключительным; в примере на фиг. 16 домен 30b принадлежит обоим кластерам 60a-b. В некоторых вариантах осуществления сходство двух доменов может быть оценено в соответствии с гиперрасстоянием, разделяющим два домена в N-мерном абстрактном пространстве признаков. Однако сходство не обязательно должно основываться на признаках домена как таковых. В одном таком примере два домена могут считаться сходными, когда они часто появляются вместе в последовательностях DNS-запросов; два таких домена могут быть помещены в один и тот же кластер. В другом примере кластеры могут быть автоматически созданы классификатором нейронной сети с использованием алгоритма неконтролируемого обучения. Отдельные кластеры могут составлять или не составлять отдельные категории доменов. Например, категория «вредоносного» домена может включать в себя множество кластеров, причем каждый кластер может содержать домены из отдельной бот-сети.
[0083] Кластеризация и/или классификация доменов сама по себе (т. е. группировка доменов по категориям или кластерам) выходит за рамки настоящего описания и может быть достигнута с использованием любого способа, известного в области интеллектуального анализа данных. Настоящее описание будет сосредоточено на доступе к ранее существовавшей классификации через PIR. В некоторых вариантах осуществления запись, хранящаяся в базе 50 данных доменных имен, может содержать логическое значение, указывающее, принадлежит ли домен определенной категории или нет. В качестве альтернативы, запись может содержать метку или другой идентификатор категории/кластера, к которому принадлежит соответствующий домен. Доступ к таким записям можно получить с помощью механизма запроса и ответа PIR, описанного выше. В некоторых вариантах осуществления PIR-запрос 52 содержит шифрование индекса в базу 50 данных (например, хеш доменного имени), в то время как PIR-ответ 54 может содержать зашифрованный текст, кодирующий информационный элемент базы данных, указывающий на принадлежность к категории/кластеру соответствующего домена.
[0084] Некоторые варианты осуществления могут использовать стратегию группирования, описанную выше в отношении поиска DNS, также для ускорения ответа сервера в приложениях безопасности и/или аналитических приложениях. Отдельные группы могут соответствовать отдельным категориям безопасности, таким как вредоносное ПО, мошенничество, ботнеты, спам и т. д. Когда количество записей в одной такой категории превышает заранее определенное пороговое значение, некоторые варианты осуществления могут разбивать базу данных, соответствующую соответствующей категории, на подгруппы и использовать хеширование для идентификации группы, содержащей каждую отдельную запись. При выдаче запроса клиент может отправить индекс группы/категории в открытом тексте или зашифрованном тексте.
[0085] На фиг. 17 показана приведенная в качестве примера конфигурация аппаратного обеспечения вычислительного устройства 80, запрограммированного для выполнения некоторых из способов, описанных в данном документе. Устройство 80 может представлять любое из клиентских устройств 12a-f, маршрутизатора 14 и сервера 20. Проиллюстрированное устройство представляет собой персональный компьютер; другие вычислительные устройства, такие как серверы, мобильные телефоны, планшетные компьютеры и носимые вычислительные устройства, могут иметь несколько иные конфигурации. Процессор(ы) 82 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), выполненное с возможностью выполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие сигналы или данные могут быть закодированы и доставлены процессору(ам) 72 в виде инструкций процессора, например, машинного кода. Процессор(ы) 82 может содержать центральный процессор (CPU) и/или массив графических процессоров (GPU).
[0086] Модуль 84 памяти может содержать энергозависимые машиночитаемые носители (например, динамическое оперативное запоминающее устройство - DRAM)), хранящие данные и/или инструкции, доступные или сгенерированные процессором(ами) 82 в ходе выполнения операций. Устройства 86 ввода могут включать в себя, среди прочего, компьютерные клавиатуры, мыши и микрофоны, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в устройство 80. Устройства 88 вывода могут включать в себя устройства отображения, такие как, среди прочего, мониторы и динамики, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие соответствующему вычислительному устройству передавать данные пользователю. В некоторых вариантах осуществления устройства 86-88 ввода и вывода имеют общее аппаратное обеспечение (например, сенсорный экран). Устройства 92 хранения включают в себя машиночитаемые носители, обеспечивающие энергонезависимое хранение, чтение и запись программных инструкций и/или данных. Примеры устройств хранения включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как CD и/или DVD диски и приводы. Сетевой адаптер(ы) 94 включает в себя механическую, электрическую и сигнальную схемы для передачи данных по физическим каналам связи, соединенным с сетью электронной связи (например, сетями 13 и 15 с фиг. 1) и/или с другими устройствами/компьютерными системами. Адаптер(ы) 94 может быть дополнительно выполнен с возможностью передачи и/или приема данных с использованием множества протоколов связи.
[0087] Контроллер-концентратор 90 в общем случае представляет собой множество системных, периферийных шин и/или шин набора микросхем, и/или все другие схемы, обеспечивающие связь между процессором(ами) 82 и остальными аппаратными компонентами устройства 80. Например, контроллер-концентратор 90 может содержать контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерывания. В зависимости от производителя аппаратного обеспечения, некоторые такие контроллеры могут быть включены в одну интегральную схему и/или могут быть интегрированы с процессором(ами) 82. В другом примере контроллер-концентратор 90 может содержать северный мост, соединяющий процессор 82 с памятью 84, и/или южный мост, соединяющий процессор 82 с устройствами 86, 88, 92 и 94.
[0088] Для рядового специалиста в данной области техники также будет очевидно, что аспекты изобретения, как описано выше, могут быть реализованы в различных формах программного обеспечения, встроенного программного обеспечения и аппаратного обеспечения или их комбинации. Например, некоторые части изобретения могут быть описаны как специализированная аппаратная логика, которая выполняет одну или более функций. Эта специализированная логика может включать в себя специализированную интегральную схему (ASIC) или программируемую пользователем вентильную матрицу (FPGA). Фактический программный код или специализированное аппаратное обеспечение управления, используемое для реализации аспектов, соответствующих принципам изобретения, не ограничивает настоящее изобретение. Таким образом, работа и поведение аспектов изобретения были описаны без ссылки на конкретный программный код – при этом понятно, что специалист в данной области техники сможет разработать программное обеспечение и аппаратное обеспечение управления для реализации аспектов на основе настоящего описания.
[0089] Приведенные в качестве примера системы и способы, описанные выше, позволяют выполнять различные службы доменных имен при сохранении конфиденциальности получателя соответствующих служб. Например, некоторые варианты осуществления обеспечивают преобразование между доменными именами и IP-адресами, при этом сервер имен, выполняющий фактическое преобразование/поиск в базе данных, не знает о соответствующем доменном имени и IP-адресе. В некоторых вариантах осуществления используется гомоморфное шифрование для осуществления процедуры извлечения конфиденциальной информации (PIR) на стороне сервера. Сервер возвращает зашифрованный текст клиенту, который затем расшифровывает соответствующий зашифрованный текст для создания нужного информационного элемента базы данных (например, IP-адреса).
[0090] В обычном DNS запросы клиента и/или ответы сервера не шифруются, поэтому любая третья сторона может отслеживать соответствующие данные DNS. Новые разработки в технологии DNS шифруют запрос и/или ответ клиента, так что в принципе данные остаются конфиденциальными во время передачи. Однако в таких вариантах DNS сервер имен все еще дешифрует DNS-запрос для создания доменного имени с открытым текстом. В отличие от таких обычных DNS, в некоторых вариантах осуществления сервер имен больше не имеет доступа к данным транзакции в открытом тексте, поскольку процедура PIR использует зашифрованные входы. Поэтому некоторые варианты осуществления обеспечивают более высокий уровень конфиденциальности по сравнению с обычными решениями DNS.
[0091] Процедуры PIR являются относительно дорогостоящими с точки зрения вычислений и объема данных, которыми обмениваются в каждой транзакции клиент-сервер. Для снижения затрат некоторые варианты осуществления не выполняют все этапы разрешения доменного имени с использованием PIR. Вместо этого клиенты могут запрашивать серверы имен домена верхнего уровня (TLD), используя обычный DNS или негомоморфно зашифрованный вариант, такой как DNS поверх HTTPS, и использовать процедуру PIR только при запросе выбранных серверов имен, которые разрешают соответствующее доменное имя на уровне домена и/или поддомена иерархии доменных имен. Такие стратегии основаны на наблюдении, что информация, предоставляемая последними серверами имен, является относительно более важной для конфиденциальности, чем, например, часть TLD доменного имени. Некоторые варианты осуществления дополнительно применяют PIR избирательно в соответствии по меньшей мере с токеном соответствующего FQDN. Иначе говоря, разрешение определенных токенов (например, «google.com», «www» и т. д.) может осуществляться через обычный DNS, в то время как разрешение других более конфиденциальных токенов может осуществляться через PIR.
[0092] Базы данных DNS могут содержать миллионы различных записей. Огромный размер таких баз данных может сделать PIR-запросы непрактичными. Чтобы устранить такие ограничения, некоторые варианты осуществления дополнительно используют подход группирования, чтобы уменьшить размер базы данных и, следовательно, сложность вычислений PIR и размер запросов и ответов сервера. Компьютерные эксперименты показали, что уменьшение размера базы данных до 65536 записей позволяет сохранить среднее время, необходимое для выполнения поиска DNS, на уровне менее 1 с, что делает применение существующих систем и методов коммерчески и технически жизнеспособным. Оговорка этого подхода заключается в том, что за счет уменьшения размера базы данных конфиденциальность также по своей сути уменьшается. Однако некоторые варианты выбора размера базы данных могут обеспечить приемлемый компромисс между конфиденциальностью и скоростью. Кроме того, поскольку процедуры PIR в принципе можно распараллеливать, большее увеличение скорости может быть достигнуто путем настройки PIR на стороне сервера с использованием конфигурации параллельных вычислений, например, с использованием множества взаимосвязанных ядер процессора или ферм графических процессоров (GPU).
[0093] Некоторые варианты осуществления настоящего изобретения могут быть адаптированы к различным другим сценариям, отличным от разрешения доменных имен, таким как компьютерная безопасность, управление приложениями, родительский контроль и т. д. В одном примере сценария использования компонент компьютерной безопасности, который может выполняться на клиенте, на маршрутизаторе/сетевом шлюзе или на удаленном сервере безопасности, может участвовать в PIR-обмене с сервером, выполненным с возможностью выполнения поиска в базе данных без дешифрования соответствующего запроса. Записи базы данных могут указывать, связан ли конкретный домен с определенной категорией, относящейся к компьютерной безопасности, например, находится ли соответствующий домен в черном списке или участвует в мошеннической деятельности и т. д. В сценарии использования родительского контроля запись в базе данных может указывать, например, распространяет ли конкретный домен материал для взрослых. В сценарии использования варианта управления приложением запись в базе данных может указывать, связан ли соответствующий домен с конкретным видом онлайн-активности (играми, социальными сетями и т. д.). Таким образом, некоторые варианты осуществления позволяют выборочно фильтровать трафик в определенные домены или из них или блокировать доступ пользователей к определенным доменам. Хотя такая фильтрация/блокировка известна в данной области техники, в отличие от обычных процедур управления трафиком, в некоторых вариантах осуществления настоящего изобретения серверу, выполняющему фактический поиск в базе данных, не известно доменное имя, для которого запрашивается соответствующая информация. Это позволяет, например, чтобы сервер и связанная с ним база данных доменных имен принадлежали и/или управлялись объектом, отличным от поставщика услуг безопасности/родительского контроля/управления приложением, без ущерба для конфиденциальности пользователя.
[0094] Специалисту в данной области техники понятно, что описанные выше варианты осуществления могут быть различным образом изменены, без выхода при этом за пределы объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.
Изобретение относится к системам и способам защиты конфиденциальности онлайн-коммуникации. Технический результат заключается в обеспечении возможности выполнять сохраняющие конфиденциальность обмены DNS. Клиентская машина участвует в обменах извлечения конфиденциальной информации (PIR) с сервером имен. В ответ на получение зашифрованного запроса от клиента, где запрос сформулирован в соответствии с доменным именем, сервер имен может извлекать запись (например, IP-адрес) из базы данных доменных имен без дешифрования соответствующего запроса. Некоторые варианты осуществления достигают такого извлечения информации путем использования гомоморфного шифрования. 4 н. и 16 з.п. ф-лы, 17 ил., 1 табл.
1. Способ выполнения поиска службы доменных имен (DNS), содержащий использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы:
в ответ на получение индикатора доменного имени, определять, выполняется ли условие конфиденциальности в соответствии с доменным именем;
в ответ на определение, выполняется ли условие конфиденциальности, если да, формулировать частный запрос, содержащий шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем;
в ответ на формулирование частного запроса передавать частный запрос на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и
в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифровать содержимое частного ответа в соответствии с процедурой гомоморфного дешифрования.
2. Способ по п.1, дополнительно содержащий, в ответ на определение, выполняется ли условие конфиденциальности, если нет, использование по меньшей мере одного аппаратного процессора компьютерной системы, чтобы:
формулировать другой запрос в соответствии с доменным именем, причем содержимое другого запроса шифруется в соответствии с процедурой негомоморфного шифрования; и
передавать другой запрос на сервер имен.
3. Способ по п.1, в котором доменное имя содержит последовательность токенов, причем определение, выполняется ли условие конфиденциальности, содержит определение, соответствует ли выбранный токен последовательности токенов любому члену справочного списка токенов.
4. Способ по п.3, в котором выбранный токен содержит токен домена или токен префикса.
5. Способ по п.1, содержащий определение, выполняется ли условие конфиденциальности дополнительно в соответствии с зоной полномочий сервера имен.
6. Способ по п.5, дополнительно содержащий определение, что условие конфиденциальности не выполняется, когда сервер имен содержит сервер имен домена верхнего уровня (TLD).
7. Способ по п.1, в котором частный запрос дополнительно включает в себя индекс сегмента, идентифицирующий базу данных доменных имен из множества баз данных доменных имен, подключенных к серверу имен.
8. Способ по п.1, в котором запись содержит адрес интернет-протокола (IP).
9. Способ по п.1, в котором запись содержит индикатор безопасности, указывающий, подвергает ли доступ к домену, представленному доменным именем, пользователя угрозе компьютерной безопасности.
10. Компьютерная система для поиска службы доменных имен (DNS), содержащая по меньшей мере один аппаратный процессор, конфигурированный, чтобы:
в ответ на получение индикатора доменного имени определять, выполняется ли условие конфиденциальности в соответствии с доменным именем;
в ответ на определение, выполняется ли условие конфиденциальности, если да, формулировать частный запрос, содержащий шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем;
в ответ на формулирование частного запроса передавать частный запрос на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и
в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифровать содержимое частного ответа в соответствии с процедурой гомоморфного дешифрования.
11. Компьютерная система по п.10, в которой по меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы в ответ на определение, выполняется ли условие конфиденциальности, если нет:
формулировать другой запрос в соответствии с доменным именем, причем содержимое другого запроса зашифровано в соответствии с процедурой негомоморфного шифрования; и
передавать другой запрос на сервер имен.
12. Компьютерная система по п.10, в которой доменное имя содержит последовательность токенов, причем определение, выполняется ли условие конфиденциальности, содержит определение, соответствует ли выбранный токен последовательности токенов любому члену справочного списка токенов.
13. Компьютерная система по п.12, в которой выбранный токен содержит токен домена или токен префикса.
14. Компьютерная система по п.10, в которой по меньшей мере один аппаратный процессор конфигурирован, чтобы определять, выполняется ли условие конфиденциальности далее в соответствии с зоной полномочий сервера имен.
15. Компьютерная система по п.14, в которой по меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы определять, что условие конфиденциальности не выполняется, когда сервер имен содержит сервер имен домена верхнего уровня (TLD).
16. Компьютерная система по п.10, в которой частный запрос дополнительно включает в себя индекс сегмента, идентифицирующий базу данных доменных имен из множества баз данных доменных имен, подключенных к серверу имен.
17. Компьютерная система по п.10, в которой запись содержит адрес интернет-протокола (IP).
18. Компьютерная система по п.10, в которой запись содержит индикатор безопасности, указывающий, подвергает ли доступ к домену, представленному доменным именем, пользователя угрозе компьютерной безопасности.
19. Невременный машиночитаемый носитель, хранящий инструкции, которые, при исполнении по меньшей мере одним аппаратным процессором компьютерной системы, побуждают компьютерную систему:
в ответ на получение индикатора доменного имени определять, выполняется ли условие конфиденциальности в соответствии с доменным именем;
в ответ на определение, выполняется ли условие конфиденциальности, если да, формулировать частный запрос, содержащий шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем;
в ответ на формулирование частного запроса передавать частный запрос на сервер имен, конфигурированный для выполнения зашифрованного поиска в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и
в ответ на получение частного ответа, содержащего шифрование записи от сервера имен, дешифровать содержимое частного ответа в соответствии с процедурой гомоморфного дешифрования.
20. Серверная компьютерная система, конфигурированная для участия в транзакциях службы доменных имен (DNS) с множеством клиентов, причем серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы:
принимать частный запрос от клиента из множества клиентов, причем частный запрос содержит шифрование хеш-индекса, указывающего местоположение записи в базе данных доменных имен, причем хеш-индекс шифруется в соответствии с процедурой гомоморфного шифрования, и хеш-индекс определяется в соответствии с доменным именем;
в ответ на получение частного запроса выполнять зашифрованный поиск в базе данных доменных имен в соответствии с частным запросом, производя шифрование записи; и
передавать клиенту частный ответ, содержащий шифрование записи.
US 20140122476 A1, 01.05.2014 | |||
US 20210029074 A1, 28.01.2021 | |||
US 20100269174 A1, 21.10.2010 | |||
US 20060168020 A1, 27.07.2006 | |||
УПРАВЛЕНИЕ ОНЛАЙНОВОЙ КОНФИДЕНЦИАЛЬНОСТЬЮ | 2011 |
|
RU2550531C2 |
Авторы
Даты
2025-03-28—Публикация
2021-11-02—Подача