Вопрос доверия информации или доступа к данным стоит ребром в компаниях и структурах, которые опасаются утечки сведений и разглашения того, что разглашать совсем не нужно. Какой бы надежной ни была защита, при желании всё можно узнать, но в ваших силах серьёзно усложнить задачу злоумышленникам. Принцип разделения данных (Secret Sharing) — довольно редкий и специфический способ защиты информации. Однако в последнее время он приобретает всё большую популярность — и не только в сфере национальной безопасности.
«Кто владеет информацией, тот владеет миром»
Доверить всю тайну одному человеку слишком опасно: его могут подкупить, запугать и любым другим способом выведать сведения. Самое очевидное решение — поделить секрет на несколько частей и раздать «куски» разным людям. Главное условие: информация может быть доступна лишь при складывании нескольких кусочков мозаики, а лучше — при суммировании всех сразу.
Условно говоря, разделив пароль от важного почтового ящика на пять частей, понять ключ возможно будет только сложив пять блоков вместе. Конечно же, в таком случае паролем должна быть неразборчивая комбинация, а не связное слово либо фраза, разгадать которую можно при наличии пары-тройки кусков. Идея в том, чтобы доверенные к тайне люди могли коллективно получить доступ к информации, но не по отдельности. Хотя есть и исключения.
Secret Sharing бывает нескольких видов. Базовый принцип — схема разбиения секрета. Она предполагает разделение секрета, узнать который возможно только путём объединения кусков от каждого участника. Здесь используется условная схема А=Б, где А — количество участников, а Б — количество долей. Изъян в том, что в случае утраты хоть одной доли восстановление информации окажется невозможным. Причин может быть много, начиная от нечистого на руку компаньона и заканчивая его смертью. Поэтому существуют схемы, в которых А не всегда равняется Б.
Наиболее распространенная схема разделения секрета предполагает пороговый принцип. При его использовании количество участников не равняется числу долей. Предложенное израильским криптоаналитиком Ади Шамиром в 1979 году решение иногда называют схемой интерполяционных полиномов, но чаще всего — просто схемой Шамира. Исследователь разработал следующую систему: для доступа к данным необходимо количество долей, определяемое величиной T, в то время как общее число кусков — N. Если T будет просто равняться N, то у нас будет первый принцип — разбиение, а не разделение секрета. Идея Ади Шамира в том, что T может быть меньше N.
Другая пороговая система также была разработана 1979 году Джорджем Блэкли, и на первый взгляд они похожи. Векторная схема предполагает разделение секрета на плоскости. Тайна — одна из множества координат точки пересечения этих плоскостей. Зачастую схему изображают наглядно в виде трёхмерного куба, но на самом деле все вычисления происходят в конечных полях со схожим, но другим математическим аппаратом.
У порогового решения много преимуществ. Во-первых, размер каждой доли фактически равняется величине самого секрета. Во-вторых, число держателей секрета может увеличиваться. В-третьих, одному участнику можно выдать не одну, а сразу несколько кусков секрета. Это важное преимущество перед принципом разбиения секрета, где у владельца только одна доля. Например, получить доступ ко всей информации может либо один генеральный директор, владеющий четырьмя долями, либо четыре его помощника вместе, каждый со своим фрагментом. Недостаток тоже есть: доверенный участник, он же дилер, раздающий части секрета остальным людям, может сам оказаться «слабым звеном» и разгласить ключевую информацию.
Где это применимо?
Столь надёжная защита, предполагающая разделение тайны между участниками, должна оправдывать свою сложность. Пароль от банковской ячейки с фамильными драгоценностями вряд ли будут засекречивать по такому принципу – овчинка выделки не стоит. Зато когда речь идёт о государственной тайне или доступе к серьёзному вооружению, без подобных мер не обойтись. Например, для запуска ядерной ракеты необходимо не только одновременно повернуть два ключа (как показывают в фильмах), но и ввести код, который состоит из отдельных частей. Чем выше уровень доступа человека, тем больше долей у него будет, если речь о пороговой схеме. Допустим, президент страны в одиночку может инициировать старт ракеты, а генералам нужно объединить свои куски кода, по отдельности у них ничего не выйдет. Это, разумеется, исключительно предположение. Как в реальности обстоят дела с защитой таких объектов, никто не скажет.
В бизнесе, особенно крупном, Secret Sharing тоже может пригодиться. Предположим, корпорация ведет отчётность, вносит данные о доходах или, что порой хуже для утечки, об убытках. Если информация окажется в руках человека, который захочет продать сведения в СМИ или конкурентам, пострадает деловая репутация, к тому же откроется правда о положении компании. Обезопасить доступ можно лишь раздав части паролей избранным людям — к примеру, из совета учредителей, и сделав их доли секрета бесполезными по отдельности.
Человеческий фактор
Но любую систему можно обойти, вопрос только в стремлении заполучить доступ. Стопроцентной защиты не даст ни один алгоритм Secret Sharing, а их существует немало. В дело может вмешаться человеческий фактор, который зарубит на корню блестящую формулу. Допустим, групповой сговор участников тайны или угрозы в их адрес — здесь уже ничего не поможет. Разделение секрета только повышает безопасность во много раз, но не исключает вероятность утечки сведений. В конечном счёте ответственность всегда лежит на самих людях.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.