Home

The GNU Privacy Handbook

image

Contents

1. Command gt check uid Chloe Jester lt chloe cyb org gt sig ISS DEE L999 le self signature uid Chloe Plebian lt chloe tel net gt rev Be DEE LEI lee revocation sig Be DBADS 1999 W6 28 self signature Revoking both subkeys and self signatures on user IDs adds revocation self signatures to the key Since signatures are being added and no material is deleted a revocation will always be visible to others when your updated public key is distributed and merged with older copies of it Revocation therefore guarantees that everybody has a consistent copy of your public key U pdating a key s expiration time The expiration time of a key may be updated with the command expire from the key edit menu If no key is selected the expiration time of the primary key is updated Otherwise the expiration time of the selected subordinate key is updated A key s expiration time is associated with the key s self signature The expiration time is updated by deleting the old self signature and adding a new self signature Since correspondents will not have deleted the old sef signature they will see an additional self signature on the key when they update their copy of your key The latest self signature takes precedence however so all correspondents will unambiguously know the expiration times of your keys Validating other keys on your public keyring In Chapter 1 a procedure was given to validate your correspondents p
2. 1 alice gpg keyserver certserver pgp com send key blake cyb org gpg success sending to certserver pgp com status 200 There are several popular keyservers in use around the world The major keyservers synchronize themselves so it is fine to pick a keyserver close to you on the Internet and then use it regularly for sending and receiving keys 18 19 Chapter 4 Daily use of GnuPG Table of Contents Defining your security needs Building your web of trust Using GnuPG legally GnuPG is a complex tool with technical social and legal issues surrounding it Technically it has been designed to be used in situations having drastically different security needs This complicates key management Socially using GnuPG is not strictly a personal decision To use GnuPG effectively both parties communicating must use it Finally as of 1999 laws regarding digital encryption and in particular whether or not using GnuPG is legal vary from country to country and is currently being debated by many national governments This chapter addresses these issues It gives practical advice on how to use GnuPG to meet your security needs It also suggests ways to promote the use of GnuPG for secure communication between yourself and your colleagues when your colleagues are not currently using GnuPG Finally the legal status of GnuPG is outlined given the current status of encryption laws in the world D efining your security needs GnuPG is a t
3. Similar to the encryption process the document to decrypt is input and the decrypted result is output blake gpg output doc decrypt doc gpg You need a passphrase to unlock the secret key for user Blake Executioner lt blake cyb org gt 1024 bit ELG E key ID 5C8CBD41 created 1999 06 04 main key ID 9E98BC16 Enter passphrase Documents may also be encrypted without using publickey cryptography Instead only a symmetric cipher is used to encrypt the document The key used to drive the symmetric cipher is derived from a passphrase supplied when the document is encrypted and for good security it should not be the same passphrase that you use to protect your private key Symmetric encryption is useful for securing documents when the passphrase does not need to be communicated to others A document can be encrypted with a symmetric cipher by using the symmetric option alice gpg output doc gpg symmetric doc LINES iss 3 M aking and verifying signatures A digital signature certifies and timestamps a document If the document is subsequently modified in any way a verification of the signature will fail A digital signature can serve the same purpose as a hand written signature with the additional benefit of being tamper resistant The GnuPG source distribution for example is signed so that users can verify that the source code has not been modified since it was packaged Creating and verifying sig
4. owner gets then you can be sure that you have a correct copy of the key After checking the fingerprint you may sign the key to validate it Since key verification is a weak point in publickey cryptography you should be extremely careful and always check a key s fingerprint with the owner before signing the key Command gt sign pub 1024D 9E98BC16 created 1999 06 04 expires never Emer q Fingerprint 268F 448F CCD AF34 183E 52D8 9BDE 1A08 9296 BCLO Blake Executioner lt blake cyb org gt Are you really sure that you want to sign this key with your key Alice Judge lt alice cyb org gt Really sign Once signed you can check the key to list the signatures on it and see the signature that you have added Every user ID on the key will have one or more self signatures as well as a signature for each user that has validated the key Command gt check uid Blake Executioner lt blake cyb org gt sag QWHIVIRELG 1999 06 04 self signature sig BaI D 6NC LEE l Alice Judge lt alice cyb org gt Encrypting and decrypting documents A public and private key each have a specific role when encrypting and decrypting documents A public key may be thought of as an open safe When a correspondent encrypts a document using a public key that document is put in the safe the safe shut and the combination lock spun several times The corresponding private key is the combination that can reopen t
5. particular run of gpg encrypt to Name encrypt to specify an additional recipient of a public key encrypted document EE e Description This option is similar to recipient but is intended for use in the options file It may be used with one s own file user ID to yield an encrypt to self option The key specified by name is used only when there are other recipients given by the user or by use of the option recipient No trust checking is performed on the key specified by name and even disabled keys may be used no encrypt to Name no encrypt to ignore the option encrypt to MO EINCIE VEO Description This is useful if messages are normally encrypted to one or more keys by default but must not be for a particular run of gpg armor Name armor ASCIl armor encrypted or signed output armor Description This option takes output from commands and prints it in format that can be safely e mailed no armor Name no armor assume input data is not ASCII armored MO arisin 12 Description Enough said no greeting Name no greeting suppress the opening copyright notice but do not enter batch mode no greeting Description Enough said no secmem warning Name no secmem warning suppress warnings if insecure memory is used no secmem warning Description Enough said batch Name batch use batch mode batch 36 37 Description gpg will never ask questions and will not allow interacti
6. Description This probably generates a prime number Read the source for details if you are curious version Name version display version information version Description Print version information along with a list of supported algorithms warranty Name warranty display warranty information warranty 31 32 Description Enough said help Name help display usage information Joss Description Displays usage information include a list of commands and options The options list may be incomplete 32 33 ll Options Reference Table of Contents keyserver specify the keyserver to use to locate keys output specify the filein which to place output recipient specify the recipient of a public key encrypted document default recipient specify the default recipient of a public key encrypted document default recipient self use the default key user ID as the default recipient of a public key encrypted document no default recipient ignore the options default recipient and default recipient self encrypt to specify an additional recipient of a public key encrypted document no encrypt to ignore the option encrypt to armor ASCll armor encrypted or signed output no armor assume input data is not ASCII armored no greeting suppress the opening copyright notice but do not enter batch mode no secmem warning suppress warnings if insecure memory is used batch use batc
7. be ok for a small number of people but quickly becomes unwieldly for large groups of people Public key ciphers were invented to avoid the key exchange problem entirely A public key cipher uses a pair of keys for sending messages The two keys belong to the person receiving the message One key is a public key and may be given to anybody The other key is a private key and is kept secret by the owner A sender encrypts a message using the public key and once encrypted only the private key may be used to decrypt it This protocol solves the key exchange problem inherent with symmetric ciphers There is no need for the sender and receiver to agree upon a key All that is required is that some time before secret communication the sender gets a copy of the receiver s public key Furthermore the one public key can be used by anybody wishing to communicate with the receiver So only n keypairs are needed for n people to communicate secretly with one another Public key ciphers are based on one way trapdoor functions A one way function is a function that is easy to compute but the inverse is hard to compute For example it is easy to multiply two prime numbers together to get a composite but it is difficult to factor a composite into its prime components a A one way trapdoor function is similar but it has a trapdoor That is if some piece of information is known it becomes easy to compute the inverse For example if you have a number made of two pr
8. between public and private keys and a clear understanding of the functions for acquiring and distributing keys Designing an effective user interface for key management is even more difficult The OpenPGP web of trust model is unfortunately quite obtuse For example the specification imposes three arbitrary trust levels onto the user none marginal and complete All degrees of trust felt by the user must be fit into one of those three cubby holes The key validation algorithm is also difficult for non computer scientists to understand particularly the notions of marginals needed and completes needed Since the web of trust model is well specified and cannot be changed you will have to do your best and design a user interface that helps to clarify it for the user A definite improvement for example would be to generate a diagram of how a key was validated when requested by the user Relevant comments from the paper include the following e Users are likely to be uncertain on how and when to grant accesses e Place a high priority on making sure users understand their security well enough to prevent them from making potentially high cost mistakes Such mistakes include accidentally deleting the private key accidentally publicizing a key accidentally revoking a key forgetting the pass phrase and failing to back up the key rings 23 24 I Command Reference Table of Contents sign sign a document detach signature make
9. example the command key 2 selects the second subkey and invoking key 2 again deselects it If no extra argument is given all subkeys or user IDs are deselected Once the user IDs to be deleted are selected the command deluid actually deletes the user IDs from your key Similarly the command delkey deletes all selected subkeys from both your public and private keys For local keyring management deleting key components is a good way to trim other people s public keys of unnecessary material Deleting user IDs and subkeys on your own key however is not always wise since it complicates key distribution By default when a user imports your updated public key it will be merged with the old copy of your public key on his ring if it exists The components from both keys are combined in the merge and this effectively restores any components you deleted To properly update the key the user must first delete the old version of your key and then import the new version This puts an extra burden on the people with whom you communicate Furthermore if you send your key to a keyserver the merge will happen regardless and anybody who downloads your key from a keyserver will never see your key with components deleted Consequently for updating your own key it is better to revoke key components instead of deleting them Revoking key components To revoke a subkey it must be sdected Once selected it may be revoked with the revkey command The key is revok
10. from the current key addkey Add anew subkey to the current key delkey Delete a subkey from the current key revkey Revoke a subkey of the current key expire Change a key expiration time If a subkey is selected the time of that key will be changed With no selection the expiration time of the current primary key is changed key n Toggle selection of subkey with index n Use Oto deselect all uid n Toggle selection of user id with index n Use 0 to deselect all toggle Change the passphrase of the private key of the sd ected key pair 29 30 toggle Toggle between public and private key listings check Check all selected user ids pref List preferences save Save all changes to the current key and quit save Quit without updating the current key sign key Name sign key sign a public key with a private key Sign key name Description This is ashortcut for the subcommand sign within the command edit key Isign key Name Isign key locally sign a public key with a private key lsign key name Description This is a shortcut for the subcommand Isign within the command edit key delete key Name delete key remove a public key delete key name Description Remove the public key specified by name delete secret key Name delete secret key removea public and private key delete secret key name Description Remove the keypair both the public and private keys specified b
11. is given gpg will list all of the public keys list public keys Name list public keys list keys on public keyrings list public keys name Description List all keys from public keyrings or just the keys specified with name list secret keys Name list secret keys list keys on secret keyrings list secret keys name Description List all keys from secret keyrings or just the keys specified with name list sigs Name list sigs list information about keys including signatures list sigs name Description This command lists the public keys specified by the key specifiers on the command line Signatures on the keys are listed as well If no key specifier is given gpg will list all of public keys check sigs Name check sigs list information about keys including validated signatures check sigs name Description This command lists the public keys specified by the key specifiers on the command line Signatures on the keys are listed as well and each signature is validated If no key specifier is given gpg will list all of public keys fingerprint Name fingerprint display key fingerprints fingerprint name Description This command prints the fingerprints of the specified public keys The parameter name is a key specifier If no parameter name is provided gpg will print the fingerprints of all the keys on your public keyring 27 28 import Name import import keys
12. key material This option forces v3 signatures on data as well openpgp Name openpgp reset all packet cipher and digest options to the OpenPGP specification openpgp Description This option resets all previous options such as lock once lock once cipher algo digest algo compress algo s2k cipher algo S2k digest algo and s2k mode to OpenPGP compliant values no utf8 strings Name no utf8 strings assume that arguments are not provided as UTF8 strings NO Utro Sie sine Description Option arguments following this option are assumed to be encoded encoded in the character set specified with the option charset This is the default behavior for gpg no options Name no options use no options file no options Description This options is processed before an attempt is made to open an options file debug Name debug set debug flags debug flags 42 43 Description The parameter flags is built by applying a logical OR on individual flags The parameter may be given in C syntax e g 0x0042 The flags are Flag M eaning OO 2 MPidtails 6 llobufdaaiis SOSOtStC CS 4 Caching sisi debug all Name debug all set all useful debugging flags debug all Description See also the option debug status fd Name status fd write status messages to an alternative output stream Sail ial Description This option causes status messages to be redirected to file descriptor n S
13. on their signatures In practice managing your web of trust reduces to assigning trust to others and tuning the options marginals needed and completes needed Any key you personally sign will be considered valid but except for small groups it will not be practical to personally sign the key of every person with whom you communicate You will therefore have to assign trust to others It is probably wise to be accurate when assigning trust and then use the options to tune how careful GnuPG is with key validation As a concrete example you may fully trust a few close friends that you know are careful with key signing and then marginally trust all others on your keyring From there you may set completes needed to 1 and marginals needed to 2 If you are more concerned with security you might choose values of 1 and 3 or 2 and 3 respectively If you are less concerned with privacy attacks and just want some reasonable confidence about validity set the values to 1 and 1 In general higher numbers for these options imply that more people would be needed to conspire against you in order to have a key validated that does not actually belong to the person whom you think it does ZU 22 Using GnuPG legally The legal status of encryption software varies from country to country and law regarding encryption software is rapidly evolving Bert Japp Koops has an excellent Crypto Law Survey to which you should refer for the legal status of encr
14. to the secure use of GnuPG Generating a revocation certificate After your keypair is created you should immediately generate a revocation certificate for the primary public key using the option gen revoke If you forget your passphrase or if your private key is compromised or lost this revocation certificate may be published to notify others that the public key should no longer be used A revoked public key can still be used to verify signatures made by you in the past but it cannot be used to encrypt future messages to you It also does not affect your ability to decrypt messages sent to you in the past if you still do have access to the private key alice gpg output revoke asc gen revoke mykey Dees oa The argument mykey must be a key specifier either the key ID of your primary keypair or any part of a user ID that identifies your keypair The generated certificate will be left in the file revoke asc If the output option is omitted the result will be placed on standard output Since the certificate is short you may wish to print a hardcopy of the certificate to store somewhere safe such as your safe deposit box The certificate should not be stored where others can access it since anybody can publish the revocation certificate and render the corresponding public key useless 3 4 Exchanging keys To communicate with others you must exchange public keys To list the keys on your public keyring use the command line option li
15. with key data modifies key listing output with key data Description This causes the command list keys to print keys delimited by colons as well as the public key data for each key lock once Name lock once locks the databases once lock once Description This option locks the databases the first time a lock is requested and does not release the lock until the process terminates lock multiple Name lock multi ple locks the databases each time they are used lock multiple AU 42 Description This option locks the database each time it is needed and releases the lock when done This option may be used to override the use of lock once from the options file passphrase fd Name passphrase fd read the passphrase from a different input stream passphrase fd n Description If the parameter n is 0 the passphrase will be read from standard input This can be used if only one passphrase must be supplied Do not use this option if you can avoid it force mdc Name force mdc force the use of encryption with appended manipulation code force mdc Description This option is always used with newer ciphers with a blocksize of greater than 64 bits This option may not yet be implemented force v3 sigs Name force v3 sigs force the use of v3 signatures on data force v3 sigs Description OpenPGP states that an implementation should generate v4 signatures but PGP 5 x recognizes v4 signatures only on
16. 06 15 expires 2002 06 14 1 Chloe Jester lt chloe cyb org gt 2 Chloe Plebian lt chloe tel net gt The information provided is similar to the listing for the public key component The keyword sec identifies the private master signing key and the keyword sbb identifies the private subordinates keys The user IDs from the public key are also listed for convenience K ey integrity When you distribute your public key you are distributing the public components of your master and subordinate keys as well as the user IDs Distributing this material alone however is asecurity risk sinceit is possible for an attacker to tamper with the key The public key can be modified by adding or substituting keys or by adding or changing user IDs By tampering with a user ID the attacker could change the user ID s email address to have email redirected to himself By changing one of the encryption keys the attacker would also be able to decrypt the messages redirected to him Using digital signatures is a solution to this problem When data is signed by a private key the corresponding public key is bound to the signed data In other words only the corresponding public key can be used to verify the signature and ensure that the data has not been modified A public key can be protected from tampering by using its corresponding private master key to sign the public key components and user IDs thus binding the components to the public maste
17. B927C8A created 1999 07 02 expires never ETSI 8 Gf E sub 1024g C19EA233 created 1999 07 02 expires never 1 Blake Executioner lt blake cyb org gt Please decide how far you trust this user to correctly verify other users keys by looking at passports checking fingerprints from different sources IN 16 Don t know I ien INOW ene menus emangna Mi JL ege emile please show me more information back to the main menu Sn BUNE Your decision 3 pub 1024D 8B927C8A created 1999 07 02 expires never Emer 8 m f sub 1024g C19EA233 created 1999 07 02 expires never 1 Blake Executioner lt blake cyb org gt Command gt quit ooo Trust in the key s owner and the key s validity are indicated to the right when the key is displayed Trust in the owner is displayed first and the key s validity is second The four trust validity levels are abbreviated unknown q none n marginal m and full In this case Blake s key is fully valid since Alice signed it herself She initially has an unknown trust in Blake to properly sign other keys but decides to trust him marginally Using trust to validate keys The web of trust allows a more elaborate algorithm to be used to validate a key Formerly a key was considered valid only if you signed it personally A more flexible algorithm can now be used a key K is considered valid if it meets two conditions 1 itis signed by enough valid key
18. The GNU Privacy Handbook Copyright c 1999 by The Free Software Foundation Please direct questions bug reports or suggesstions concerning this manual to the maintainer Mike Ashley lt jashley acm org gt Contributors to this manual also include Matthew Copeland Joergen Grahn and David A Wheeler J Horacio MG has translated the manual to Spanish This manual may be redistributed under the terms of the GNU General Public License Table of Contents Chapter 1 G etting Started svicsasisisscsiscasssisiccpacssieansssisesnassasscatinisssausiainaceavatsnaspadenusvoncseed Generating a new keypair ENEE 2 Generating a revocation Certlflcate EEN 3 Seele EE 4 Exporting ECH lie te 4 lmporting a public EE 4 Encrypting and decrypting documents ENEE 5 Making and verifying SiQM ture ENEE 6 Clearsigned ele Dun ue H Detached signatunes iis ei ed A H Ebaptet DREES reen E SymmMeth Le elen EE 8 P blic el EE 8 elle el el 9 Alteleible Ee DI 10 Chapter 3 Key M anagement csssses eee LL Managing your OWN kevpalt ENEE 11 Key INtGQRITY Soi geesde deed EE ee ail clita dete 12 Adding and deleting Key Components ENNEN 12 Revoking key component sissies een alee ia anid dnl dua dain haat densi 13 Updating a key s expiration time EEN 14 Validating other keys On your public kewvring EE 14 TIPUSE LR e EEN 15 USiNg trust to Ce EEN 16 RI ale tele dE 17 Chapter 4 Daily use of G NUPG ssssasususnsnnnnnnnnnnnnnnnnannnnnnnann
19. a detached signature encrypt encrypt a document symmetric encrypt a document using only a symmetric encryption algorithm decrypt decrypt an encrypted document clearsign makea cleartext signature verify verify a signed document gen key generate a new keypair gen revoke generate a revocation certificate for a public private keypair send keys send keys to a key server recv keys retrieve keys from a key server list keys list information about keys list public keys list keys on public keyrings list secret keys list keys on secret keyrings list sigs list information about keys including signatures check sigs list information about keys including validated signatures fingerprint display key fingerprints import import keys to a local keyring fast import import merge keys export export keys from a local keyring export all export all public keys export secret keys export secret keys edit key presents a menu for operating on keys sign key sign a public key with a private key Isign key locally sign a public key with a private key delete key remove a public key delete secret key removea public and private key store make only simple rfc1991 packets export ownertrust export assigned owner trust values import ownertrust import owner trust values update trustdb update the trust database print md display message digests ge
20. agement is crucial in order to ensure not just the integrity of your keyrings but the integrity of other users keyrings as wal The core of key management in GnuPG is the notion of signing keys Key signing has two main purposes it permits you to detect tampering on your keyring and it allows you to certify that a key truly belongs to the person named by a user ID on the key Key signatures are also used in a scheme known as the web of trust to extend certification to keys not directly signed by you but signed by others you trust Responsible users who practice good key management can defeat key tampering as a practical attack on secure communication with GnuPG M anaging your own keypair A keypair has a public key and a private key A public key consists of the public portion of the master signing key the public portions of the subordinate signing and encryption subkeys and a set of user IDs used to associate the public key with a real person Each piece has data about itself For a key this data includes its ID when it was created when it will expire etc For a user ID this data includes the name of the real person it identifies an optional comment and an email address The structure of the private key is similar except that it contains only the private portions of the keys and there is no user ID information The command line option edit key may be used to view a keypair For example chloe gpg edit key chloe cyb org Secre
21. amal key may be of any size GnuPG however requires that keys be no smaller than 768 bits Therefore if Option 1 was chosen and you choose a keysize larger than 1024 bits the ElGamal key will have the requested size but the DSA key will be 1024 bits About to generate a new ELG E keypair minimum keysize is 768 bits default keysize is 1024 bits highest suggested keysize is 2048 bits What keysize do you want 1024 The longer the key the more secure it is against brute force attacks but for almost all purposes the default keysize is adequate since it would be cheaper to circumvent the encryption than try to break it Also encryption and decryption will be slower as the key size is increased and a larger keysize may affect signature length Once selected the keysize can never be changed 1 Option 3 is to generate an ElGamal keypair that is not usable for making signatures 2 3 Finally you must choose an expiration date If Option 1 was chosen the expiration date will be used for both the ElGamal and DSA keypairs Please specify how long the key should be valid 0 key does not expire lt n gt key expires in n days lt n gt w key expires in n weeks lt n gt m key expires in n months lt n gt y key expires in n years Key is valid for 0 For most users a key that does not expire is adequate The expiration time should be chosen with care however since although it is possible to change the ex
22. andomness and lots of redundancy in natural language You should avoid natural language passphrases if you can A good passphrase is one that you can remember but is hard for someone to guess It should include characters from the whole range of printable characters on your keyboard This includes uppercase alphabetics characters numbers and special characters such as and Be creative and spend a little time considering your passphrase a good choice is important to ensure your privacy Selecting expiration dates and using subkeys By default a DSA master signing key and an ElGamal encryption subkey are generated when you create a new keypair This is convenient because the roles of the two keys are different and you may therefore want the keys to have different lifetimes The master signing key is used to make digital signatures and it also collects the signatures of others who have confirmed your identity The encryption key is used only for decrypting encrypted documents sent to you Typically a digital signature has a long lifetime e g forever and you also do not want to lose the signatures on your key that you worked hard to collect On the other hand the encryption 20 21 subkey may be changed periodically for extra security since if an encryption key is broken the attacker can read all documents encrypted to that key both in the future and from the past It is almost always the case that you will not want the master
23. ck using whatever techniques he used against you the first time Finally it only makes sense to have one valid encryption subkey on a keyring There is no additional security gained by having two or more active subkeys There may of course be any number of expired keys on a keyring so that documents encrypted in the past may still be decrypted but only one subkey needs to be active at any given time M anaging your web of trust As with protecting your private key managing your web of trust is another aspect of using GnuPG that requires balancing security against ease of use If you are using GnuPG to protect against casual eavesdropping and forgeries then you can afford to be relatively trusting of other people s signatures On the other hand if you are concerned that there may be a determined attacker interested in invading your privacy then you should be much less trusting of other signatures and spend more time personally verifying signatures Regardless of your own security needs through you should always be careful when signing other keys It is selfish to sign a key with just enough confidence in the key s validity to satisfy your own security needs Others with more stringent security needs may want to depend on your signature If they cannot depend on you then that weakens the web of trust and makes it more difficult for all GnuPG users to communicate Use the same care in signing keys that you would like others to use when you depend
24. considered marginally valid since only a fully valid key can be used to validate other keys and Dharma s key is the only fully valid key that has been used to sign Francis s key When marginal trust in Blake is added Chloe s key becomes fully valid and can then be used to fully validate Francis s key and marginally validate Elena s key Lastly when Blake Chloe and Elena are fully trusted this is still insufficient to validate 4 GnuPG overloads the word trust by using it to mean trust in an owner and trust in a key This can be confusing Sometimes trust in an owner is referred to as owner trust to distinguish it from trust in a key Throughout this manual however trust is used to mean trust in a key s owner and validity is used to mean trust that a key belongs to the human associated with the key ID 16 17 Geoff s key since the maximum certification path is three but the path length from Geoff back to Alice is four The web of trust model is a flexible approach to the problem of safe public key exchange It permits you to tune GnuPG to reflect how you use it At one extreme you may insist on multiple short paths from your key to another key K in order to trust it On the other hand you may be satisfied with longer paths and perhaps as little as one path from your key to the other key K Requiring multiple short paths is a strong guarantee that K belongs to whom your think it does The price of course is that it is mo
25. cryption algorithm including none if it is a public document If the document is modified the signature check will fail but this is precisely what the signature check is supposed to catch The Digital Signature Standard DSA is a public key signature algorithm that works as just described DSA is the primary signing algorithm used in GnuPG 3 The cipher must have the property that the actual public key or private key could be used by the encryption algorithm as the public key RSA is an example of such an algorithm while ElGamal is not an example 10 11 Chapter 3 Key Management Table of Contents Managing your own keypair Validating other keys on your public keyring Distributing keys Key tampering is a major security weakness with public key cryptography An eavesdropper may tamper with a user s keyrings or forge a user s public key and post it for others to download and use For example suppose Chloe wants to monitor the messages that Alice sends to Blake She could mount what is called aman in the middle attack In this attack Chloe creates a new public private keypair She replaces Alice s copy of Blake s public key with the new public key She then intercepts the messages that Alice sends to Blake For each intercept she decrypts it using the new private key reencrypts it using Blake s true public key and forwards the reencrypted message to Blake All messages sent from Alice to Blake can now be read by Chloe Good key man
26. daily keys were distributed as code books Each day a sending or receiving radio operator would consult his copy of the code book to find the day s key Radio traffic for that day was then encrypted and decrypted using the day s key Modern examples of symmetric ciphers include 3DES Blowfish and IDEA A good cipher puts all the security in the key and none in the algorithm In other words it should be no hdp to an attacker if he knows which cipher is being used Only if he obtains the key would knowledge of the algorithm be needed The ciphers used in GnuPG have this property Since all the security is in the key then it is important that it be very difficult to guess the key In other words the set of possible keys i e the key space needs to be large While at Los Alamos Richard Feynman was famous for his ability to crack safes To encourage the mystique he even carried around a set of tools including an old stethoscope In reality he used a variety of tricks to reduce the number of combinations he had to try to a small number and then simply guessed until he found the right combination In other words he reduced the size of the key space Britain used machines to guess keys during World War 2 The German Enigma had a very large key space but the British built speciailzed computing engines the Bombes to mechanically try keys until the day s key was found This meant that sometimes they found the day s key within hours of the new key s u
27. decryption are more expensive than the corresponding operations in symmetric systems Public key ciphers are nevertheless an effective tool for distributing symmetric cipher keys and that is how they are used in hybrid cipher systems A hybrid cipher uses both a symmetric cipher and a public key cipher It works by using a public key cipher to share a key for the symmetric cipher The actual message being sent is then encrypted using the key and sent to the recipient Since symmetric key sharing is secure the symmetric key used is different for each message sent Hence it is sometimes called a session key Both PGP and GnuPG use hybrid ciphers The session key encrypted using the public key cipher and the message being sent encrypted with the symmetric cipher are automatically combined in one package The recipient uses his private key to decrypt the session key and the session key is then used to decrypt the message A hybrid cipher is no stronger than the public key cipher or symmetric cipher it uses whichever is weaker In PGP and GnuPG the public key cipher is probably the weaker of the pair Fortunately however if an attacker could decrypt a session key it would only be useful for reading the one message encrypted with that session key The attacker would have to start over and decrypt another session key in order to read any other message 9 10 Digital signatures A hash function is a many to one function that maps its input t
28. ded in a message for storing its plaintext or verified version max cert depth set the maximum depth of a certification chain digest algo set the message digest algorithm s2k cipher algo use a specified algorithm as the symmetric cipher for encrypting private keys s2k digest algo set the message digest algorithm for mangling passphrases protecting private keys s2k mode sets how passphrases are mangled disable cipher algo prevents a symmetric cipher from being used disable pubkey algo prevents a public key cipher from being used throw keyid do not put key IDs into encrypted packets not dash escaped changes the format of cleartext signatures escape from lines modifies messages beginning with From when cleartext signing 34 35 Setting options Options may be specified on the command line or in an options file The default location of the options file is gnupg options When specifying options in the options file omit the leading two dashes and instead use simply the option name followed by any arguments Lines in the file with a hash as the first non white space character are ignored keyserver Name keyserver specify the keyserver to use to locate keys KEVSSrWEr Server name Description This option is used in conjunction with either recv keys or send keys to specify a keyserver to manage public key distribution output Name output specify the filei
29. default keyrings to the list of keyrings no default keyring Description The default keyrings taken from the home directory are not used during processing homedir Name homedir set the home directory homedir directory Description If this option is not used the home directory defaults to gnupg This overrides the environment variable GNUPGHOME It does not make sense to use this in an options file charset Name charset set the name of the native character set charset name Description This is used to convert some strings to UTF 8 encoding Valid values for name are Name Character set 40 41 liso 8859 1 The default Latin 1 set iso 885 2 The Latin 2 set koi8 r The usual Russian set rfc1489 no literal Name no literal no literal Description This is not for normal use Use the source code to see how it might be useful set filesize Name set filesize set filesize size Description This is not for normal use Use the source code to see how it might be useful with fingerprint Name with fingerprint modifies key listing output with fingerprint Description This is similar to the command fingerprint but is an option This appears to be for use with the command list keys with colons Name with colons modifies key listing output with colons Description This causes keys displayed with the command list keys to be ddiimited by colons with key data Name
30. e is omitted then the document to encrypt is taken from standard input If the option recipient is omitted gpg will prompt for a recipient If the option output is used gpg will output the encrypted information to the specified file symmetric Name symmetric encrypt a document using only a symmetric encryption algorithm symmetric filename Description This command encrypts a document using a symmetric algorithm with a key derived from a passphrase supplied by you during execution The key should be selected to make it difficult to randomly guess the key To decrypt a document encrypted in this manner use the command decrypt decrypt Name decrypt decrypt an encrypted document decrypt filename 25 26 Description This command decrypts filename and puts the result on standard output If the parameter filename is omitted then the document to decrypt is taken from standard input Use the option output to output the decrypted message to a file instead clearsign Name clearsign make a cleartext signature clearsign filename Description This command signs a message that can be verified to ensure that the original message has not been changed Verification of the signed message is done using the command verify verify Name verify verify asigned document verify signature document Description This command verifies a document against a signature to ensure that the document has not been altered since
31. ed by adding a revocation sef signature to the key Unlike the command line option gen revoke the effect of revoking a subkey is immediate Command gt revkey Do you really want to revoke this key y You need a passphrase to unlock the secret key for user Chloe Jester lt chloe cyb org gt 1024 bit DSA key ID B87DBA93 created 1999 06 28 fouls IOLA AIVOHVWAs emer el 1GOY OG 29 Sxgouwmase wyenysie EUSES u sub 2048g B7934539 created 1999 06 28 expires never sub 1792G 4E3160AD created 1999 06 29 expires 2000 06 28 rev subkey has been revoked 1999 06 29 sub 960D E1F56448 created 1999 06 29 expires 2000 06 28 1 Chloe Jester lt chloe cyb org gt 2 Chloe Plebian lt chloe tel net gt A user ID is revoked differently Normally a user ID collects signatures that attest that the user ID describes the person who actually owns the associated key In theory a user ID describes a person forever since that person will never change In practice though elements of the user ID such as the email address and comment may change over time thus invalidating the user ID The OpenPGP specification does not support user ID revocation but a user ID can effectively be revoked by revoking the self signature on the user ID For the security reasons described previously correspondents will not trust a user ID with no valid self signature A signature is revoked by using the command revsig Since you ma
32. ee the file DETAILS in the distribution for a listing of the messages logger fd Name logger fd write log messages to an alternative output stream Joel 2a Description This option causes log messages to be redirected to file descriptor n instead of to standard error no comment Name no comment do not write comment packets no comment Description This option affects only the generation of secret keys Output of option comment packets is disabled since version 0 4 2 of GnuPG comment Name comment set the comment string to use in cleartext signatures comment string Description Enough said 43 44 default comment Name default comment use the standard comment string in cleartext signatures default comment Description This option overrides previous uses of the option comment no version Name no version omit the version string in clear text signatures no version Description Enough said emit version Name emit version emit the version string in cleartext signatures emit version Description This option overrides previous uses of the option no version notation data Name notation data add data to a signature as notation data notation data name value Description This adds the name value pair to a signature The parameter name must consist of an alphabetic character followed by any number of alphanumeric or underscore characters The parameter value may be any
33. ent to other people should be encrypted to the test subject s own public key Consider it for a minute and you will see that it is an easy mistake to make In general novice users have difficulty understanding the different roles of the public key and private key when using GnuPG Asa user interface designer you should try to make it clear at all times when one of the two keys is being used You could also use wizards or other common GUI techniques for guiding the user through common tasks such as key generation where extra steps such as generating a key revocation certification and making a backup are all but essential for using GnuPG correctly Other comments from the paper include the following e Security is usually a secondary goal people want to send email browse and so on Do not assume users will be motivated to read manuals or go looking for security controls e The security of a networked computer is only as strong as its weakest component Users need to be guided to attend to all aspects of their security not left to proceed through random exploration as they might with a word processor or a spreadsheet e Consistently use the same terms for the same actions Do not alternate between synonyms like encrypt and enci pher e For inexperienced users simplify the display Too much information hides the important information An initial display configuration could concentrate on giving the user the correct model of the relationship
34. g pub 1024D BB7576AC 1999 06 04 Alice Judge lt alice cyb org gt sub 1024g 78E9A8FA 1999 06 04 pub 1024D 9E98BC16 1999 06 04 Blake Executioner lt blake cyb org gt sub 1024g 5C8CBD41 1999 06 04 Once a key is imported it should be validated GnuPG uses a powerful and flexible trust model that does not require you to personally validate each key you import Some keys may need to be personally validated however A key is validated by verifying the key s fingerprint and then signing the key to certify it as a valid key A key s fingerprint can be quickly viewed with the fingerprint command line option but in order to certify the key you must edit it alice gpg edit key blake cyb org pub 1024D 9E98BC16 created 1999 06 04 expires never ceuUsces q sub 1024g 5C8CBD41 created 1999 06 04 expires never 1 Blake Executioner lt blake cyb org gt 2 Many command line options that are frequently used can also be set in a configuration file 4 5 Command gt fpr pub 1024D 9E98BC16 1999 06 04 Blake Executioner lt blake cyb org gt Fingerprint 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16 A key s fingerprint is verified with the key s owner This may be done in person or over the phone or through any other means as long as you can guarantee that you are communicating with the key s true owner If the fingerprint you get is the same as the fingerprint the key s
35. h mode no batch disable batch mode local user specifies a user id to use for signing default key specifies a user ID as a default user ID for signatures completes needed specifies the number of fully trusted people needed to validate a new key marginals needed specifies the number of marginally trusted people needed to validate a new key load extension specifies an extension to load rfc1991 try to be more RFC1991 PGP 2 x compliant allow non selfsigned uid allow the import of keys with user IDs which are not self signed cipher algo usea specified algorithm as the symmetric cipher compress algo use a specified compression algorithm z set compression level verbose provide additional information during processing no verbose resets verbosity to none quiet supress informational output textmode use canonical text mode dry run do not make changes interactive prompt before overwriting files yes assume yes to most questions no assume no to most questions always trust skip key validation skip verify skip signature verification keyring add a keyring to the list of keyrings secret keyring add asecret keyring no default keyring do not add the default keyrings to the list of keyrings homedir set the home directory charset set the name of the native character set no literal set filesize with fingerprint modif
36. he safe and retrieve the document In other words only the person who holds the private key can recover a document encrypted using the associated public key The procedure for encrypting and decrypting documents is straightforward with this mental model If you want to encrypt a message to Alice you encrypt it using Alice s public key and she decrypts it with her private key If Alice wants to send you a message she encrypts it using your public key and you decrypt it with your key To encrypt a document the option encrypt is used You must have the public keys of the intended recipients The software expects the name of the document to encrypt as input or if omitted on standard input The encrypted result is placed on standard output or as specified using the option output The document is compressed for additional security in addition to encrypting it alice gpg output doc gpg encrypt recipient blake cyb org doc The recipient option is used once for each recipient and takes an extra argument specifying the public key to which the document should be encrypted The encrypted document can only be decrypted by someone with a private key that complements one of the recipients public keys In particular you cannot decrypt a document encrypted by you unless you included your own public key in the recipient list 5 6 To decrypt a message the option decrypt is used You need the private key to which the message was encrypted
37. ies key listing output with colons modifies key listing output with key data modifies key listing output lock once locks the databases once lock multiple locks the databases each time they are used passphrase fd read the passphrase from a different input stream force mdc force the use of encryption with appended manipulation code force v3 sigs force the use of v3 signatures on data openpgp reset all packet cipher and digest options to the OpenPGP specification utf8 strings assume that arguments are provided as UTF8 strings no utf8 strings assume that arguments are not provided as UTF8 strings no options use no options file 33 34 debug set debug flags debug all set all useful debugging flags status fd write status messages to an alternative output stream logger fd write log messages to an alternative output stream no comment do not write comment packets comment set the comment string to use in cleartext signatures default comment use the standard comment string in cleartext signatures no version omit the version string in clear text signatures emit version emit the version string in cleartext signatures notation data add data to a signature as notation data set policy url set the policy URL for signatures set filename sets the filename stored in encrypted or signed messages use embedded filename use the filename enbed
38. ime factors then knowing one of the factors makes it easy to compute the second Given a public key cipher based on prime factorization the public key contains a composite number made from two large prime factors and the encryption algorithm uses that composite to encrypt the message The algorithm to decrypt the message requires knowing the prime factors so decryption is easy if you have the private key containing one of the factors but extremely difficult if you do not have it As with good symmetric ciphers with a good public key cipher all of the security rests with the key Therefore key size is a measure of the system s security but one cannot compare the size of a symmetric cipher key and a public key cipher key as a measure of their relative security In a brute force attack on a symmetric cipher with a key size of 80 bits the attacker must enumerate up to 28 1 keys to find the right key In a brute force attack on a public key cipher with a key size of 512 bits the attacker must factor a composite number encoded in 512 bits up to 155 decimal digits The workload for the attacker is fundamentally different depending on the cipher he is attacking While 128 bits is sufficient for symmetric ciphers given today s factoring technology public keys with 1024 bits are recommended for most purposes H ybrid ciphers Public key ciphers are no panacea Many symmetric ciphers are stronger from a security standpoint and publickey encryption and
39. ity values are displayed with the primary key the first is the assigned trust and the second is the calculated validity Letters are used for the values No ownertrust assigned not yet calculated le Trust calculation has failed o Not enough information for calculation in Nevertrustthiskey m Marginally trusted o f Fully trusted 28 29 lu lu Itimately trusted The following lists each key editing command and a description of its behavior sign Makes a signature on the current key If th key is not yet signed by the default user or the user given with the option local user the program displays the information of the key again together with its fingerprint and asks whether it should be signed This question is repeated for all users specified with the option local user Isign Same as sign but the signature is marked as non exportable and will therefore never be used by others This may be used to make keys valid only in the local environment revsig Revoke a signature Asks for each signature makde by a one of the private keys whether a revocation certificate should be generated trust Change the owner trust value This updates the trust database immediately and no save is required disable Disable the key A disabled key cannot normally be used for encryption enable Enable a key that has been previously disabled adduid Add anew user id to the current key deluid Delete a user id
40. key to expire There are two reasons why you may choose an expiration date First you may intend for the key to have a limited lifetime For example it is being used for an event such as a political campaign and will no longer be useful after the campaign is over Another reason is that if you lose control of the key and do not have a revocation certificate with which to revoke the key having an expiration date on the master key ensures that the key will eventually fall into disuse Changing encryption subkeys is straightforward but can be inconvenient If you generate a new keypair with an expiration date on the subkey that subkey will eventually expire Shortly before the expiration you will add a new subkey and publish your updated public key Once the subkey expires those who wish to correspond with you must find your updated key since they will no longer be able to encrypt to the expired key This may be inconvenient depending on how you distribute the key Fortunately however no extra signatures are necessary since the new subkey will have been signed with your master signing key which presumably has already been validated by your correspondents The inconvenience may or may not be worth the extra security Just as you can an attacker can still read all documents encrypted to an expired subkey Changing subkeys only protects future documents In order to read documents encrypted to the new subkey the attacker would need to mount a new atta
41. ly trust the owners of the keys that made the signatures Your trust in a key s owner is set with the command edit key load extension Name load extension specifies an extension to load load extension object file Description Elaborate 37 38 rfc1991 Name rfc1991 try to be more RFC1991 PGP 2 x compliant ee Description Elaborate allow non selfsigned uid Name allow non selfsigned uid allow the import of keys with user IDs which are not self signed allow non selfsigned uid Description This only allows the import key validation will fail and you have to check the validity of the key my other means This hack is needed for some German keys generated with pgp 2 6 3in You should really avoid using it because OpenPGP has better mechanics to do separate signing and encryption keys cipher algo Name cipher algo usea specified algorithm as the symmetric cipher cipher algo name Description Use name as the symmetric cipher algorithm Running the gpg with the command version yields a list of supported algorithms If this is not used the cipher algorithm is selected from the preferences stored with the default keypair For symmetric encryption the default is Blowfish compress algo Name compress algo use a specified compression algorithm compress algo n Description Default is 2 which is RFC1950 compression You may use 1 to use the old zlib version which is used by PGP The default algorith
42. ly validate keys that he signs In that case she would not take Chloe s and Dharma s key as valid based on Blake s signatures alone The web of trust model accounts for this by associating with each public key on your keyring an indication of how much you trust the key s owner There are four trust levels unknown Nothing is known about the owner s judgement in key signing Keys on your public keyring that you do not own initially have this trust level none The owner is known to improperly sign other keys marginal The owner understands the implications of key signing and properly validates keys before signing them full The owner has an excellent understanding of key signing and his signature on a key would be as good as your own A key s trust level is something that you alone assign to the key and it is considered private information It is not packaged with the key when it is exported it is even stored separately from your keyrings in a separate database The GnuPG key editor may be used to adjust your trust in a key s owner The command is trust In this example Alice edits her trust in Blake and then updates the trust database to recompute which keys are valid based on her new trust in Blake alice gpg edit key blake pub 1024D 8B927C8A created 1999 07 02 expires never EUS 8 q ft sub 1024g C19EA233 created 1999 07 02 expires never 1 Blake Executioner lt blake cyb org gt Command gt trust pub 1024D 8
43. m may give better results because the window size is not limited to 8K If this is not used the OpenPGP behavior is used i e the compression algorithm is selected from the preferences note that this can t be done if you do not encrypt the data Z Name z set compression level an Description Setting n to 0 disables compression The default is to use the default compression level for zlib 6 Unlike all other options this option may only be used from the command line and is preceded with a single leading dash instead of two dashes verbose Name verbose provide additional information during processing Verbose Description If used once provides extra information during processing If used twice the input data is listed in detail 38 39 no verbose Name no verbose resets verbosity to none no verbose Description This causes previous uses of the option verbose to be ignored quiet Name quiet supress informational output quiet Description As little extra output as possible is displayed textmode Name textmode use canonical text mode Textmode Description What good is this option dry run Name dry run do not make changes Chey tin Description This is not completely implemented Use with care interactive Name interactive prompt before overwriting files interactive Description Enough said yes Name yes assume yes to most questions yes Descripti
44. n data security Protecting your private key Protecting your private key is the most important job you have to use GnuPG correctly If someone obtains your private key then all data encrypted to the private key can be decrypted and signatures can be made in your name If you lose your private key then you will no longer be able to decrypt documents encrypted to you in the future or in the past and you will not be able to make signatures Losing sole possession of your private key is catastrophic Regardless of how you use GnuPG you should store the public key s revocation certificate and a backup of your private key on write protected media in a safe place For example you could burn them on a CD ROM and store them in your safe deposit box at the bank in a sealed envelope Alternatively you could store them on a floppy and hide it in your house Whatever you do they should be put on media that is safe to store for as long as you expect to keep the key and you should store them more carefully than the copy of your private key you use daily To help safeguard your key GnuPG does not store your raw private key on disk Instead it encrypts it using a symmetric encryption algorithm That is why you need a passphrase to access the key Thus there are two barriers an attacker must cross to access your private key 1 he must actually acquire the key and 2 he must get past the encryption Safely storing your private key is important but there i
45. n random generate random data gen prime version display version information warranty display warranty information help display usage information 24 25 Key specifiers Many commands and options require a key specifier A key specifier is the key ID or any portion of ther user ID of a key Consider the following example alice gpg list keys chloe pub 1024D B87DBA93 1999 06 28 Chloe Jester lt chloe cyb org gt wae Chloe Plebian lt chloe tel net gt sub 2048g B7934539 1999 06 28 For this key 0xB87DBA93 Chloe Plebian and oe tel are all examples of key specifiers that match the above key sign Name sign sign adocument sign filename Description This command signs the document filename If the parameter filename is omitted then the document to sign is taken from standard input If the option output is used gpg will output the signed information to the specified file detach signature Name detach signature make a detached signature detach signature filename Description This command creates a signature file that can be used to verify that the orginal file filename has not been changed Verification of the file using a detached signature is done using the command verify encrypt Name encrypt encrypt a document encrypt filename Description This command encrypts the document filename to recipients specified using the option recipient If the parameter filenam
46. n which to place output output file name Description This option takes the output from commands and prints it to the filename given to it as a parameter recipient Name recipient specify the recipient of a public key encrypted document recipient name Description This option is used in conjunction with the command encrypt It must appear before encrypt on the command line The parameter name is either the name of the individual or the email address of the individual to whom you are sending the message default recipient Name default recipient specify the default recipient of a public key encrypted document default recipient name Description The user ID name is used as the default recipient if a recipient is not otherwise specified default recipient self Name default recipient self use the default key user ID as the default recipient of a public key encrypted document default recipient self Description The user ID of the default key is used as the default recipient gog does not query for a recipient if this specifies a valid key The default key is the first key on the private keyring or the key specified with the option default key no default recipient Name no default reci pient ignore the options default recipient and default reci pient self no default recipient 35 36 Description This is useful if the default recipient is usually set in the options file but must be ignored for a
47. nannnnnnnnnnnnnnnnnnnnnnnnnnnnanananana LO Defining your Zeie d EEN 19 Choosing a Key Szeen encoun die andes eta en ee 19 Protecting your private key 20 Selecting expiration dates ANd USING SUDKEYS AEN 20 Managing your Web Of Drust EEN 21 Using GnuPG EE 22 Kaprun E Writing User Interfaces E 23 l Command Retter 2 kusokiesd eeeksgetuge gg dee ss deeg vasaccevieananindannnl sO PUONS E muiiuratiuM OS Y2 Chapter 1 Getting Started Table of Contents Generating a new keypair Exchanging keys Encrypting and decrypting documents Making and verifying signatures GnuPG is a tool for secure communication This chapter is a quick start guide that covers the core functionality of GnuPG This includes keypair creation exchanging and verifying keys encrypting and decrypting documents and authenticating documents with digital signatures It does not explain in detail the concepts behind public key cryptography encryption and digital signatures This is covered in Chapter 2 It also does not explain how to use GnuPG wisely This is covered in Chapters 3 and 4 GnuPG uses public key cryptography so that users may communicate securely In a public key system each user has a pair of keys consisting of a private key and a public key A user s private key is kept secret it need never be revealed The public key may be given to anyone with whom the user wants to communicate GnuPG uses a somewhat more sophisticated scheme in which a
48. natures uses the public private keypair in an operation different from encryption and decryption A signature is created using the private key of the signer The signature is verified using the corresponding public key For example Alice would use her own private key to digitally sign her latest submission to the Journal of Inorganic Chemistry The associate editor handling her submission would use Alice s public key to check the signature to verify that the submission indeed came from Alice and that it had not been modified since Alice sent it A consequence of using digital signatures is that it is difficult to deny that you made a digital signature since that would imply your private key had been compromised The command line option sign is used to make a digital signature The document to sign is input and the signed document is output alice gpg output doc sig sign doc You need a passphrase to unlock the private key for user Alice Judge lt alice cyb org gt 1024 bit DSA key ID BB7576AC created 1999 06 04 Enter passphrase The document is compressed before signed and the output is in binary format Given asigned document you can either check the signature or check the signature and recover the original document To check the signature use the verify option To verify the signature and extract the document use the decrypt option The signed document to verify and recover is input and the recovered document is out
49. nd addkey The interface is similar to the interface used when creating an initial keypair The subkey may be a DSA signing key and encrypt only ElGamal key or a sign and encrypt ElGamal key When a subkey or user ID is generated it is self signed using your master signing key which is why you must supply your passphrase when the key is generated Additional user IDs are useful when you need multiple identities For example you may have an identity for your job and an identity for your work as a political activist Coworkers will know you by your work user ID Coactivists will know you by your activist user ID Since those 12 13 groups of people may not overlap though each group may not trust the other user ID Both user IDs are therefore necessary Additional subkeys are also useful The user IDs associated with your public master key are validated by the people with whom you communicate and changing the master key therefore requires recertification This may be difficult and time consuming if you communicate with many people On the other hand it is good to periodically change encryption subkeys If a key is broken all the data encrypted with that key will be vulnerable By changing keys however only the data encrypted with the one broken key will be revealed Subkeys and user IDs may also be deleted To delete a subkey or user ID you must first select it using the key or uid commands respectively These commands are toggles For
50. need a passphrase to unlock the secret key for user Alice Judge lt alice cyb org gt 1024 bit DSA key ID BB7576AC created 1999 06 04 mer PASSPINLASS 3 Both the document and detached signature are needed to verify the signature The verify option can be to check the signature blake gpg verify doc sig doc gpg Signature made Fri Jun A ere 99S GDL US iNO IDSA key IND BB7576AC gpg Good signature from Alice Judge lt alice cyb org gt 7 8 Chapter 2 Concepts Table of Contents Symmetric ciphers Public key ciphers Hybrid ciphers Digital signatures GnuPG makes uses of several cryptographic concepts including symmetric ciphers public key ciphers and one way hashing You can make basic use GnuPG without fully understanding these concepts but in order to use it wisely some understanding of them is necessary This chapter introduces the basic cryptographic concepts used in GnuPG Other books cover these topics in much more detail A good book with which to pursue further study is Bruce Schneier s Applied Cryptography Symmetric ciphers A symmetric cipher is a cipher that uses the same key for both encryption and decryption Two parties communicating using a symmetric cipher must agree on the key beforehand Once they agree the sender encrypts a message using the key sends it to the receiver and the receiver decrypts the message using the key As an example the German Enigma is a symmetric cipher and
51. nge lines starting with From to lt From this option is useful for instructing gpg to handle such lines specially when creating cleartext signatures All other PGP versions do it this way too This option is not enabled by default because it would violate rfc2440 46 47
52. nity at large in building tight webs of trust and thus improving the security of PGP It is nevertheless a nuisance if key signing is frequent Using a keyserver makes the process somewhat easier When Blake signs Alice s key he sends the signed key to the key server The key server adds Blake s signature to its copy of Alice s key Individuals interested in updating their copy of Alice s key then consult the keyserver on their own initiative to retrieve the updated key Alice need never be involved with distribution and can retrieve signatures on her key simply by querying a keyserver One or more keys may be sent to a keyserver using the command line option send keys The option takes one or more key specifiers and sends the specified keys to the key server The key server to which to send the keys is specified with the command line option keyserver Similarly the option recv keys is used to retrieve keys from a keyserver but the option recv keys requires a key ID be used to specify the key In the following example Alice updates her public key with new signatures from the keyserver certserver pgp com and then sends her copy of Blake s public key to the same keyserver to contribute any new signatures she may have added alice gpg keyserver certserver pgp com recv key 0xBB7576AC gpg requesting key BB7576AC from certserver pgp com gpg key BB7576AC 1 new signature 17 18 gpg Total number processed 1 gpg new signatures
53. o a valuein a finite set Typically this set is a range of natural numbers A simple hash function is f x 0 for all integers x A more interesting hash function is f x x mod 37 which maps x to the remainder of dividing x by 37 A document s digital signature is the result of applying a hash function to the document To be useful however the hash function needs to satisfy two important properties First it should be hard to find two documents that hash to the same value Second given a hash value it should be hard to recover the document that produced that value Some public key ciphers could be used to sign documents The signer encrypts the document with his private key Anybody wishing to check the signature and see the document simply uses the signer s public key to decrypt the document This algorithm does satisfy the two properties needed from a good hash function but in practice this algorithm is too slow to be useful An alternative is to use hash functions designed to satisfy these two important properties SHA and MD5 are examples of such algorithms Using such an algorithm a document is signed by hashing it and the hash value is the signature Another person can check the signature by also hashing their copy of the document and comparing the hash value they get with the hash value of the original document If they match it is almost certain that the documents are identical Of course the problem now is using a hash function f
54. on Enough said no Name no assume no to most questions yes Description Enough said always trust Name always trust skip key validation always trust 39 40 Description This assumes that used key are fully trusted This option should not be used unless some external scheme is used to validate used keys skip verify Name skip verify skip signature verification skip verify Description This causes signature verification steps to be skipped This leads to faster decryption times if signed messages are being decrypted keyring Name keyring add a keyring to the list of keyrings keyring file Description Adds file to the list of keyrings used during processings If file begins with a tilde and a slash these are replaced by the HOME directory If the filename does not contain a slash it is assumed to be in the home directory The home directory is gnupg if the option homedir is not used The filename file may also be prefixed with a scheme The scheme gnupg ring makes the specified file the default keyring The scheme gnupg gdbm makes the specified file the GDBM ring It may be useful to use these schemes together with the option no default keyring secret keyring Name secret keyring add asecret keyring secret keyring file Description This is the same as the option keyring but for secret keyrings no default keyring Name no default keyring do not add the
55. ool you use to protect your privacy Your privacy is protected if you can correspond with others without eavesdroppers reading those messages How you should use GnuPG depends on the determination and resourcefulness of those who might want to read your encrypted messages An eavesdropper may be an unscrupulous system administrator casually scanning your mail it might be an industrial spy trying to collect your company s secrets or it might be a law enforcement agency trying to prosecute you Using GnuPG to protect against casual eavesdropping is going to be different than using GnuPG to protect against a determined adversary Your goal ultimately is to make it more expensive to recover the unencrypted data than that data is worth Customizing your use of GnuPG revolves around four issues e choosing the key size of your public private keypair e protecting your private key e selecting expiration dates and using subkeys and e managing your web of trust A well chosen key size protects you against brute force attacks on encrypted messages Protecting your private key prevents an attacker from simply using your private key to decrypt encrypted messages and sign messages in your name Correctly managing your web of trust prevents attackers from masquarading as people with whom you communicate Ultimately addressing these issues with respect to your own security needs is how you balance the extra work required to use GnuPG with the privacy it give
56. or digital signatures without permitting an attacker to interfere with signature checking If the document and signature are sent unencrypted an attacker could modify the document and generate a corresponding signature without the recipient s knowledge If only the document is encrypted an attacker could tamper with the signature and cause a signature check to fail A third option is to use a hybrid public key encryption to encrypt both the signature and document The signer uses his private key and anybody can use his public key to check the signature and document This sounds good but is actually nonsense If this algorithm truly secured the document it would also secure it from tampering and there would be no need for the signature The more serious problem however is that this does not protect either the signature or document from tampering With this algorithm only the session key for the symmetric cipher is encrypted using the signer s private key Anybody can use the public key to recover the session key Therefore it is straightforward for an attacker to recover the session key and use it to encrypt substitute documents and signatures to send to others in the sender s name An algorithm that does work is to use a public key algorithm to encrypt only the signature In particular the hash value is encrypted using the signer s private key and anbody can check the signature using the public key The signed document can be sent using any other en
57. piration date after the key is created it may be difficult to communicate a change to users who have your public key You must provide a user ID in addition to the key parameters The user ID is used to associate the key being created with areal person You need a User ID to identify your key the software constructs the user id from Real Name Comment and Email Address in this form Heinrich Heine Der Dichter lt heinrichh duesseldorf de gt Real name Only one user ID is created when a key is created but it is possible to create additional user IDs if you want to use the key in two or more contexts e g as an employee at work and a political activist on the side A user ID should be created carefully since it cannot be edited after it is created GnuPG needs a passphrase to protect the primary and subordinate private keys that you keep in your possession You need a Passphrase to protect your private key Enter passphrase There is no limit on the length of a passphrase and it should be carefully chosen From the perspective of security the passphrase to unlock the private key is one of the weakest points in GnuPG and other public key encryption systems as well since it is the only protection you have if another individual gets your private key Ideally the passphrase should not use words from a dictionary and should mix the case of alphabetic characters as well as use non alphabetic characters A good passphrase is crucial
58. printable string It will be encoded in UTF8 so it is important that the option charset is used to set the character set properly If the parameter name is prefixed with an exclamation mark the notation data will be flagged as critical see rfc2440 5 2 3 15 set policy url Name set policy url set the policy URL for signatures set policy url string Description The parameter string is used as the policy URL for signatures see rfc2440 5 2 3 19 If the string is prefixed with an exclamation mark the policy URL packet will be flagged as critical set filename Name set filename sets the filename stored in encrypted or signed messages set filename string Description The parameter st ring is used as the filename stored in messages Does this specify the output file when a message is verified or decrypted use embedded filename Name use embedded filename use the filename embedded in a message for storing its plaintext or verified version us mbedded filenam 44 45 Description This option should be used with care since it may overwrite files max cert depth Name max cert depth set the maximum depth of a certification chain max cert depth n Description The parameter n sets the maximum length of a chain of certified keys leading from an ultimately trusted key to a key being validated The default is 5 digest algo Name digest algo set the message digest algorithm digest algo name Descri
59. ption The parameter name specifies the name of the digest algorithm to be used Running gpg with the command version gives a list of supported digest algorithms Note that this option may violate the OpenPGP requirement that a 160 bit digest algorithm be used for DSA For symmetric encryption the default algorithm is RIPEM D 160 s2k cipher algo Name s2k cipher algo use a specified algorithm as the symmetric cipher for encrypting private keys s2k cipher algo name Description Use name as the symmetric cipher algorithm to protect private keys Running the gpg with the command version yields a list of supported algorithms The default cipher is Blowfish s2k digest algo Name s2k digest algo set the message digest algorithm for mangling passphrases protecting private keys s2k digest algo name Description The parameter name specifies the name of the digest algorithm to be used for mangling passphrases The default algorithm is RIPEM D 160 s2k mode Name s2k mode sets how passphrases are mangled s2k mode n Description The parameter n specifies the number of times to which a salt is added to passphrases If n is 0a plain passphrase will be used One iteration is the default Unless the option rfc1991 is used this mode is also used for the passphrase for symmetric encryption disable cipher algo Name disable cipher algo prevents a symmetric cipher from being used disable cipher algo name Description The pa
60. put blake gpg output doc decrypt doc sig gpg Signature made Fri Jun d 12802538 1999 CD wstac IDSA key IND BB7576AC gpg Good signature from Alice Judge lt alice cyb org gt 6 7 Clearsigned documents A common use of digital signatures is to sign usenet postings or email messages In such situations it is undesirable to compress the document while signing it The option clearsign causes the document to be wrapped in an ASCll armored signature but otherwise does not modify the document alice gpg clearsign doc You need a passphrase to unlock the secret key for user Alice Judge lt alice cyb org gt 1024 bit DSA key ID BB7576AC created 1999 06 04 kr BEGIN PGP SIGNED MROGAGR Hash SHA1 Ee BEGIN PGP SIGNATURE Version GnuPG v0 9 7 GNU Linux Comment For info see http www gnupg org i EYEARECAAYFA jdYCQoACgkQJ9S6ULt 1ldqz 6IwC Q7wP 6i i 8HhbcOSKF4ELyQB1 oCoAcOugpRgEzr4kOkQqHRLE b8 Rw2k mi NDE CE DEE Ee D etached signatures A signed document has limited usefulness Other users must recover the original document from the signed version and even with clearsigned documents the signed document must be edited to recover the original Therefore there is a third method for signing a document that creates a detached signature A detached signature is created using the detach sig option alice gpg output doc sig detach sig doc You
61. r key Signing public key components with the corresponding private master signing key is called self signing and a public key that has self signed user IDs bound to it is called a certificate As an example Chloe has two user IDs and three subkeys The signatures on the user IDs can be checked with the command check from the key edit menu chloe gpg edit key chloe Secret key is available pub 1024D 26B6AAE1 created 1999 06 15 expires never trusts u sub 2048g 0CF8CB7A created 1999 06 15 expires never sub 1792G 08224617 created 1999 06 15 expires 2002 06 14 sub 960D B1F423E7 created 1999 06 15 expires 2002 06 14 1 Chloe Jester lt chloe cyb org gt 2 Chloe Plebian lt chloe tel net gt Command gt check uid Chloe Jester lt chloe cyb org gt sig ZEISS I 999 OG 15 self signature uid Chloe Plebian lt chloe tel net gt sig 26B6AAE1 1999 06 15 self signature As expected the signing key for each signature is the master signing key with key ID 0x26B6AAE1 The self signatures on the subkeys are present in the public key but they are not shown by the GnuPG interface Adding and deleting key components Both new subkeys and new user IDs may be added to your keypair after it has been created A user ID is added using the command adduid You are prompted for a real name email address and comment just as when you create an initial keypair A subkey is added using the comma
62. rameter name specifies the name of a symmetric cipher algorithm to be disabled If the named cipher is loaded after this option is processed it will not be disabled 45 46 disable pubkey algo Name disable pubkey algo prevents a public key cipher from being used disable pubkey algo name Description The parameter name specifies the name of a public key cipher algorithm to be disabled If the named cipher is loaded after this option is processed it will not be disabled throw keyid Name throw keyid do not put key IDs into encrypted packets throw keyid Description This option hides the receiver of the encrypted data as a countermeasure against traffic analysis It slows decryption however since in the worst case all the keys on a receiver s private keyring must be tried to find the decryption key not dash escaped Name not dash escaped changes the format of cleartext signatures not dash escaped Description This option is useful for cleartext signatures on patch files Messages signed this way should not be sent via email because all spaces and line endings are hashed too This option cannot be used for data which which has five dashes at the beginning of a line A special header line is used to tell GnuPG that this option has been used escape from lines Name escape from lines modifies messages beginning with From when cleartext signing scape from lines Description Because some mailers cha
63. re difficult to validate keys since you must personally sign more keys than if you accepted fewer and longer paths Figure 3 1 A hypothetical web of trust Blake Chloe Elena Blake Chloe Elena Francis Distributing keys Ideally you distribute your key by personally giving it to your correspondents In practice however keys are often distributed by email or some other electronic communication medium Distribution by email is good practice when you have only a few correspondents and even if you have many correspondents you can use an alternative means such as posting your public key on your World Wide Web homepage This is unacceptable however if people who need your public key do not know where to find it on the Web To solve this problem public key servers are used to collect and distribute public keys A public key received by the server is either added to the server s database or merged with the existing key if already present When a key request comes to the server the server consults its database and returns the requested public key if found A keyserver is also valuable when many people are frequently signing other people s keys Without a keyserver when Blake sign s Alice s key then Blake would send Alice a copy of her public key signed by him so that Alice could add the updated key to her ring as well as distribute it to all of her correspondents Going through this effort fulfills Alice s and Blake s responsibility to the commu
64. s meaning o you have signed it personally o ithas been signed by one fully trusted key or o ithas been signed by three marginally trusted keys and 2 the path of signed keys leading from K back to your own key is five steps or shorter The path length number of marginally trusted keys required and number of fully trusted keys required may be adjusted The numbers given above are the default values used by GnuPG Figure 3 1 shows a web of trust rooted at Alice The graph illustrates who has signed who s keys The table shows which keys Alice considers valid based on her trust in the other members of the web This example assumes that two marginally trusted keys or one fully trusted key is needed to validate another key The maximum path length is three When computing valid keys in the example Blake and Dharma s are always considered fully valid since they were signed directly by Alice The validity of the other keys depends on trust In the first case Dharma is trusted fully which implies that Chloe s and Francis s keys will be considered valid In the second example Blake and Dharma are trusted marginally Since two marginally trusted keys are needed to fully validate a key Chloe s key will be considered fully valid but Francis s key will be considered only marginally valid In the case where Chloe and Dharma are marginally trusted Chloe s key will be marginally valid since Dnarma s key is fully valid Francis s key however will also be
65. s a cost Ideally you would keep the private key on a removable write protected disk such as a floppy disk and you would use it on a single user machine not connected to a network This may be inconvenient or impossible for you to do For example you may not own your own machine and must use a computer at work or school or it may mean you have to physically disconnect your computer from your cable modem every time you want to use GnuPG This does not mean you cannot or should not use GnuPG It means only that you have decided that the data you are protecting is important enough to encrypt but not so important as to take extra steps to make the first barrier stronger It is your choice A good passphrase is absolutely critical when using GnuPG Any attacker who gains access to your private key must bypass the encryption on the private key Instead of brute force guessing the key an attacker will almost certainly instead try to guess the passphrase The motivation for trying passphrases is that most people choose a passphrase that is easier to guess than a random 128 bit key If the passphrase is a word it is much cheaper to try all the words in the dictionaries of the world s languages Even if the word is permuted e g k3wldood it is still easier to try dictionary words with a catalog of permutations The same problem applies to quotations In general passphrases based on natural language utterances are poor passphrases since there is little r
66. s you Choosing a key size Selecting a key size depends on the key In OpenPGP a public private keypair usually has multiple keys At the least it has a master signing key and it probably has one or more additional subkeys for encryption Using default key generation parameters with GnuPG the master key will bea DSA key and the subkeys will be ElGamal keys DSA allows a key size up to 1024 bits This is not especially good given today s factoring technology but that is what the standard specifies Without question you should use 1024 bit DSA keys ElGamal keys on the other hand may be of any size Since GnuPG is a hybrid public key system the public key is used to encrypt a 128 bit session key and the private key is used to decrypt it Key size nevertheless affects encryption and decryption speed since the cost of these algorithms is exponential in the size of the key Larger keys also take more time to generate and take more space to store Ultimately there are diminishing returns on the extra security a large key provides you After all if the key is large enough to resist a brute force attack an 19 20 eavesdropper will merely switch to some other method for obtaining your plaintext data Examples of other methods include robbing your home or office and mugging you 1024 bits is thus the recommended key size If you genuinely need a larger key size then you probably already know this and should be consulting an expert i
67. se but it also meant that on some days they never did find the right key The Bombes were not general purpose computers but were precursors to modern day computers Today computers can guess keys very quickly and this is why key size is important in modern cryptosystems The cipher DES uses a 56 bit key which means that there are 255 possible keys 256 is 72 057 594 037 927 936 keys This is a lot of keys but a general purpose computer can check the entire key space in a matter of days A specialized computer can check it in hours On the other hand more recently designed ciphers such as 3DES Blowfish and IDEA all use 128 bit keys which means there are 228 possible keys This is many many more keys and even if all the computers on the planet cooperated it could still take more time than the age of the universe to find the key Public key ciphers The primary problem with symmetric ciphers is not their security but with key exchange Once the sender and receiver have exchanged keys that key can be used to securely communicate but what secure communication channel was used to communicate the key itself In particular it would probably be much easier for an attacker to work to intercept the key than it is to try all the keys in the key space Another problem is the number of keys needed If there aren people 8 9 who need to communicate then n n 1 2 keys are needed for each pair of people to communicate privately This may
68. st keys alice gpg list keys users alice gnupg pubring gpg pub 1024D BB7576AC 1999 06 04 Alice Judge lt alice cyb org gt sub 1024g 78E9A8FA 1999 06 04 Exporting a public key To send your public key to a correspondent you must first export it The command line option export is used to do this It takes an additional argument identifying the public key to export As with the gen revoke option either the key ID or any part of the user ID may be used to identify the key to export alice gpg output alice gpg export alice cyb org The key is exported in a binary format but this can be inconvenient when the key is to be sent though email or published on a web page GnuPG therefore supports a command line option armor that that causes output to be generated in an ASCll armored format similar to uuencoded documents In general any output from GnuPG eg keys encrypted documents and signatures can be ASCIl armored by adding the armor option alice gpg armor export alice cyb org an ae ISL IRG IP EISE IMAC Bee Version GnuPG v0 9 7 GNU Linux Comment For info see http www gnupg org Ee IHINID IPGI2 EISCHT Ie t Importing a public key A public key may be added to your public keyring with the import option alice gpg import blake gpg gpg key 9E98BC16 public key imported gog Local mumoer jorocessecs I gpg imported 1 alice gpg list keys users alice gnupg pubring gp
69. t key is available pub 1024D 26B6AAE1 created 1999 06 15 expires never EeUSIES Zu sub 2048g 0CF8CB7A created 1999 06 15 expires never sub 1792G 08224617 created 1999 06 15 expires 2002 06 14 sub 960D B1F423E7 created 1999 06 15 expires 2002 06 14 1 Chloe Jester lt chloe cyb org gt 2 Chloe Plebian lt chloe tel net gt Command gt The public key is displayed along with an indication of whether or not the private key is available Information about each component of the public key is then listed The first column indicates the type of the key The keyword pub identifies the public master signing key and the keyword sub identifies a public subordinate key The second column indicates the key s bit length type and ID The type is D for a DSA key g for an encryption only ElGamal key and G for an ElGamal key that may be used for both encryption and signing The creation date and expiration date are given in columns three and four The user IDs are listed following the keys More information about the key can be obtained with interactive commands The command toggle switches between the public and private components of a keypair if indeed both components are available Command gt toggle sec 1024D 26B6AAE1 created 1999 06 15 expires never ly 12 sbb 2048g 0CF8CB7A created 1999 06 15 expires never sbb 1792G 08224617 created 1999 06 15 expires 2002 06 14 sbb 960D B1F423E7 created 1999
70. the signature was created If signature is omitted gpg will look in document for a Clearsign signature gen key Name gen key generate a new keypair gen key Description This command generates a private public key pair for use in encrypting decrypting and signing of messages You will br prompted for the kind of key you wish to create the key size and the key s expiration date gen revoke Name gen revoke generate a revocation certificate for a public private keypair gens Evoke eke Description This command generates a revocation certificate for a public private key pair The parameter key is a key specifier send keys Name send keys send keys to a key server send keys key Description This command sends a public key to a keyserver The parameter key specifies the public key that should be uploaded The command requires the option keyserver to specify to which keyserver gpg should send the keys recv keys Name recv keys retrieve keys from a key server recv keys key id key id 26 27 Description This command downloads one or more public keys from a keyserver Each key id isa key ID The command requires the option keyserver to specify from which keyserver gpg should download the keys list keys Name list keys list information about keys list keys key Description This command lists the public keys specified by the key specifiers on the command line If no key specifier
71. to a local keyring import filename Description This command imports one or more public keys onto the user s public keyring from the file filename export Name export export keys from a local keyring export key Description This command exports the public keys components of the keys specified by the key specifiers key Theexport command by default sends its output to standard output This key file can later be imported into another keyring using the command import export all Name export all export all public keys exoore ell meme soc Description This is the same as the command export but keys that are not OpenPGP compliant are also exported export secret keys Name export secret keys export secret keys MOOIME SSSCLSC KSYVS DEME coc Description This is the same as the command export but private keys are exported instead of public keys This is normally not very useful and is a security risk since private keys are left unprotected edit key Name edit key presents a menu for operating on keys edit key key Description This command presents a menu which enables you to perform key related taskes The key specifier key specifies the key pair to be edited If the specifier matches more than one key pair gpg issues an error and exits Key listings displayed during key editing show the key with its secondary keys and all user ids Selected keys or user ids are indicated by an asterisk The trust and valid
72. ublic keys a correspondent s key is validated by personally checking his key s fingerprint and then signing his public key with your private key By personally checking the fingerprint you can be sure 14 15 that the key really does belong to him and since you have signed they key you can be sure to detect any tampering with it in the future Unfortunately this procedure is awkward when either you must validate a large number of keys or communicate with people whom you do not know personally GnuPG addresses this problem with a mechanism popularly known as the web of trust In the web of trust model responsibility for validating public keys is delegated to people you trust For example suppose e Alice has signed Blake s key and e Blakehas signed Chloe s key and Dharma s key If Alice trusts Blake to properly validate keys that he signs then Alice can infer that Chloe s and Dharma s keys are valid without having to personally check them She simply uses her validated copy of Blake s public key to check that Blake s signatures on Chloe s and Dharma s are good In general assuming that Alice fully trusts everybody to properly validate keys they sign then any key signed by a valid key is also considered valid The root is Alice s key which is axiomatically assumed to be valid Trust in a Key s owner In practice trust is subjective For example Blake s key is valid to Alice since she signed it but she may not trust Blake to proper
73. user has a primary keypair and then zero or more additional subordinate keypairs The primary and subordinate keypairs are bundled to facilitate key management and the bundle can often be considered simply as one keypair Generating anew keypair The command line option gen key is used to create a new primary keypair alice gpg gen key gpg GnuPG 0 9 4 Copyright C 1999 Free Software Foundation Inc This program comes with ABSOLUTELY NO WARRANTY This is free software and you are welcome to redistribute it under certain conditions See the file COPYING for details Please select what kind of key you want 1 DSA and ElGamal default 2 DSA ste inlay 4 ElGamal sign and encrypt Your selection GnuPG is able to create several different types of keypairs but a primary key must be capable of making signatures There are therefore only three options Option 1 actually creates two keypairs A DSA keypair is the primary keypair usable only for making signatures An ElIGamal subordinate keypair is also created for encryption Option 2 is similar but creates only a DSA keypair Option 4 creates a single ElGamal keypair usable for both making signatures and performing encryption In all cases it is possible to later add additional subkeys for encryption and signing For most users the default option is fine You must also choose a key size The size of aDSA key must be between 512 and 1024 bits and an ElG
74. ve commands no batch Name no batch disable batch mode no batch Description Useful if the option batch is set in the options file local user Name local user specifies a user id to use for signing local user name Description Use name as the user ID to sign This option is silently ignored for the list commands so that it can be used in an options file default key Name default key specifies a user ID as a default user ID for signatures default user name Description Use name as the user ID to sign If this option is not used the first user ID found on the private keyring is the default user ID completes needed Name completes needed specifies the number of fully trusted people needed to validate a new key completes needed n Description A public key on your keyring is validated using those signatures on the key that were made by other valid keys on your keyring The option specifies the number of signatures needed if you fully trust the owners of the keys that made the signatures Your trust in a key s owner is set with the command edit key marginals needed Name marginals needed specifies the number of marginally trusted people needed to validate a new key marginals needed n Description A public key on your keyring is validated using those signatures on the key that were made by other valid keys on your keyring The option specifies the number of signatures needed if you marginal
75. y have signed any number of user IDs the user interface prompts you to decide for each signature whether or not to revoke it 13 14 Command gt revsig You have signed these user IDs Chloe Jester lt chloe cyb org gt Signed by B87DBA93 at 1999 06 28 Chloe Plebian lt chloe tel net gt Signed by B87DBA93 at 1999 06 28 user ID Chloe Jester lt chloe cyb org gt Signed with your key B87DBA93 at 1999 06 28 Create a revocation certificate for this signature y N n user ID Chloe Plebian lt chloe tel net gt signed with your key B87DBA93 at 1999 06 28 Create a revocation certificate for this signature y N y You are about to revoke these signatures Chloe Plebian lt chloe tel net gt Signed by B87DBA93 at 1999 06 28 Really create the revocation certificates y N y You need a passphrase to unlock the secret key for user Chloe Jester lt chloe cyb org gt 1024 bit DSA key ID B87DBA93 created 1999 06 28 pub 1024D B87DBA93 created 1999 06 28 expires never Eemer Zu sub 2048g B7934539 created 1999 06 28 expires never sub 1792G 4E3160AD created 1999 06 29 expires 2000 06 28 rev subkey has been revoked 1999 06 29 sub 960D E1F56448 created 1999 06 29 expires 2000 06 28 1 Chloe Jester lt chloe cyb org gt 2 Chloe Plebian lt chloe tel net gt A revoked user ID is indicated by the revocation signature on the ID when the signatures on the key s user IDs are listed
76. y name store Name store make only simple rfc1991 packets help Description Elaborate export ownertrust Name export ownertrust export assigned owner trust values export ownertrust file 30 31 Description The owner trust values are exported in ASCII format This is useful for making a backup of the trust values assigned to key owners import ownertrust Name import ownertrust import owner trust values import ownertrust file Description The trust database is updated with the trust values take from the files file Ifno files are listed the input is taken from standard input update trustdb Name update trustdb update the trust database update trustdb Description Enough said print md Name print md display message digests IER lesen senile 2 5 5 Description Displays a message digest using algorithm algo for each of the files file If no files are listed the input is taken from standard input If the algorithm specified is 9 then digests using all available algorithms are displayed gen random Name gen random generate random data gen random level n Description This command emits n bytes of random data with quality level If the parameter n is omitted then an endless sequence of random bytes will be emitted This command should not be frivolously since it takes entropy from the system gen prime Name gen prime gen prime mode bits qbits
77. yption softwarein your country 22 23 Chapter 5 Topics This chapter covers miscellaneous topics that do not fit elsewhere in the user manual As topics are added they may be collected and factored into chapters that stand on their own If you would like to see a particular topic covered please suggest it Even better volunteer to write a first draft covering your suggested topic Writing user interfaces Alma Whitten and Doug Tygar have done a study on NAI s PGP 5 0 user interface and came to the conclusion that novice users find PGP confusing and frustrating In their human factors study only four out of twelve test subjects managed to correctly send encrypted email to their team members and three out of twelve emailed the secret without encryption Furthermore half of the test subjects had a technical background These results are not surprising PGP 5 0 has a nice user interface that is excellent if you already understand how publickey encryption works and are familiar with the web of trust key management model specified by OpenPGP Unfortunately novice users understand neither public key encryption nor key management and the user interface does little to hep You should certainly read Whitten and Tygar s report if you are writing a user interface It gives specific comments from each of the test subjects and those details are enlightening For example it would appear that many of subjects believed that a message being s

Download Pdf Manuals

image

Related Search

Related Contents

  WinAC Time Synchronization    交通流監視用カメラ端末装置外 更新工事仕様書  GENERAL INFORMATION SECTION GI  INSTALLATION, OPERATION AND SERVICE MANUAL GAS COOKER  WEVP 461 E BIS  Samsung ST600 User Manual    

Copyright © All rights reserved.
Failed to retrieve file