Программные средства защиты информации для ОС Linux

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Курсовая работа

«Программные средства защиты информации для ОС Linux»

Технологии шифрования

Хранение данных в зашифрованном виде — прекрасный способ защитить информацию, чтобы она не попала к злоумышленнику. Для охраны интеллектуальной собственности, производственных секретов или информации личного характера разрабатываются криптографические системы. Они могут быть выполнены в различных формах, предлагать разные уровни функциональности и содержать любое число опций, чтобы подходить под широкий диапазон операционных оболочек и сред. Сегодня количество современных криптографических методов, алгоритмов и решений гораздо больше, чем раньше. Да и качество разработки намного лучше. Более того, на рынке присутствует немало работоспособных решений на основе открытого кода, что позволяет достигать хорошего уровня защиты, не тратя большие суммы денег.

В декабре 2005 Понемонский институт провёл среди различных специалистов в сфере защиты информации опрос, касающийся шифрования и защиты данных. Среди 6298 опрошенных лишь 4 процента респондентов использовали шифрование в масштабах предприятия. Из этого же опроса выявились три главные причины стойкого противления официальным правилам шифрования:

· 69% опрошенных упоминали проблемы с производительностью;

· 44% опрошенных упоминали сложности с реализацией;

· 25% опрошенных говорили о высокой цене реализации криптографических алгоритмов.

Во многих странах организации подвержены воздействию множества рычагов давления для увеличения «прозрачности» их работы. Но, с другой же стороны, на них лежит установленная законом ответственность за необеспечение сохранности конфиденциальной информации. Так было, в частности, в случае с обувными магазинами корпорации DSW в США).

Федеральная торговая комиссия США выдвинула иск против DSW, в котором было заявлено о необеспечении должного уровня защиты информации и непринятии должных мер для построения адекватных систем ограничения доступа к этим данным, а также о неудовлетворительной защите сетевых соединений между магазинными и офисными компьютерами. В случае с компанией DSW примерно 1,4 миллиона кредитных карт и около 96 тысяч чековых счетов были потенциально доступны преступникам. И прежде чем соглашения между компанией и ФТК были достигнуты, этими счетами уже успели нелегально воспользоваться.

В наше время программные и инженерные решения по шифрованию данных доступны, как никогда. USB-ключ, дешевеющий день ото дня, всё чаще используется вместо смарт-карт. Последние, в свою очередь, тоже нередко можно встретить, ведь большинство ноутбуков содержат считыватель смарт-карт.

Потребители всё чаще начинают задумываться об опасностях, касающихся кражи личной информации, данных о владельце, номеров кредитных карточек. И эти опасения только лишь подогреваются сообщениями о массовых продажах украденной информации подобного рода из учреждений, которым доверены столь ценные данные.

Потребители также начинают осознавать, что важно защищать личную информацию не только в Интернете, но и вне сети. В конце концов, нежелательный доступ к вашим данным не всегда происходит через сеть. Этот вопрос особенно актуален для тех, чьи незащищённые ноутбуки могут попасть либо в руки обслуживающего персонала для изменения конфигурации, либо в сервис на ремонт.

Технические вопросы шифрования

Функции шифрования необходимы всем современным многопользовательским компьютерным системам, где данные, процессы и информация пользователей логически разделяются. Чтобы установить подлинность пользователя в подобной системе, логины и пароли хэшируются и сравниваются с уже имеющимися в системе хэшами (либо хэш используется для расшифровки сеансового ключа, который потом проверяется на валидность). В целях предотвращения несанкционированного просмотра личной информации внутри зашифрованных контейнеров могут храниться отдельные файлы или целые разделы. А сетевые протоколы, например, SSLTLS и IPSec, позволяют, если это необходимо, усилить криптографическую защиту различных устройств (/dev/random, /dev/urandom и т. д.) с помощью модульных алгоритмов, работающих с ядром операционной системы.

Задача любой технологии шифрования диска состоит в защите от нежелательного доступа к личной информации и в уменьшении урона от потерь интеллектуальной собственности в результате нелегального доступа или кражи физического устройства. Операционная система Linux с версией ядра 2.6.4 представила усовершенствованную криптографическую инфраструктуру, которая просто и надёжно защищает личные данные на многих уровнях программного обеспечения. Существуют как целые стандарты хранения данных в зашифрованном виде на низком уровне, подобно Linux Unified Key Setup (LUKS), так и реализации на пользовательском уровне, например, файловые системы EncFS и CryptoFS, которые, в свою очередь, основаны на Fast Userspace File System (FUSE) под Linux. Конечно же, любая криптографическая система устойчива к взлому настолько, насколько устойчивы её пароли и ключи доступа. Всего существует три основных уровня, на которых применяются технологии шифрования:

· уровень файлов и файловой системы (пофайловое шифрование, контейнер с файлами);

· низкий блочный уровень (контейнер с файловой системой);

· уровень «железа» (специализированные криптографические устройства).

Шифрование на уровне файлов — весьма простой способ, применяющийся обычно для обмена файлами. Шифрование используется от случая к случаю, что удобно для пересылки разумного количества файлов. Для многопользовательских файловых систем возникает проблема управления ключами, поскольку папки и файлы разных пользователей шифруются разными ключами. Конечно, можно использовать один ключ, но тогда мы получаем технологию, напоминающую шифрование диска. Как и всегда, на пользователя ложится ответственность за выбор наиболее надёжного пароля.

Более продвинутые криптографические приложения работают на уровне файловой системы, отслеживая файлы в момент создания, записи или модификации. Этот метод предоставляет лучшую защиту личной информации при любом способе её использования, он хорош и при большом количестве файлов. Кроме того, здесь не нужно заботиться о приложениях, которые не умеют шифровать файлы по отдельности.

Системное шифрование

Системное шифрование обеспечивает защиту от несанкционированного доступа к выключенной машине. Оно не оказывает никаких преимуществ в области безопасности если система в рабочем состоянии и все ее разделы монтированы в незашифрованном виде. Для включенной и доступной системы требуются обычные предосторожности для предотвращения вирусов, троянов, червей и других попыток получить доступ к личным данным. Более того системного шифрование возможно обойти даже в ситуациях, когда система находится в выключенном состоянии. Это происходит из-за того, что прекращение подачи электроэнергии не уничтожает мгновенно данные хранящиеся в RAM перед выключением. Таким образом некто у кого есть физический доступ к вашему компьютеру, через несколько минут после выключения может использовать RAM модули для того чтобы извлечь ключ и получить доступ к данным.

Системное шифрование предпологает шифрование всех монтированных разделов. Это включает в себя все разделы, кроме /boot. Таким образом рут, своп и другие разделы должны быть зашифрованы. Если своп, /tmp, или рут не зашифрованы, достигнуть лишь уровень безопасности шифрования данных.

Шифрование данных

пароль шифрование аутентификация информация

Существует два распространенных вида шифрования данных.

1. Шифрование разделов на том же физическом диске, что и система

2. Шифрование данных на других физических дисках

Шифрование разделов на том же физическом диске, что и система

Самый распространенный вид шифрования данных — шифрование раздела /home

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

Для примера, mlocate регулярно сканирует все монтированные файловые системы и хранит список имен файлов в /var/lib/mlocate/mlocate. db, который находится в незашифрованном разделе /var. Таким образом злоумышленник может получить список всех файлов на компьютере, включая те, которые находятся в зашифрованном разделе /home. Некоторые сравнивают это со снижением уровня безопасности с уровня шифрования разделов, до уровня шифрования файловой системы наподобие системного шифрования с помощью eCryptfs.

Шифрование данных на других физических дисках

Популярные виды шифрования на физически отдельных разделах включают в себя шифрование на следующих устройствах:

1. USB-флэш-накопители

2. Внешние жесткие диски или отдельные внутренние жестки диски

3. CD/DVD/Blu-Ray

4. Магнитные носители

Самое важное в этом виде шифрования данных — помнить, что шифрование защищает данные, находящиеся на зашифрованном носителе только тогда, когда он не монтирован. Шифрование данных не обеспечивает безопасность после того как данные стали доступны для системы. Например подключение USB-флэш-накопителя и последующее дешифрование файла для временного использования в небезопасной системе может, оказаться причиной того, что части файла останутся в системе в незашифрованном виде.

Block Device Encryption / Stacked Filesystem Encryption

eCryptfs является по сути файловой системой. В то время как многие другие технологии используют шифрование на блочном уровне (для файловой системы они представляются в виде болочного устройства). На этом уровне нет логики присущей фаловым системам. Наиболее известные системы шифрования блочного уровня: dm-crypt, Truecrypt, и Loop-AES. Возможно лучшим свойством шифрования на уровне блочных устройств является то, что его на порядок проще реализовать нежели шифрование на уровне файловой системы. Другим достоинством шифрования на уровне блочных устройств является то, что оно зашифрует всю файловую систему, включая метаданные. Хотя во многих случаях это может оказаться скорее недостатком, нежели преимуществом.

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

В настоящий момент существует два подхода к шифрованию разделов: шифрование данных и системное шифрование.

Шифрование данных предоставляет следующие возможности

1. Предотвращение несанкционированного физического доступа к данным

2. Некоторая уверенность в недоступности данных при утилизации устаревших систем.

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

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

1. Предотвращение несанкционированного физического доступа к фалам операционной системы.

2. Предотвращение несанкционированного доступа к данным которые могут быть закешированны системой.

В контексте общей системной безопасности, системное шифрование должно быть представлено как дополнение к существующим средствам обеспечения безопасности операционной системы, главным образом предназначенное для предотвращения физических попыток преодоления средств безопасности операционной системы, которые включают в себя:

1. Попытки обойти загрузку операционной системы с помощью загрузочных CD/USB

2. Копирование, модифицирование или удаление содержимого жестких дисков при выключенном компьютере.

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

Учетные записи и аутентификация

Linux, как и любая unix-подобная система, является не только многозадачной, но и многопользовательской, т. е. эта операционная система позволяет одновременно нескольким пользователям работать с ней. Но система должна как-то узнавать, какой или какие из пользователей работают в данный момент. Именно для этих целей в Linux существует два понятия — учетные записи и аутентификация, которые являются частями одного механизма.

· Учетная запись пользователя — это необходимая для системы информация о пользователе, хранящаяся в специальных файлах. Информация используется Linux для аутентификации пользователя и назначения ему прав доступа.

· Аутентификация — системная процедура, позволяющая Linux определить, какой именно пользователь осуществляет вход.

· Вся информация о пользователе обычно храниться в файлах /etc/passwd и /etc/grpoup.

· /etc/passwd — этот файл содержит информацию о пользователях. Запись для каждого пользователя занимает одну строку:

root: $ 1 $QydTRu2w$Cm5gk. 6w6nmNdUjerh5pu:0:0:root:/root:/bin/bash

· имя пользователя — имя, используемое пользователем на все приглашения типа login при аутентификации в системе.

· зашифрованный пароль — обычно хешированный по необратимому алгоритму MD5 пароль пользователя.

· UID — числовой идентификатор пользователя. Система использует его для распределения прав файлам и процессам.

· GID — числовой идентификатор группы. Имена групп расположены в файле /etc/group. Система использует его для распределения прав файлам и процессам.

· Настоящее имя пользователя — используется в административных целях, а также командами типа finger (получение информации о пользователе через сеть).

· Домашний каталог — полный путь к домашнему каталогу пользователя.

· Оболочка — командная оболочка, которую использует пользователь при сеансе. Для нормальной работы она должна быть указана в файле регистрации оболочек /etc/shells.

· /etc/group — этот файл содержит информацию о группах, к которым принадлежат пользователи:

project: $ 1 $QydTRu2w$Cm5gk. 6w6nmNdUjerh5pu:100:root, bin, daemon

· Имя группы — имя, используемое для удобства использования таких программ, как newgrp.

· Шифрованный пароль — используется при смене группы командой newgrp. Пароль для групп может отсутствовать.

· GID — числовой идентификатор группы. Система использует его для распределения прав файлам и процессам.

· Пользователи, включенные в несколько групп — В этом поле через запятую отображаются те пользователи, у которых по умолчанию (в файле /etc/passwd) назначена другая группа.

На сегодняшний день хранение паролей в файлах passwd и group считается ненадежным. В новых версиях Linux применяются так называемые теневые файлы паролей — shadow и gshаdow. Права на них назначены таким образом, что даже чтение этих фалов без прав суперпользователя невозможно. Нужно учесть, что нормальное функционирование системы при использовании теневых файлов подразумевает одновременно и наличие файлов passwd и group.

Теневые пароли (Shadow passwords)

Теневые пароли означают сокрытие секретной информации о ваших шифрованных паролях от обыкновенных пользователей. Обычно эти шифрованные пароли находятся у вас в /etc/passwd и открыты всем для чтения. Таким образом на этот файл можно напустить программу-расшифровщик, чтобы попытаться определить значения паролей. Пакет shadow записывает информацию о паролях в файл /etc/shadow, который могут читать только привилегированные пользователи.

Системные администраторы могут понизить вероятность атак брутфорсом, сделав список хэшированных паролей нечитаемым для непривилегированных пользователей. Самый очевидный способ сделать это — сделать базу паролей passwd читаемой только для рута. Однако это ограничит доступ к другим данным, хранящимся в файле и нарушит работу многих существующих утилит. Решением является использование файла с «теневыми паролями», в котором будут храниться хэшированные пароли отдельно от прочих данных в /etc/passwd. В настоящее время фактически ввсе Unix-like системы используют «теневые пароли».

Файл shadow хранит защищенную информацию о пользователях, а также обеспечивает механизмы устаревания паролей и учетных записей. Вот структура файла shadow:

cisco: $ 1 $oAJZcVg0 $EGORy8Mh3swT1RfJeX. UR0:13 770:10:99 999:7:30:99 999:

· имя пользователя

· шифрованный пароль — применяются алгоритмы хеширования, как правило MD5

· число дней последнего изменения пароля, начиная с 1 января 1970 года, последнего изменения пароля

· число дней, перед тем как пароль может быть изменён

· число дней, после которых пароль должен быть изменён

· число дней, за сколько пользователя начнут предупреждать, что пароль устаревает

· число дней, после устаревания пароля для блокировки учётной записи

· дней, отсчитывая с 1 января 1970 года, когда учётная запись будет заблокирована

· зарезервированное поле

Файл gshadow так же накладывает дополнительную функциональность, вкупе с защищенным хранением паролей групп. Он имеет следующую структуру:

root: $ 1 $QydTRu2w$Cm5gk. 6w6nmNdUjerh5pu: root:cisco, oem

· Имя группы — имя, используемое для удобства использования таких программ, как newgrp.

· Шифрованный пароль — используется при смене группы командой newgrp. Пароль для групп может отсутствовать.

· Администратор группы — пользователь, имеющий право изменять пароль с помощью gpasswd.

· Список пользователей — В этом поле через запятую отображаются те пользователи, у которых по умолчанию (в файле /etc/passwd) назначена другая группа.

В Linux, кроме обычных пользователей, существует один (и только один) пользователь с неограниченными правами. Идентификаторы UID и GID такого пользователя всегда 0. Его имя, как правило, root. Для пользователя root права доступа к файлам и процессам не проверяются системой. При работе с использованием учетной записи root необходимо быть предельно осторожным, т.к. всегда существует возможность уничтожить систему.

В Linux используется развитая система распределения прав пользователям. Но для точного опознания пользователя одного имени недостаточно с точки зрения безопасности. Именно поэтому используется и пароль — произвольный набор символов произвольной длины, обычно ограниченной лишь используемыми методами шифрования.

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

Учитывая ежедневно увеличивающиеся требования к безопасности, в Linux есть возможность использовать скрытые пароли. Файлы /etc/passwd и /etc/group доступны для чтения всем пользователям, что является довольно большой брешью в безопасности системы. Именно поэтому в современных версиях Linux предпочтительнее использовать скрытые пароли. Такие пароли располагаются в файлах /etc/shadow и /etc/gshadow, для паролей пользователей и групп соответственно

Шифрование паролей в Linux

Используемый алгоритм шифрования паролей можно определить по записи в /etc/passwd или /etc/shadow

1) Без признаков — DES (практически давно не используется, неадекватно слаб по сегодняшним меркам);

2) 2) _ - Модификация имплементации алгоритма DES, сделанная BSDi;

3) 3) $ 1 $ - MD5 (наиболее популярный, но имеет математические уязвимости);

4) 4) $ 2 $, $ 2a$ - Blowfish (используется преимущественно в OpenBSD, FreeBSD);

5) 5)$ 5 $-SHA-256;

6) 6) $ 6 $ - SHA-512

Соль

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

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

В большинстве unix систем в качестве односторонней функции используется системная библиотека crypt (3). Изначально эта библиотека использовала хеш-функцию на базе алгоритма DES. При этом пароль был ограничен 8-ю символами (по 7 бит на символ, т. е. 56 бит) и использовалась 12-битная соль.

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

Например, вы шифруете и храните свои пароли в MD5. Если ваша база будет украдена — злоумышленник довольно просто восстановит большинство исходных паролей используя давно подготовленные радужные таблицы. Если же мы «посолим» пароль, то есть соединим строчку из 10−20 случайных символов с паролем и уже от этой строчки найдем MD5 — стандартные таблицы не будут работать, так как они не расчитаны на поиск такой длинной строки.

Соль, использованную для каждого пароля мы храним рядом с полученным хешом, например, в отдельном столбце таблицы паролей. Когда нам необходимо проверить пароль пользователя — мы извлекаем соль, соединяем с введенным паролем и находим от этой строки MD5. Если пароль верный — хеш совпадет с тем, который хранится в базе.

Использование того или иного интерфейса к unix библиотеке crypt еще проще. Для создания хеш-строки при регистрации достаточно передать этой функции сам пароль — соль будет сгенерирована автоматически (хотя есть возможность и подготовить соль самому). Для проверки необходимо передать проверяемый пароль и строку полученную при регистрации. Так как в этой строке содержится вся необходимая информация (алгоритм, соль, результат хеширования) — этого достаточно, что бы выдать положительный или отрицательный результат.

Вот пример создания хеша с солью на PHP:

$password = 'password'; // Сам пароль

$hash1 = md5 ($password); // Хешируем первоначальный пароль

$salt = 'sflprt49fhi2'; // Генерируем случайный набор символов (соль)

$hash2 = md5 ($hash1. $salt); // Складываем старый хеш с солью и пропускаем через функцию md5 ()

Практическая часть

Для любого типа шифрования безопасность данных опирается на две вещи:

1. Сложность и доступность ключа

2. Использование зарекомендовавших себя алгоритмов

Предоставляемый пользователем ключ, будь то пароль или keyfile, должен быть достаточно сложным, чтобы его нельзя было подобрать. Использование мощного алгоритма шифрования бесполезно, если используемы ключ будет слишком прост. Принципы составления сложного ключа основаны на длине и случайности. Существует множество ресурсов с инструкциями о том как составить сложный ключ.

Другая сторона надежности ключа — это его доступность. Например сложный ключ написанный на бумажке и приклеенный к клавиатуре не обеспечит требуемого уровня безопасности. Поэтому помимо создания сложного ключа важно так же хранить его в безопасном месте.

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

В качестве практической части мы попробуем реализовать подобное приложение.

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

Итак первое, что на понадобится это алгоритм хэширования md5. md5 является открытым стандартом, и не должно составить труда найти подробное описание работы алгоритма.

Поскольку md5 — это одностороннее преобразование, не существует способа получить пароль зная, его хэш. Таким образом нам придется подбирать пароль методом перебора, вычислять хэш на каждой итерации и сравнивать его с имееюшимся хэшом. Обаружение идентичности хэшей свидетельствует об идентичности паролей.

Для начала реализуем несложный алгоритм для перебора цифровых паролей:

void numeric (char hash[80])

{

int j = 0;

int n = 0;

while (n≠ 32)

{

n = 0;

std: stringstream stream; //transforms int ti char

stream < < j;

char str[80];

stream > > str;

string strHash = MD5String (str);

for (int i = 0; i< 32; i++) //compares results

{

if (strHash[i] == hash[i])

{

n++;

}

else

{

break;

}

}

if (n == 32)

{

cout < < «Match found"< <endl;

cout < < str < < endl;

break;

}

j++;

}

}

Здесь искомое число инкрементится с каждой итерацией, после чего вычисляется его хэш до тех пор, пока не будет найдено совпадение.

Более сложным случаем является подбор буквенно-численного пароля

using namespace std;

void checkPassword (string password);

void recurse (int width, int position, string baseString);

char chars[]={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

string t;

void alphanumeric (char hash[80])

{

std: stringstream stream;

stream < < hash;

stream > >t;

int maxChars = 13;

for (int i=0; i< maxChars+1; i++) {

recurse (i, 0, ««);

}

}

void recurse (int width, int position, string baseString) {

for (int i=0; i< 35; i++) {

if (position < width-1) {

recurse (width, position + 1, baseString+chars[i]);

}

checkPassword (baseString+chars[i]);

}

}

void checkPassword (string password) {

std: stringstream stream;

char password1 [80];

stream < < password;

stream > > password1;

string pswdHash = MD5String (password1);

if (pswdHash==t) {

cout < < «match found» < < endl;

cout < < password < < endl;

exit (1);

}

}

Заключение

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

Пароли могут быть самым слабым звеном в развертывании системы безопасности. При выборе пароля всегда следует проявлять особую внимательность. Надежный пароль имеет следующие характеристики:

· содержит как минимум 8 символов;

· сочетает в себе буквы, числа и специальные символы;

· не содержится в словарях;

· не является именем команды;

· не является именем человека;

· не является именем пользователя;

· не является именем компьютера;

· регулярно меняется;

· в значительной степени отличается от предыдущих паролей.

Список используемой литературы

пароль шифрование аутентификация информация

1. https: //wiki. archlinux. org/index. php/System_Encryption_with_LUKS

2. https: //wiki. archlinux. org/index. php/System_Encryption_with_eCryptfs

3. http: //www. thg. ru/software/luks_encfs_cryptofs/index. html

4. http: //en. wikipedia. org/wiki/Shadow_password

5. http: //rus-linux. net/MyLDP/HOWTO-ru/Security-HOWTO/Security-HOWTO-6. html

6. http: //www. pcmag. ru/elearning/course/lesson. php? COURSE_ID=19& ID=149

7. http: //openwall. info/wiki/john/tutorials

ПоказатьСвернуть
Заполнить форму текущей работой