sonyps4.ru

Gpg4usb. Шифруем тексты и файлы

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

$ mkdir ~/.gnupg

$ scp eliot:~/.gnupg/* ~/.gnupg

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

$ gpg --import /home/ username /Desktop/pubring.gpg

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

Если ключи вам непосредственно не доступны, но вы знаете, что пользователи, чьи ключи вы хотите импортировать, загрузили их на сервер, вы всегда можете импортировать их оттуда. Например, предположим, вы хотите импортировать мой ключ. Во-первых, вам нужно найти идентификатор моего ключа. С помощью веб-браузера, перейдите по ссылке http://pgp.mit.edu на сервер открытых ключей MIT PGP Public Key Server и найдите там Скотта Граннемана (Scott Granneman ). Вы получите три результата, но обратите внимание на один, датированный от 08/08/2004, который выглядит следующим образом:

Type bits /keyID Date User ID

pub 1024D/6503F88C 2004/08/08 Scott Granneman

Scott Granneman (www.granneman.com)

Обратите внимание на идентификатор ключа, который имеет значение 6503F88C . С его помощью вы можете импортировать конкретный ключ с помощью следующей команды:

$ gpg --keyserver pgp.mit.edu --recv-keys 6503F88C

gpg: requesting key 6503F88C from hkp server pgp.mit.edu

gpg: key 6503F88C: public key "Scott Granneman " imported

gpg: Total number processed: 1

gpg: imported: 1

Практическая работа № 26 Шифрование средствами Windows ХР

1 Цель работы

Приобретение навыков работы с шифрованием средствами Windows ХР

2 Порядок выполнения работы

2. Выполнить на VM шифрование средствами Windows ХР

3. Оформите отчет, который должен содержать:

    титульный лист (см. приложение);

    постановку задачи;

Описание пошагового исполнения;

    отчет о полученном результате

3. Задания к работе.

Шифрование

Особенностью Windows 2000 является возможность шифровать файлы, храня­щиеся на жестком диске. Система кодирования файлов обеспечивает более высо­кий уровень защиты файлов от несанкционированного доступа, однако, прежде чем приступить к использованию этой системы, вы должны обладать понимани­ем принципов ее работы, в противном случае у вас могут возникнуть проблемы. Чтобы включить систему шифрования файлов, необходимо открыть страницу свойств файла или каталога, щелкнуть на кнопке Advanced (Другие) и устано­вить флажок Encrypt contents to secure data (Шифровать содержимое для защиты данных) (рис. 5.2.5).

Windows 2000 также поддерживает атрибут, позволяющий управлять службой индексирования.

Если для какого-либо каталога вы установили флажок Encrypt contents (Шифро­вать содержимое), значит, система будет шифровать все файлы, содержащиеся в этом каталоге. Для шифрования содержимого файла используется алгоритм за­крытого (секретного) ключа. В отличие от алгоритмов открытого ключа, алго­ритм закрытого ключа работает значительно быстрее, что делает его щшемле-мым для шифрования больших объемов информации. Однако при этом/алгоритм закрытого ключа подразумевает использование одного и того же ключа как для кодирования, так и для декодирования данных.^Этот единый ключ создается ав­томатически и должен храниться в секрете. Возникает вопрос: каким образом следует обеспечить надежные хранение и передачу этого ключа? В системах, ис­пользующих открытый ключ, проблема решается очень просто: для кодирования данных используется один ключ, а для декодирования - другой. Кодирующий ключ можно сделать доступным для всех, в то время как декодирующий ключ следует держать в секрете.

Разработчики NTFS решили проблему следующим образом: для кодирования со­держимого файла используется алгоритм закрытого ключа, а для хранения само­го секретного ключа используется алгоритм открытого ключа. Такую схему часто называют английским термином lockbox (шкатулка с замком). Секретный ключ кодируется с использованием открытого ключа пользователя. Чтобы декодиро­вать его, требуется знание закрытого ключа пользователя. Таким образом, файл большого размера кодируется с использованием эффективного быстрого алго­ритма секретного ключа, а для защиты самого секретного ключа (который обла­дает небольшим размером) используется более сложный и менее быстрый алго­ритм открытого ключа.

Для обмена открытыми ключами Windows 2000 использует сертификаты Х509. Спецификация Х509 предназначена для формирования и передачи через сеть ут­верждений вида: «Этот открытый ключ принадлежит этому субъекту и может ис­пользоваться для этих целей». Сертификат можно получить, обратившись в спе­циальный сертифицирующий орган (Certification Authority), который, выдавая сертификат, подписывает его при помощи цифровой подписи. Субъект, получив­ший сертификат, может быть уверенным в том, что этот сертификат действи­тельно содержит ключ, который можно использовать для шифрования той или иной информации, адресованной тому или иному пользователю (например, элек­тронного письма, адресованного пользователю John Doe). Эта уверенность бази­руется на том факте, что сертификат получен от сертифицирующего органа.

Чтобы просмотреть сертификаты, установленные для пользователей, необходи­мо загрузить оснастку Certificates (Сертификаты) консоли управления Microsoft.

Кодирующая файловая система EFS (Encrypting File System) работает незаметно для пользователей. Она получает сертификат Х509, авторизированный для EFS. Если пользователь не имеет сертификата, система EFS создает его.

Сертификат восстановления файлов

Подключившись к системе в качестве администратора и открыв консоль Certificates (Сертификаты), вы увидите, что этой учетной записи соответствует индивидуаль­ный сертификат, предназначенный для восстановления файлов. Копия этого сер­тификата также сохраняется в локальной политике безопасности. Открытый ключ из этого сертификата используется системой EFS для создания дополнительной шкатулки с замком (зашифрованной копии секретного ключа).

При помощи консоли Certificates (Сертификаты) вы можете экспортировать этот сертификат и закрытый ключ в файл (другими словами, создать резервную копию сертификата). После этого как сертификат, так и закрытый ключ можно удалить. Это означает, что если злоумышленник каким-либо образом сможет подключиться ||:1: к системе в качестве агента восстановления, он все равно не сможет расшифровать £:; какие-либо зашифрованные файлы, так как среди сертификатов будет отсутство­вать необходимый для расшифровки сертификат. Чтобы расшифровать какие-ли­бо файлы, необходимо вновь установить в системе необходимый сертификат. Если: вы намерены использовать описанную процедуру в целях повышения безопасно­сти (что особенно уместно в отношении контроллеров доменов), вы должны поза­ботиться о надежном сохранении экспортированных сертификатов.

Практическая работа № 27. Наиболее важные ключи реестра Windows, нуждающиеся в защите. Защита ульев SAM и SECURITY

Программное обеспечение

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

Предисловие

В последнее время очень остро стоит проблема сохранения конфиденциальности информации. Особенно в глобальной сети Интернет, где риск перехвата секретных данных весьма высок. В этой статье будет представлено описание работы пакета GnuPG (GNU Privacy Guard, GPG) вкупе с несколькими примерами применения.

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

Особенности GnuPG

Основные технические особенности GnuPG таковы:

  • полноценная альтернатива PGP;
  • не использует патентованные алгоритмы;
  • распространяется под лицензией GPL;
  • полная реализация OpenPGP (RFC4880);
  • расшифровывание и аутентификация сообщений, созданных с помощью PGP 5, 6 и 7;
  • поддержка электронной подписи с помощью алгоритмов ElGamal, DSA, RSA и хеш-функций MD5, SHA-1, RIPE-MD-160 и TIGER;
  • работа с асимметричным шифрованием ElGamal и RSA (длина ключа от 1024 до 4096 бит);
  • поддержка блочных алгоритмов симметричного шифрования AES, 3DES, Blowfish, Twofish, CAST5, а также IDEA с помощью модуля;
  • лёгкая реализация новых алгоритмов с помощью дополнительных модулей;
  • многоязыковая поддержка (в том числе и русского);
  • online-система помощи;
  • поддержка просроченных ключей и подписей;
  • встроенная поддержка HKP-серверов ключей.

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

GnuPG - исключительно консольная программа, но уже сейчас существует несколько графических оболочек для неё: Seahorse и , - которые упрощают работу с программой посредством интуитивно понятного графического интерфейса.

Работа с GnuPG

Первое взаимодействие с пакетом GnuPG начинается с генерирования ключей:

$ gpg --gen-key

Программа задаст несколько вопросов о длине ключей, имени и адресе электронной почты. Затем нужно будет ввести пароль для защиты ключа. Таким образом будет создана пара ключей, один из которых будет основным. Его стоит использовать для шифрования самых важных данных. Поскольку вероятность взлома есть всегда, основной ключ лучше использовать для подписи в крайних случаях. Также можно создать ещё несколько подключей, которым по усмотрению пользователя могут быть заданы другие алгоритмы шифрования, если не требуется повышенного уровня секретности данных. Такие подключи будут зависеть от основного и могут использоваться для шифрования документов или переписки. Другими словами, для каждого способа связи - свой ключ. У каждого из них есть срок использования (так же, как и у кредитных карт). Хорошим тоном является установка срока использования для подключей 1-2 года. GnuPG ведёт собственную базу, которая находится в файле ~/.gnupg/pubring.gpg. Туда и заносятся открытые (публичные) ключи ваших респондентов.

С помощью команды:

$ gpg --list-keys

можно просмотреть все ключи, находящиеся в базе. Будет выведен список ключей, показывающий их статус (pub - публичный, sub - второстепенный), длину и метод шифрования, дату создания и, главное, уникальный идентификатор (ID), представляющий собой 8-значное 16-ричное число.

Для основного ключа можно (и нужно) создать отзывающий сертификат:

$ gpg --gen-revoke $KEY

где $KEY - ID основного ключа.

Отзывающий сертификат нужен для уничтожения ключа. Это может потребоваться, например, если ключ будет украден или утерян. Даже если ключевая фраза очень надёжна, стоит заранее, еще на этапе создания ключа, подумать о возможности его уничтожения в будущем. После создания сертификата его содержимое будет выведено в stdout. Его нужно сохранить в надёжном месте (желательно на другом носителе или вообще в печатном виде), т.к. любой, завладевший этим сертификатом, может сделать ключ недействительным и удалить его из базы данных сервера открытых ключей (тогда никто не сможет получить ваш ключ). Такие базы данных хранят публичные ключи совершенно свободно. Это сделано для удобства обмена ключами: вам необязательно постоянно передавать ваш публичный ключ лично. Можно воспользоваться несколькими способами: разместить у себя на домашней странице, на портале, в котором есть поле для публичного ключа, либо воспользоваться более централизованной базой - копилкой ключей, из которой достать ваш ключ будет всегда удобно.

Чтобы использовать сертификат, нужно просто импортировать его в базу, как и любой открытый ключ:

$ gpg --import revoke-certificate.asc

а затем отправить на сервер:

$ gpg --send-keys $KEY

где $KEY - ID ключа, который будет отправлен.

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

$ gpg --import $FILE

где $FILE - файл ключа или keyring («связка», несколько ключей в одном файле).

После этого командой --sign-key $KEY (где $KEY - ID ключа респондента) нужно подписать желаемый ключ. При подписывании к нему добавляется ваш публичный ключ для того, чтобы ваши сообщения/письма могли идентифицировать другие. Затем нужно отправить подписанный вами ключ его владельцу:

$ gpg --export $KEY > userkey.gpg

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

Можно сделать то же самое в виде ASCII-текста, который легко разместить в Сети:

$ gpg -a --export $KEY > userkey.asc

где $KEY - ID ключа владельца.

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

Иногда может потребоваться хранить ваши ключи (публичные или приватные) на каком-либо носителе (например, на USB flash). Для этого нужно экспортировать ключ, что можно сделать как в бинарном виде:

$ gpg --export $KEY > mykey.gpg

Так и в текстовом (ASCII armor):

$ gpg -a --export $KEY > mykey.asc

В обоих случаях $KEY - это ID вашего ключа. Вместо -a можно также использовать --armor.

В итоге, для работы с документами доступны следующие команды:

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

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

Можно создавать так называемые «прозрачные» подписи (в которых будет незашифрованное содержимое документа + ваша цифровая подпись):

$ gpg --clearsign $DOC

где $DOC - путь к документу. Таким образом, будет создан файл $DOC.asc, в котором само содержание документа открыто и добавлена его цифровая подпись.

А подписи, находящиеся в отдельных файлах в бинарном виде (будет создан файл подписи $DOC.sig), создаются командами:

$ gpg --detach-sign $DOC

В текстовом (ASCII armor) виде (будет создан файл подписи $DOC.asc):

$ gpg -a --detach-sign $DOC

Такие подписи (в последних двух примерах) должны распространяться вместе с подписываемым документом.

Любой ключ также можно отредактировать командой `--edit-key’. Это позволит изменить некоторые параметры ключа: степень достоверности, если это чужой публичный ключ, секретную фразу, если это ваш приватный ключ, и другое.

Что касается степени достоверности, то в GnuPG существует 5 уровней:

  1. I don’t know or won’t say (я ничего не знаю о владельце этого ключа или не хочу говорить об этом);
  2. I do NOT trust (я не доверяю этому человеку);
  3. I trust marginally (я знаю этого человека и доверяю ему, но не уверен, что ключ принадлежит ему);
  4. I trust fully (я знаю этого человека и лично убедился в том, что ключ принадлежит ему);
  5. I trust ultimately (я знаю этого человека, у меня есть доступ к его секретному ключу).

GnuPG и Open Source

GnuPG существует практически в каждом дистрибутиве GNU/Linux, является обязательным пакетом в OpenBSD, NetBSD, FreeBSD и других свободных операционных системах. Множество Open Source-приложений поддерживают GnuPG посредством различных модулей. Например, gpgme (библиотека, являющаяся неким посредником между GnuPG и программами) используется следующими приложениями:

  • Почтовые клиенты Evolution (входит в состав GNOME) и Sylpheed .

    Бинарные дистрибутивы Linux также зачастую используют пакеты, подписанные GnuPG. Например, в случае с пакетами DEB - это Debian GNU/Linux и Ubuntu, а с RPM - Red Hat, Fedora, Mandriva и многие-многие другие.

    Итоги

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

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

  • GPG шифрование
  • История PGP / GPG шифрования
  • Термины GPG шифрования
  • Установка GPG шифрования
  • Шифрование сообщений и файлов
  • Подписи в GPG шифровании
  • Функция Web of Trust
  • Зачем нужно шифрование

GPG шифрование

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

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

История PGP / GPG шифрования

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

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

В 1999 был создан GPG - свободный, бесплатный, открытый и полностью совместимый со стандартом аналог PGP. Именно GPG стал самым популярным и зрелым инструментом асимметричного шифрования.

Термины GPG шифрования

Прежде чем приступить к использованию GPG, нужно понять несколько главных особенностей этого инструмента. Первая и основная особенность - это понятие «ключи». Каждый пользователь создает себе свой личный ключ. Ключ пользователя состоит из двух частей

  • Публичный ключ (из публичной части)
  • Секретный ключ (из секретной части)

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


GPG4USB

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

Как установить GPG шифрование

Для начала работы нужно установить сам GPG. Пользователи Linux могут поставить его из любого пакетного менеджера, поискав там « », или собрать вручную. Пользователи Windows могут воспользоваться сильно устаревшим клиентом , который имеет несколько неприятных багов и больше функций, или портативным и более свежим клиентом , который имеет меньше функций, но намного проще и стабильнее. Кстати, мы уже писали о том как с помощью клиента GPG4USB .


Независимо от операционной системы и клиента, после установки нужно будет создать свой ключ, введя в терминале или кликнув в клиенте соответствующую команду. Программа попросит определиться с алгоритмом шифрования. Обычно их два - это RSA и ELGamal (на самом деле три, если на Linux Вы отважились поставить экспериментальную ветку «modern» с криптографией на эллиптических кривых). Конкретных рекомендаций по алгоритмам нет, они разные и каждый выбирает себе схему по нраву.

Затем необходимо определиться с размером ключа в битах. Здесь тоже нет короткого и однозначного ответа. У слишком длинных ключей есть и недостатки. Одно можно сказать с уверенностью: при выборе RSA и ELGamal не используйте ключи меньше 2048 бит, они крайне не безопасны. Далее программа попросит заполнить несколько форм: E-mail, Имя и комментарий. E-mail и Имя - это публичная информация, которую сможет увидеть каждый, с кем вы будете переписываться.

В качестве почты можно указать другие виды связи, например ID какого-либо сервиса или мессенджера ( , Jabber, и т. д.), разделив знаком «@» сам идентификатор/адрес и название сервиса. Чаще всего содержание именно этого поля используется для идентификации владельца ключа.

Имя выбирать по своему усмотрению. Например, часто используемый ник или вообще «Anonymous».

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

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

Сгенерировав свой GPG-ключ, можно начать его распространять. Для этого надо ввести команду отображения публичной части. Исторически сложилось так, что программа изначально применялась для шифрования почты и подписи публичных сообщений в почтовых рассылках, поэтому ключи отображаются по принципу формата РЕМ (англ. «Privacy­Enhanced Mail»). Формат представляет собой единый стандартный блок ключа, начинающийся заголовком — BEGIN PGP PUBLIC KEY BLOCK­­­ —, за ним следует достаточно длинное тело самого ключа, кодированное цифрами и латинским алфавитом, и завершающий заголовок — ­­­­END PGP PUBLIC KEY BLOCK­­­­ —. Весь блок с заголовками представляет собой ключ GPG, его и нужно распространять целиком. Помимо ручного распространения ключей, возможно использовать специализированные сервера. Пользователь загружает свой публичный ключ на сервер, и при необходимости любой может запросить его. Во многих программах в качестве сервера по умолчанию часто указывают сервер MIT.

Каждый GPG-ключ уникален. Запоминать и сравнивать такие большие блоки ключей вручную невозможно, поэтому для этого существуют отпечатки ключей. Каждый отпечаток ключа тоже уникален, формируется из публичной части, предоставляя короткую уникальную строку для идентификации. В строке отпечатка содержится 40 символов с разделением на 4 символа пробелами. Важно знать, что последние 8 или 16 символов являются еще и ID ключа. При использовании команд из терминала надо будет указывать ID для работы. Отпечатки удобны для быстрого сравнения двух ключей, или короткого указателя нужного ключа при нехватке места.

Шифрование сообщений и файлов

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

Подписи в GPG

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

Подписи тоже можно применять на файлах. Особенно часто эта функция применяется разработчиками ПО, связанного с безопасностью. Делается это для того, чтобы предотвратить подмену файлов злоумышленниками, которые могут встроить в программы вредоносный код. Подписываются обычно архивы или сборки, сама подпись сохраняется в отдельный файл с расширением.asc или.sig. Ключ публикуется в нескольких местах и/или загружается на сервер, где его очень трудно подменить. Сам процесс проверки называется «верификация подписи».

Функция Web of Trust

Еще одна функция GPG, которую стоит упомянуть - это Web of Trust. Она используется для подтверждения принадлежности публичного ключа конкретному человеку. Для этого знакомые друг с другом пользователи GPG обмениваются ключами при личной встрече.

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

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

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

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

Зачем нужно шифрование

Зачем вообще нужно все это шифрование, если человек ничего не скрывает и не нарушает? Это один из самых часто задаваемых вопросов. На него есть несколько ответов. За последние годы возможность тотальной слежки за сетевой деятельностью миллионов пользователей стала уже вопросом не технической сложности, а ресурсов. Обладатели таких ресурсов - все спецслужбы мира и десятки крупных корпораций, с помощью таких программ как PRISM и X­Keyscore могут собирать и хранить годами все письма электронной почты, SMS-сообщения и историю звонков.

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

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

Оценка GPG шифрования

Наша оценка

GPG шифрование - это отличный инструмент для шифрования электронной почты и цифровых материалов.

Оценка пользователей: 4.41 (27 оценок)

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

В операционной системе Linux есть замечательный инструмент с открытым исходным кодом для шифрования файлов - GNU Privacy Guard или просто GPG, который может быть использован для шифрования любого файла из командной строки или в графическом режиме. О нем и пойдет речь в сегодняшней статье.

Перед тем как перейти к использованию утилиты, давайте рассмотрим ее синтаксис:

$ gpg опции файл параметры

Опции указывает что необходимо сделать с файлом, как это сделать и какие возможности использовать. Давайте рассмотрим самые основные опции, которые мы будем использовать в этой статье:

  • -h - вывести справку по утилите;
  • -s, --sign - создать цифровую подпись, эта опция используется вместе с другими опциями для шифрования;
  • --clearsign - подписать незашифрованный текст;
  • -e, --encrypt - зашифровать данные, с помощью ключа;
  • -с, --symmetric - зашифровать данные, с помощью пароля;
  • -d, --decrypt - расшифровать данные, зашифрованные с помощью ключа или пароля;
  • --verify - проверить подпись;
  • -k, --list-keys - вывести доступные ключи;
  • --list-sigs - вывести доступные подписи;
  • --fingerprint - вывести все ключи вместе с их отпечатками;
  • --delete-key - удалить ключ;
  • --delete-secret-key - удалить секретный ключ;
  • --export - экспортировать все ключи;
  • --export-secret-keys - экспортировать все секретные ключи;
  • --import - импортировать ключи;
  • --send-keys - отправить ключи на сервер, должен быть указан сервер ключей;
  • --recv-keys - получить ключи от сервера ключей;
  • --keyserver - указать сервер ключей;
  • --fetch-keys - скачать ключи;
  • --gen-key - создать ключ;
  • --sign-key - подписать ключ;
  • --passwd - изменить пароль для ключа.

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

Шифрование файлов с помощью пароля

Симметричный шифр - самый простой и в то же время надежный способ шифрования файлов linux. Расшифровать файл сможет любой у кого есть пароль. Для использования просто запустите терминал и выполните команду gpg с параметром -c:

gpg -c имя файла

Утилита создаст файл с расширением gpg. Для расшифровки используйте:

gpg имя_файла.gpg

Шифрование с использованием ключей

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

Сначала необходимо настроить gpg, создать пару ключей, для этого наберите:

Программа задаст ряд вопросов для настройки ключа:

Выберите требуемый тип ключа.

Выберите нужный размер для ключа, обычно 2048 будет достаточно.

Выберите строк действия для ключа.

Проверьте все ли правильно.

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

Введите ваш email адрес.

Описание ключа, если нужно.

Финальная проверка, затем нажмите O для завершения.

Процесс генерации может занять некоторое время. Когда все будет готово в каталоге ~./gnupg появятся два файла. В файле pubring.gpg публичный ключ, а в secring.gpg приватный.

Также вы можете посмотреть список доступных ключей:

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

gpg -a -o gpgkey.asc --export имя_ключа

Затем передаем файл на целевое устройство и импортируем ключ:

gpg --import gpgkey.asc

После импорта ключа уровень доверия к нему по умолчанию будет неизвестным поэтому при каждом шифровании gpg будет спрашивать действительно ли вы доверяете этому ключу. Чтобы этого избежать нужно указать уровень доверия. Для этого воспользуйтесь редактором ключей:

gpg --edit-key Username

Для выбора уровня доверия введите команду trust:

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

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

gpg -e -r ид_пользователя имя_файла

Ид пользователя нужно указывать тот что вы использовали при создании ключа. Для расшифровки используйте:

gpg -d имя_файла.gpg

Для каталогов действия аналогичны только сначала нужно создать архив с помощью tar:

tar -cf - каталог | gpg -e -r ид_пользователя

А для расшифровки:

gpg -d каталог.gpg | tar -xvf

Подписи и шифрование

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

Вы можете подписать файл с помощью опции --sign:

gpg --sign имя_файла

Если вы не хотите изменить исходный файл, то можно создать подпись в отдельном файле:

gpg -b имя_файла



Загрузка...