The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

gpg - шифрование для всех платформ (pgp gnupg crypt)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: pgp, gnupg, crypt,  (найти похожие документы)
From: Антон Прошанин <anton@letras.ru.> Newsgroups: email Date: Mon, 29 Jun 2008 17:02:14 +0000 (UTC) Subject: gpg - шифрование для всех платформ Если у вас возникла необходимость зашифровывать файлы на линуксе, а расшифровывать на Windows, или наоборот, вам нужно найти программу для шифрования, которая работала бы на обеих системах. Стандарной программой для шифрования на линуксе является PGP - Pretty Good Privacy. Она бесплатна для частных лиц, но для использования её в коммерческих целях требуется лицензия. Полностью открытый аналог этой программы GnuPG - Gnu Privacy Guard - делает то же самое, но абсолютно бесплатно, поэтому ею я и рекомендую пользоваться. Для gpg существуют графические фронт-енды, которые существенно облегчают жизнь новичкам, но поскольку мы собираемся работать и на линуксе, то мы будем разбираться с оригинальной версией программы, которая запускается с коммандной строки. Возможно, что gpg уже установлен на вашей линукс машине. Чтобы это проверить, запустите следующую комманду gpg --version. Если программа не установлена, установите её, используя менеджер пакетов, например для Дебиана: apt-get install gpg. Дистрибутив для Windows можно скачать отсюда (2.1 Мб). Для удобства добавьте директорию, в которой после установки находится файл gpg.exe в системный путь/PATH. Симметричное шифрование Обычная ситуация, когда у вас есть секретный пароль, который вы используете, для того чтобы зашифровать и расшифровать файл, называется симметричным шифрованием. Им пользоваться проще всего. Зашифровать файл: gpg -c filename Расшифровать файл: gpg --decrypt-files filename.gpg В обоих случаях программа попросит вас ввести пароль. К названию зашифрованного файла добавляется расширение .gpg . Ассиметричное шифрование Ассиметричное шифрование сложнее, но именно им обычно и пользуются, когда работают с gpg. Слабым моментом симметричного шифрования является то, что когда вы посылаете зашифрованный файл, вам надо каким-то образом передать получателю и секретный пароль. Как это сделать? Опять шифровать? А что делать с паролем, которым вы зашифруете пароль? :) Ассиметричное шифрование решает эту проблему весьма элегантным образом. Вместо одного пароля вы используете два. Один - публичный, который вы активно раздаёте всем желающим, второй - ваш личный секретный пароль, который знаете только вы. Когда вам хотят послать что-нибудь глубоко секретное, посылатель шифрует это посредством публичного пароля. А вы уже со своей стороны расшифровываете полученный файл своим личным паролем. Ваш секретный пароль при этом никуда не передаётся и не может попасть в чужие руки. Перечитайте предыдущий параграф ещё раз, ибо мне не хочется приводить примеров про чуждых нашему сердцу Боба и Алис, которые обмениваются между собой секретными посланиями. Есть два пароля: один для всех, другой для себя. Когда что-то шифруют для вас, используют пароль, открытый для всех. Когда вам надо расшифровать файл, вы используете тот пароль, который "для себя". В этом-то, собственно, и состоит ассиметричность, от которой происходит название метода. Пароли и ключи Итак, вам нужна пара паролей, или как их ещё называют, ключей. Одним паролем шифруют, другим расшифровывают. Они создаются автоматически, поэтому если вы надеетесь увидеть что-нибудь читаемое и легко запоминающееся, вынужден вас огорчить. Ключи - скорее куски текста, содержащие набор символов. Мой публичный ключ, например, выглядит вот так. Поскольку запомнить это обычному человеку невозможно, а при общении со многими людьми приходится использовать большое количество публичных ключей для каждого из них, встаёт вопрос: как все эти ключи хранить. Так вот, ключи хранятся в специальной копилке, добавлять и удалять их оттуда можно с помощью программы - вы угадали - gpg. Создавать ключи, впрочем, тоже. Именно этим мы сейчас и займёмся. Создание пары ключей Чтобы создать свою собственную пару ключей запустите следующую комманду: gpg --gen-key. Программа предлагает разумные параметры по умолчанию, так что на данном этапе не вдавайтесь в тонкости криптографии, соглашайтесь с тем, что предлагает gpg, укажите только своё имя и емайл. Когда программа сообщит, что она хочет создать случайный набор байтов, вам надо изобразить на компьютере бурную активность: откройте браузер, посетите пару сайтов, бессмысленно поводите мышкой, напечатайте что-нибудь, послушайте mp3 файл. Созданные ключи не сохраняются в файл, а попадают в копилку ключей. Убедиться в этом можно набрав комманду gpg --list-keys. Ключ, который я только что создал показывается так: pub 1024D/0443FB22 2008-06-02 uid Anton Proshanin sub 2048g/5F28F4F0 2008-06-02 0443FB22 в первой строчке, это id ключа. Если вы впоследствии захотите обратиться к ключу в коллекции, то вам придётся указать либо его id, либо какую-нибудь часть записи, которая позволит эго однозначно идентифицировать. Экспорт и импорт ключей Давайте теперь экспортируем только что созданный ключ в текстовый файл. После этого вы можете его разместить на своём вебсайте, или разослать своим друзьям, и начинать обмениваться всякими секретами. Следующая комманда экспортирует публичный ключ: gpg --output mygpgkey_pub.txt --armor --export 0443FB22 mygpgkey_pub.txt - название файла, куда будет сохранён ключ; --armor значит, что файл будет текстовым (по умолчанию создаётся бинарный). Откройте файл в текстовом редакторе, у вас должно получиться нечто примерно такое. (Да, да - это тот самый ключ, который вы уже видели). Вместо id можно использовать имя или емайл как полностью так и частично. Например, комманды gpg --output mygpgkey_pub.txt --armor --export Anton или gpg --output mygpgkey_pub.txt --armor --export [email protected] делают то же самое. Если вам нужно перенести свой личный ключ на другой компьютер - скажем, чтобы использовать тот же самый ключ на нескольких машинах, сделать это можно так: gpg --output mygpgkey_sec.txt --armor --export-secret-key Anton Вот здесь, например, находится мой секретный ключ. Чтобы импортировать ключи используйте следующие комманды: gpg --import mygpgkey_pub.txt gpg --allow-secret-key-import --import mygpgkey_sec.txt Вопрос: ваш приятель прислал вам свой публичный ключ. Как его добавить в коллекцию ключей на вашей машине? Если вы читали внимательно, вы скажете: gpg --import filename.txt, и будете правы, но чтобы пользоваться ключoм, вам ещё специфически надо указать, что вы доверяете владельцу этого ключа. Найдите ключ, который вы импортировали (gpg --list-keys). Дальше наберите gpg --edit-key Anton (используйте имя владельца, или ид ключа). Откроется незатейливый шелл клиент для редактирования ключа, куда вы сможете вбивать разные комманды. Напишите trust Enter;, из списка выберите "5 = I trust ultimately", написав 5 Enter . Потом quit Enter, чтобы выйти. Вот теперь уже импортированным ключом можно пользоваться. Шифрование Ну наконец-то мы и добрались до самого главного. Шифруем! gpg --recipient Anton --encrypt filename --recipient - для кого шифруем (id публичного ключа, имя или емайл адрес, которые позволяют выбрать ключ из копилки). По умолчанию к filename добавляется расширение .gpg. Если вы хотите задать другое имя файла, добавьте к комманде --output another_filename.gpg. В результате файл будет зашифрован. В обычной ситуации никто, кроме получателя, не сможет его расшифровать, даже вы сами. Но сейчас мы просто тестируем и вы одновременно являетесь и получателем и отправителем, так что теперь вы можете расшифровать файл, используя следующую комманду: gpg --decrypt-files filename.gpg Обратите внимание, что это не --decrypt, а --decrypt-files. Просто --decrypt печатает результат в окно, где бежит ваша коммандная строка, а это не то, что вы хотите. Gpg спросит ещё ваш секретный пароль, который вы указали, когда создавали ключ. (Секретный ключ сам зашифрован этим паролем - Уфф!) Если вам удалось расшифровать этот файл, то вы можете с гордостью сказать, что вы умеете пользоваться ассиметричным шифрованием. Слова pgp и gpg не должны у вас больше вызывать священного трепета. Если вам придётся создавать ключи для других программ: например, Apache или Exim'a, вы уже знаете что при этом на самом деле происходит. Оригинал статьи находится здесь: http://letras.ru/2008/06/gpg-crossplatform-encryption/

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, prapor (??), 18:23, 30/06/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то неудачно написано. Теоретическая часть малость отдает дилетантизмом.
     
     
  • 2.2, fresco (??), 12:47, 01/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    теоретической части тут, вроде бы, совсем нет.
    и не надо, не для этого статья
     
  • 2.3, Игорь (??), 11:58, 05/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нормально всё написано, просто и довольно лаконично, без Боба и Алис :) Автору спасибо.
     

  • 1.4, fAngel (?), 17:35, 01/08/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    спасибо большое за статью, очень хорошо написано, главное именно то что надо!!!
     
  • 1.5, Boris (??), 13:53, 17/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    присоединяюсь, спасибо
     
  • 1.6, Sergiy (??), 00:36, 18/12/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё б пару слов про revoke, а так статья ЧТО НАДО!
    Спасибо!!!
     
  • 1.7, Bob (??), 21:18, 13/08/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо! Как это вы без меня обошлись?
    Боб
     
  • 1.8, илья (??), 14:21, 25/04/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Статья уже не раз помогала т.к gpg использую редко. Спасибо!
     
  • 1.9, Dmitriy (??), 12:02, 04/04/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо!
    Сжато, кратко, доступно.
     
  • 1.10, CSRedRat (ok), 09:38, 08/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Старые ссылки устарели!
     
  • 1.11, Artem Kastanello (?), 20:12, 06/05/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличная статья, автору огромное спасибо!
     
  • 1.12, rafaello (ok), 19:22, 15/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот мне надо написать скрипт, который будет работать
    по крону, автоматически. Шифровать там буду симметрично.
    Какую команду прописать в этом скрипте, что скрипт сам вводил автоматически
    секретное слово passphrase ?
     
  • 1.13, Георгий (??), 09:44, 12/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    BEGIN PGP MESSAGE-----

    wcBMA/59N1c7jO3xAQgAsWTNCKXSWSHN+5bJczAiAgvdllF0TkU7X7hP8GKorC2M
    I3dw5MimHTZLMR5o8+AdUtGMiGF6yEfNoNQwvwIA9C2zK5xY8iiJuybma+W0pwAm
    3o8cKGYaCsYGMiwUuUs3XZV7ts7QRZUvUrG8fpVMFuSPVMxsGQqb5u908h39Kq6r
    MAbUji6i3w/BLij8764pj6I7bDFs9LC/MHB1LXXEskv0HBmt2cx6kTb64S/VnK1Z
    b/3MT/DHhU1ELFP1M5m6S4/6/eW5MXerOofk+USkpkwXehUKJDghKFzFnqWGMi5/
    DoP3OLdLvNBZwN6T4vU801ZupLLIvSPwFfnVcoovpNLgAeRKZirFMNElhsvNlG6N
    vncV4VFA4GrgT+HICeBc4uAPSdLg8ua6a8AJMdwUx4Eg0M3myAjqofoAJhIVeDqj
    wuM0hEMy4AY2lAHYsSeQ7famBhHLOPQxtzSTYg5x/5pQlG0YN5Pc4Mjl3xwwyoXt
    OULs4pNIMnId0mdK5S8Ulko+CwPEJnKLlEXgBeS7ojTKterSkFnOzbSmLpU64Bzj
    P8ICOi5roVTgYuI+Ts4A4BzkB8jC9ReKqRN1wKsm/b5XoeK6agWV4fglAA==
    =fn7B
    -----END PGP MESSAGE-----

     
  • 1.14, Сана618 (?), 23:37, 11/06/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Помогите расшифровать текст .Не получается подружиться с этой программой для расшифровки ,кому не сложно ,что тут написано
    -----BEGIN PGP MESSAGE-----

    wcBMAyRhjGkKTOBCAQgALjfaHrNyAiwu0sfBVaL28njKHt+FLkwVt6UqEKGYI6cr
    eE46MRbLTE6k6eWl1oX5YEFaRjeVc0Yuww55mIQM9F3dWxtYjSBQOURu6dhNzvhE
    Dsu2x8NCtiFEzODJn8l0/dNGeYjqi0XDfulCKdWDKO+uP2FNgz65c8QatGG3/E5e
    ci1cajcZpCMwGmYpKqYUwtZfBtUGNNQXPC0wDD1peXzZ8PTJ4wWsC2jKFLcf7rsl
    gGj3aW3HH2g49Fdt5N6Gct2fM98tvh0qKZxTdbQgpcgAMyMceF+0m1Zg0uMK7KaQ
    seaccWKlrtshVOFnbWxWXlVB231aiPLHXn5uqt9NHtLgAeQGvHnXxQ5RBHhkSFKP
    uHMd4SHE4Dvgm+HsCuBx4nJxdhTgo+egtFw4n6mWm0bZ39G6FO7TxIhSKdMRsodi
    MNttn8nG6WkZVGYedNpSB5FbuueOzCFEeVc8bpkjo6goqX30M5bM82JDw9Mc/kEX
    vwVvFg+8rrhy6txGomt1Wn/ddCuuaEoEZUIpTbifwV0h/j8fY+/CFyfkIGcOrsr8
    QIiFXYqCC+Cn4uMTbFTgRuExRuCO5P/+8648Gjuc9T8ArrNU6ALiJal7aOGRgQA=
    =r5Ab
    -----END PGP MESSAGE-----

     
  • 1.15, Anonim (??), 00:33, 02/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Статья весьма поверхностная и не учитывает многие возникающие вопросы.
    Например, абзац:

    "Когда программа сообщит, что она хочет создать случайный набор байтов, вам надо изобразить на компьютере бурную активность: откройте браузер, посетите пару сайтов,  бессмысленно поводите мышкой, напечатайте что-нибудь, послушайте mp3 файл."

    Ну допустил, изобразил эту бурную деятельность - а дальше-то что?
    Если продолжать эту деятельность долго, то генерация ключей закачивается ошибкой:

    ^[gpg: agent_genkey failed: Лимит времени
    Key generation failed: Лимит времени

    Если прервать ее по Ctrl-C, то тоже ничего хорошего -

    ^C                      
    gpg: signal Interrupt caught ... exiting

    И в первом, и во воторм случае ключи не созданы.

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

    И это еще не все.

     
  • 1.16, Anonim (??), 01:51, 02/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    При запуске команды



      gpg --gen-key

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

    Но никаких вопросов, кроме имени и email, она не задает.
    Так что и тут недоговорки.

     
     
  • 2.21, dolf1212 (?), 19:07, 23/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    --full-generate-key
     

  • 1.17, Anonim (??), 01:59, 02/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Команда

    gpg --list-keys

    по мнению автора, должна отображать следующую информацию:

            pub   1024D/0443FB22 2008-06-02
            uid                  Anton Proshanin
            sub   2048g/5F28F4F0 2008-06-02

    На самом деле она показывает несколько иное.

    Из-за этих неясностей на этом и остановился.

    Использую GPG версии 2.1.18.

    Да, можно предположить, что авторская статья с момента ее публикации существенно устарела и не соотвествует новым версиям GPG.

    Но зачем тогда держать на opennet.ru такой нафталиновый хлам?
    Да и не только на opennet, все статьи, которые удалось найти на сайтах, не соответствует реальной работе GPG.

    Неужели здесь некому выложить для GPG актуальную статью по ее использованию?

     
  • 1.18, Anonim (??), 07:31, 03/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кое-как удалось "протолкнуть" генерацию ключей.
    Однако странное дело - используемая версия GPG 2.1.18 не спрашивает ни тип ключа, ни его длину, ни время жизни.

    В то же время более старая версия 2.0.14 все это позволяет.

    И это называется "обновили и улучшили" версию??

     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру