<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>О применении политики разграничения доступа к предварительному распределению ключей на основе векторной схемы разделения секрета</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>С.В. Усов raintower@mail.ru</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <abstract>
        <p>Традиционные алгоритмы предварительного распределения ключей игнорируют политику безопасности системы. В данной работе удалось предложить основанный на схеме Блэкли подход к распределению ключей, нивелирующий этот недостаток. В предложенной схеме получение общего ключа возможно лишь для пар участников схемы, обмен информацией между которыми разрешен политикой безопасности. При этом учитывается направление потока данных и тип доступа, как, например, на чтение и на запись.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>ему запрещен. Пусть подсистема безопасности для каждого субъекта системы реализована таким образом,
что при невозможности вычисления ключа следует запрет на установление соединения.</p>
      <p>Учитывая вышесказанное, разумно выделить два класса политик безопасности разной степени
общности. Будем называть политику разграничения доступа симметричной, если субъект  обладает доступом
к субъекту  одновременно с тем, что субъект  обладает доступом к субъекту . Политику, в которой
данное ограничение отсутствует, назовем асимметричной.</p>
      <p>Для начала будем считать политику разграничения доступа симметричной.
2
Модификация векторной схемы разделения секрета до схемы
предварительного распределения ключей
В схеме Блэкли [4] каждый участник схемы в качестве своей доли секрета получает уравнение ( −
1)мерной плоскости в -мерном пространстве. Все эти гиперплоскости имеют одну общую точку, которая и
является хранимым секретом, для получения которого каждый участник схемы должен, очевидно,
скомпрометировать свою долю секрета. Мы также будем работать в -мерном пространстве. Предложим
следующую модификацию векторной схемы разделения секрета до схемы предварительного распределения
ключей.</p>
      <p>Долю секрета пользователя , а в модифицированной схеме – его долю ключевых материалов,
составляет множество точек () в -мерном подпространстве (). В открытом доступе хранится -мерное
подпространство  (), сопоставленное -тому пользователю, причем () является подпространством  (),
то есть  &lt;  &lt; .</p>
      <p>Алгоритм выработки общего ключа между -м и -м пользователями следующий:
Дано:
1) множество всевозможных ключей K,
2) размерности пространства и подпространств  &lt;  &lt; ;
для каждого пользователя :
3) его доля секрета (),
4) секретное подпространство (),
5) открытое подпространство  (),
6) также для каждой пары пользователей  и  задана ключевая функция , : R+ → K* ,
помогающая выработать общий ключ.</p>
      <p>Получить: для каждой пары пользователей (, ) ключевые множества (, ), (, ) ⊂ K, имеющие
общий элемент, который и будет являться общим ключом пользователей  и , либо установить, что
получение таких множеств невозможно (а значит, обмен информацией между  и  запрещен).
1. Пользователь  находит пересечение множеств () и  (). Если пересечение пусто, выработка общего
ключа невозможна. Это значит, что обмен информации между -м и -м пользователями запрещен
политикой безопасности.
2. Если () ∩  () содержит непустое множество точек, то пользователь  вычисляет определенную
функцию , от координат этих точек. Результатом вычисления функции является некоторое
множество. Если оно пусто, либо бесконечно, выработка общего ключа невозможна.
3. В противном случае результат вычисления функции
,(() ∩  ()) обозначим через (, ).
4. Симметричные действия предпринимает пользователь  по отношению к . Его результат обозначим
через (, ).
5. Пользователи сравнивают результаты. Если (, ) ∩ (, ) ̸= ? (если у каждого пользователя
получилось некоторое множество результатов, то должен совпадать хотя бы один элемент этих множеств),
то элемент из (, ) ∩ (, ) является общим ключом связи между пользователями.
6. Если же результаты не совпадают, то обмен информации между -м и -м пользователями запрещен
политикой безопасности.
Пример 1.  = 1, () = () (прямая),  =  − 1. Пользователь  ищет множество точек пересечения
своей (секретной) прямой и подпространства  () пользователя , которое находится в открытом доступе.
С учетом размерностей, возможны четыре варианта:
а) Точек пересечения нет, то есть прямая () параллельна подпространству  (). Доступ запрещен.
б) Точек пересечения бесконечно много, то есть прямая () целиком лежит в подпространстве  ().
Доступ запрещен.</p>
      <p>в) Прямая () и подпространство  () пересекаются в единственной точке. Однако прямые () и ()
не имеют общих точек (скрещиваются). В этом случае точка, полученная пользователем  не совпадет с
точкой, полученной пользователем . Доступ запрещен.</p>
      <p>г) Прямая () и подпространство  () пересекаются в единственной точке. Причем эта точка лежит
на (). Такая точка пересечения прямых – единственная, поэтому пользователь  получит ту же точку.
Общим ключом может служить, например, -я координата точки. Доступ разрешен.</p>
      <p>Итак, мы построили схему предварительного распределения ключей с разграничением доступа. Теперь
рассмотрим ее недостатки.</p>
      <p>Во-первых, если три пользователя ,  и  обладают взаимным доступом, то схема легко
компрометируется. Действительно, ведь тогда их прямые лежат в одной двумерной плоскости, а открытые − 1-мерные
пространства этих пользователей, пересеченные с уравнением общей плоскости, позволяют
злоумышленнику получить секрет каждого из пользователей , , . Одним из решений данной проблемы может
стать запрет на циклы длины 3 в графе доступов системы, что накладывает существенные ограничения
на область применения данной схемы.</p>
      <p>Во-вторых, раскрытие секретов только двух участников схемы компрометирует всю схему. Достаточно
найти точки пересечения прямых пользователей  и  с прямой третьего участника С, и восстановить его
прямую по двум точкам.</p>
      <p>Предложим и два способа исправления недостатков.</p>
      <p>1. Секретом каждого участника будет -мерное пространство, а в качестве открытой информации об
участнике на сервере будет предоставляться  − -мерное подпространство, причем  ≥ 2.</p>
      <p>2. Секретом каждого участника будет не прямая, а некоторое множество точек (например, кривая или
поверхность), которое легко задается аналитически. Более того, в качестве открытой информации на
сервере можно также использовать  − 1-мерные поверхности, а не плоскости.</p>
      <p>Результатом исправления недостатков может стать, например, следующая модель:
Пример 2.  = 2, () – кривая (например, окружность) в плоскости (),  =  − 2. Пользователь
 ищет множество точек пересечения своей (секретной) кривой и подпространства  () пользователя ,
которое находится в открытом доступе. С учетом размерностей, возможны несколько вариантов:
а) Кривая () не пересекается с подпространством  (). Доступ запрещен.
б) Кривая () вместе с плоскостью () целиком лежит в подпространстве  (). Доступ запрещен.
в) Подпространства () и  () пересекаются по прямой. Однако кривые () и () не имеют
общих точек. В этом случае точка, полученная -м пользователем не совпадет с точкой, полученной -м
пользователем. Доступ запрещен.</p>
      <p>г) Подпространства () и  () пересекаются по прямой. Кривая () и подпространство  ()
пересекаются в единственной точке. Причем эта точка лежит на (). Такая точка пересечения прямых –
единственная, поэтому пользователь  получит ту же точку. Общим ключом может служить, например,
-я координата точки. Доступ разрешен.</p>
      <p>д) Подпространства () и  () пересекаются по прямой. Прямая () и подпространство  ()
пересекаются в нескольких точках. Правило вычисления ключа (, ) позволяет определить его точное значение,
либо выдает конечный (небольшой) набор возможных значений, которые можно перебрать. Пользователь
 также смог получить свой конечный набор значений (, ), причем (, ) ∩ (, ) ̸= ?. Пользователям
осталось перебрать элементы своих ключевых множеств, чтобы найти общий ключ. Доступ разрешен.</p>
      <p>е) Подпространства () и  () пересекаются по прямой. Прямая () и подпространство  ()
пересекаются в нескольких точках. Правило вычисления ключа (, ) не позволяет определить его точное
значение, либо выдает большой (бесконечный) набор возможных значений, которые нет возможности
перебрать за разумное время. Либо подобная ситуация произошла с пользователем . Доступ запрещен.</p>
      <p>Еще несколько вариантов событий, симметричных описанным с точки зрения пользователя ,
рассматриваются аналогично.</p>
      <p>Приведем, наконец, еще один простой пример схемы предварительного распределения ключей, на этот
раз с определенными значениями всех множеств и функций.
Пример 3. Пусть =4, = 3, =2. Значения (), () и  () для каждого участника схемы (  = 1 . . . 4)
занесем в таблицу 1. Координаты точек 4-мерного пространства будем обозначать через , , , .
Таблица 1: Исходные данные к схеме предварительного распределения ключей
  ()
1 { = 0}
2 { = 0}
3 { = 0}
3 { = 0}</p>
      <p>()
{ = 0,  = 0}
{ = 0,  = 0}
{ = 0,  = 0}
{ = 0,  = 0}</p>
      <p>
        ()
{2 + 2 = 1} ∩ (1)
{− 2 + 2 = 1} ∩ (
        <xref ref-type="bibr" rid="ref1">2</xref>
        )
{2 + 2 + 2 = 1} ∩ (
        <xref ref-type="bibr" rid="ref2">3</xref>
        )
{2 +  = 1} ∩ (
        <xref ref-type="bibr" rid="ref3">4</xref>
        )
Теперь для каждой пары участников (, ) вычислим и занесем в таблицу 2 пересечения () ∩  ().
Таблица 2: Промежуточный этап попытки вычисления общих ключей для каждой пары участников
Уже на этом этапе становится понятным, что выработка общего ключа для пар участников (1, 4) и
(2, 4) невозможна, то есть взаимный доступ этих участников друг к другу запрещен, поскольку
пересечения (1) ∩  (
        <xref ref-type="bibr" rid="ref3">4</xref>
        ) и (
        <xref ref-type="bibr" rid="ref1">2</xref>
        ) ∩  (
        <xref ref-type="bibr" rid="ref3">4</xref>
        ) пусты.
      </p>
      <p>Для построения ключевых множеств (, ) остальных пар участников нам потребуется ключевая
функция ,. Здесь мы будем считать, что значением ,(()∩ ()) (а значит, возможным ключом) будет одна
или несколько точек из множества () ∩  (). На самом деле, конечно, можно задать ключевую функцию
и другим способом. Например, использовать только одну координату из четырех, или сумму координат, и
т.д. Такие способы задания ключевой функции позволяют выработать общий ключ пользователям  и 
даже в том случае, когда множества () и () не имеют общих точек. Однако в этом случае сложнее
будет доказать, что такой же ключ не сможет получить кто-нибудь еще из участников схемы, и тем самым
выдать себя за другого. Да и в целом лучше свести роль ключевой функции к минимуму. Кроме того,
будем считать, что , = ,, хотя это условие также не выглядит обязательным.</p>
      <p>
        В рамках введенных нами предположений становится ясно, что какую бы мы ни выбрали ключевую
функцию, (
        <xref ref-type="bibr" rid="ref2">1, 3</xref>
        ) ∩ (
        <xref ref-type="bibr" rid="ref2">3, 1</xref>
        ) = ?. Если бы в качестве 1,3 = 3,1 мы выбрали сумму координат точки,
результат был бы иным. Аналогичная ситуация возникает между вторым и третьим пользователями.
      </p>
      <p>
        Итак, пусть 1,2 = 2,1 выбирает точку с суммой всех координат, равной единице. Тогда (
        <xref ref-type="bibr" rid="ref1">1, 2</xref>
        ) =
{(
        <xref ref-type="bibr" rid="ref1">0, 0, 2, − 1</xref>
        ), (0, 0, 0, 1)}, (
        <xref ref-type="bibr" rid="ref1">2, 1</xref>
        ) = {(0, 0, 0, 1)}, и общим ключом первого и второго участников является
(0, 0, 0, 1). Как только первый участник выберет подходящий ключ, они смогут обмениваться информацией
друг с другом.
      </p>
      <p>
        Далее, пусть 3,4 = 4,3 выбирает точку с наибольшей координатой по . Тогда (
        <xref ref-type="bibr" rid="ref2 ref3">3, 4</xref>
        ) = {(0, 1, 0, 0)} =
(
        <xref ref-type="bibr" rid="ref2 ref3">4, 3</xref>
        ) = {(0, 1, 0, 0)}, и эти два участника также смогут обмениваться информацией друг с другом.
      </p>
      <p>Приведенная в примере схема согласована с дискреционной политикой безопасности с матрицей
доступов, представленной в таблице 3 (0 означает отсутствие взаимного доступа, то есть запрет на обмен
информацией, 1 – наличие взаимного доступа, то есть разрешение на информационный обмен).</p>
      <p>Однако, на практике более важной является обратная задача: по данной матрице доступов построить
схему предварительного распределения ключей, удовлетворяющую задаваемой матрицей дискреционной
политике разграничения доступа. К сожалению, в случае, когда секретные доли ключей участников
задаются сложными множествами (такими, как кривые или поверхности), решить эту задачу становится
довольно сложно.
3. Если ,,_((, _) ∩  ()) непусто и конечно, обозначим это множество через (, , ).
5. Если (, _) ∩  () содержит непустое множество точек, то пользователь  вычисляет ключевую
функцию ,,_ от координат этих точек. Результатом вычисления функции является некоторое
множество. Если оно пусто, либо бесконечно, выработка общего ключа невозможна (пользователь
 не обладает правом доступа  к объектам пользователя  в рамках применяющейся политики
безопасности).
Стоит обратить внимание на порядок параметров множеств  и , который показывает, что право
 рассматривается как право субъекта  в отношении субъекта , но не в обратную сторону (то есть
право  является исходящим), что учитывает асимметричность распределения прав доступа в системе.
Однако если для всех субъектов и прав доступа системы выполнено равенство (, , ) = (, , ),
получаем симметричную политику безопасности в качестве частного случая.
7. Пользователи сравнивают результаты. Если (, , )∩(, , ) непусто (если у каждого пользователя
получилось некоторое множество результатов, то должны совпадать хотя бы какие-то элементы этих
множеств), то элемент из (, , ) ∩ (, , ) является общим ключом связи между пользователями,
то есть субъект  получает право доступа  в отношении субъекта .
8. Если же пересечение пусто, то -й пользователь не обладает правом доступа  к объектам -го
пользователя в рамках применяющейся политики безопасности.</p>
      <p>Поскольку состояние подсистемы безопасности изменяется со временем, то субъекты в процессе
функционирования системы могут получать новые права доступа, а также лишаться старых. В случае
дискреционной политики безопасности, например, происходит модификация матрицы доступов. Чтобы данные
изменения нашли отражение в схеме распределения ключей, достаточно переслать по защищенному
каналу каждому пользователю, которого коснулись соответствующие изменения, новую версию множеств
(, ).</p>
      <p>Приведенная схема хорошо согласуется не только с дискреционными политиками разграничения доступа
наподобие HRU, базирующимися на матрицах доступа, но и с мандатными политиками безопасности.
Рассмотрим пример применение схемы к мандатной политике разграничения доступа с линейным порядком
на уровнях доступа (как правило, более сложные частичные порядки редко применяются на практике).</p>
      <p>Пусть мандатная политика безопасности подразумевает три уровня секретности (упорядоченные
линейно):  – секретная информация,  – информация с ограниченным доступом,  – информация
для свободного доступа. Заодно метки , ,  будем использовать для индексации субъектов,
находящихся на соответствующих уровнях доступа. Множество прав доступа рассмотрим следующее: R =
{_, _, _, _}.
Пример 4. Пусть  =2, (, ) – круг в плоскости () радиуса 1, 2 или 3,  =  − 2. Функция ,, будет
возвращать упорядоченный набор координат концов отрезка, по которому пересекутся круг и плоскость,
и пустое значение, если пересечение пусто, либо не является отрезком.</p>
      <p>Рассмотрим пользователя . Он обладает четырьмя секретными множествами (, _),
(, _), (, _) и (, _), первые два – круги радиуса 3, последние два –
радиуса 1 (в данном примере будем считать все круги концентрическими). Радиусы кругов определены в
соответствии с принципами мандатной политикой безопасности «нет чтения вверх» и «нет записи вниз».</p>
      <p>Так, например, плоскость () пользователя, находящегося на уровне доступа , будет пересекаться с
плоскостью () по прямой, расстояние до которой от общего центра кругов лежит в интервале от 2 до
3. Таким образом, в пересечение попадут точки кругов (, _) и (, _), но пользователь
 не получить права читать информацию пользователя , в то время как пользователь  не сможет
писать информацию в объекты пользователя .</p>
      <p>Далее, () в пересечении с () пройдет на расстоянии от 1 до 2 от центра кругов пользователя .
Наконец, плоскость пользователя *, обладающего тем же правом доступа, что и , пересечется с ()
по прямой, расстояние до которой от центра кругов не будет превышать 1, то есть пользователи одного
уровня могут получить полный доступ друг к другу.</p>
      <p>Теперь рассмотрим пользователя . Все его секретные множества (, _), (, _),
(, _) и (, _) – круги радиуса два. Правила пересечения с плоскостями других
пользователей – те же. Таким образом,  не сможет читать информацию из объектов  и писать информацию
в объекты  , и наоборот,  не сможет писать в объекты , а  – читать из объектов .</p>
      <p>У пользователя  ситуация аналогичная, только теперь круги (, _) и (, _) имеют
радиус 1, а (, _) и (, _) – радиус 3.</p>
      <p>В результате (, _) и (, _) будут пересекаться по пустому множеству, и выработка
общего ключа на чтение пользователем  материалов пользователя  невозможна. Напротив,
пересечения (, _) с () и (, _) с () непусты, пусть это отрезки. Если в рамках мандатной
политики безопасности нет дополнительных ограничений на потоки информации, то эти отрезки
совпадают, а значит совпадают и наборы координат их концов, что приводит к выработке общего ключа на чтение
пользователем  материалом пользователя : (, , ) = (, , ).</p>
      <p>Необходимо сразу заметить, что требования на концентричность всех кругов одного пользователя, на
радиус этих кругов и расстояние от центра кругов до прямой пересечения серьезно усложняют
построение действующей модели, но не являются обязательными. Более того, не обязательно выбирать именно
круги в качестве секретных множеств: это было сделано исключительно ради примера. Реализовать схему
разделения секрета с учетом мандатной политику безопасности можно и менее строгим способом.</p>
      <p>Приведем еще один пример, на этот раз для дискреционной политики безопасности.
Пример 5. В условиях примера 3 рассмотрим множество прав R = {_, _}. Секретные
множества (, _) = (, _) примем совпадающими с исходными () для каждого
пользователя , так чтобы пересечения (, ) ∩  () по каждому праву доступа  ∈ R совпадали с занесенными
в таблицу 2. Наконец, переопределим ключевые функции следующим образом:</p>
      <p>
        1,2,_, 2,1,_ и 2,1,_ выбирают точку с суммой всех координат, равной
единице, а 1,2,_ выбирает точку с суммой всех координат, равной нулю. Тогда 1(1, 2, ) =
{(0, 0, 1, − 1), (0, 0, − 1, 1)}, 2(1, 2, ) = {(0, 0, 0, 1)}, 1(2, 1, ) = {(
        <xref ref-type="bibr" rid="ref1">0, 0, 2, − 1</xref>
        ), (0, 0, 0, 1)},
2(2, 1, ) = {(0, 0, 0, 1)}. Поскольку 1(1, 2, ) ∩ 2(1, 2, ) = ?, первый участник схемы не
получит права читать информацию второго участника. Однако второй получит право читать информацию
первого, так как будет выработан общий ключ 1(2, 1, ) ∩ 2(2, 1, ) = {(0, 0, 0, 1)}.
      </p>
      <p>Далее, пусть 3,4,_, 4,3,_ выбирают точки с наибольшей координатой по , а 3,4,_
и 4,3,_ выбирает точки с положительным значением координаты . Тогда 3(4, 3, ) =
4(4, 3, ) = {(0, 1, 0, 0)}, и четвертый участник получит право читать информацию третьего. Однако,
вычислить 3(4, 3, ) не удается, и третий участник схемы не сможет читать информацию четвертого.</p>
      <p>Приведенная в примере схема согласована с дискреционной политикой безопасности со следующей
матрицей доступов (0 на пересечении -той строки и -го столбца означает отсутствие права доступа участника
 к участнику , заполненная правом  ячейка – наличие соответствующего права участника  по
отношению к участнику ):
Таблица 4: Матрица доступов для участников асимметричной схемы предварительного распределения
ключей
[1] S.V. Usov. On the possibility of implementation of the threshold key exchange protocol with discretionary
access control based on Blakley”s secret sharing scheme. Shestoj tehnologicheskij uklad: mehanizmy i perspektivy
razvitija. Chast’ 1. Sbornik materialov III Mezhdunarodnoj nauchno-prakticheskoj konferencii , Hanty-Mansijsk:
JuGU, 58–59, 2015 (In Russian).</p>
      <p>On the Application of the Access Control Policy to the Threshold Key Exchange
Protocol Based on the Blakley’s Scheme of Secret Sharing</p>
      <p>Sergey V. Usov</p>
      <p>Traditional pre-distribution algorithms ignore the security policy of the system. In this paper, we succeeded
in proposing an approach based on the Blackley’s scheme for the distribution of keys, leveling this shortcoming.
In the proposed scheme, obtaining a public key is only possible for those pairs of participants in the scheme, the
exchange of information between which is allowed by the security policy. Moreover, the proposed scheme takes
into account the direction of the data flow and the type of access, such as read and write.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.V.</given-names>
            <surname>Belim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Yu. Belim</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.Yu. Polyakov.</surname>
          </string-name>
          <article-title>The implementanion of discretionary access separation using a modified Blom's scheme of key distribution</article-title>
          .
          <source>Information Security Problems. Computer Systems</source>
          ,
          <volume>3</volume>
          :
          <fpage>72</fpage>
          -
          <lpage>76</lpage>
          ,
          <year>2015</year>
          (In Russian).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.V.</given-names>
            <surname>Belim</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.Yu. Belim. KDP</surname>
          </string-name>
          <article-title>Scheme of Preliminary Key Distribution in Discretionary Security Policy</article-title>
          .
          <source>Automatic Control and Computer Sciences</source>
          ,
          <volume>50</volume>
          (
          <issue>8</issue>
          ):
          <fpage>777</fpage>
          -
          <lpage>786</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.R.</given-names>
            <surname>Blakley</surname>
          </string-name>
          .
          <article-title>Safeguarding cryptographic keys</article-title>
          .
          <source>Proceedings of the 1979 AFIPS National Computer Conference</source>
          . Monval, NJ, USA: AFIPS Press ,
          <fpage>313</fpage>
          -
          <lpage>317</lpage>
          ,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>