LINUX-BG Адрес : http://www.linux-bg.org |
Наръчник за използване на GnuPG (Част I) |
От: Пейо Попов Публикувана на: 23-02-2004 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=programs&key=359187434 |
За този документТози документ е превод на първа глава от The GNU Privacy Handbook. Преводът е част от проекта за защита на неприкосновеността на личната информация и има за цел да създаде достъпно и разбираемо за всеки ръководство за използване на GnuPG.
За GnuPGGnuPG е средство за осигуряване сигурност в комуникациите. Тази глава се опитва да даде бърза представа за основните възможности на GnuPG. Това включва създаването на двойка ключове, обмена и подписването на ключовете, шифрирането и дешифрирането на документи, и удостоверяване на автентичността на документи, чрез цифровото им подписване. Тук няма да навлизаме в подробности за същността на криптографията с публичен ключ, криптирането и електронното подписване. Тези въпроси са засегнати в Глава 2. Няма също да се спираме на това как е най-добре да се ползва GnuPG. Това е предмет на Глава 3 и 4.GnuPG използва криптография с публичен ключ, която позволява на потребителите да осъществяват сигурна комуникация. В криптографията с публичен ключ, всеки потребител притежава двойка ключове, състояща се от частен и публичен ключ. Частният ключ се пази в тайна и никога не трябва да бъде разкриван. Публичният ключ може да бъде даван на всеки, с който потребителя желае да комуникира. GnuPG изпозва малко по-усложнена схема, при която потребителя има основна (първична) двойка ключове и нула или повече допълнителни и подчинени на първата двойки ключове. Първичната и допълнителните двойки ключове са обединени, за да улесняват управлението на ключовете и те могат да се приемат за една двойка ключове. Създаване на нова двойка ключовеОпцията --gen-key се използва за създаването на нова първична двойка ключове.
GnuPG има възможност да създаде няколко различни типа двойки ключове, но преди всичко първичния ключ трябва да има възможност да подписва. Поради тази причина съществуват само три възможности. Първата практически създава две двойки ключове. Двойката ключове използващи DSA алгоритъма е основна двойка, с която може единствено да се подписва. Вторичната двойката ключове използващи ElGamal алгоритъма се създава, за да се шифрира информация. Втората възможност е сходна на първата, но при нея се създава само DSA двойка. Възможността под номер пет служи за създаване на двойка ключове по алгоритъма RSA, с чиято помощ може само да подписваме цифрово. За повечето потребители подразбиращата се опция (1) е това, което им е нужно. Размерът на DSA ключа трябва да бъде между 512 и 1024 бита, а размера на ElGamal ключовете може да бъде произволен. GnuPG, обаче, изисква ключовете да не бъдат по-малки от 768 бита. Затова, ако изберем първата възможност DSA ключа ще бъде 1024 бита дълъг и ще бъде представена възможност за избор на дължината на ElGamal ключа.
Най-накрая, трябва да бъде избрана датата на която ще изтече валидността на ключа. Ако сте избрали първата възможност и DSA и ElGamal ключовете ще изтекат на една и съща дата.
За повечето потребители е подходящ ключ, който няма срок на валидност. Датата на изтичане на валидност на ключа, трябва да бъде грижливо избрана, защото въпреки че тя може да бъде променена в последствие, ще е трудно да уведомим за това всички, които го притежават. За да бъде свързана двойката ключове с вас трябва да въвете потребителски идентификатор.
Само един потребителски идентификатор се създава при създаването на двойката ключове, но е възможно в последствие да се създават и допълнителни идентификатори, ако желаете да ползвате ключа в една или повече социални роли. Примерно като служител на дадена фирма и политически активист от друга страна. Потребителския идентификатор трябва точно да бъде избран внимателно, защото след като е създаден веднъж, той не може да бъде променян. Следващата стъпка е да изберем парола, с която GnuPG ще защити създадените двойки ключове.
Няма ограничения за дължината на паролата и тя трябва да бъде внимателно избрана. От гледна точка на сигурността, паролата за криптиране на частните ключове е една от най-уязвимите точки в GnuPG (и другите системи базирани на асиметрично криптиране), защото тя е единствената преграда между вашия частен ключ и вероятния злонамерен човек, целящ да се добере до частния ви ключ. В най-добрия вариант паролата не трябва да използва думи, които се срещат в речник и трябва да съчетава възможно най-много типове символи. Изборът на добра парола е критичен за сигурността на GnuPG. Създаване на отменящ сертификатСлед като създадете вашата двойка ключове, вие незабавно трябва да създадете и отменящ сертификат за първичния публичен ключ чрез опцията: --gen-revoke. Ако забравите вашата парола или вашия частен ключ е загубен или компроментиран отменящият сертификат служи, за да бъдат уведомени останалите, че този публичен ключ не трябва да се използва повече. Отмененият публичен ключ все още може да се използва за проверка на подписи направени в миналото, но не може да се използва, за да се криптират бъдещи съобщения към вас. Отмяната на публичния ключ не влияе на възможността ви да дешифрирате съобщения, които ви са изпратени.
Аргументът mykey трябва да бъде идентификатор на ключ. Той може да е ID номера на вашата основна двойка или всяка част от вашия потребителски идентификатор, която може да идентифицира тази двойка. Генерираният сертификат ще се намира в revoke.asc. Ако не използваме --output опцията резултатът от командата ще бъде изпратен към стандартния изход. Тъй като сертификатът не е много дълъг, вие може да го отпечатате и да го запазите някъде на сигурно място. Сертификатът не трябва да бъде съхраняван, някъде където други може да го достъпят, защото по този начин всеки може да го публикува и да направи вашия публичен ключ неизползваем. Обмен на ключовеЗа да осъществите сигурна комуникация с други, вие трябва да размените своите публични ключове. Може да получите списък на ключовете във вашето хранилище чрез опцията --list-keys.
Извличане на публичния ключЗа да изпратите вашия публичен ключ, на ваш кореспондент, вие трябва първо да го извлечете. За това се използва опцията --export Тя има нужда от допълнителен аргумент, който идентифицира публичния ключ, който се извлича. Както и при --gen-revoke опцията, може да въведете номер на ключ или друга идентифицираща ключа информация.
По този начин ключът ще бъде съхранен в двоичен формат и това може да го направи неудобен за изпращане в емайл съобщение или за публикуване на уеб страница. За да бъде избегнато това неудобство се използва опцията --armor[2] която преобразува резултата в набор от ASCII символи. --armor option.
Добавяне на публичен ключЗа добавяне на публичен ключ се използва --import опцията.
След като ключът е добавен вие трябва да прецените доколко вярвате на този ключ. GnuPG използва мощен и гъвкав модел на доверието,който не изисква вие да вземете отношение към всеки ключ, който добавяте. Някои ключове, обаче, трябва да получат вашето лично доверие. Ключът се подписва (валидира) след като се провери отпечатъка (fingerprint) му. Отпечатъка на ключа може да се види с опцията --fingerprint ,но за да подпишете (да се доверите) на ключа вие трябва да го редактирате.
Отпечатъкът на ключа е хеш сума на самия ключ и отпечатъка на ключа, който сте добавили трябва да бъде сравнен с този, който сте получили от собственика на ключа. Това може да стане лично или по телефона или по какъвто и да е друг начин докато вие може да сте сигурни, че комуникирате с истинския собственик на ключа. Ако отпечатъка, който вие сте получили, съвпада с този, който ви е дал собственика на ключа, то вие може да сте сигурни, че притежавате правилното копие на ключа. След като проверите отпечатъка, вие може да подпишете ключа. Тъй като подписването на ключа е едно от слабите места в криптографията с публичен ключ вие трябва да сте изключително внимателен и винаги да проверявате отпечатъка на ключа преди да го подпишете.
Веднъж подписали ключа вие може да проверите другите подписи и да видиде вашия подпис. Всеки потребителски идентификатор ще има един или повече подписа на своите ключове, както и подписи от страна на всеки потребител, който е подписал ключа.
Шифриране и дешифриране на документиИ публичния и частния ключ имат своята роля при шифрирането и дешифрирането на документи. За публичния ключ може да се мисли като за отворен сейф. Когато ваш кореспондент шифрира за вашия публичен ключ той все едно поставя документа в сейфа и го затваря. За да бъде отворен сейфа е нужен вашия частен ключ и по този начин се гарантира, че вие сте единственият, който може да достъпи информацията. Казано накратко, само човекът, който притежава частния ключ, може да дешифрира документ, който е шифриран с комплементарния му публичен ключ. Процедурата по шифриране и дешифриране е лесна следвайки този мисловен модел. Ако вие искате да шифрирате съобщение за Алис, вие трябва да го шифрирате с публичния й ключ и тя ще може да го дешифрира чрез нейния частен ключ. Ако Алис иска да ви прати съобщение, тя го шифрира използвайки вашия публичен ключ и след като го получите вие ще може да го дешифрирате с вашия частен ключ. За да шифрирате документ използвате опцията --encrypt Вие трябва да имате публичния ключ на получателя на съобщението си. GnuPG очаква името на документа, който ще шифрира, ако не го намери там очаква съдържанието му от стандартния вход Шифрираното съдържание ще бъде изпратено към стандартния изход, освен ако не бъде използвана опцията --output. Документът също е компресиран за допълнителна сигурност.
Опцията --recipient се използва за всеки получател като се указва и публичния ключ, който ще се ползва за шифрирането. Изпратения документ може да се дешифрира само от някой с частен ключ, който е от същата двойка, с чийто публичен ключ е шифрирано съобщението. Вие не можете да дешифрирате документ, шифриран от вас, освен ако не сте го шифрирали и за вашия публичен ключ. За дешифриране се използва --decrypt опцията. Трябва да имате частния ключ, за който съобщението е било шифрирано. Подобно на процеса на шифриране, документът за дешифиране е вход, а изхода е дешифрирания текст.
Документите също може да бъдат шифрирани и без използването на криптография с публичен ключ. Вместо това се използва симетричен шифър. Ключът се получава от паролата, която задавате при шифрирането. С оглед на осигуряване на по-голяма сигурност, тази парола трябва да е различна от тази, с която сте защитили своя частен ключ. Симетричното шифриране е полезно, когато паролата не трябва да се съобщава на други. Можем да шифрираме документ с помоща на симетричен шифър с --symmetric опцията.
Създаване и проверка на подписиЦифровия подпис удостоверява съдържанието и времето на създаване/промяна на документа. Ако документът бъде модифициран в последствие, проверката на подписа ще го покаже. Цифровият подпис може да изпълни същата роля като саморъчния подпис с допълнителното предимство, че е устойчив на подправяне. Примерно изходния код на GnuPG е подписан и така потребителите могат да са сигурни, че той не е променян след като е бил подписан от разработчиците. Създаването и проверката на подписи използва двойката ключове за операция различна от шифриране и дешифриране. Електронния подпис се създава, като се ползва частният ключ на подписващия. Подписа се проверява чрез кореспондиращия му публичен ключ. Примерно Алис би могла да използва нейния частен ключ, за да подпише цифрово нейната последна публикация в списание посветено на неорганичната химия. Редакторът на списанието ще използва публичния ключ на Алис, за да провери дали наистина тази публикация идва от нея и дали не е била променена след като е била подписана. Друго последствие от използването на цифров подпис е, че е трудно да се отрече авторството върху подписан документ, тъй като това би означавало, че двойката ключове е компроментирана. Опцията --sign is се използва за цифрово подписване. Документът, който трябва да бъде подписан се очаква от стандартния вход, а към стандартния изход се изпраща подписания документ.
Документът се компресира преди да бъде подписан и затова изхода е в двоичен формат. Ако имате подписан документ, вие може да само проверите подписа или да проверите подписа и да възстановите оригиналния документ. За да проверите подписа използвайте --verify опцията. За да проверите подписа и възстановите документа използвайте --decrypt опцията. Документът, който бива проверяван се очаква на стандартия вход, а възстановения документ се изпраща към стандартния изход.
Подписване в самия документЧесто цифровият подпис се употребява за подписване на емайл или usenet съобщения. При тях не е разумно да се компресира документа преди да бъде изпратен и тогава се използва опцията --clearsign По този начин съдържанието на документа се загражда и подписа се добавя към съобщението, но самото съобщение не се променя по никакъв начин.
Прикачен подписДокументът, който съдръжа подписа в себе си има ограничено приложение. Друга възможност е да се използва метода на създаване на прикачен подпис, който представлява отделен файл, съдържащ подписа. Този тип подпис се създава чрез опцията --detach-sig
За да бъде проверен подписа са нужни подписа и самия документ. Това става с --verify опцията.
Молба за корекции
За успеха и полезността на проекта е изключително важно той да е максимално изчистен от грешки и достъпен за разбиране. Затова ви моля да изпращате всякви корекции като коментар тук или на моя емайл адрес. << Инсталиране на Pine под Debian GNU/Linux 2.0 | Инсталация на Oracle 10g под Linux x86 >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|