diff options
Diffstat (limited to 'doc/gph/c4.sgml')
-rw-r--r-- | doc/gph/c4.sgml | 433 |
1 files changed, 0 insertions, 433 deletions
diff --git a/doc/gph/c4.sgml b/doc/gph/c4.sgml deleted file mode 100644 index 1932da7ae..000000000 --- a/doc/gph/c4.sgml +++ /dev/null @@ -1,433 +0,0 @@ -<chapter id="wise" xreflabel="4"> -<docinfo> -<date> -$Id$ -</date> -</docinfo> -<title> -Daily use of &Gnupg; -</title> - -<para> -&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. -</para> - -<para> -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. -</para> - -<sect1> -<title> -Defining your security needs -</title> - -<para> -&Gnupg; is a tool you use to protect your privacy. -Your privacy is protected if you can correspond with others without -eavesdroppers reading those messages. -</para> - -<para> -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. -</para> - -<para> -Customizing your use of &gnupg; revolves around three issues: -<itemizedlist spacing="compact"> -<listitem> -<para> -the key size of your public/private keypair, -</para> -</listitem> - -<listitem> -<para> -protecting your private key, and -</para> -</listitem> - -<listitem> -<para> -managing your web of trust. -</para> -</listitem> -</itemizedlist> - -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 gives you. -</para> - -<sect2> -<title> -Choosing a key size -</title> - -<para> -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 be a DSA key, and the subkeys will be ElGamal keys. -</para> - -<para> -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. -</para> - -<para> -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 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 in data security. -</para> -</sect2> - -<sect2> -<title> -Protecting your private key -</title> - -<para> -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. -</para> - -<para> -Regardless of how you use &gnupg; you should store the public -key's <link linkend="revocation">revocation certificate</link> -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. -</para> - -<para> -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. -</para> - -<para> -Safely storing your private key is important, but there is 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; -</para> - -<para> -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. -</para> - -<para> -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. -</para> - -<para> -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, &eg, 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 randomness and lots -of redundancy in natural language. -You should avoid natural language passphrases if you can. -</para> - -<para> -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 <literal>}</literal> and <literal>|</literal>. -Be creative and spend a little time considering your passphrase; a -good choice is important to ensure your privacy. -</para> -</sect2> - -<!-- -<sect2> -<title> -Reacting to a compromised private key -</title> - -<para> -Despite your precautions you may lose sole access to your private key. -For example, you may forget the passphrase, or someone who you think -can bypass the encryption gets access to it. -In that case then you need to spread the word that your key is no -longer valid. -To do that you use the key revocation certificate you should have generated -when you created the key. -Importing it onto your public keyring will revoke the public key -of the keypair you no longer wish to use. -It is then up to you to distribute the revoked public key to all -those who may encrypt documents to you. -</para> - -<para> -A revoked public key only prevents future use of the private key. -Others will neither be able to encrypt documents to the key nor will -they be able to check signatures made with the private key. -Documents signed in the past can still be checked, however, and -documents encrypted in the past can still be decrypted. -</para> - -<para> -It is important that you protect the revocation certificate carefully. -Anybody can add the certificate to your public key and distribute it, -and there is no way to revoke a revocation certificate. -Therefore, you should store the revocation certificate in a safe -place such as with the backup of your private key. -</para> -</sect2> ---> - -<sect2> -<title> -Managing your web of trust -</title> - -<para> -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. -</para> - -<para> -Regardless of your own security needs, through, you should -<emphasis>always be careful</emphasis> 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 on their signatures. -</para> - -<para> -In practice, managing your web of trust reduces to assigning trust to -others and tuning the options -<link linkend="marginals-needed"><option>--marginals-needed</option></link> -and -<link linkend="completes-needed"><option>--completes-needed</option></link>. -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. -</para> - -<para> -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 <option>--completes-needed</option> to -<literal>1</literal> and <option>--marginals-needed</option> to -<literal>2</literal>. -If you are more concerned with security you might choose values of -<literal>1</literal> and <literal>3</literal> or <literal>2</literal> -and <literal>3</literal> respectively. -If you are less concerned with privacy attacks and just want some -reasonable confidence about validity, set the values to <literal>1</literal> -and <literal>1</literal>. -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. -</para> -</sect2> -</sect1> - -<sect1> -<title> -Building your web of trust -</title> - -<para> -Wanting to use &gnupg; yourself is not enough. -In order to use to communicate securely with others you must have -a web of trust. -At first glance, however, building a web of trust is a daunting task. -The people with whom you communicate need to use -&gnupg;<footnote><para>In this section, &gnupg; refers to the -&gnupg; implementation of OpenPGP as well as other implementations -such as NAI's PGP product.</para></footnote>, and there needs to be enough -key signing so that keys can be considered valid. -These are not technical problems; they are social problems. -Nevertheless, you must overcome these problems if you want to -use &gnupg;. -</para> - -<para> -When getting started using &gnupg; it is important to realize that you -need not securely communicate with every one of your correspondents. -Start with a small circle of people, perhaps just yourself and -one or two others who also want to exercise their right -to privacy. -Generate your keys and sign each other's public keys. -This is your initial web of trust. -By doing this you will appreciate the value of a small, robust -web of trust and will be more cautious as you grow your web -in the future. -</para> - -<para> -In addition to those in your initial web of trust, you may want to -communicate securely with others who are also using &gnupg;. -Doing so, however, can be awkward for two reasons: -(1) you do not always know when someone uses or is willing to use -&gnupg;, and (2) if you do know of someone who uses it, you may still have -trouble validating their key. -The first reason occurs because people do not always advertise that -they use &gnupg;. -The way to change this behavior is to set the example and advertise -that you use &gnupg;. -There are at least three ways to do this: you can sign messages you mail -to others or post to message boards, you can put your public key on your -web page, or, if you put your key on a keyserver, you can put your key -ID in your email signature. -If you advertise your key then you make it that much more acceptable -for others to advertise their keys. -Furthermore, you make it easier for others to start communicating -with you securely since you have taken the initiative and made it clear -that you use &gnupg;. -</para> - -<para> -Key validation is more difficult. -If you do not personally know the person whose key you want to sign, -then it is not possible to sign the key yourself. -You must rely on the signatures of others and hope to find a chain -of signatures leading from the key in question back to your own. -To have any chance of finding a chain, you must take the intitive -and get your key signed by others outside of your intitial web of trust. -An effective way to accomplish this is to participate in key -signing parties. -If you are going to a conference look ahead of time for a key -signing party, and if you do not see one being held, offer to -<ulink url="http://www.herrons.com/kb2nsx/keysign.html">hold one</ulink>. -You can also be more passive and carry your fingerprint with you -for impromptu key exchanges. -In such a situation the person to whom you gave the fingerprint -would verify it and sign your public key once he returned home. -</para> - -<para> -Keep in mind, though, that this is optional. -You have no obligation to either publically advertise your key or -sign other people's keys. -The power of &gnupg; is that it is flexible enough to adapt to your -security needs whatever they may be. -The social reality, however, is that you will need to take the initiative -if you want to grow your web of trust and use &gnupg; for as much of -your communication as possible. -</para> -</sect1> - -<sect1> -<title> -Using &Gnupg; legally -</title> - -<para> -The legal status of encryption software varies from country to country, -and law regarding encryption software is rapidly evolving. -<ulink url="http://cwis.kub.nl/~frw/people/koops/bertjaap.htm">Bert-Japp -Koops</ulink> has an excellent -<ulink url="http://cwis.kub.nl/~frw/people/koops/lawsurvy.htm">Crypto -Law Survey</ulink> to which you should refer for the legal status of -encryption software in your country. -</para> - -</sect1> -</chapter> - |