Изобретение относится к средствам защиты данных и может быть использовано в вычислительной технике для проведения вычислений в тех случаях, когда две (и более) стороны желают определить значение или значения функции, аргументы которой относятся к секретным данным каждой из сторон, а стороны не желают раскрывать друг другу и третьим лицам свои секретные данные даже в процессе вычислений. В частном случае реализации изобретение может быть использовано для вычисления так называемого «социального рейтинга» («социального скора») или индекса доверия, который позволяет оценить вероятность добросовестного поведения пользователя при предоставлении пользователю кредитов, страховых продуктов или при аренде пользователем объектов недвижимости или технических средств.
В общем виде, предпосылкой создания изобретения является задача по осуществлению практических конфиденциальных вычислений, когда две компании (А, Б) обладают данными (Ад, Бд соответственно), и могут получить полезный эффект от статистики, вычисленной при использовании объединенных данных. Компании не могут объединить данные для расчета статистики в открытом виде, так как раскрытие данных одной стороны другой стороне может быть неприемлемо с точки зрения интересов пользователя, законодательства или экономический безопасности. Предложенное решение позволяет вычислить статистику таким образом, что ни одна из сторон не раскрывает свои данные.
В уровне техники, например, в патентной заявке США US2014129420, опубликованной 08.05.2014, описаны система и способ вычисления социального рейтинга, которые имеют ограничения по практическому применению. В частности, если блоки данных, совместно используемые для вычисления социального рейтинга (а именно, социальные связи с одной стороны, и значения социальных рейтингов каждого индивидуума с другой), принадлежат различным компаниям в режиме конфиденциальности, а пользователи, к которым относится информация, могут не давать согласие на передачу информации за пределы кредитной организации или социальной сети, то система и способ вычисления в изобретении US2014129420 не применимы на практике, так как предполагают раскрытие обоих наборов данных в процессе вычисления социального рейтинга хотя бы владельцу сервера, где происходит вычисление.
Известны также способы и устройства для безопасных многосторонних вычислений, например, раскрытые в патенте США US9577829B1, опубликованном 21.02.2017 и заявке США US20170093806A1, опубликованной 30.03.2017, где основной подход заключается в использовании физически и логически защищенных устройств, которым могут доверять свои данные все стороны. Однако, данные способы и устройства предполагают, что все данные полностью помещаются в защищенные устройства. Данное предположение имеет ограничения по практическому применению в случаях, когда данные имеют большой размер, так как размер памяти таких защищенных устройств ограничен (см. US 20120002811A1, параграф [0011]).
В случае, если не все данные помещаются в память защищенного устройства, то сторонние наблюдатели могут частично извлекать секретные данные сторон, наблюдая за шаблоном доступа защищенного устройства к зашифрованным данным, которые не поместились в память защищенного устройства.
Известны также способы и устройства, например, раскрытые в патенте США US 9015853B2, опубликованном 02.01.2014, которые описывают решение данной проблемы. Они скрывают от наблюдателя шаблон (последовательность доступов защищенного устройства к внешней памяти) путем «слепого» перетасовывания зашифрованных данных на внешнем носителе перед каждой операцией вычисления. Однако, данный подход имеет практические ограничения, так как увеличивает вычислительную сложность функции минимум в 20-35 раз (раздел 1.1 патента US 9015853B2).
Таким образом, в уровне техники существует необходимость осуществления безопасных вычислений с использованием больших массивов данных без использования блоков памяти большой емкости внутри периметра безопасности блоков безопасных вычислений и без многократного увеличения сложности вычислений при скрытии шаблонов доступов защищенного устройства к внешней памяти. При этом наличие таких устройств может обеспечить возможность безопасного и точного вычисления социального скоринга пользователей.
Предложенные способ и устройство обеспечивают достижение технического результата, заключающегося в решении указанных выше задач, существующих в уровне техники, а также в обеспечении секретности больших объемов данных, принадлежащих различным сторонам с обеспечением сокращения объемов памяти, закрытых от несанкционированного считывания, а также с гарантией конфиденциальности данных пользователей. В частности, предложенные способ и устройство могут быть использованы для безопасного вычисления социального рейтинга, когда владелец данных о социальных связях и владелец данных об индивидуальных социальных рейтингах, могут произвести вычисление социальных рейтингов, не раскрывая свои данные никому, даже друг другу.
Кроме того, ни одна из двух и более сторон не раскрывает свои данные никакой другой стороне, за исключением результатов обработки статистики, алгоритм вычисления которой заранее согласован сторонами, сложность операций по обработке статистических данных с помощью предложенного изобретения не возрастает по сравнению с обычным вычислением статистики на объединенных данных.
Для достижения указанного технического результата устройство для безопасного вычисления значения функции с использованием двух секретных наборов данных без компрометации наборов данных, содержит:
интерфейс функциональных данных, выполненный с возможностью получения данных из открытого (4) набора данных,
и сервисный интерфейс для передачи результатов (6) вычисления функции, где
первый и второй (13) секретные наборы данных используют идентификаторы из общего набора идентификаторов;
второй (13) секретный набор данных содержит массивы данных, где каждый массив данных соответствует одному из идентификаторов из общего набора идентификаторов, и в каждом массиве содержится совокупность идентификаторов из идентификаторов, используемых в первом секретном наборе данных;
в открытом (4) наборе данных каждому из идентификаторов приведено в соответствие значение из первого секретного набора данных, зашифрованное первым ключом шифрования с возможностью дешифрования первым ключом дешифрования значений, зашифрованных первым ключом шифрования,
а в качестве аргументов функции используются значения, приведенные в соответствие идентификаторам из первого секретного набора данных;
при этом устройство содержит:
защищенную область памяти(8), хранящую первый ключ дешифрования;
физически защищенный блок вычислений (9), выполненный с возможностью дешифрования значений первым ключом дешифрования и вычисления значения электронной подписи результата вычисления функции с использованием ключа электронной подписи, хранящегося в защищенной области памяти;
блок вычислений (9) выполнен обеспечивающим:
хранение первого ключа дешифрования из пары ключей первый ключ шифрования - первый ключ дешифрования в защищенной области памяти (8) блока вычислений, где первый ключ шифрования используется для шифрования значений из первого секретного набора данных;
вычисление (6) значения функции для выбранного идентификатора из общего набора идентификаторов путем получения (3) по функциональному интерфейсу данных из открытого набора данных, соответствующих идентификаторам из массива данных, соответствующего запрошенному идентификатору;
расшифровку (16) зашифрованных данных первым ключом дешифрования с получением значений, используемых в качестве аргументов функции, вычисление (6) значения функции, вычисления значения электронной подписи результата вычисления функции с использованием ключа электронной подписи и передачу (7) значения функции (18) вместе с вычисленным значением электронной подписи по сервисному интерфейсу.
В частных случаях реализации изобретения, в качестве защищенной области памяти использован блок памяти, защищенный от физического доступа, при этом связи между защищенной областью памяти, блоком вычислений, а также между функциональным и сервисным интерфейсами выполнены внутри единого корпуса с физической защитой от проникновения, в качестве ключа электронной подписи использован первый ключ шифрования, физически защищенный блок вычислений может быть выполнен в виде процессора, защита памяти может обеспечиваться шифрованием данных на стороне процессора, а блок вычислений может быть выполнен обеспечивающим генерацию пары первый ключ шифрования - первый ключ дешифрования, с передачей первого ключа шифрования для шифрования значений из первого секретного набора данных.
Кроме этого, устройство может быть выполнено обеспечивающим хранение второго ключа дешифрования из пары ключей второй ключ шифрования - второй ключ дешифрования в защищенной области памяти блока вычислений, где второй ключ шифрования используется для шифрования совокупности данных из открытого набора данных, соответствующих идентификаторам из массива данных, соответствующего запрошенному идентификатору перед передачей к функциональному интерфейсу и устройство выполнено дешифрующим указанные данные вторым ключом дешифрования, а
в качестве ключа электронной подписи может использоваться второй ключ шифрования.
Устройство может быть выполнено предназначенным для установки внутри периметра безопасности владельца (21) первого секретного набора данных, либо внутри периметра безопасности владельца (20) второго секретного набора данных. В качестве идентификаторов могут быть использованы телефонные номера абонентов или другие персональные идентификаторы, а в качестве значений могут быть использованы кредитные рейтинги абонентов. При этом каждый из массивов первого набора данных может содержать телефонные номера абонентов, взаимодействующих с абонентом, телефонный номер которого является идентификатором, соответствующим массиву, а для каждого из телефонных номеров абонентов, взаимодействующих с абонентом, соответствующим массиву, может быть указан весовой коэффициент, соответствующий «уровню общения», и при вычислении функции, каждый из идентификаторов может изменяться в соответствии со значением весового коэффициента. При этом весовой коэффициент может зависеть от среднего времени разговоров в сутки, а устройство может быть выполнено с запретом повторного запроса на вычисление функции, соответствующей одному из идентификаторов общего набора идентификаторов. При выполнении устройства может быть обеспечена возможность загрузки первого ключа дешифрования в память только под контролем сторон, владеющих первым и вторым наборами данных, а также возможность, перед использованием функционального интерфейса, аутентификации блока обработки данных и закрытого обмена секретными ключами, один из которых используется для шифрования, а второй для дешифрования сообщений, передаваемых по сервисному интерфейсу. Устройство может быть выполнено с возможностью деактивации после выполнения заранее заданного количества запросов.
Для достижения указанного выше технического результата, при вычислении социального рейтинга, в способе безопасного вычисления социального рейтинга, выбранного пользователя:
Формируют первый и второй (4) секретные наборы данных, где первый и второй секретные наборы данных используют идентификаторы пользователей,
первый секретный набор данных содержит рейтинги пользователей, приведенные в соответствие к идентификаторам пользователей;
второй секретный набор данных, для каждого из идентификаторов пользователей, содержит массив идентификаторов пользователей из социального окружения соответствующих пользователей,
формируют (31, 52) пару основного ключа шифрования и основного ключа дешифрования, где основной ключ шифрования является открытым, основной ключ дешифрования обеспечивает дешифрование данных зашифрованных основным ключом шифрования, и основной ключ шифрования хранится в защищенной от копирования области памяти закрытого блока обработки данных;
формируют (11, 35, 55) открытый набор данных, в котором значения рейтингов заменены на соответствующие значения рейтингов, зашифрованные ключом шифрования,
задают (12) идентификатор выбранного пользователя,
по идентификаторам пользователей из социального окружения выбранного пользователя выбирают и передают (15, (37, 57) к закрытому блоку обработки данных зашифрованные рейтинги пользователей из социального окружения выбранного пользователя,
внутри закрытого блока обработки данных дешифруют (16, 38, 58) значения рейтингов пользователей, и
вычисляют (6, 39, 59) социальный рейтинг выбранного пользователя как функцию количества пользователей из социального окружения и значений рейтингов пользователей из социального окружения.
При этом, в качестве рейтинга пользователя могут использоваться кредитный или страховой рейтинг пользователя, а значение социального рейтинга выбранного пользователя может вычисляться как среднее арифметическое от рейтингов пользователей из социального окружения выбранного пользователя. Кроме этого, значение социального рейтинга выбранного пользователя может вычисляться с использованием модели машинного обучения.
В частном случае реализации способа, формируют (52) дополнительную пару ключей из дополнительного ключа шифрования и дополнительного ключа дешифрования, хранят дополнительный ключ дешифрования в защищенной от копирования области памяти закрытого блока обработки данных, при этом совокупность выбранных и зашифрованных рейтингов пользователей из второго секретного набора данных для выбранного пользователя совместно шифруют дополнительным ключом дешифрования (57) перед передачей к закрытому блоку обработки данных, и дешифруют (58) дополнительным ключом дешифрования внутри закрытого блока обработки данных для вычисления социального рейтинга выбранного пользователя.
Дополнительно может формироваться несколько дополнительных вторых секретных наборов данных, и несколько пар из вторых дополнительных ключей шифрования и вторых дополнительных ключей дешифрования, по числу дополнительных вторых секретных наборов данных, хранят вторые дополнительные ключи дешифрования в защищенной от копирования области памяти закрытого блока обработки данных, для каждого из дополнительных вторых секретных наборов данных, совокупность выбранных и зашифрованных рейтингов пользователей из дополнительного второго секретного набора данных совместно шифруют соответствующим вторым дополнительным ключом дешифрования перед передачей к закрытому блоку обработки данных, дешифруют вторым дополнительным ключом дешифрования внутри закрытого блока обработки данных, а вычисление социального рейтинга, выбранного пользователя производят совместно для совокупностей данных из второго секретного набора данных всех дешифрованных первых и вторых и совокупностей данных из всех дополнительных вторых секретных наборов данных. При этом, для каждого из идентификаторов социального окружения второго секретного набора данных может быть указан весовой коэффициент, соответствующий «уровню общения», а при вычислении функции, каждый из соответствующих рейтингов изменяется пропорционально значению весового коэффициента.
В другом частном случае реализации, генерацию основного ключа дешифрования могут осуществлять под контролем сторон, владеющих первым и вторым наборами данных, а перед использованием функционального интерфейса может осуществляться аутентификация блока обработки данных и закрытый обмен секретными ключами, один из которых используется для шифрования, а второй для дешифрования сообщений, передаваемых по сервисному интерфейсу. В качестве идентификаторов могут быть использованы телефонные номера абонентов, или другие персональные идентификаторы.
Закрытый блок обработки данных может быть установлен внутри периметра безопасности владельца первого секретного набора данных или может быть установлен внутри периметра безопасности владельца второго секретного набора данных. Весовой коэффициент, используемый в предложенном способе, может зависеть от среднего времени разговоров между абонентами в сутки.
Описание предложенного изобретения сопровождается графическими материалами, где:
на фиг. 1 схематично показан обобщенный вариант выполнения устройства,
на фиг. 2 изображен порядок выполнения операций при реализации способа и устройства при использовании защищенного устройства HSM (IBM, Gemalto, Thales);
на фиг. 3 изображен порядок выполнения операций при реализации при использовании защищенного устройства Intel SGX для реализации способа и устройства.
Как показано на фиг. 1, предложенное устройство 7, выполненное в виде сервера с установленным защищенным устройством типа HSM или SGX сочетающим в себе защищенную память (8) и блок вычислений (9), используется в составе системы, которая содержит банк 22, выступающий в роли заказчика расчетов, и передающий на этапе 12 идентификационные данные t0 пользователя. В составе системы используется периметр мобильного оператора 21, далее также именуемого А, предоставляющего и формирующего второй секретный набор данных 13, содержащий сведения о социальном окружении пользователя, и периметр бюро кредитных историй (БКИ) 20, далее также именуемого Б, внутри которого хранится первый секретный набор данных, из которого формируется открытый набор данных 4, который передается мобильному оператору для использования внутри периметра мобильного оператора. Первый секретный набор данных содержит кредитные рейтинги S пользователей, а в открытом наборе данных кредитные рейтинги заменены на значения кредитных рейтингов E(S,K1), зашифрованных первым ключом шифрования К1. На этапе 11 открытый набор данных передается внутрь периметра мобильного оператора. Здесь и в формуле изобретения, под периметром понимаются границы вычислительной системы, в отношении которых используются организационные мероприятия и технические средства, исключающие несанкционированную утечку информации изнутри периметра, в том числе, предотвращение запуска внутри периметра вредоносных кодов, обеспечивающих несанкционированную передачу информации. В качестве организационных мероприятий могут использоваться ограничения уровней доступа сотрудников. Реализуемые техническими средствами, например, путем использования персональных карт доступа, биометрических сканеров или индивидуальных логинов и паролей, распознаваемых системами защиты информации.
Как показано на фиг. 1, в процессе функционирования устройства в составе системы, на этапе 14, мобильный оператор формирует список пользователей t1,..., t10 из социального окружения пользователя, выбранного для вычисления социального скоринга или рейтинга и, на этапе 4 выбирает из открытого набора данных зашифрованные кредитные рейтинги пользователей из социального окружения выбранного пользователя.
На этапе 3, выбранные зашифрованные кредитные рейтинги передаются на вход устройства 7 для безопасного вычисления значения функции непосредственно внутри HSM или SGX имеющих защищенные память (8) и блок вычислений (9). На этапе 16 происходит расшифровка зашифрованных значений с использованием первого ключа дешифрования из пары первый ключ шифрования - первый ключ дешифрования, после чего. На этапе 17 происходит вычисление значения функции (6) таким образом, что сведения об аргументах, используемых для вычисления функции не могут быть считаны извне периметра HSM или SGX (7) и (8). На этапе 17 происходит формирование электронной подписи, например, путем вычисления хэша значения функции по заранее заданным правилам и на этапе 5 значение функции совместно с электронной подписью передается мобильному оператору, который передает на этапе 19 полученные данные банку 22 или другому заказчику расчетов.
При этом устройство, сочетающее в себе 7 и 8, для безопасного вычисления значения функции может быть расположено внутри периметра мобильного оператора, или, может представлять собой отдельно стоящий сервер, содержащий анклав процессора Intel® в режиме SGX, и средства его программной и аппаратной поддержки.
Как показано на Фиг. 2, в одном из базовых случаев реализации изобретения, при использовании устройства для безопасного вычисления функции внутри периметра мобильного оператора, на этапе 31 БКИ 20 производится покупка и настройка HSM, установка ПО (кодов управления оборудованием) и ключа К1. На этапе 32 осуществляется передача HSM Мобильному оператору 21 который, на этапе 33, производит размещение, подключение и интеграцию HSM 10 в внутри периметра своей системы, и после завершения настроек, на этапе 34 подтверждает готовность системы к работе.
После получения подтверждения о готовности системы к работе и обеспечения возможности использования ключа К1 шифрования из симметричной или несимметричной пары ключей шифрования, БКИ, на этапе 35, шифрует актуальные скоры, например, кредитные рейтинги ключом шифрования К1 и на этапе 36 передает зашифрованные данные, используемые совместно с открытыми идентификаторами пользователей мобильному оператору. На этапе 37 мобильный оператор выбирает скоры, соответствующие социальному окружению и передает выбранные скоры к HSM 10. На этапе 38 производится расшифровка выбранных скоров и на этапе 39 производится расчет значения функции F с использованием расшифрованных значений и, при необходимости, дополнительных параметров, например, весовых коэффициентов. На этапе 40 вычисляется значение электронной подписи. На этапе 41 производится передача вычисленного значения и значения электронной подписи мобильному оператору или другому заинтересованному лицу. На этапе 42 вычисленное значение передается в БКИ или в банк, заказавший расчеты.
Как показано на фиг. 3, при реализации альтернативного варианта реализации изобретения, когда устройство для безопасного вычисления функции расположено вне периметра мобильного оператора (например, в периметре БКИ), на этапе 51 БКИ 20 производится покупка и начальная подготовка, настройка SGX, установка кодов управления оборудованием. На этапе 52 мобильный оператор удаленно аутентифицирует ПО на сервере SGX, устанавливает ключ К2 из общей пары второй ключ шифрования - второй ключ дешифрования. На этапе 53 БКИ 20 размещает первый ключ дешифрования K1 в памяти анклава SGX в безопасном режиме и после завершения указанных операций, на этапе 54 БКИ подтверждает готовность системы к работе.
После получения подтверждения о готовности системы к работе и обеспечения возможности использования ключей К1 и К2, БКИ, на этапе 55, шифрует кредитные рейтинги ключом шифрования К1 и на этапе 56 передает зашифрованные данные, используемые совместно с открытыми идентификаторами пользователей, мобильному оператору. На этапе 57 мобильный оператор выбирает зашифрованные ключом К1 скоры, соответствующие социальному окружению, шифрует блок выбранных зашифрованных скоров ключом К2 и передает зашифрованный блок выбранных скоров к серверу с SGX 50. На этапе 58 производится расшифровка блока выбранных скоров с использованием ключа К2, на этапе 59 производится расшифровка выбранных скоров ключом К1, и на этапе 60 производится расчет значения функции с использованием расшифрованных значений, а также, при необходимости, дополнительных параметров, например, весовых коэффициентов. На этапе 61 вычисляется значение электронной подписи. На этапе 63 производится передача вычисленного значения и значения электронной подписи БКИ оператору или другому заинтересованному лицу.
Другими словами, Б может, например, купить или арендовать HSM типа SGX в облаке, но не передавать его в А.
Публичный ключ ПО (анклава SGX) внутри удостоверяющего сертификата может верифицировать любая другая (3-я, 4-я, и т.д.) сторона, таким образом достигается основное преимущество альтернативной схемы, ее масштабируемость на любое количество участников, и как следствие отсутствие необходимости присутствовать обоим/всем сторонам при загрузке ПО в HSM. Данное свойство достигается за счет поддержки процедуры Remote Attestation со стороны SGX.
Альтернативная схема реализации реализуется, когда А - это моб. оператор, и Б - это БКИ. Очевидно, шифрование должно совершаться в режиме, не позволяющем сверять зашифрованные одинаковые значения.
Таким образом, базовые примеры реализации позволяют решить задачу вычисления статистики на данных компаний А и Б, при этом ни А, ни Б не раскрывают своих данных.
В частных случаях реализации предложенное техническое решение может быть использовано для сортировки списков, без раскрытия сортируемых данных, а также для количественного определения кредитоспособности пользователя с учетом параметров его социального окружения. Например, пользователи, имеющие в круге общения большое количество лиц, просрочивших выплаты по кредитам, могут иметь более низкий кредитный или социальный рейтинг, чем пользователи, в чьем социальном окружении нет просрочек по кредитам. Кредитный скоринг (кредитный рейтинг) физического лица является параметром (индивидуальным рейтингом). Который определяется на основании действий пользователя за длительный промежуток времени и предназначен для оценки невозврата кредита или недобросовестных действий. Кредитный рейтинг определяется объективно и субъективно, с использованием экспертных оценок, на основании набора данных, характеризующих пользователя. В число указанных данных могут входить: пол, возраст, место рождения и проживания, наличие постоянной работы и размер дохода, наличие автомобиля и другой собственности, частота смены телефонных номеров, количество и размеры ранее взятых и возвращенных кредитов, а также наличие просрочек выплат, и пр.
Информация о ранее выданных кредитах и наличии просрочек у пользователя, как правило собирается Бюро Кредитных Историй (БКИ) или аналогичными учреждениями, открыто и с согласия пользователя из финансовых институтов, взаимодействовавших с пользователем.
Традиционный кредитный рейтинг или скоринг скоринг физических лиц не учитывает одну важную особенность. А именно, кредитоспособность пользователя определяется не только субъективными факторами, определяемыми самим пользователем, но и от кредитоспособности или иных особенностей поведения других пользователей, которые входят в социальный круг или круг общения пользователя. Например, если у супруга отличная кредитная история, но у супруги недавно образовалась значительная просрочка по ипотеке, то супругу скорее всего нельзя выдавать льготный кредит, так как это приведет к перекредитации данного домохозяйства, и как следствие – к просрочке и/или невозврату по кредиту.
Противоположные сценарии влияния соц. окружения на кредитоспособность также возможны: если у молодого человека отсутствует кредитная история, что большинством финансовых институтов расценивается негативно, но у его родителей отличные кредитные истории, или большинство из его круга общения уже брали и всегда возвращали кредиты, то скорее всего данному субъекту можно одобрить кредит, а без учета наличия социального окружения в кредите пользователю было бы отказано.
Социальное окружение это не только и не обязательно семья, родители, коллеги, или друзья. Определение именно той части круга общения, которое действительно влияет (позитивно и/или негативно) на кредитоспособность субъекта – это отдельная подзадача в задаче улучшения кредитного скоринга с помощью социального скоринга. Данная подзадача решается с помощью алгоритмов машинного обучения, где на вход подается весь круг общения (например, 100 человек), и модель сама определяет тех, кто делает наибольший вклад в определение кредитоспособности субъекта.
Таким образом, решение задачи улучшения точности кредитного скоринга физических лиц требует получение и обработку 2х типов данных: социального круга (круга общения) субъекта, и данных БКИ по каждому физ. лицу внутри соц. круга. Социальный круг может быть вычислен, в частности, мобильным оператором, на основе звонков, фактов отправки СМС, и геоданных.
Задача вычисления социального скоринга или рейтинга, в частном случае, формулируется следующим образом: по запросу банка или другого заинтересованного лица, например, страховой компании вычислить среднюю кредитоспособность социального окружения субъекта на основе данных мобильного оператора или администратора социальной сети. и бюро кредитных историй.
В этом примере: А это мобильный оператор, который для каждого владельца телефонного номера Х0 владеет списком его социального окружения Х1-Х100: т.е. списком тел. номеров топ-100 человек, с которым абонент номера Х0 общается. В случае если социальное окружение абонента меньше 100 человек, размер списка тел. номеров социального окружения уменьшается пропорционально.
Таким образом, данные Ад - это база данных, для каждого абонента хранящая список телефонных номеров его социального окружения. Б - это бюро кредитных историй (БКИ), которое для каждого физического лица хранит его кредитный скор (в частности, в связке пользователь – телефонный номер или идентификатор социальной смети или электронный почтовый ящик – скор (рейтинг БКИ). Таким образом, данные Бд - это база данных, хранящая скор БКИ для каждого телефонного номера Х (скор БКИ (Х)).
Формула расчета статистического скора ССavg(Х0) или кредитного скора из объединенных данных. то есть среднего значения кредитоспособности социального окружения абонента Х выглядит следующим образом:
ССavg(Х0)=[скорБКИ(Х1)+скорБКИ(Х2)+…+скорБКИ(Х100)] / 100
Формула расчета дополнительно может быть уточнена путем усреднения не просто индивидуальных скоров БКИ, но и с учетом весов скоров в графе социального окружения. Веса могут быть рассчитаны на этапе определения социального окружения, например путем оценки доли голосовых вызовов и их длительности для каждого субъекта социального окружения с субъектом скоринга.
Расчет уровня кредитоспособности социального окружения может быть сделан не на основе приведенной выше формулы, но и путем создания и использования модели машинного обучения, где на вход модели подаются отдельные скоры БКИ соц. окружения с определенными весами (отражающими, например, социальную приближенность конкретного лица к пользователю, а на выходе модели формируется скор социального окружения.
В процессе вычислений, кроме результата обработки скоров социального окружения не должна использоваться в открытом виде сторонами, не владеющими соответствующей информацией, вне зависимости от того, какой метод используется для расчета соц. скора (формула или модель машинного обучения).
Предложенные способ и устройство обеспечивают возможность реализации указанного требования не только для простого скаляра, но и полноценного графа социального окружения с комплексным набором весовых коэффициентов.
В связи с тем, что мобильный оператор фиксирует контакты абонентов других операторов, вычисление социального скоринга является достоверным даже без привлечения всех возможных сотовых операторов.
Базовым оборудованием, используемым для реализации предложенных способа и устройства, является аппаратный блок безопасных (защищенных) вычислений (Hardware Security Modules (HSM)), разработанный для использования в сценариях, отличающихся от предложенного способа. В частности, HSM используются для защиты от несанкционированного доступа к высоко чувствительным данным и к высоко чувствительной обработке данных внутри одной компании, а не в 2х и более компаниях, как это предложено в настоящей заявке.
В большинстве случаев коммерческих применений, HSM используются банками для хранения и обработки PIN-кодов (кодов персонального доступа) к кредитным и дебетовым картам. С помощью HSM обеспечивается такой высокий уровень защиты от несанкционированного доступа, что даже системные администраторы и офицеры безопасности, владеющие всеми секретными ключами и полномочиями, не могут получить доступ к PIN-кодам. Другими словами, никто не в состоянии получить доступ к алгоритмам защиты даже имея непосредственный физический доступ к серверам и хранилищам данных, на которых хранятся зашифрованные данные. Обработка, то есть сверка хранимого PIN- кода с PIN-кодом, введенным в АТМ, с целью авторизации или отказа в операции; замена клиентом PIN-кода; и т.п.осуществляется внутри HSM с практически абсолютной защитой от перехвата расшифрованных данных злоумышленниками.
Стандартный HSM поддерживает функции и обладает свойствами, которые могут быть применены при частичной реализации предложенных способа и устройства. В частности, базовая функциональность обеспечивает дешифрацию входящих и шифрацию исходящих данных, исполнение загруженных инструкций управления процессором. Владелец HSM может загрузить в него секретный ключ, и исполняемые коды, которые могут использовать этот секретный ключ для расшифровки данных, поступающих в HSM, и для зашифровки либо для создания электронно-цифровой подписи (ЭЦП) данных, выпускаемых из HSM в соответствии с заранее заданной логикой работы.
HSM находится в незащищенном состоянии в процессе инициализации («взвода»), когда владелец (обычно: два и более старших офицеров безопасности компании) загружает в него секретный ключ, и коды управления. Эта процедура производится в специальной защищенной комнате, так как в таком невзведенном состоянии HSM уязвим. Когда взвод HSM произведен, никто (даже офицеры безопасности) не может получить доступ к ключу, программе, и данным внутри HSM. В случае физической или логической попытки получить доступ внутрь HSM, HSM мгновенно уничтожает все данные, в том числе, ключ, коды и загруженные данные, и превращается в пустой, неинициализированный HSM, не содержащий никаких данных.
Генерация ключей внутри HSM и спаривание HSM позволяет противостоять сценарию, когда все офицеры безопасности, принимающие участие во взводе HSM, объединяются чтобы украсть из безопасной комнаты копию секретного ключа во время его загрузки в HSM. Для исключения этого негативного сценария существует особый способ взвода HSM, когда секретный ключ не загружается в HSM офицерами безопасности, а генерируется внутри HSM и никогда не покидает HSM.
Однако, такой подход влечет риск утери данных, так как, если HSM выходит из строя, то секретный ключ также является полностью утерянным, а вместе с ним и данные (например, база данных PIN-кодов банка), которые были зашифрованы этим ключом. Чтобы снизить этот риск, HSM обычно поддерживают специальный функционал т.н. спаривания (pairing): при строго определенных условиях, на этапе взвода, в безопасной комнате и с участием офицеров безопасности, секретный ключ сгенерированный в одном HSM может быть передан на хранение и использование в другой или другие HSM, используемые в качестве резервной аппаратной копии.
Ведущими производителями HSM являются: IBM, Gemalto, Thales. Также, аналогом HSM является технология Intel SGX, которая с 2015 г.позволяет использовать процессоры Intel в режиме HSM блока.
В альтернативном базовом варианте реализации изобретения, предназначенном, преимущественно для использования совместно с технологией SGX, когда процессор используется в качестве базовой аппаратной части HSM, а аппаратная часть памяти блока эмулируется путем шифрования данных, используемых для хранения во внешнем блоке памяти. Основным отличием использования другого типа HSM (в виде SG) является также возможность размещения SGX в контуре БКИ (а не мобильного оператора).
Альтернативный вариант реализации поддерживает неограниченное число участников-владельцев секретных данных данные которых используются в конфиденциальных вычислениях (в отличие от 2х в базовой схеме с HSM).
В расширенных примерах реализации, для устранения утечки данных из Бд в результате наблюдения А за обращениями HSM к внешней памяти, все данные мобильного оператора оператора (все социальное окружение) и все данные БКИ (все значения скоров в привязке к номерам моб. телефонов) в HSM не загружаются. Вместо этого, единовременно в HSM загружаются только данные, необходимые для расчета статистики кредитоспособности социального окружения одного абонента. То есть, например, 100 зашифрованных кредитных скоров БКИ, которые соответствуют социальному окружению данного абонента. Таким образом, БКИ требуется передать свои данные E(Бд, КБ) не единым зашифрованным блоком, который невозможно загрузить в HSM, а зашифровать значение каждого скора отдельно.
Дополнительно, чтобы сторона А (мобильный оператор) не могла исследовать частотность зашифрованных значений скоров, при шифровании значений скоров необходимо добавлять рандомизацию, которая тем не менее позволит HSM однозначно восстанавливать точные значения скоров путем дешифрации. Для рандомизации используются стандартный подход с добавлением так называемого nonce к данным перед шифрованием и/или добавление данных, входящих в социальное окружение с нулевым весовым коэффициентом.
Когда аттестацию кода для А невозможно произвести стандартным функционалом HSM, предлагается использовать аттестацию кода расчета статистики внутри HSM на соответствие согласованному между А и Б коду. Это минимизирует риски, связанные с тем что сторона Б загрузит модифицированный алгоритм. В предложенной реализации сторона Б совершает загрузку кода не в своей безопасной комнате, а комнате в периметре стороны А. При этом сторона А обеспечивает туннель или безопасный для Б шифрованный (SSL) канал к HSM. Во время процедуры загрузки сторона А может наблюдать или определить контрольную сумму или чек-сумму исполняемого кода, загружаемого стороной Б в HSM, и сравнить эту чек-сумму с чек-суммой исполняемого кода, согласованного сторонами для загрузки.
Контроль количества запусков расчета статистики со стороны Б реализуется путем использования так называемых сертификатов на расчеты. Внутри HSM программно-аппаратно реализован счетчик, значение которого декрементируется или уменьшается при каждом расчете или обработке статистики. Когда значение счетчика становится равно нулю, HSM перестает исполнять запросы на расчет статистики (приходящие от стороны А). Для продолжения работы, необходимо, чтобы сторона Б подписала сертификат на проведение С новых расчетов, после чего она передает сертификат стороне А, которая загружает сертификат через специальный интерфейс в HSM, и HSM присваивает счетчику значение С.Дополнительно, чтобы исключить возможность со стороны А подавать искусственные данные для расчета статистики, стороной Б в HSM закладываются, по согласованию со стороной А. функции контроля искусственности данных Ад, например, контроля нулевых значений А не нулевые. В случае если срабатывают функции контроля искусственности данных Ад, HSM вместо результата расчета статистики должен выдавать результат в виде сообщения о срабатывании функции контроля искусственности данных, одновременно с декрементацией счетчика количества разрешенных запусков.
Удаленный мониторинг устройства со стороны Б реализуется путем подписания статистики секретным ключом, находящемся внутри HSM. Таким образом, сторона Б может быть уверена, что сторона А не модифицировала статистику из HSM при передаче стороне Б.
Для исключение утечки секретного ключа КБ из Б в А используется ранее описанный механизм «спаривания» HSM. В дополнение к HSM, который сторона Б передаст стороне А, сторона Б устанавливает в своем периметре второй HSM. Перед передачей HSM в А, сторона Б «спаривает» его с вторым HSM, который остается в периметре Б. Таким образом офицеры безопасности не будут знать секретный ключ, его будут «знать» только два HSM. а второй HSM при этом будет выполнять функции шифрации данных Б для передачи в периметр стороны А.
В некоторых случаях, может быть третья сторона (Е), сведения, получаемые от которой позволяют улучшить точность вычислений социального рейтинга.
В этих случаях, если правовое регулирование и технические методы обезличивания позволяют передать новый тип данных от стороны Е стороне А (например - если банк может передать обезличенный граф переводов мобильному оператору для учета в производстве социальных графов) - то эти новые данные просто учитываются в данных соответствующей стороны А или Б, и далее расчет социального рейтинга производится согласно описанной выше процедуре.
Если правовое регулирование и технические методы обезличивания не позволяют передать новый тип данных от стороны Е, то может быть независимо рассчитан социальный рейтинг для стороны Е, а затем социальные рейтинги объединяются или консолидируются на стороне заказчика. Такой подход может быть расширен на любое количество дополнительных участников. Правила консолидации могут определяться в соответствии с методикой расчетов социального рейтинга, например, вычисляется среднее арифметическое вычисленных рейтингов (статистик) или консолидация осуществляется с учетом одинаковых идентификаторов, которые использованы при вычислении различных рейтингов.
Изобретение относится к средствам защиты данных и может быть использовано для проведения совместных вычислений двумя и более сторонами без раскрытия друг другу используемых секретных данных. Технический результат заключается в обеспечении секретности больших объемов данных, принадлежащих различным сторонам, и сокращении объемов памяти. В способе и устройстве формируют первый и второй секретные наборы данных, где первый и второй секретные наборы данных используют идентификаторы пользователей, первый секретный набор данных содержит рейтинги пользователей, приведенные в соответствие к идентификаторам пользователей, а второй секретный набор данных для каждого из идентификаторов пользователей содержит массив идентификаторов пользователей из социального окружения соответствующих пользователей, по идентификаторам пользователей из социального окружения выбранного пользователя вычисляют социальный рейтинг выбранного пользователя как функцию количества пользователей из социального окружения и значений рейтингов пользователей из социального окружения. При этом передачу данных о социальных рейтингах пользователей осуществляют в зашифрованном виде. 2 н. и 31 з.п. ф-лы, 3 ил.
1. Устройство для защиты данных при вычислении значения функции социального рейтинга пользователей с использованием двух секретных наборов данных без компрометации наборов данных, содержащее:
интерфейс функциональных данных, выполненный с возможностью получения данных из открытого набора данных,
и сервисный интерфейс для передачи результатов вычисления функции, где
первый и второй секретные наборы данных используют идентификаторы из общего набора идентификаторов;
второй секретный набор данных содержит массивы данных, где каждый массив данных соответствует одному из идентификаторов из общего набора идентификаторов, и в каждом массиве содержится совокупность идентификаторов из идентификаторов, используемых в первом секретном наборе данных;
в открытом наборе данных каждому из идентификаторов приведено в соответствие значение из первого секретного набора данных, зашифрованное первым ключом шифрования с возможностью дешифрования первым ключом дешифрования значений, зашифрованных первым ключом шифрования,
а в качестве аргументов функции используются значения, приведенные в соответствие идентификаторам из первого секретного набора данных;
при этом устройство содержит:
защищенную область памяти, хранящую первый ключ дешифрования;
физически защищенный блок вычислений, выполненный с возможностью дешифрования значений из первого секретного набора данных первым ключом дешифрования и вычисления значения электронной подписи результата вычисления функции с использованием ключа электронной подписи, хранящегося в защищенной области памяти;
блок вычислений выполнен обеспечивающим:
хранение первого ключа дешифрования из пары ключей первый ключ шифрования – первый ключ дешифрования в защищенной области памяти блока вычислений, где первый ключ шифрования используется для шифрования значений из первого секретного набора данных;
вычисление значения функции для выбранного идентификатора из общего набора идентификаторов путем получения по функциональному интерфейсу данных из открытого набора данных, соответствующих идентификаторам из массива данных, соответствующего запрошенному идентификатору;
расшифровку зашифрованных данных первым ключом дешифрования с получением значений, используемых в качестве аргументов функции, вычисление значения функции, вычисления значения электронной подписи результата вычисления функции с использованием ключа электронной подписи и передачу значения функции вместе с вычисленным значением электронной подписи по сервисному интерфейсу.
2. Устройство по п. 1, отличающееся тем, что в качестве защищенной области памяти использован блок памяти, защищенный от физического доступа, при этом связи между защищенной областью памяти, блоком вычислений, а также между функциональным и сервисным интерфейсами выполнены внутри единого корпуса с физической защитой от проникновения.
3. Устройство по п. 2, отличающееся тем, что в качестве ключа электронной подписи использован первый ключ шифрования.
4. Устройство по п. 1, отличающееся тем, что физически защищенный блок вычислений выполнен в виде процессора.
5. Устройство по п. 4, отличающееся тем, что защита памяти обеспечивается шифрованием данных на стороне процессора.
6. Устройство по п. 1, отличающееся тем, что блок вычислений выполнен обеспечивающим генерацию пары первый ключ шифрования – первый ключ дешифрования, с передачей первого ключа шифрования для шифрования значений из первого секретного набора данных.
7. Устройство по п. 1, отличающееся тем, что оно выполнено обеспечивающим хранение второго ключа дешифрования из пары ключей второй ключ шифрования – второй ключ дешифрования в защищенной области памяти блока вычислений, где второй ключ шифрования используется для шифрования совокупности данных из открытого набора данных, соответствующих идентификаторам из массива данных, соответствующего запрошенному идентификатору перед передачей к функциональному интерфейсу, а устройство выполнено дешифрующим указанные данные вторым ключом дешифрования.
8. Устройство по п. 7, отличающееся тем, что в качестве ключа электронной подписи используется второй ключ шифрования.
9. Устройство по п. 4, отличающееся тем, что оно предназначено для установки внутри периметра безопасности владельца первого секретного набора данных.
10. Устройство по п. 3, отличающееся тем, что оно предназначено для установки внутри периметра безопасности владельца второго секретного набора данных.
11. Устройство по п. 1, отличающееся тем, что в качестве идентификаторов используются телефонные номера абонентов, или другие персональные идентификаторы.
12. Устройство по любому из пп. 1-11, отличающееся тем, что в качестве значений используются значения кредитных рейтингов абонентов.
13. Устройство по п. 12, отличающееся тем, что каждый из массивов первого набора данных содержит телефонные номера абонентов, взаимодействующих с абонентом, телефонный номер которого является идентификатором, соответствующим массиву.
14. Устройство по п. 13, отличающееся тем, что для каждого из телефонных номеров абонентов, взаимодействующих с абонентом, соответствующим массиву, указан весовой коэффициент, соответствующий «уровню общения», а при вычислении функции каждый из идентификаторов изменяется в соответствии со значением весового коэффициента.
15. Устройство по п. 13, отличающееся тем, что весовой коэффициент зависит от среднего времени разговоров в сутки.
16. Устройство любому из пп. 1-11, отличающееся тем, что оно выполнено с запретом от повторного запроса на вычисление функции, соответствующей одному из идентификаторов общего набора идентификаторов.
17. Устройство по любому из пп. 1-11, отличающееся тем, что оно выполнено с возможностью осуществления загрузки первого ключа дешифрования в память под контролем сторон, владеющих первым и вторым наборами данных.
18. Устройство по любому из пп. 1-11, отличающееся тем, что оно выполнено обеспечивающим аутентификацию блока обработки данных и закрытый обмен секретными ключами, один из которых используется для шифрования, а второй для дешифрования сообщений, передаваемых по сервисному интерфейсу перед использованием функционального интерфейса.
19. Устройство по любому из пп. 1-11, отличающееся тем, что оно выполнено деактивирующимся после выполнения заранее заданного количества запросов.
20. Способ для защиты данных при вычислении значения функции социального рейтинга выбранного пользователя без компрометации исходных наборов данных, заключающийся в том, что:
формируют первый и второй секретные наборы данных, где первый и второй секретные наборы данных используют идентификаторы пользователей,
первый секретный набор данных содержит значения рейтингов пользователей, приведенные в соответствие к идентификаторам пользователей;
второй секретный набор данных, для каждого из идентификаторов пользователей, содержит массив идентификаторов пользователей из социального окружения соответствующих пользователей,
формируют пару основного ключа шифрования и основного ключа дешифрования, где основной ключ шифрования является открытым, основной ключ дешифрования обеспечивает дешифрование данных зашифрованных основным ключом шифрования, и основной ключ шифрования хранится в защищенной от копирования области памяти закрытого блока обработки данных;
формируют открытый набор данных, в котором значения рейтингов заменены на соответствующие значения рейтингов, зашифрованные ключом шифрования,
задают идентификатор выбранного пользователя,
по идентификаторам пользователей из социального окружения выбранного пользователя выбирают и передают к закрытому блоку обработки данных зашифрованные рейтинги пользователей из социального окружения выбранного пользователя,
внутри закрытого блока обработки данных дешифруют значения рейтингов пользователей, и
вычисляют значение функции социального рейтинга выбранного пользователя как функцию количества пользователей из социального окружения и значений рейтингов пользователей из социального окружения.
21. Способ по п. 20, отличающийся тем, что в качестве значения рейтинга пользователя используется кредитный рейтинг пользователя.
22. Способ по п. 20, отличающийся тем, что в качестве значения рейтинга пользователя используется страховой рейтинг пользователя.
23. Способ по п. 20, отличающийся тем, что значение функции социального рейтинга выбранного пользователя вычисляется как среднее арифметическое от рейтингов пользователей из социального окружения выбранного пользователя.
24. Способ по п. 20, отличающийся тем, что значение функции социального рейтинга выбранного пользователя вычисляется с использованием модели машинного обучения.
25. Способ по п. 20, отличающийся тем, что формируют дополнительную пару ключей из дополнительного ключа шифрования и дополнительного ключа дешифрования, хранят дополнительный ключ дешифрования в защищенной от копирования области памяти закрытого блока обработки данных, при этом совокупность выбранных и зашифрованных значений рейтингов пользователей из второго секретного набора данных для выбранного пользователя совместно шифруют дополнительным ключом дешифрования перед передачей к закрытому блоку обработки данных, и дешифруют дополнительным ключом дешифрования внутри закрытого блока обработки данных для вычисления значения функции социального рейтинга, выбранного пользователя.
26. Способ по п. 20, отличающийся тем, что формируют несколько дополнительных вторых секретных наборов данных, и несколько пар из вторых дополнительных ключей шифрования и вторых дополнительных ключей дешифрования, по числу дополнительных вторых секретных наборов данных, хранят вторые дополнительные ключи дешифрования в защищенной от копирования области памяти закрытого блока обработки данных, для каждого из дополнительных вторых секретных наборов данных, совокупность выбранных и зашифрованных значений рейтингов пользователей из дополнительного второго секретного набора данных совместно шифруют соответствующим вторым дополнительным ключом дешифрования перед передачей к закрытому блоку обработки данных, дешифруют вторым дополнительным ключом дешифрования внутри закрытого блока обработки данных, а вычисление значения функции социального рейтинга выбранного пользователя производят совместно для совокупностей данных из второго секретного набора данных всех дешифрованных первых и вторых и совокупностей данных из всех дополнительных вторых секретных наборов данных.
27. Способ по п. 20, отличающийся тем, что для каждого из идентификаторов социального окружения второго секретного набора данных указан весовой коэффициент, соответствующий «уровню общения», а при вычислении функции каждое из значений соответствующих рейтингов изменяется пропорционально значению весового коэффициента.
28. Способ по п. 20, отличающийся тем, что генерацию основного ключа дешифрования осуществляют под контролем сторон, владеющих первым и вторым наборами данных.
29. Способ по п. 20, отличающийся тем, что перед использованием функционального интерфейса осуществляют аутентификацию блока обработки данных и закрытый обмен секретными ключами, один из которых используется для шифрования, а второй для дешифрования сообщений, передаваемых по сервисному интерфейсу.
30. Способ по любому из пп. 20-29, отличающийся тем, что в качестве идентификаторов используют телефонные номера абонентов, или другие персональные идентификаторы.
31. Способ по п. 20, отличающийся тем, что закрытый блок обработки данных устанавливают внутри периметра безопасности владельца первого секретного набора данных.
32. Способ по п. 25 или 26, отличающийся тем, что закрытый блок обработки данных устанавливают внутри периметра безопасности владельца второго секретного набора данных.
33. Способ по п. 27, отличающийся тем, что весовой коэффициент зависит от среднего времени разговоров в сутки.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
СПОСОБ И СИСТЕМА ПРОВЕДЕНИЯ ТРАНЗАКЦИЙ В СЕТИ С ИСПОЛЬЗОВАНИЕМ СЕТЕВЫХ ИДЕНТИФИКАТОРОВ | 2003 |
|
RU2376635C2 |
Даты
2020-03-03—Публикация
2019-05-17—Подача