Защита систем. Чему «Звездные войны» учат инженера ПО — страница 63 из 68

Асимметричная криптосистема

Любая криптосистема, включающая более одного ключа, в которой по крайней мере один ключ является закрытым, а другой – открытым или публичным. Например, алгоритмы RSA или Диффи – Хеллмана. Публичный ключ (или ключи) часто удостоверяется инфраструктурой открытых ключей (PKI) или подписывается и, таким образом, превращается в сертификат.

Демон (+)

Это тип программы в Unix-подобных операционных системах, который работает ненавязчиво в фоновом режиме, а не под прямым контролем пользователя, ожидая активации при наступлении определенного события или условия. Unix-подобные системы, как правило, запускают множество демонов, в основном для обработки запросов на сервисы от других компьютеров в сети, а также для ответа другим программам и отклика на активность оборудования. Примерами действий или условий, которые могут вызвать активность демонов, являются определенное время или дата, прохождение определенного интервала времени, попадание файла в определенный каталог, получение электронной почты или веб-запроса, сделанного по определенной линии связи. Нет необходимости в том, чтобы исполнитель действия или условия знал, что демон слушает, хотя программы часто выполняют действие только потому, что они знают, что оно неявно вызовет демона. (Из www.linfo.org/daemon.html.)

Документ (+)

Файл, предназначенный для разбора интерпретатором и отображаемый или используемый человеком. Другие файлы, такие как HTML, содержат код или макросы, но при этом считаются документами. Некоторые документы, такие как код Python, еще больше похожи на исполняемые файлы. Я хотел бы сказать, что интерпретатор документов предупреждает вас перед запуском кода, но см. HTML, и поэтому различие менее очевидно, чем я надеялся.

Закрытый ключ (*)

«Криптографический ключ, который хранится в секрете и используется с криптографическим алгоритмом с открытым ключом. Закрытый ключ связан с открытым ключом». Многие определения чрезмерно ограничительно относятся к схемам подписей, парам ключей или уникальным объектам.

Индикатор

Технический артефакт или наблюдаемый объект, указывающий на то, что атака неизбежна или в настоящее время осуществляется, или что компрометация уже могла произойти. (Некоторые определения менее конкретны.)

Индикатор компрометации (indicator of compromise, IOC) (+)

Подмножество показателей, которые выявляются в ходе расследования случаев компрометации, а не неизбежных атак.

Инфраструктура открытых ключей

«Архитектура, организация, методы, практики и процедуры, которые в совокупности поддерживают внедрение и функционирование криптографической системы с открытым ключом на основе сертификатов. Создана структура для выдачи, поддержания и отзыва сертификатов открытых ключей». Ищите того, кто берет на себя ответственность за свои утверждения. Quis custodiet ipsos custodes? (Кто устережет самих сторожей? – лат.)

Исполняемый файл (+)

Программа, которую необходимо выполнить. Чаще всего он состоит из машинного кода, который запускается, или чего-то с установленным битом Unix +x, но см. документ.

Компрометация деловой электронной почты (business email compromise, BEC) (+)

Атака, при которой кто-то захватывает учетную запись электронной почты, а затем использует ее, чтобы попросить произвести платежи на банковские счета, которые он контролирует.

Крипто (*)

Крипто означает криптографию, а не криптовалюту. Единственное определение NIST является странно узким.

Криптография (*)

Дисциплина, которая воплощает в себе принципы, средства и методы преобразования данных с целью сокрытия их семантического содержания, предотвращения их несанкционированного использования или предотвращения их скрытой модификации (NIST SP 800-59). Кроме того, Рон Ривест определил криптографию как искусство безопасного общения в присутствии врагов. В этой книге подразумевается, что криптографические системы соответствуют своему назначению: хорошо подобраны и хорошо реализованы.

Лицензионное соглашение с конечным пользователем (End user license agreement, EULA) (+)

Лицензия, на которую вы кликаете, чтобы получить разрешение на использование приобретенного продукта. Как правило, она полна непонятных юридических терминов, чрезмерно длинна и не проверена на читабельность или понятность. В конце концов, суды могут осознать, что существует разрыв между «совместным волеизъявлением» и сегодняшними лицензионными соглашениями.

Метаданные (+)

Данные о других данных, например, время создания файла, размер файла или сообщения или источник сообщения.

Монитор обращений (*)

Традиционный термин для обозначения IT-функций, которые (1) контролируют весь доступ, (2) не могут быть обойдены, (3) защищены от несанкционированного доступа и (4) обеспечивают уверенность в том, что остальные три элемента верны. Часто обеспечивается ядром операционной системы, а также такими инструментами, как веб-серверы или базы данных.

Недостаток (+)

Проблема проектирования, которая может быть использована для достижения какой-либо цели, противоречащей замыслу проектировщика. Включает в себя неудачи в достижении явных целей, а также используется для описания нарушений неявных целей. Термин «недостаток» противопоставляется термину «ошибка», которая представляет собой простой дефект реализации (IEEE).

Номер социального страхования (Social Security number, SSN) (*)

Описывается в практических терминах как национальное удостоверение личности; официально это не так.

Однонаправленная функция (+)

Однонаправленную функцию легко вычислить, но трудно или невозможно обратить – вычислить ее входные данные из выходных. Хэш-алгоритмы являются подмножеством всех возможных однонаправленных функций. Например, функцию Рабина, заключающуюся в многократном возведении в квадрат некоторого числового модуля, легко вычислить и трудно обратить.

Одноразовый блокнот (+)

Криптосистема, использующая случайный поток материала ключа длиной, равной длине сообщения. Надлежащим образом используемая так же безопасна, как и раздача ключей. Повторное использование блокнотов означает, что злоумышленник, выполнивший операцию XOR двух зашифрованных текстов, получает xor двух открытых текстов. То есть пусть ciphertext_1 = message_1 pad xor, а ciphertext_2 = message_2 pad xor. Если мы возьмем xor от ciphertext_1 и ciphertext_2, мы получим, что (message_1 xor pad) xor (message_2 xor pad) и xor блокнота самого с собой сокращаются, и вы получите target = message_21 xor message_2. Поскольку такие слова, как штаб-квартира, встречаются чаще других, вы можете xor их с target и посмотреть, появятся ли какие-то слова. Когда они появляются, вы знаете, что в одном сообщении было слово штаб-квартира, и знаете, какое слово было в соответствующем месте другого сообщения.

Открытый (ключ)

Открытая часть асимметричного ключа.

Персистентность (+)

Либо работа злоумышленника по сохранению доступа к системам жертвы, либо практика отслеживания и проверки аутентификационных данных, таких как открытый ключ SSH-сервера. Защита от персистентности заключается в том, чтобы проверить, что ключ не изменяется от использования к использованию. Второе значение применяется для ясности по сравнению с эквивалентным TOFU.

Полномочия (+)

Способность пользователя или другого субъекта вносить изменения в систему.

Привилегия (*)

Возможность изменять функции, свойства или правила безопасности в системе. Определение NIST этого термина как «специальное разрешение, которое предоставляется конкретным пользователям для выполнения операций, связанных с безопасностью», исключает привилегии, предоставляемые программам.

Принципал (+)

Наименьшая единица, которой могут быть предоставлены права в системе, например, идентификатор пользователя.

Протокол (+)

«Набор правил (т. е. форматов и процедур) для создания и управления определенного типа связи (например, обмена данными) между системами». Многие люди неявно добавляют слово «сетевой», подразумевая, что все протоколы являются сетевыми. Файл – это одно сообщение со структурой данных.

Псевдослучайный

Детерминированный процесс (или данные, производимые таким процессом), выходные значения которого фактически неотличимы от значений случайного процесса до тех пор, пока неизвестны внутренние состояния и внутренние действия процесса. Для криптографических целей «фактически неразличимый» означает «за пределами вычислительных возможностей, установленных предполагаемой надежностью защиты».

Разрешение (*)

Авторизация выполнения какого-либо действия над системным объектом. (NIST менее конкретен.)

Рандомизация планировки адресного пространства (address space layout randomization, ASLR) (+)

Один из ранних методов обеспечения безопасности памяти, ASLR рандомизирует адреса памяти, чтобы затруднить написание эксплойтов. Используется неточно для обозначения защиты памяти в более общем смысле.

Сбитый с толку представитель (+)

Программа, полномочия которой используются неожиданным образом теми, чьи данные поступают в нее. («Те, чьи данные поступают в нее» понимается в широком смысле, это не только те, кто непосредственно скармливает ей данные.)