2021_107
.pdfЛитература
1.Спам и фишинг в 2020 году // Securelist | Аналитика и отчеты о киберугрозах "Лабора-
тории Касперского" URL: https://securelist.ru/spam-and-phishing-in-2020/100408/ (дата обращения:
26.10.2021).
2.Сofense - Ежегодный отчет по фишинговым атакам 2021 // OOO "СИБ" - Системы информационной безопасности. URL: https://is-systems.org/blog_article/31616680298 (дата обращения:
26.10.2021).
УДК 004.055
УДОБНАЯ БЕЗОПАСНОСТЬ И КОНФИДЕНЦИАЛЬНОСТЬ
И.Г. Ахунова, И.Ю. Загоруйко,
ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия
Email: achunova1997@mail.ru Email: 89082750080@mail.ru
Аннотация. Инциденты, связанные с безопасностью информационных технологий, часто имеют отношение к проблемам с удобством их использования. В этой статье были разобраны такие термины, как конфиденциальность, безопасность, удобство использования, каким образом они взаимосвязаны друг с другом и последние открытия в этих областях.
Ключевые слова: информационная безопасность, кибербезопасность, защищенность данных, конфиденциальность, пользовательский интерфейс, удобство использования.
По мере того, как влияние цифровых технологий на нашу жизнь продолжает расти, обеспечение безопасности (защита данных) и конфиденциальности (защита личности пользователя) становится все большей необходимостью, так как пользователи становятся более уязвимыми перед угрозами безопасности.
Большинство проблем, связанных с конфиденциальностью и безопасностью в сети Интернет, являются результатом того, что разработчики систем не учитывают интересы своих пользователей. Если система совершенна с точки зрения информационной безопасности, но непригодна для использования, пользователи найдут менее защищенную, но более удобную альтернативу, так как безопасность для них не является первостепенной задачей. Как правило, по мере повышения уровня безопасности системы, удобство использования снижается, так как усовершенствования безопасности обычно проектируются так, что пользователям трудно их понять. Поэтому для разработки решений, которые достигают лучших результатов в области конфиденциальности и безопасности, принимая во внимание потребности конечных пользователей, необходимо проводить исследования поведения пользователей, чтобы понимать, каким образом люди принимают решения и как взаимодействуют с системами.
Такой термин, как Usable Privacy and Security (UPS) тесно связан с вышеописанными понятиями. Он относится к исследованиям, которые имеют отношение как к человеко-компьютерному взаимодействию, пользовательскому опыту и
251
дизайну, так и к проблемам безопасности и конфиденциальности. Это область применения принципов взаимодействия человека и компьютера к проектированию пользовательских интерфейсов с целью разработки мер безопасности, которые не противоречат удобству использования.
Сейчас при разработке систем рекомендуется уже заранее решать за пользователей некоторые моменты, связанные с конфиденциальностью и безопасностью. Например, делать обновления автоматическими или активировать более безопасные настройки по умолчанию. Так как из исследования 2003 года Джонсона и Голдштейна известно, что вариант по умолчанию выбирается чаще, потому что он воспринимается пользователями как рекомендуемый, а также его изменение требует дополнительных усилий и далее нести ответственность за его выбор [9]. Или же, выбирая вариант вручную, они склонны отдать предпочтение первому появившемуся варианту [6]. Также добавление все новых рекомендаций и большое количество предупреждений, связанных с безопасностью, могут оттолкнуть пользовате-
лей [1].
В одном из исследований предлагается поощрять безопасное поведение пользователей и, если это возможно, принуждать их к выполнению безопасных задач (то есть пользователь не сможет продолжить работу в системе, пока не выполнит предложенное действие) [4].
А также необходимо учитывать следующие принципы при проектировании функций безопасности в системах [8]:
Пользователи должны легко находить функции безопасности, которые им необходимы;
описания и функции безопасности должны быть понятны целевой аудитории, а для новичков должны быть реализованы такие опции, как помощь и поддержка;
пользователи должны легко воспринимать ошибки или нарушения безопасности, представленные им системой;
статус безопасности системы, если он есть, должен быть четко, но ненавязчиво виден пользователям.
Для улучшения удобства использования технологий безопасности и конфиденциальности следует учитывать следующие рекомендации [6]:
Если возможно, использовать аутентифицированное шифрование на прикладном и сетевом уровнях;
следует сразу вовлекать конечных пользователей системы в процесс разработки ее функций безопасности, проводить пользовательское тестирование;
разработать методы аутентификации пользователей, являющиеся безопасными и обеспечивающими конфиденциальность одновременно.
Из открытий в области безопасности, конфиденциальности и удобства использования можно выделить следующие:
Участники исследования [3], испытывавшие нехватку времени на решение своих задач, игнорировали предупреждающие уведомления. Это увеличивало вероятность того, что есть возможность сделать неверный выбор, что повышает количество совершаемых ошибок;
252
визуальные элементы тоже влияют на безопасное поведение пользователя в условиях дефицита времени (например, цветовое кодирование или упорядоченные по приоритету элементы);
здесь же можно обнаружить интересный факт: участники, получавшие предупреждения, связанные с безопасностью на английском, а не на родном языке, вели себя менее безопасно;
такие признаки доверия к веб-сайту, как его оформление, реклама, информация, названия благотворительных организаций, ссылки на свои аккаунты в социальных сетях подталкивали пользователей игнорировать предупреждающие сообщения на веб-сайте [10];
сейчас использование биометрических данных – более безопасная и удобная альтернатива, в отличие от паролей и PIN-кодов. Но с другой стороны она нарушает принципы конфиденциальности при передаче данных третьим лицам [13]. Для решения этой проблемы такие методы, как дифференциальная приватность, GAP (генеративно-состязательная конфиденциальность) [7], появившийся в результате некоторых достижений в области GAN (генеративно-состязательных сетей) [5], сокращение информации о расе и поле [12], данные о движении и идентификация пользователя (в этом исследовании удалось достичь компромисса между удобством и конфиденциальностью) [11], сиамская нейронная сеть [14], метод биометрической аутентификации на основе безопасного слияния [15], верификация на основе граничных вычислений [16], были адаптированы к сфере конфиденциальности;
в области шифрования сообщений тоже есть успехи. Например, реализация сквозного шифрования (E2EE) сделала обмен сообщениями более простым в использовании;
появление сертификатов Let's Encrypt оказало влияние на рост внедрения HTTPS. К сожалению, могут возникать ложные предупреждения безопасности, что приводит к плохому пользовательскому опыту. Это начинает препятствовать широкому внедрению HTTPS. Известно, что большинство ошибок вызваны проблемами на стороне клиента или сети [2]. В этой же статье были найдены причины большинства ложных предупреждений (например, неправильное часовое время со стороны клиента) и предложены меры по их устранению.
Но на данный момент все еще существует довольно большое количество открытых вопросов в области человеко-компьютерного взаимодействия, и идеальных решений пока нет. Поэтому чаще всего при проектировании пользовательского интерфейса приходится отдавать большее предпочтение либо удобству использования, либо безопасности и/или конфиденциальности – зависит от решаемой задачи. Также эти понятия постоянно развиваются, поэтому решения, работающие сейчас, могут устареть.
Литература
1.Acar Y., Fahl S., Mazurek M. L. You are not your developer, either: a research agenda for usable security and privacy research beyond end users. IEEE Cybersecurity Development, 2016. С. 3-8 (дата обращения: 23.10.2021).
2.Acer M. E., Stark E., Felt A. P., Fahl S., Bhargava R., Dev B., Braithwaite M., Sleevi R., Tabriz P. Where the wild warnings are: root causes of chrome HTTPS certificate errors. ACM SIGSAC Conference on Computer and Communications Security, 2017. С. 1407-1420. URL: https://dl.acm.org/doi/10.1145/3133956.3134007 (дата обращения: 26.10.2021).
253
3.Chowdhury N. H., Adam M. T. P., Zezschwitz E., Skinner G. The impact of time pressure on cybersecurity behaviour: a systematic literature review. Behaviour and Information Technology, 2019. URL: https://www.researchgate.net/publication/331290817_The_impact_of_time_pressure_on_cybersecurity_behaviour_a_systematic_literature_review (дата обращения: 24.10.2021).
4.Craggs B., Rashid A. Smart cyber-physical systems: beyond usable security to security ergonomics by design. 2017 (дата обращения: 23.10.2021).
5.Goodfellow I. Generative adversarial nets. Advances in neural information processing systems, 2014. С. 2672–2680. (дата обращения: 25.10.2021).
6.Halunen K. Usable security & privacy methods and recommendations. Cyber Security for Europe, 2020 (дата обращения: 24.10.2021).
7.Huang C., Kairouz P., Sankar L. Generative adversarial models for learning private and fair representations. 2019. С. 1-28. URL: https://www.researchgate.net/publication/326437474_Generative_Adversarial_Privacy (дата обращения: 25.10.2021).
8.Iacono L. L., Smith M., Zezschwitz E., Gorski P. L., Nehren P. Consolidating principles and patterns for human-centred usable security research and development. European Workshop on Usable
Security, 2017 (дата обращения: 23.10.2021).
9.Johnson E. J., Goldstein D. G. Do defaults save lives? Science, 2003. С. 1338-1339 (дата обращения: 23.10.2021).
10.Kirlappos I., Sasse M. A., Harvey N. Why trust seals don’t work: a study of user perceptions and behavior. Trust and Trustworthy Computing, 2012. С. 308-324 (дата обращения: 25.10.2021).
11.Malekzadeh M., Clegg R. G., Cavallaro A., Haddadi H. Mobile sensor data anonymization. IoTDI 2019 - Proc. 2019 Internet Things Des. Implement, 2019. С. 49-58. (дата обращения: 25.10.2021).
12.Morales A., Fierrez J., Vera-Rodriguez R, Tolosana R. SensitiveNets: learning agnostic representations with application to face recognition. IEEE Computer Society, 2019. С. 1-8. (дата обращения: 25.10.2021).
13.Mordini E., Ashton H. The transparent body: medical information, physical privacy and respect for body integrity. Second generation biometrics: the ethical, legal and social context, 2012. С. 257-283. URL: https://www.researchgate.net/publication/278124678_The_Transparent_Body_Medical_Information_Physical_Privacy_and_Respect_for_Body_Integrity (дата обращения: 25.10.2021).
14.Osia S. A., Shamsabadi A. S., Sajadmanesh S., Taheri A., Katevas K., Rabiee H. R., Lane N. D., Haddadi H. A hybrid deep learning architecture for privacy-preserving mobile analytics. 2019. С. 1-13.
(дата обращения: 25.10.2021).
15.Sui Y., Zou X., Du E. Y., Li F. Design and analysis of a highly user-friendly, secure, privacypreserving, and revocable authentication method. IEEE Transactions on Computers, 2013. С. 902-916. (дата обращения: 26.10.2021).
16.Wang X., Xue H., Liu X., Pei Q. A privacy-preserving edge computation-based face verification system for user authentication. IEEE Access, 2019. С. 14186–14197. URL: https://ieeexplore.ieee.org/document/8624292 (дата обращения: 26.10.2021).
УДК 004.056.55
ЧТО ТАКОЕ ШИФРОВАНИЕ AES И КАК ОНО РАБОТАЕТ
А.Г. Батыркаев, И.М. Глотина,
ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия
Email: folkman59@yandex.ru Email: glotina-i@yandex.ru
Аннотация. Шифрование нашло свое место в современном цифровом мире благодаря культуре безопасности и конфиденциальности. Когда алгоритм шифрования AES пришел на смену стандарту шифрования данных в качестве глобального стандарта алгоритмов шифрования в 2001 году, он устранил многие недостатки своего предшественника. Это считалось будущим шифрования в повседневных приложениях.
254
Ключевые слова: информационные технологии, шифрование, информационная безопасность, криптосистемы, алгоритмы.
В 1977 году компанией IBM был разработан алгоритм DES (Data Encryption Standard) и был утверждён правительством США как официальный стандарт. В его основе лежит метод Сеть Фейстеля с 16 циклами и ключом, имеющим длину 56 бит
(см. рис. 1).
Рис. 1. Схема работы алгоритма DES
Со временем вычислительные мощности компьютеров стремительно росли и уже в 1988 году, компании Electronic Frontier Foundation с помощью специального компьютера DES-Cracker, удалось взломать DES за 3 дня.
Из-за низкой криптостойкости данного алгоритма ещё в 1997 году национальным институтом стандартов и технологий США был организован конкурс Advanced Encryption Standard (AES), где победителем был объявлен шифр Рейндала (Rijndael), и теперь этот шифр часто называют по имени конкурса – AES.
Алгоритм шифрования AES представляет собой алгоритм симметричного блочного шифрования с размером блока/фрагмента 128 бит. Он преобразует отдельные блоки, используя ключи 128, 192 и 256 бит. После шифрования блоков он объединяет их вместе, чтобы сформировать зашифрованный текст (см. рис. 2).
AES основан на сети замещения-перестановки, также известной как SP-сеть [1]. SP-сеть представляет собой серию связанных математических операций, включающих как замену входов определенными выходами (блоки подстановки), так и перетасовку битов (блоки перестановки) (см. рис. 2).
255
Рис. 2. Пример SP-сети с 3 циклами
У AES есть следующие особенности:
SP-сеть – AES работает со структурой сети SP, а не со структурой Сети Фейстеля, как это было в случае алгоритма DES;
расширение ключа – на первом этапе требуется один ключ, который позже расширяется до нескольких ключей, используемых в отдельных раундах;
байтовые данные – алгоритм шифрования AES выполняет операции с байтовыми данными вместо битовых данных. Таким образом, он обрабатывает размер 128-битного блока как 16 байтов во время процедуры шифрования;
длина ключа – количество выполняемых раундов зависит от длины ключа, используемого для шифрования данных. 128-битный ключ имеет десять раундов, 192битный ключ - 12 раундов, а 256-битный ключ - 14 раундов.
Кратко алгоритм шифрования AES можно описать следующим образом:
незашифрованное сообщение сначала разбивается на 128-битный блок, затем байты (всего 16) в данном блоке организуются в виде матрицы 4x4 (см. рис. 3). Далее этот блок проходит через последовательность шагов некоторое количество раз, в зависимости от размера ключа шифрования;
Рис. 3. Пример первичной матрицы незашифрованного сообщения
256
далее блок проходит через шаг Substitute Bytes (замещение битов) – на этом этапе каждый элемент матрицы отображается в соответствующий байт в Rijndael S-Box [2] – например, элемент в верхнем левом углу блока (см. рис. 3) является адресом в двумерной матрице и заменяется на элемент, расположенный в Rijndael S-Box по указанному адресу. Для получения новой матрицы (см. рис. 5) аналогичную замену следует выполнить с каждым элементом блока;
Рис. 4. Выбор замещающего байта в поле подстановки шифра Rijndael
Рис. 5. Получившаяся в результате замещения битов матрица
следующим шагом является Shit Rows (сдвиг рядов) – на данном этапе мы поворачиваем каждый элемент на X элементов (байтов) влево, где X – это индекс строки. Например, в строке 3 (счёт начинается с 0) мы сдвигаем каждый элемент на 3 байта влево (см. рис. 6);
257
Рис. 6. Сдвиг элементов матрицы на 3-й строке
следующий этап называется Mix Columns (столбцы смешивания) – мы умножаем каждый столбец на заранее заданную матрицу (см. рис. 7). Важно отметить, что это не обычное умножение матриц. Если любой член больше 2 в 8 степени, то мы разделим многочлен на неприводимый многочлен Галуа;
Рис. 7. Умножение первого столбца на заранее заданную матрицу
далее идёт этап Add Round Key (добавления ключа раунда) - На этом шаге мы выполняем побитовую операцию XOR между столбцами матрицы, полученной на предыдущем шаге, и ключом раунда. В первой итерации ключ раунда — это первые 128 бит шифра. Получившаяся матрица используется в качестве входных данных для следующего раунда, а сам процесс повторяется ещё некоторое количество раундов (в зависимости от длины исходного ключа шифрования);
процесс вычисления нового ключа для следующих раундов называется Key Schedule (расписание ключей). Как упоминалось ранее, количество раундов зависит от длины исходного ключа шифрования:
o 128-битный ключ – 10 раундов; o 192-битный ключ – 12 раундов; o 256-битный ключ – 14 раундов;
AES, в силу своей достаточной криптостойкости, стал повсеместным стандартом для шифрования и используется, например, для защиты сведений, составляющих государственную тайну в США. А в пользовательском сегменте AES используется, например, в безопасности сетей Wi-Fi, на сайтах в протоколах шифрования SSL/TLS, в общем шифровании файлов для передачи между персональными устройствами, а также в аппаратном шифровании процессоров.
Литература
1.Шифры на основе SP-сети - КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОР-
МАЦИИ | Coursera // Coursera | Online Courses & Credentials From Top Educators: URL: https://www.coursera.org/lecture/metody-i-sredstva-zashity-informacii/shifry-na-osnovie-sp-sieti- 7TXmW (дата обращения 25.10.2021).
2.Rijndael S-box // Crypto Wiki | Fandom URL: https://cryptography.fan- dom.com/wiki/Rijndael_S-box (дата обращения 25.10.2021).
258
УДК 004.55+378.147.31
КЛЮЧЕВЫЕ АСПЕКТЫ ПРЕДМЕТНОГО ПОЛЯ ПРОГРАММИРОВАНИЯ КАК УЧЕБНОЙ ДИСЦИПЛИНЫ В ВУЗЕ
А.Ю. Беляков,
ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия
Email: belyakov@pgatu.ru
Аннотация. Обсуждаются особенности современного состояния технологий программирования с точки зрения организации учебного процесса. Приводится обобщённый список значимых аспектов предметного поля программирования как учебной дисциплины. На основе анализа тенденций развития информационных технологий показаны противоречия между возможностями обучения в вузе и потребностями профессионального сообщества.
Ключевые слова: программирование, информационные технологии, образовательный процесс, программная инженерия, знаниевая парадигма обучения.
Консервативно организованное образовательное пространство вуза может успешно поддерживать знаниевую парадигму в обучении [1], ориентированную на системность, целостность, стабильность предметной области и академический стиль изложения учебного материала. Некоторые отрасли знаний, такие как математика, физика или филология, могут быть успешно освоены в рамках традиционного образовательного процесса с фронтальным методом обучения, дозированными порциями знаний, линейным и последовательным порядком освоения учебных единиц. Однако перенос подобного подхода на учебные предметы, связанные с информационными технологиями, может привести к некоторым противоречиям между потребностями обучаемых и выпускников, требованиями работодателей и возможностями вузовской педагогической системы. Работодатели хотят тратить минимум сил и времени на дополнительное обучение или переподготовку нанимаемых сотрудников, выпускники хотят иметь набор компетенций, гарантирующих им цельное, полновесное резюме и перспективы устройства в IT-компании, а администрация вуза хочет обладать возможностью эффективного планирования образовательного процесса, управляемостью траекторий научения и контролируемостью результатов обученности.
Технологии программирования и программная инженерия – это сравнительно новые, динамически развивающиеся, но пока недостаточно стандартизированные отрасли знаний. Эти обстоятельства, зачастую, не учитываются при планировании учебного процесса и выборе педагогических технологий обучения программированию. Несомненно, любая парадигма обучения может быть эффективна на локальном временном промежутке, но игнорирование особенностей самого изучаемого предмета, его интерактивной природы, темпов развития, иерархической сложности и практической направленности может заметным образом сказаться на качестве обучения в целом и итоговых результатах.
Рассмотрим обобщённо ключевые аспекты изучаемого предметного поля программирования.
259
1. Регулярно обновляющиеся технологии разработки программного обеспе-
чения.
Дело в том, что программная инженерия в общем и языки программирования, в частности, это сравнительно новые достижения цивилизации, и многие стандарты проектирования ещё не сформировались. Повсеместно и постоянно обновляются существующие или возникают свежие концепции и технологии практической реализации информационных систем.
2.Перманентно растущий объём элементарных и концептуальных понятий программной инженерии.
Как правило, устаревшие конструкции языков программирования и подходы к проектированию не отвергаются сразу после прихода новых, так как к этому моменту уже реализовано значительное количество прикладных программ, протестированных и успешно выполняющих свой функционал. Годами или даже десятилетиями используются отмирающие языки программирования или остаются в активе устаревающие конструкции в регулярно обновляемом и осовремененном языке. Начинающему разработчику приходится осваивать не только постоянно прибывающие инновации, но и отживающие технологические приёмы для поддержания и модернизации так называемого legacy-кода (оставшегося в наследство).
3.Практическая направленность большинства порций знаний.
Этот факт предопределяет необходимость практической апробации на конкретных примерах и закрепления навыков непосредственно в течение обсуждения, например, на лекции. Однако эффективность такого подхода, то есть непосредственной апробации в момент обучения, наталкивается на препятствие, изложенное далее.
4. Взаимозависимость отдельных ветвей обучения и порций учебного мате-
риала.
Такая взаимная обусловленность подразумевает затруднения или невозможность последовательного и поэтапного их усвоения. Чтобы написать прикладную программу необходимо сразу обладать пониманием алгоритмических конструкций и особенностей синтаксиса используемого языка, форматов хранения данных, различных концепций и технологических приёмов. Если же преподаватель при выборе исследуемого программного решения будет отталкиваться только от ограниченного количества последовательно изученных тем, то множество допустимых итоговых реализаций будет слишком ограниченным. Например, чтобы написать небольшой игровой проект типа «Тетрис» нужно аккумулировать знания об организации графического интерфейса пользователя, о классах и объектах, о событийном программировании.
5. Мультитехнологичность современных информационных систем. Подавляющее большинство востребованных информационных систем бази-
руются на совокупности нескольких технологий, структур хранения данных и даже языков программирования. И такая тенденция постепенно распространяется и на небольшие по объёму кода программы, и на менее сложные. Дело в том, что многие частные задачи обработки данных уже эффективно решены и реализованы во множестве библиотек на различных языках программирования. От программиста теперь уже не требуется писать программную реализацию для решения каждой незначительной задачи функционирования программного комплекса. Разработчик
260
