Ключевые понятия в шифровании
Иногда процесс шифрования является достаточно простым и автоматическим. Но иногда в нём случаются сбои. Чем больше вы знаете о шифровании, тем в большей безопасности вы будете при возникновении подобных ситуаций. Для начала, если вы этого ещё не сделали, рекомендуем ознакомиться с руководством «Что я должен знать о шифровании?»
В настоящем руководстве мы рассмотрим пять основных идей. Это важные понятия о процессе шифрования:
- Шифр и ключ

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

- Закрытые и открытые ключи
- Проверка личности для людей (отпечаток
открытого ключа) - Проверка личности для сайтов (сертификаты безопасности)
Шифр и ключ anchor link
Вы наверняка сталкивались с чем-либо на первый взгляд непонятным. Это могло быть похоже на надпись на чужом языке или вовсе на какую-то бессмыслицу. Что-то препятствовало прочтению и пониманию. Но это вовсе не означает, что было использовано шифрование
.
Каковы отличия чего-то зашифрованного от непонятного?
Шифрование — это математический процесс, используемый для превращения информации в нечитаемый (зашифрованный) вид. При этом восстановление первоначального вида информации (расшифровывание) возможно лишь с помощью специальных знаний. В процессе шифрования используются шифр и ключ.
Шифр — это набор правил (алгоритм), используемый при шифровании и расшифровывании. Это чётко определённые, выраженные в виде формулы правила, которым необходимо следовать.
Ключом является инструкция для шифра: как именно нужно шифровать и расшифровывать данные
. Ключи являются одной из наиболее важных концепций в шифровании.
Один ключ или несколько? anchor link
При использовании симметричного шифрования существует единственный ключ как для шифрования, так и расшифровывания данных.
![]() |
| Старые способы шифрования были симметричными. В «шифре Цезаря», использованном Юлием Цезарем, ключом для шифрования и для расшифровывания сообщений был сдвиг по алфавиту на три символа. Например, символ «A» будет изменён на «Г». Сообщение «ШИФРОВАНИЕ — ЭТО КРУТО» превратится с помощью этого ключа («три») в «ЫЛЧУСЕГРЛЗ АХС НУЦХС». Тот же самый ключ используется и для расшифровывания сообщения обратно в исходный вид. |
Симметричное шифрование все ещё применяется сегодня. Оно часто существует в форме «потоковых» и «блочных шифров», которые используют сложные математические процессы для усложнения взлома. В настоящее время процесс шифрования данных проходит в несколько этапов, максимально усложняя извлечение исходных данных при отсутствии подходящего ключа. Современные алгоритмы симметричного шифрования, такие как алгоритм Advanced Encryption Standard (AES), являются надёжными и быстрыми. Симметричное шифрование широко используется компьютерами для таких задач, как шифрование файлов, разделов жёстких дисков на компьютере, полного шифрования дисков и устройств, а также шифрования баз данных, например в менеджерах паролей. При расшифровывании информации, зашифрованной с помощью симметричного шифрования, у вас будут запрашивать пароль
. Именно поэтому мы рекомендуем использовать надёжные пароли и предоставляем пособие по созданию надёжных паролей для защиты зашифрованной информации.
Наличие лишь одного ключа может быть полезно, если вы единственный человек, нуждающийся в доступе к зашифрованной информации. Но обладание единственным ключом может стать проблемой при желании поделиться доступом к зашифрованной информации с другом, находящимся вдали от вас. Что, если вы не можете лично встретиться с ним для передачи ключа? И как поделиться ключом через небезопасное подключение к интернету?
Асимметричное шифрование, также называемое шифрованием с открытым ключом, решает эти проблемы. Асимметричное шифрование использует два ключа: закрытый ключ (для расшифровывания) и открытый ключ (для шифрования).

Симметричное шифрование
Асимметричное шифрование
- Быстрое
- Медленное
- Не требует больших вычислительных мощностей
- Требует больших вычислительных мощностей
- Используется для шифрования как больших, так и маленьких сообщений
- Используется для шифрования небольших сообщений
- Необходим обмен ключами как для шифрования, так и для расшифровывания
- Ключом для расшифровывания делиться нельзя, необходимо передать лишь открытый ключ, используемый для шифрования
- Не может использоваться для проверки личности (аутентификации)
- Может использоваться для проверки личности (аутентификации)
Симметричное и асимметричное шифрование часто используются совместно для шифрования при передаче данных.
Асимметричное шифрование: закрытые и открытые ключи anchor link
Закрытый и открытый ключи создаются парами. Они математически связаны друг с другом. Вы можете представить их в виде камня, расколотого пополам. Если соединить обе половинки, то они идеально подойдут друг к другу, образуя единое целое. Ни одна часть никакого другого камня не подойдёт. Файлы открытого и закрытого ключей совпадают также. Они состоят из очень больших чисел, генерируемых компьютером.

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

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

Открытый ключ
Закрытый ключ
- Файл, который можно свободно распространять, в том числе и через интернет
- Файл, который должен надёжно храниться в безопасном месте
- Отправителю необходим открытый ключ получателя для того, чтобы зашифровать отправляемую информацию
- Используется для расшифровывания сообщений, зашифрованных с помощью соответствующего открытого ключа
- Представлен так называемым «отпечатком» открытого ключа, который можно использовать для подтверждения личности (аутентификации)
- Используется для цифровых подписей, позволяя проверить личность отправителя (аутентификация)
- При желании может быть размещён в постоянных общедоступных базах данных — «серверах ключей», доступных при использовании программного обеспечения PGP
(зашифрованной электронной почты)
Можно сказать, что, отправляя информацию по каналам связи, вы будто отправляете обычную почтовую открытку. На открытке отправитель напишет «Привет!» и отправит её получателю. Сообщение не зашифровано, и поэтому сотрудники почты и вообще все, кому в руки попадёт открытка, смогут прочитать это сообщение.

Справа вы видите такую же открытку с тем же сообщением, но в зашифрованном виде. Теперь для всех посторонних это сообщение выглядит как какая-то тарабарщина.
Как это сделано? Отправитель нашёл открытый ключ получателя. Он отправил сообщение, зашифровав его с помощью найденного открытого ключа. Также отправитель использовал свой закрытый ключ для того, чтобы оставить цифровую подпись в этом сообщении, подтверждая таким образом, что сообщение написал действительно он.
Обратите внимание, что метаданные об отправителе и получателе сообщения, времени отправки и получения, пути доставки и прочем не будут зашифрованы и останутся видны. Третьим лицам будет ясно, что отправитель и получатель общаются и используют шифрование, но прочитать содержание их сообщений будет невозможно.
Для кого вы шифруете? Является ли он тем, кем представился? anchor link
Теперь у вас может возникнуть вполне резонный вопрос: «Понятно, что мой открытый ключ позволяет кому-то отправлять мне зашифрованное сообщение, а мой закрытый ключ позволяет прочитать это зашифрованное сообщение. Но что, если кто-то притворяется мной? Что, если кто-то создаст новые открытый и закрытый ключи и станет выдавать себя за меня?»
Именно здесь и раскрывается польза шифрования с открытым ключом. Вы можете подтвердить свою личность и проверить личность собеседника. Давайте подробно рассмотрим возможности использования закрытого ключа.

Помимо того, что ваш закрытый ключ позволяет читать сообщения, зашифрованные с помощью вашего открытого ключа, с его помощью вы также можете оставлять в отправляемых вами сообщениях цифровую подпись, которую невозможно подделать. Таким образом вы подтверждаете авторство своих сообщений.
Получатель увидит вашу цифровую подпись вместе с сообщением и сравнит её с данными, указанными в вашем открытом ключе.
Давайте посмотрим, как это работает на практике.
Проверка личности для людей (отпечаток открытого ключа) anchor link
При отправке любых сообщений мы обычно полагаемся на добросовестность людей, участвующих в доставке наших сообщений. Как и при отправке обычного письма, мы не ожидаем, что сотрудник почтовой службы будет вмешиваться в нашу переписку. Было бы дикостью, если бы кто-то перехватил письмо вашего друга, открыл его и заменил содержимое, а затем отправил бы дальше на ваш адрес, как будто бы ничего и не произошло. Вероятность подобного вмешательства всё-таки существует.
Зашифрованные сообщения подвержены такому же риску. Однако шифрование с открытым ключом позволяет нам проверить, была ли подделана информация в сообщении, проверив подлинность цифровой подписи собеседника.
Открытый ключ — это файл с огромным количеством символов. Но существует и удобный для чтения «отпечаток ключа
», соответствующий данному ключу.

В области компьютерной безопасности слово «отпечаток» имеет множество значений.
Одним из вариантов употребления этого слова является «отпечаток ключа» — строка с символами вида «65834 02604 86283 29728 37069 98932 73120 14774 81777 73663 16574 23234». Эта строка позволяет с абсолютной уверенностью утверждать, что ваш собеседник использует правильный закрытый ключ.

Некоторые приложения формируют отпечаток ключа в виде QR-кода, который вы с собеседником сканируете с устройств друг у друга.
С помощью так называемой «проверки отпечатков» вы можете убедиться в том, что человек, представляющийся кем-то в сети, действительно им и является.
Лучше всего подобную проверку проводить при личной встрече. Вашему собеседнику необходимо посимвольно сравнить отпечаток вашего открытого ключа, находящегося на вашем устройстве, с отпечатком вашего же ключа, но находящегося у него. Несмотря на утомительность проверки такой длинной строки символов («342e 2309 bd20 0912 ff10 6c63 2192 1928»), её необходимо провести. Если вы не можете встретиться лично, можно передать свой отпечаток через другой защищённый канал связи, например через другой использующий сквозное шифрование /> мессенджер или чат, или разместить отпечаток на сайте HTTPS />.
Проверка отпечатка ключа собеседника обеспечит более высокую степень уверенности в том, что вы действительно общаетесь с нужным человеком. Но и этот способ не идеален, потому что в случае кражи (или копирования) закрытых ключей (например, с помощью вредоносного ПО на вашем устройстве или физического доступа к вашему устройству), злоумышленник
сможет использовать тот же отпечаток ключа. Именно поэтому, если ваш закрытый ключ скомпрометирован, необходимо сгенерировать новую пару открытого и закрытого ключей и передать на сравнение собеседникам новый отпечаток открытого ключа.
Итог: возможности шифрования с открытым ключом anchor link
Использование шифрования с открытым ключом может предоставить пользователям:
Секретность: использование шифрования с открытым ключом при отправке сообщения обеспечивает секретность переписки, поскольку прочитать данное сообщение сможет лишь тот, кому оно действительно предназначалось.
Подлинность: получатель сообщения, подписанного с помощью шифрования с открытым ключом, может проверить подлинность авторства при наличии у него открытого ключа отправителя.
Целостность: сообщение, зашифрованное или подписанное с помощью шифрования с открытым ключом, как правило, не может быть подделано; иначе оно не будет расшифровано, либо авторство сообщения не будет подтверждено. Это означает, что даже непреднамеренное искажение сообщения (например, из-за проблем со связью) будет обнаружено.
Проверка личности для веб-сайтов и сервисов (сертификаты безопасности) anchor link
Вы можете задуматься об эквиваленте проверки отпечатка ключа для сайтов и сервисов в интернете. Как удостовериться в том, что вы используете настоящий, а не подложный или фишинговый сайт? Как быть уверенным в том, что никто не вклинивается в ваше подключению к сайту или сервису?
При использовании сквозного шифрования пользователи делятся своим открытым ключом со всеми своими собеседниками, чтобы убедиться в подлинности личности каждого пользователя. Тот же принцип работает и при использовании шифрования транспортного уровня: ваш компьютер автоматически проверяет открытый ключ сайта или сервиса на подлинность и принадлежность данному сайту или сервису. В данном случае ключ называется сертификатом безопасности.
Ниже вы можете увидеть пример сертификата безопасности нашего сайта, открытого в стандартном браузере. Информацию о сертификате безопасности можно просмотреть, нажав на значок замка в строке адреса HTTPS браузера и затем выбрав «сведения о сертификате».

Браузер
на компьютере может шифровать подключение к сайту, используя HTTPS. Сайты часто используют сертификаты безопасности, чтобы показать браузеру свою подлинность и обеспечение безопасного подключения. Благодаря этому можно быть уверенным в том, что никто не сможет изменить передающиеся данные. Браузеры проверяют эти сертификаты на соответствие открытым ключам доменных имён (например www.google.com, www.amazon.com или ssd.eff.org). Сертификаты являются одним из способов определения безопасности общения с человеком или сайтом – соответствует ли данный открытый ключ этому сайту или человеку. А каким образом компьютер узнает, какой именно открытый ключ является подходящим для посещаемых сайтов?
Современные браузеры и операционные системы используют список доверенных центров сертификации (Certification authority, CA). Открытые ключи из этих центров сертификации уже будут у вас при установке браузера или покупке компьютера. Центры сертификации подписывают открытый ключ сайта лишь после того, как они удостоверились в том, что этот сайт на законных основаниях владеет доменом (например, www.example.com). Открывая HTTPS-сайт, браузер проверяет предоставленный этим сайтом сертификат на наличие подписи надёжного центра сертификации. Это значит, что сторонняя организация, которой можно доверять, подтверждает подлинность данного сайта.
Тот факт, что сертификат безопасности
сайта был подписан центром сертификации, ещё не означает, что сайт является безопасным. У центров сертификации не безграничные возможности — они не могут проверить, заслуживает ли доверия тот или иной сайт. Например, сайт может использовать надёжный протокол
передачи данных HTTPS, но при этом будет размещать мошеннические и вредоносные программы
. Будьте бдительны и узнайте больше, прочитав наше руководство по защите от вредоносных программам и фишинга.
Время от времени при посещении сайтов вы будете видеть сообщения об ошибках, связанных с сертификатами. Чаще всего это происходит в отеле или кафе, где локальная сеть, к которой вы подключены, пытается перехватить ваше соединение с сайтом, направляя вас к своему порталу для входа в систему ещё до выхода в интернет. Также это случается из-за какой-либо бюрократической ошибки в системе сертификатов. Однако иногда это происходит потому, что злоумышленник (хакер, вор, полиция или шпион) вмешивается в зашифрованное соединение. К сожалению, определить разницу между этими случаями очень трудно.
Это означает, что вам ни в коем случае не стоит игнорировать предупреждение об ошибках, связанных с сертификатом безопасности на сайтах, где вы вводите свои учётные данные, либо читаете какую-либо конфиденциальную информацию.
Итог: симметричные и асимметричные ключи, отпечатки открытых ключей. anchor link
Пример рукопожатия безопасности транспортного уровня (TLS handshake)
При использовании шифрования транспортного уровня браузер вашего компьютера и компьютер сайта, который вы посещаете, используют как симметричные, так и асимметричные алгоритмы шифрования.
Рассмотрим конкретный пример совместной работы этих способов шифрования при подключении к данному сайту (https://ssd.eff.org/), использующему протокол HTTPS.
Открывая HTTPS-сайт, браузер и сервер сайта совершают очень быстрый обмен некоторыми данными. Этот процесс называется «рукопожатием» (handshake). Браузер (Google Chrome, Mozilla Firefox, Tor Browser и т.д.) общается с сервером (компьютером), на котором расположен наш сайт — https://ssd.eff.org.
При осуществлении рукопожатия браузер и сервер отправляют друг другу запросы для определения общих настроек алгоритмов шифрования (наборов шифров). Вы можете представить себе это как оживлённую беседу между вашим браузером и нашим сервером ssd
.eff.org об известных им методах шифрования, об их предпочтениях в выборе метода и о том, какой метод шифрования им обоим следует применить при общении. «Знакомо ли нам обоим совместное использование асимметричного алгоритма (RSA) с симметричным алгоритмом (AES)? Да, хорошо. Если же с этой комбинацией алгоритмов шифрования мы не знакомы, какие другие алгоритмы шифрования мы знаем?»
Затем ваш браузер, используя асимметричное шифрование, отправляет сертификат открытого ключа на ssd.eff.org в доказательство того, что вы действительно являетесь тем, за кого себя выдаёте. Сервер сайта проверяет этот сертификат открытого ключа на соответствие вашему открытому ключу. Это происходит в целях предотвращения перехвата соединения злоумышленником.
После подтверждения вашей личности сервер сайта, используя симметричное шифрование, создаёт новый файл симметричного секретного ключа. Затем он асимметрично шифрует открытый ключ браузера и отправляет его обратно браузеру. Браузер расшифровывает этот файл, используя свой закрытый ключ.
Если этот симметричный ключ работает, то браузер и сервер веб-сайта используют его для дальнейшего шифрования данных. Этот обмен данными является рукопожатием TLS. Таким образом, если рукопожатие прошло корректно, то ваше подключение обозначается как безопасное соответствующим значком в адресной строке браузера рядом с названием HTTPS-сайта ssd.eff.org.
Для более глубокого изучения открытых и закрытых ключей, а также процесса проверки личности, прочтите наше руководство по шифрованию с открытым ключом.
Шифрующая файловая система (EFS)
Шифрующая файловая система это тесно интегрированная с NTFS служба, располагающаяся в ядре Windows 2000. Ее назначение: защита данных, хранящихся на диске, от несанкционированного доступа путем их шифрования. Появление этой службы не случайно, и ожидалось давно. Дело в том, что существующие на сегодняшний день файловые системы не обеспечивают необходимую защиту данных от несанкционированного доступа.
Внимательный читатель может возразить мне: а как же Windows NT с ее NTFS? Ведь NTFS обеспечивает разграничение доступа и защиту данных от несанкционированного доступа! Да, это правда. Но как быть в том случае, когда доступ к разделу NTFS осуществляется не с помощью средств операционной системы Windows NT, а напрямую, на физическом уровне? Ведь это сравнительно легко реализовать, например, загрузившись с дискеты и запустив специальную программу: например, весьма распространенную ntfsdos. В качестве более изощренного примера можно указать продукт NTFS98. Конечно, можно предусмотреть такую возможность, и задать пароль на запуск системы, однако практика показывает, что такая защита малоэффективна, особенно в том случае, когда за одним компьютером работают сразу несколько пользователей. А если злоумышленник может извлечь жесткий диск из компьютера, то здесь уже не помогут никакие пароли. Подключив диск к другому компьютеру, его содержимое можно будет прочитать с такой же легкостью, что и эту статью. Таким образом, злоумышленник свободно может овладеть конфиденциальной информацией, которая хранится на жестком диске.
Единственный способ защиты от физического чтения данных это шифрование файлов. Простейший случай такого шифрования — архивирование файла с паролем. Однако здесь есть ряд серьезных недостатков. Во-первых, пользователю требуется каждый раз вручную шифровать и дешифровать (то есть, в нашем случае архивировать и разархивировать) данные перед началом и после окончания работы, что уже само по себе уменьшает защищенность данных. Пользователь может забыть зашифровать (заархивировать) файл после окончания работы, или (еще более банально) просто оставить на диске копию файла. Во-вторых, пароли, придуманные пользователем, как правило, легко угадываются. В любом случае, существует достаточное количество утилит, позволяющих распаковывать архивы, защищенные паролем. Как правило, такие утилиты осуществляют подбор пароля путем перебора слов, записанных в словаре.
Система EFS была разработана с целью преодоления этих недостатков. Ниже мы рассмотрим более подробно детали технологии шифрования, взаимодействие EFS с пользователем и способы восстановления данных, познакомимся с теорией и реализацией EFS в Windows 2000, а также рассмотрим пример шифрования каталога при помощи EFS.
Технология шифрования
EFS использует архитектуру Windows CryptoAPI. В ее основе лежит технология шифрования с открытым ключом. Для шифрования каждого файла случайным образом генерируется ключ шифрования файла. При этом для шифрования файла может применяться любой симметричный алгоритм шифрования. В настоящее же время в EFS используется один алгоритм, это DESX, являющийся специальной модификацией широко распространенного стандарта DES.
Ключи шифрования EFS хранятся в резидентном пуле памяти (сама EFS расположена в ядре Windows 2000), что исключает несанкционированный доступ к ним через файл подкачки.
Взаимодействие с пользователем
По умолчанию EFS сконфигурирована таким образом, что пользователь может сразу начать использовать шифрование файлов. Операция шифрования и обратная поддерживаются для файлов и каталогов. В том случае, если шифруется каталог, автоматически шифруются все файлы и подкаталоги этого каталога. Необходимо отметить, что если зашифрованный файл перемещается или переименовывается из зашифрованного каталога в незашифрованный, то он все равно остается зашифрованным. Операции шифрования/дешифрования можно выполнить двумя различными способами — используя Windows Explorer или консольную утилиту Cipher.
Для того чтобы зашифровать каталог из Windows Explorer, пользователю нужно просто выбрать один или несколько каталогов и установить флажок шифрования в окне расширенных свойств каталога. Все создаваемые позже файлы и подкаталоги в этом каталоге будут также зашифрованы. Таким образом, зашифровать файл можно, просто скопировав (или перенеся) его в «зашифрованный» каталог.
Зашифрованные файлы хранятся на диске в зашифрованном виде. При чтении файла данные автоматически расшифровываются, а при записи — автоматически шифруются. Пользователь может работать с зашифрованными файлами так же, как и с обычными файлами, то есть открывать и редактировать в текстовом редакторе Microsoft Word документы, редактировать рисунки в Adobe Photoshop или графическом редакторе Paint, и так далее.
Необходимо отметить, что ни в коем случае нельзя шифровать файлы, которые используются при запуске системы — в это время личный ключ пользователя, при помощи которого производится дешифровка, еще недоступен. Это может привести к невозможности запуска системы! В EFS предусмотрена простая защита от таких ситуаций: файлы с атрибутом «системный» не шифруются. Однако будьте внимательны: это может создать «дыру» в системе безопасности! Проверяйте, не установлен ли атрибут файла «системный» для того, чтобы убедиться, что файл действительно будет зашифрован.
Важно также помнить о том, что зашифрованные файлы не могут быть сжаты средствами Windows 2000 и наоборот. Иными словами, если каталог сжат, его содержимое не может быть зашифровано, а если содержимое каталога зашифровано, то он не может быть сжат.
В том случае, если потребуется дешифровка данных, необходимо просто снять флажки шифрования у выбранных каталогов в Windows Explorer, и файлы и подкаталоги автоматически будут дешифрованы. Следует отметить, что эта операция обычно не требуется, так как EFS обеспечивает «прозрачную» работу с зашифрованными данными для пользователя.
Восстановление данных
EFS обеспечивает встроенную поддержку восстановления данных на тот случай, если потребуется их расшифровать, но, по каким-либо причинам, это не может быть выполнено обычным. По умолчанию, EFS автоматически сгенерирует ключ восстановления, установит сертификат доступа в учетной записи администратора и сохранит его при первом входе в систему. Таким образом, администратор становится так называемым агентом восстановления, и сможет расшифровать любой файл в системе. Разумеется, политику восстановления данных можно изменить, и назначить в качестве агента восстановления специального человека, ответственного за безопасность данных, или даже несколько таких лиц.
Немного теории
EFS осуществляет шифрование данных, используя схему с общим ключом. Данные шифруются быстрым симметричным алгоритмом при помощи ключа шифрования файла FEK (file encryption key). FEK — это случайным образом сгенерированный ключ определенной длины. Длина ключа в североамериканской версии EFS 128 бит, в международной версии EFS используется уменьшенная длина ключа 40 или 56 бит.
FEK шифруется одним или несколькими общими ключами шифрования, в результате чего получается список зашифрованных ключей FEK. Список зашифрованных ключей FEK хранится в специальном атрибуте EFS, который называется DDF (data decryption field — поле дешифрования данных). Информация, при помощи которой производится шифрование данных, жестко связана с этим файлом. Общие ключи выделяются из пар пользовательских ключей сертификата X509 с дополнительной возможностью использования «File encryption». Личные ключи из этих пар используются при дешифровке данных и FEK. Личная часть ключей хранится либо на смарт-картах, либо в другом надежном месте (например, в памяти, безопасность которой обеспечивается при помощи CryptoAPI).
FEK также шифруется при помощи одного или нескольких ключей восстановления (полученных из сертификатов X509, записанных в политике восстановления зашифрованных данных для данного компьютера, с дополнительной возможностью «File recovery»).
Как и в предыдущем случае, общая часть ключа используется для шифрования списка FEK. Список зашифрованных ключей FEK также хранится вместе с файлом в специальной области EFS, которая называется DRF (data recovery field — поле восстановления данных). Для шифрования списка FEK в DRF используется только общая часть каждой пары ключей. Для нормального осуществления файловых операций необходимы только общие ключи восстановления. Агенты восстановления могут хранить свои личные ключи в безопасном месте вне системы (например, на смарт-картах). На рисунке приведены схемы процессов шифрования, дешифрования и восстановления данных.
Процесс шифрования
Незашифрованный файл пользователя шифруется при помощи случайно сгенерированного ключа FEK. Этот ключ записывается вместе с файлом, файл дешифруется при помощи общего ключа пользователя (записанного в DDF), а также при помощи общего ключа агента восстановления (записанного в DRF).
Процесс дешифрования
Сначала используется личный ключ пользователя для дешифрации FEK — для этого используется зашифрованная версия FEK, которая хранится в DDF. Расшифрованный FEK используется для поблочного дешифрования файла. Если в большом файле блоки считываются не последовательно, то дешифруются только считываемые блоки. Файл при этом остается зашифрованным.
Процесс восстановления
Этот процесс аналогичен дешифрованию с той разницей, что для дешифрования FEK используется личный ключ агента восстановления, а зашифрованная версия FEK берется из DRF.
Реализация в Windows 2000
На рисунке показана архитектура EFS:
EFS состоит из следующих компонентов:
Драйвер EFS
Этот компонент расположен логически на вершине NTFS. Он взаимодействует с сервисом EFS, получает ключи шифрования файлов, поля DDF, DRF и другие данные управления ключами. Драйвер передает эту информацию в FSRTL (file system runtime library, библиотека времени выполнения файловой системы) для прозрачного выполнения различных файловых системных операций (например, открытие файла, чтение, запись, добавление данных в конец файла).
Библиотека времени выполнения EFS (FSRTL)
FSRTL — это модуль внутри драйвера EFS, который осуществляет внешние вызовы NTFS для выполнения различных операций файловой системы, таких как чтение, запись, открытие зашифрованных файлов и каталогов, а также операций шифрования, дешифрования, восстановления данных при записи на диск и чтении с диска. Несмотря на то, что драйвер EFS и FSRTL реализованы в виде одного компонента, они никогда не взаимодействуют напрямую. Для обмена сообщениями между собой они используют механизм вызовов NTFS. Это гарантирует участие NTFS во всех файловых операциях. Операции, реализованные с использованием механизмов управления файлами, включают запись данных в файловые атрибуты EFS (DDF и DRF) и передачу вычисленных в EFS ключей FEK в библиотеку FSRTL, так как эти ключи должны устанавливаться в контексте открытия файла. Такой контекст открытия файла позволяет затем осуществлять незаметное шифрование и дешифрование файлов при записи и считывании файлов с диска.
Служба EFS
Служба EFS является частью подсистемы безопасности. Она использует существующий порт связи LPC между LSA (Local security authority, локальные средства защиты) и работающим в kernel-mode монитором безопасности для связи с драйвером EFS. В режиме пользователя служба EFS взаимодействует с программным интерфейсом CryptoAPI, предоставляя ключи шифрования файлов и обеспечивая генерацию DDF и DRF. Кроме этого, служба EFS осуществляет поддержку интерфейса Win32 API.
Win32 API
Обеспечивает интерфейс программирования для шифрования открытых файлов, дешифрования и восстановления закрытых файлов, приема и передачи закрытых файлов без их предварительной расшифровки. Реализован в виде стандартной системной библиотеки advapi32.dll.
Немного практики
- Запустите Windows Explorer, нажмите правую кнопку мыши на каталоге, выберите пункт Properties (Свойства).
- На закладке General (Общие) нажмите кнопку Advanced.
- Отметьте галочкой пункт «Encrypt contents to secure data». Нажмите OK, затем нажмите Apply (применить) в диалоге Properties. Если Вы выбрали шифрование отдельного файла, то дополнительно появится диалоговое окно следующего вида:
Система предлагает зашифровать также и каталог, в котором находится выбранный файл, так как в противном случае шифрование будет автоматически отменено при первой модификации такого файла. Всегда имейте это в виду, когда шифруете отдельные файлы!
На этом процесс шифрования данных можно считать законченным.
Чтобы расшифровать каталоги, просто снимите выделение в пункте «Encrypt contents to secure data». При этом каталоги, а также все содержащиеся в них подкаталоги и файлы будут расшифрованы.
Шифруем данные в Windows 8 с помощью EFS
07.12.2022
itpro
Windows 8
комментариев 6
Начиная с Windows XP во всех операционных системах Microsoft существует встроенная технология шифрования данных EFS (Encrypting File System). EFS-шифрование основано на возможностях файловой системы NTFS 5.0 и архитектуре CryptoAPI и предназначено для быстрого шифрования файлов на жестком диске компьютера .
Вкратце опишем схему шифрования EFS. Система EFS использует шифрование с открытым и закрытым ключом. Для шифрования в EFS используется личный и публичный ключи пользователя, которые генерируются при первом использовании пользователем функции шифрования. Данные ключи остаются неизменными все время, пока существует его учетная запись. При шифровании файла EFS случайным образом генерирует уникальный номер, так называемый File Encryption Key (FEK) длиной 128 бит, с помощью которого и шифруются файлы. Ключи FEK зашифрованы master-ключом, который зашифрован ключом пользователей системы, имеющего доступ к файлу. Закрытый ключ пользователя защищается хэшем пароля этого самого пользователя.
Таким образом, можно сделать вывод: вся цепочка EFS шифрования по сути жестко завязана на логин и пароль пользователя. Это означает, что защищённость данных в том числе зависит и от стойкости пароля пользователя.
Примечание. Начиная с Windows Vista в ОС системах MS поддерживается еще одна технология шифрования – BitLocker. BitLocker в отличии от EFS-шифрования:
- используется для шифрования дискового тома целиком
- требует наличия аппаратного TPM модуля (в случае его требуется внешнее устройство хранения ключа, например USB флешки или жесткого диска)
Внешне для пользователя работа с зашифрованными с помощью EFS приватными файлами ничем не отличается от работы с обычными файлами – ОС выполняет операции шифрования/дешифрования автоматически (эти функции выполняет драйвер файловой системы).
Содержание:
Как включить EFS шифрование каталога в Windows
Пошагово разберем процедуру шифрования данных в Windows 8 с помощью EFS.

В проводник File Explorer выберите каталог или файлы, которые необходимо зашифровать, и, щелкнув ПКМ, перейдите в их свойства (Properties).
На вкладке General в секции атрибутов найдите и нажмите кнопку Advanced.

В появившемся окне поставьте чекбокс Encrypt contents to secure data (Шифровать содержимое для защиты данных).
Нажмите дважды ОК.

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

Зашифрованные каталоги и файлы в проводнике Windows отображаются зеленым цветов (напомним, что синим цветов подсвечены объекты, сжатые на уровне ntfs). Если выбрано шифрование папки со всем содержимым, все новые объекты внутри зашифрованного каталога также шифруются.
Управлять шифрованием/дешифрованием EFS можно из командной строки с помощью утилиты cipher. Например, зашифровать каталог C:\Secret можно так:
Список всех файлов в файловой системе, зашифрованных с помощью сертификата текущего пользователя можно вывести с помощью команды:

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

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

Примечание. Если вы случайно закроете окно, или оно не появится, экспортировать сертификаты EFS можно с помощью функции «Manage file encryption certificates» в панели управления пользователями.
Выберите Back up your file encryption certificate and key

Далее запустится мастер экспорта сертификата . Все настройки экспорта можно оставить стандартными (формат Personal Information Exchange — PKCS #12 .PFX)

Затем укажите пароль для защиты сертификата (желательно достаточно сложный).

Осталось указать местоположение, куда необходимо сохранить экспортируемый сертификат (в целях безопасности в дальнейшем его необходимо скопировать на внешний жесткий диск /usb флешку и хранить в безопасном месте).
На этом экспорт сертификата шифрования EFS закончен и в случае необходимости им всегда можно будет воспользоваться для расшифровки данных (подробности в статье Как расшифровать данных EFS с помощью сертификата пользователя.
Предыдущая статья Следующая статья
Шифрование данных в Windows с помощью технологии EFS
Н аверняка на компьютере каждого пользователя найдется парочка папок, содержимое которых явно не предназначается для публичного просмотра. Таковым содержимым может быть что угодно, например, номера банковских карт или личные фотографии, не в этом суть, важно только одно, чтобы бы эти данные были надежно защищены. Использование стандартного пароля Windows не является сколь либо серьезной преградой для взлома, для предотвращения доступа к данным следует использовать шифрование. Самый простой пример такой защиты – архивирование с установкой хорошего пароля. Однако такой способ не лишен недостатков.
Во-первых, это неудобно, так как пользователь будет вынужден каждый зашифровывать и расшифровывать архив, во-вторых, такой архив может быть легко скопирован, после чего подвергнут дешифровке методом перебора. Более эффективным способом защиты файлов является шифровка с помощью технологии EFS так же известной как Encrypting File System, использующейся в Windows начиная с версии 2000. В отличие от технологии BitLocker, впервые появившейся в Vista, EFS не требует наличия аппаратного TPM модуля, однако в то же время EFS не поддерживает шифрование раздела целиком.
Шифрование Encrypting File System осуществляется с помощью открытого и закрытого ключей, автоматически генерируемых системой при первом использовании встроенных средств EFS. В процессе шифрования каталога или файла система EFS создает уникальный номер (FEK), который шифруется мастер-ключом. В свою очередь мастер-ключ шифруется пользовательским ключом. Что касается закрытого ключа пользователя, то он также защищается, но на этот раз хэшем пользовательского системного пароля.
Получается так, что открыть зашифрованные EFS-системой файлы можно только с помощью той учетной записи, в которой они были зашифрованы. Даже если жесткий диск с защищенными данными будет снят и подключен к другому компьютеру, прочитать их все равно не удастся. С другой стороны потеря пользователем пароля от своей учетной записи, повреждение или переустановка операционной системы приведет к недоступности ранее зашифрованных файлов. К счастью, разработчики Windows предусмотрели и такой сценарий, и предложили простое решение, а именно сохранение сертификатов шифрования на съемный носитель.
Никаких предварительных настроек шифрование с помощью EFS в Windows не требует. Допустим, нам нужно защитить папку с изображениями. В свойствах папки выбираем Другие

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

Жмем Применить и подтверждаем запрос на изменение атрибутов.

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

Как можно видеть из скриншота, текст названия папки Картинки вместо привычного черного стал зеленым, именно так в Windows маркируются защищенные EFS объекты.

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

Работа с зашифрованными файлами практически ничем не отличается от работы с прочими объектами файловой системы. Вы можете их просматривать, редактировать, копировать, удалять и прочее, при этом шифрование и дешифрование будет производиться на лету, незаметно для пользователя. Однако все эти действия будут доступны только для конкретной учетной записи . В принципе, таким образом зашифровать можно любой файл или папку за исключением системных. Более того, шифровать последние категорически не рекомендуется, так как это может привести к невозможности загрузки Windows.
Если вы шифруете данные впервые, система предложит создать резервную копию ключа и сертификата шифрования. Не стоит пренебрегать этим советом, ведь от случайного повреждения операционной системы или потери пароля учетной записи Windows никто не застрахован. Кликните по появившемуся в системном трее сообщению и откройте мастер резервного копирования сертификатов. Если сообщение не появится или вы случайно закроете окно мастера, получить к нему доступ можно будет через консоль mmc, правда при этом вам придется немного повозиться.
Итак, в окне мастера жмем Архивировать сейчас и четко следуем указаниям.

Настройки экспорта можно оставить без изменений (PKCS #12 .PFX).

Если желаете, можете включить расширенных свойств.

Как и положено, пароль задаем по возможности сложный.

Далее даем имя файлу сертификата и сохраняем его на заранее подключенный съемный носитель.

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

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