Difference between revisions of "GnuPG Privacy Handbook"

From OnnoWiki
Jump to navigation Jump to search
 
(64 intermediate revisions by the same user not shown)
Line 18: Line 18:
 
Opsi command line --gen-key digunakan untuk membuat primary keypair baru.
 
Opsi command line --gen-key digunakan untuk membuat primary keypair baru.
  
  alice% gpg --gen-key
+
  gpg --gen-key
  
 
  gpg (GnuPG) 0.9.4; Copyright (C) 1999 Free Software Foundation, Inc.
 
  gpg (GnuPG) 0.9.4; Copyright (C) 1999 Free Software Foundation, Inc.
Line 38: Line 38:
 
  subkeys for encryption and signing. For most users the default option is fine.
 
  subkeys for encryption and signing. For most users the default option is fine.
  
You must also choose a key size. The size of a DSA key must be between 512 and 1024 bits, and an ElGamal 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.
+
Anda juga harus memilih panjang kunci. Panjang kunci DSA harus antara 512 dan 1024 bit, dan kunci ElGamal memungkinkan untuk panjang yang bebas. GnuPG, bagaimanapun, mensyaratkan bahwa kunci tidak lebih kecil dari 768 bit. Oleh karena itu, jika opsi 1 dipilih dan anda memilih ukuran kunci yang lebih besar dari 1024 bit, kunci ElGamal akan memiliki ukuran yang diminta, namun tombol DSA akan menjadi 1024 bit.
  
 
  About to generate a new ELG-E keypair.
 
  About to generate a new ELG-E keypair.
Line 92: Line 92:
 
Untuk berkomunikasi dengan orang lain anda harus bertukar kunci publik. Untuk melihat daftar key pada keyring publik anda dapat menggunakan opsi --list-keys.
 
Untuk berkomunikasi dengan orang lain anda harus bertukar kunci publik. Untuk melihat daftar key pada keyring publik anda dapat menggunakan opsi --list-keys.
  
  alice% gpg --list-keys
+
  gpg --list-keys
  
 
  /users/alice/.gnupg/pubring.gpg
 
  /users/alice/.gnupg/pubring.gpg
Line 105: Line 105:
 
  alice% gpg --output alice.gpg --export alice@cyb.org
 
  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[2] that causes output to be generated in an ASCII-armored format similar to uuencoded documents. In general, any output from GnuPG, e.g., keys, encrypted documents, and signatures, can be ASCII-armored by adding the --armor option.
+
Kuncinya diekspor dalam format biner, tapi ini bisa merepotkan saat kuncinya dikirim meski email atau dipublikasikan di halaman web. Oleh karena itu, GnuPG mendukung opsi --armour yang menyebabkan keluaran dihasilkan dalam format ASCII-armoured yang serupa dengan dokumen yang di uuencoded. Secara umum, setiap keluaran dari GnuPG, mis., kunci, dokumen terenkripsi, dan tanda tangan, dapat menjadi ASCII-armoured dengan menambahkan opsi --armor.
  
 
  alice% gpg --armor --export alice@cyb.org
 
  alice% gpg --armor --export alice@cyb.org
Line 117: Line 117:
 
===Importing a public key===
 
===Importing a public key===
  
A public key may be added to your public keyring with the --import option.
+
sebuah public key dapat di tambahkan pada public keyring anda dengan opsi --import
 +
 
 +
gpg --import blake.gpg
  
alice% gpg --import blake.gpg
 
 
  gpg: key 9E98BC16: public key imported
 
  gpg: key 9E98BC16: public key imported
 
  gpg: Total number processed: 1
 
  gpg: Total number processed: 1
 
  gpg:              imported: 1
 
  gpg:              imported: 1
  alice% gpg --list-keys
+
 
 +
  gpg --list-keys
 +
 
 
  /users/alice/.gnupg/pubring.gpg
 
  /users/alice/.gnupg/pubring.gpg
 
  ---------------------------------------
 
  ---------------------------------------
Line 132: Line 135:
 
  sub  1024g/5C8CBD41 1999-06-04
 
  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.
+
Sekali kunci diimpor itu harus divalidasi. GnuPG menggunakan model trust yang kuat dan fleksibel yang tidak mengharuskan anda untuk secara pribadi memvalidasi setiap kunci yang anda impor. Beberapa kunci mungkin perlu divalidasi secara pribadi. Kunci divalidasi dengan memverifikasi fingerprint kunci dan kemudian menandatangani kunci untuk menyatakannya sebagai kunci yang valid. Fingerprint kunci dapat dilihat dengan cepat dengan opsi --fingerprint, namun untuk mengesahkan kunci, anda harus mengeditnya.
  
  alice% gpg --edit-key blake@cyb.org
+
  gpg --edit-key blake@cyb.org
 
   
 
   
 
  pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
 
  pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
Line 144: Line 147:
 
               Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16
 
               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 owner gets, then you can be sure that you have a correct copy of the key.
+
Fingerprint kunci diverifikasi dengan pemilik kunci. Hal ini dapat dilakukan secara langsung atau melalui telepon atau melalui cara lain selama anda dapat menjamin bahwa anda berkomunikasi dengan pemilik kunci yang sebenarnya. Jika fingerprint yang anda dapatkan sama dengan fingerprint pemilik kunci, anda dapat yakin bahwa anda memiliki salinan kunci yang benar.
  
After checking the fingerprint, you may sign the key to validate it. Since key verification is a weak point in public-key cryptography, you should be extremely careful and always check a key's fingerprint with the owner before signing the key.
+
Setelah memeriksa fingerprint, anda dapat menandatangani kunci untuk memvalidasinya. Karena verifikasi kunci adalah titik lemah dalam kriptografi kunci publik, anda harus sangat berhati-hati dan selalu memeriksa sidik jari kunci dengan pemiliknya sebelum menandatangani kunci.
  
 
  Command> sign
 
  Command> sign
Line 160: Line 163:
 
===Really sign?===
 
===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.
+
Setelah masuk, anda dapat memeriksa kunci untuk mencantumkan signature di atasnya dan melihat signature yang telah anda tambahkan. Setiap ID pengguna di kunci akan memiliki satu atau lebih signature sendiri dan juga signature untuk setiap pengguna yang telah memvalidasi kuncinya.
  
 
  Command> check
 
  Command> check
Line 167: Line 170:
 
  sig!      BB7576AC 1999-06-04  Alice (Judge) <alice@cyb.org>
 
  sig!      BB7576AC 1999-06-04  Alice (Judge) <alice@cyb.org>
  
===Encrypting and decrypting documents===
+
===Enkripsi dan dekripsi dokumen===
  
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 the 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.
+
Kunci publik dan kunci private masing-masing memiliki peran khusus saat mengenkripsi dan mendekripsi dokumen. Kunci publik dapat dianggap sebagai brankas terbuka. Ketika seorang koresponden mengenkripsi dokumen dengan menggunakan kunci publik, dokumen itu dimasukkan ke dalam brankas, brankas ditutup, dan kunci kombinasi diputar beberapa kali. Kunci pribadi yang sesuai adalah kombinasi yang dapat membuka kembali brankas dan mengambil dokumen. Dengan kata lain, hanya orang yang memegang kunci privat dapat mengembalikan dokumen yang dienkripsi menggunakan kunci publik yang terkait.
  
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 private key.
+
Prosedur untuk mengenkripsi dan mendekripsi dokumen sangat mudah dengan model mental ini. Jika Anda ingin mengenkripsi pesan ke Alice, Anda mengenkripsi dengan menggunakan kunci publik Alice, dan dia mendekrip dengan kunci private-nya. Jika Alice ingin mengirimi anda pesan, dia mengenkripsinya menggunakan kunci publik anda, dan anda mendekripnya dengan kunci private anda.
  
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; if omitted, it reads 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.
+
Untuk mengenkripsi sebuah dokumen gunakan opsi --encrypt . Anda harus memiliki kunci publik dari penerima yang dimaksud. Perangkat lunak mengharapkan nama dokumen untuk dienkripsi sebagai masukan; Jika dihilangkan, ia membaca input standar. Hasil terenkripsi ditempatkan pada keluaran standar atau sesuai dengan opsi --output. Dokumen ini dikompres untuk keamanan tambahan selain mengenkripsi.
  
 
  alice% gpg --output doc.gpg --encrypt --recipient blake@cyb.org doc
 
  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.
+
Opsi --recipient digunakan satu kali untuk setiap penerima dan mengambil argumen tambahan yang menentukan kunci publik yang dokumennya harus dienkripsi. Dokumen terenkripsi hanya bisa didekripsi oleh seseorang dengan kunci pribadi yang melengkapi salah satu kunci publik penerima. Secara khusus, anda tidak dapat mendekripsi sebuah dokumen yang dienkripsi oleh anda kecuali anda menyertakan kunci publik anda sendiri dalam daftar penerima.
  
To decrypt a message the option --decrypt is used. You need the private key to which the message was encrypted. Similar to the encryption process, the document to decrypt is input, and the decrypted result is output.
+
Untuk mendekrip pesan gunakan opsi --decrypt . Anda memerlukan kunci privat yang digunakan untuk meng-enkripsi pesan. Serupa dengan proses enkripsi, dokumen yang akan didekrip adalah input, dan hasil dekrip adalah output.
  
 
  blake% gpg --output doc --decrypt doc.gpg
 
  blake% gpg --output doc --decrypt doc.gpg
Line 189: Line 192:
 
  Enter passphrase:  
 
  Enter passphrase:  
  
Documents may also be encrypted without using public-key cryptography. Instead, you use a symmetric cipher 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.
+
Dokumen juga dapat dienkripsi tanpa menggunakan kriptografi kunci publik. Sebagai gantinya, anda menggunakan cipher simetris untuk mengenkripsi dokumen. Kunci yang digunakan untuk cipher simetris berasal dari frasa sandi yang diberikan saat dokumen dienkripsi, dan untuk keamanan yang baik, kunci tersebut tidak boleh sama dengan frasa sandi yang anda gunakan untuk melindungi kunci privat anda. Enkripsi simetris berguna untuk mengamankan dokumen bila frasa sandi tidak perlu dikomunikasikan kepada orang lain. Sebuah dokumen dapat dienkripsi dengan cipher simetris dengan menggunakan opsi --symmetric.
  
 
  alice% gpg --output doc.gpg --symmetric doc
 
  alice% gpg --output doc.gpg --symmetric doc
Line 196: Line 199:
 
  Making and verifying signatures
 
  Making 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.
+
Tanda tangan digital memberi tanda dan cap waktu sebuah dokumen. Jika dokumen kemudian diubah dengan cara apapun, verifikasi tanda tangan akan gagal. Tanda tangan digital dapat melayani tujuan yang sama seperti tanda tangan yang ditulis tangan dengan tambahan keuntungan karena tahan terhadap pengrusakan / perubahan. Distribusi sumber GnuPG, misalnya, ditandatangani sehingga pengguna dapat memverifikasi bahwa kode sumbernya belum dimodifikasi sejak dikemas.
  
Creating and verifying signatures 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.
+
Membuat dan memverifikasi tanda tangan menggunakan keypair publik / private dalam operasi yang berbeda dengan enkripsi dan dekripsi. Tanda tangan dibuat dengan menggunakan kunci pribadi penandatangan. Tanda tangan diverifikasi menggunakan kunci publik yang sesuai. Misalnya, Alice akan menggunakan kunci privat-nya untuk menandatangani secara digital kiriman terakhirnya ke Journal of Anorganic Chemistry. Editor asosiasi yang menangani pengirimannya akan menggunakan kunci publik Alice untuk memeriksa tanda tangan untuk memverifikasi bahwa penyerahannya benar-benar berasal dari Alice dan itu tidak dimodifikasi sejak Alice mengirimkannya. Konsekuensi menggunakan tanda tangan digital adalah sulit untuk menyangkal bahwa anda membuat tanda tangan digital karena itu berarti kunci pribadi anda telah disusupi.
  
The command-line option --sign is used to make a digital signature. The document to sign is input, and the signed document is output.
+
Opsi --sign digunakan untuk membuat tanda tangan digital. Dokumen yang akan ditandatangani adalah input, dan dokumen yang ditandatangani adalah output.
  
 
  alice% gpg --output doc.sig --sign doc
 
  alice% gpg --output doc.sig --sign doc
Line 210: Line 213:
 
  Enter passphrase:  
 
  Enter passphrase:  
  
The document is compressed before being signed, and the output is in binary format.
+
Dokumen dikompres sebelum ditandatangani, dan hasilnya ada dalam format biner.
  
Given a signed 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 output.
+
Dengan dokumen yang ditandatangani, anda bisa mengecek tanda tangan atau memeriksa tanda tangan dan mengembalikan dokumen aslinya. Untuk mengecek tanda tangan gunakan opsi --verify. Untuk memverifikasi tanda tangan dan ekstrak dokumen gunakan opsi --decrypt. Dokumen yang ditandatangani untuk memverifikasi dan memulihkan adalah masukan dan dokumen yang dipulihkan adalah keluaran.
  
 
  blake% gpg --output doc --decrypt doc.sig
 
  blake% gpg --output doc --decrypt doc.sig
Line 218: Line 221:
 
  gpg: Good signature from "Alice (Judge) <alice@cyb.org>"
 
  gpg: Good signature from "Alice (Judge) <alice@cyb.org>"
  
===Clearsigned documents===
+
===Clearsigned dokumen===
  
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 ASCII-armored signature but otherwise does not modify the document.
+
Penggunaan tanda tangan digital yang umum adalah menandatangani posting atau pesan email usenet. Dalam situasi seperti itu, tidak diinginkan untuk mengkompres dokumen saat menandatanganinya. Opsi --clearsign menyebabkan dokumen dibungkus dengan tanda tangan ASCII-armoured namun tidak mengubah dokumen.
  
 
  alice% gpg --clearsign doc
 
  alice% gpg --clearsign doc
Line 241: Line 244:
 
  -----END PGP SIGNATURE-----
 
  -----END PGP SIGNATURE-----
  
==Detached signatures==
+
===Detached 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, which is a separate file. A detached signature is created using the --detach-sig option.
+
Dokumen yang ditandatangani memiliki kegunaan yang terbatas. Pengguna lain harus memulihkan dokumen asli dari versi yang ditandatangani, dan bahkan dengan dokumen yang jelas, dokumen yang ditandatangani harus diedit untuk memulihkan dokumen asli. Oleh karena itu, ada metode ketiga untuk menandatangani dokumen yang membuat tanda tangan terpisah, yang merupakan file terpisah. Tanda tangan terpisah dibuat menggunakan opsi --detach-sig.
  
  alice% gpg --output doc.sig --detach-sig doc
+
  gpg --output doc.sig --detach-sig doc
  
 
  You need a passphrase to unlock the secret key for
 
  You need a passphrase to unlock the secret key for
Line 253: Line 256:
 
  Enter passphrase:  
 
  Enter passphrase:  
  
Both the document and detached signature are needed to verify the signature. The --verify option can be to check the signature.
+
Baik dokumen maupun tanda tangan yang diperlukan untuk mendapatkan tanda tangan. Untuk mengecek signature bisa menggunakan opsi --verify ;.
 +
 
 +
gpg --verify doc.sig doc
  
blake% gpg --verify doc.sig doc
 
 
  gpg: Signature made Fri Jun  4 12:38:46 1999 CDT using DSA key ID BB7576AC
 
  gpg: Signature made Fri Jun  4 12:38:46 1999 CDT using DSA key ID BB7576AC
 
  gpg: Good signature from "Alice (Judge) <alice@cyb.org>"
 
  gpg: Good signature from "Alice (Judge) <alice@cyb.org>"
  
==Chapter 2. Concepts==
+
==Chapter 2. Konsep==
  
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.
+
GnuPG memanfaatkan beberapa konsep kriptografi termasuk cipher simetris, cipher kunci publik, dan hashing satu arah. Anda bisa membuat penggunaan dasar GnuPG tanpa memahami sepenuhnya konsep ini, namun untuk menggunakannya dengan bijak, beberapa pemahaman tentang hal itu diperlukan.
  
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''.
+
Bab ini memperkenalkan konsep kriptografi dasar yang digunakan dalam GnuPG. Buku-buku lain mencakup topik-topik ini secara lebih rinci. Sebuah buku bagus untuk dipelajari selanjutnya adalah "Applied Cryptography" oleh Bruce Schneier.
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 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.
+
===Symmetric cipher===
  
A good cipher puts all the security in the key and none in the algorithm. In other words, it should be no help 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.
+
Cipher simetris adalah cipher yang menggunakan kunci yang sama untuk enkripsi dan dekripsi. Dua pihak yang berkomunikasi menggunakan cipher simetris harus menyetujui kunci sebelumnya. Begitu mereka setuju, pengirim mengenkripsi pesan menggunakan kunci tersebut, mengirimkannya ke penerima, dan penerima mendekripsi pesan menggunakan kunci tersebut. Sebagai contoh, Enigma Jerman adalah cipher simetris, dan kunci harian didistribusikan sebagai buku kode. Setiap hari, operator radio pengirim atau penerima akan berkonsultasi dengan fotokopi buku kode untuk menemukan kunci hari itu. Lalu lintas radio untuk hari itu kemudian dienkripsi dan didekripsi dengan menggunakan kunci hari itu. Contoh modern dari simetris cipher meliputi 3DES, Blowfish, dan IDEA.
  
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.
+
Sebuah cipher yang baik menempatkan semua keamanan pada key dan tidak ada dalam algoritma. Dengan kata lain, seharusnya tidak ada gunanya bagi penyerang jika dia mengetahui cipher mana yang sedang digunakan. Hanya jika dia mendapatkan kunci pengetahuan tentang algoritma dibutuhkan. Cipher yang digunakan di GnuPG memiliki properti ini.
  
Britain used machines to guess keys during World War 2. The German Enigma had a very large key space, but the British built specialized 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 use, 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.
+
Karena semua keamanan ada di kunci, penting sekali untuk mempersulit menebak kuncinya. Dengan kata lain, set kunci yang mungkin, yaitu, panjang kunci, harus berukuran besar. Sementara di Los Alamos, Richard Feynman terkenal karena kemampuannya untuk menjebol lemari besi. Untuk mendorong mistik ia bahkan membawa kemana-mana seperangkat alat termasuk stetoskop tua. Pada kenyataannya, ia menggunakan berbagai trik untuk mengurangi jumlah kombinasi yang ia coba untuk sejumlah kecil dan kemudian bisa ditebak sampai ia menemukan kombinasi yang tepat. Dengan kata lain, ia mengurangi ukuran panjang kunci.
  
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 256 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 2128 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.
+
Inggris menggunakan mesin untuk menebak kunci selama Perang Dunia 2. Enigma Jerman memiliki panjang kunci yang sangat besar, namun Inggris membangun mesin penghitung khusus, Bombes, untuk secara mekanis mencoba kunci sampai kunci hari itu ditemukan. Ini berarti kadang kala mereka menemukan kunci hari itu dalam hitungan jam penggunaan kunci baru, tapi itu juga berarti bahwa pada beberapa hari mereka tidak pernah menemukan kunci yang tepat. Bombes bukanlah komputer dengan tujuan umum namun merupakan prekursor komputer modern.
  
===Public-key ciphers===
+
Saat ini, komputer bisa menebak kunci dengan sangat cepat, dan inilah sebabnya ukuran kunci penting dalam kriptosistem modern. DES cipher menggunakan kunci 56-bit, yang berarti ada 256 kemungkinan kunci. 256 adalah 72.057.594.037.927.936 kunci. Ini adalah kunci yang panjang, namun komputer tujuan umum dapat memeriksa keseluruhan panjang kunci dalam hitungan hari. Komputer khusus bisa memeriksanya berjam-jam. Di sisi lain, cipher yang baru dirancang seperti 3DES, Blowfish, dan IDEA semua menggunakan kunci 128-bit, yang berarti ada 2128 kemungkinan kunci. Ini kunci yang jauh lebih panjang lagi, dan bahkan jika semua komputer di planet ini bekerja sama, masih bisa memakan waktu lebih lama dari pada usia alam semesta untuk menemukan kuncinya.
  
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 are n people who need to communicate, then n(n-1)/2 keys are needed for each pair of people to communicate privately. This may be OK for a small number of people but quickly becomes unwieldy for large groups of people.
+
===Public-key cipher===
  
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.
+
Masalah utama dengan simetris cipher bukan keamanan mereka tapi dengan pertukaran kunci. Begitu pengirim dan penerima saling bertukar kunci, kunci itu bisa digunakan untuk berkomunikasi dengan aman, tapi saluran komunikasi aman mana yang digunakan untuk mengkomunikasikan kunci itu sendiri? Secara khusus, mungkin akan lebih mudah bagi penyerang untuk mencoba mencegat kunci daripada mencoba semua kemungkinan kunci. Masalah lainnya adalah banyaknya kunci yang dibutuhkan. Jika ada n orang yang perlu berkomunikasi, maka di perlukan n(n-1)/2 kunci untuk setiap pasangan orang untuk berkomunikasi secara pribadi. Ini mungkin baik untuk sejumlah kecil orang tapi dengan cepat menjadi berat bagi kelompok besar orang.
  
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.
+
Cipher kunci publik diciptakan untuk menghindari masalah pertukaran kunci sepenuhnya. Cipher kunci publik menggunakan sepasang kunci untuk mengirim pesan. Kedua kunci itu milik orang yang menerima pesan tersebut. Salah satu kunci adalah kunci publik dan mungkin diberikan kepada siapa saja. Kunci lainnya adalah kunci private dan dirahasiakan oleh pemiliknya. Pengirim mengenkripsi pesan menggunakan kunci publik dan saat dienkrip, hanya kunci private yang dapat digunakan untuk mendekrip-nya.
  
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 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 prime 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.
+
Protokol ini memecahkan masalah pertukaran kunci yang melekat pada simetris cipher. Tidak perlu bagi pengirim dan penerima untuk menyetujui sebuah kunci. Yang dibutuhkan hanyalah beberapa saat sebelum komunikasi rahasia pengirim mendapat salinan kunci publik penerima. Selanjutnya, satu kunci publik dapat digunakan oleh siapa saja yang ingin berkomunikasi dengan penerima. Jadi, hanya n keypairs yang dibutuhkan n untuk saling berkomunikasi satu sama lain.
  
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 280 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.
+
Kunci publik ciphers didasarkan pada fungsi one-way trapdoor. Fungsi satu arah adalah fungsi yang mudah dihitung, namun inversnya sulit dihitung. Sebagai contoh, mudah untuk mengalikan dua bilangan prima bersama-sama untuk mendapatkan komposit, namun sulit untuk menentukan komposit menjadi komponen utamanya. Fungsi one-way trapdoor serupa, namun memiliki pintu jebakan. Artinya, jika beberapa informasi diketahui, maka menjadi mudah untuk menghitung invers. Misalnya, jika anda memiliki nomor yang terdiri dari dua faktor prima, maka mengetahui salah satu faktor memudahkan untuk menghitung yang kedua. Dengan menggunakan cipher kunci publik berdasarkan faktorisasi prima, kunci publik berisi bilangan komposit yang dibuat dari dua faktor prima yang besar, dan algoritma enkripsi menggunakan komposit tersebut untuk mengenkripsi pesan. Algoritma untuk mendekripsi pesan memerlukan mengetahui faktor prima, jadi dekripsi mudah dilakukan jika anda memiliki kunci pribadi yang berisi salah satu faktor namun sangat sulit jika anda tidak memilikinya.
Hybrid ciphers
 
  
Public-key ciphers are no panacea. Many symmetric ciphers are stronger from a security standpoint, and public-key encryption and 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.
+
Seperti halnya dengan cipher simetris yang baik, dengan kunci publik yang bagus, semua keamanan bersandar pada kuncinya. Oleh karena itu, ukuran kunci adalah ukuran keamanan sistem, namun tidak dapat membandingkan ukuran kunci cipher simetris dan kunci sandi kunci publik sebagai ukuran keamanan relatif mereka. Dalam serangan brute force pada cipher simetris dengan ukuran kunci 80 bit, penyerang harus menghitung hingga 280 kunci untuk menemukan kunci yang tepat. Dalam serangan brute force pada kunci publik kunci dengan ukuran kunci 512 bit, penyerang harus memasukkan bilangan komposit yang dikodekan dalam 512 bit (sampai 155 digit desimal). Beban kerja penyerang pada dasarnya berbeda tergantung pada cipher yang sedang diserangnya. Sementara 128 bit cukup untuk simetris ciphers, mengingat hari ini teknologi kunci publik dengan 1024 bit yang direkomendasikan untuk sebagian besar tujuan.
  
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.
+
===Hybrid cipher===
  
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.
+
Cipher kunci publik bukanlah obat mujarab. Banyak ciphers simetris lebih kuat dari sudut pandang keamanan, dan enkripsi dan dekripsi kunci publik lebih mahal daripada operasi yang sesuai pada sistem simetris. Cipher kunci publik tetap merupakan alat yang efektif untuk mendistribusikan kunci cipher simetris, dan begitulah cara penggunaannya dalam sistem cipher hibrida.
  
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.
+
Cipher hibrida menggunakan cipher simetris dan cipher kunci publik. Ia bekerja dengan menggunakan cipher kunci publik untuk berbagi kunci untuk cipher simetris. Pesan sebenarnya yang dikirim kemudian dienkripsi menggunakan kunci dan dikirim ke penerima. Karena pembagian kunci simetris aman, kunci simetris yang digunakan berbeda untuk setiap pesan yang dikirim. Oleh karena itu terkadang disebut session key.
Digital signatures
 
  
A hash function is a many-to-one function that maps its input to a value in 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.
+
Baik PGP dan GnuPG menggunakan teknologi hybrid ciphers. Key session, dienkripsi menggunakan kunci publik, dan pesan yang dikirim, yang dienkripsi dengan cipher simetris, digabungkan secara otomatis dalam satu paket. Penerima menggunakan kunci pribadinya untuk mendekrip key session dan key session kemudian digunakan untuk mendekrip pesan.
  
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.
+
Cipher hibrida tidak lebih kuat daripada cipher kunci publik atau cipher simetris yang digunakannya, mana saja yang lebih lemah. Di PGP dan GnuPG, cipher kunci publik mungkin lebih lemah dari pasangan. Untungnya, jika penyerang bisa mendekripsi key session, itu hanya akan berguna untuk membaca satu pesan yang dienkripsi dengan kunci sesi itu. Penyerang harus memulai lagi dan mendekripsi kunci sesi lain untuk membaca pesan lainnya.
  
Some public-key ciphers[3] 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.
+
===Digital Signature / Tanda Tangan Digital===
  
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.
+
Fungsi hash adalah fungsi many-to-one yang memetakan masukannya ke nilai dalam himpunan terbatas. Biasanya set ini adalah sebuah kisaran bilangan natural. Fungsi hash sederhana adalah f (x) = 0 untuk semua bilangan bulat x. Fungsi hash yang lebih menarik adalah f (x) = x mod 37, yang memetakan x ke sisa pembagian x oleh 37.
  
Of course, the problem now is using a hash function for 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.
+
Tanda tangan digital dokumen adalah hasil penerapan fungsi hash pada dokumen. Akan berguna, bagaimanapun, fungsi hash perlu memenuhi dua sifat penting. Pertama, harus sulit menemukan dua dokumen dengan nilai hash yang sama. Kedua, untuk sebuah nilai hash maka harus sulit mengembalikan dokumen yang menghasilkan nilai tersebut.
  
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 anybody can check the signature using the public key. The signed document can be sent using any other encryption 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.
+
Beberapa cipher kunci publik bisa digunakan untuk menandatangani dokumen. Penandatangan mengenkripsi dokumen dengan kunci pribadinya. Siapa saja yang ingin memeriksa tanda tangan dan melihat dokumen hanya menggunakan kunci publik penandatangan untuk mendekrip dokumen. Algoritma ini memenuhi dua sifat yang dibutuhkan dari fungsi hash yang baik, namun dalam praktiknya, algoritma ini terlalu lambat untuk bisa berguna.
  
==Chapter 3. Key Management==
+
Alternatif lain adalah dengan menggunakan fungsi hash yang dirancang untuk memenuhi dua sifat penting ini. SHA dan MD5 adalah contoh algoritma semacam itu. Dengan menggunakan algoritma semacam itu, sebuah dokumen ditandatangani oleh hashing, dan nilai hash adalah tanda tangannya. Orang lain dapat memeriksa tanda tangan dengan juga mengumpulkan salinan dokumen mereka dan membandingkan nilai hash yang mereka dapatkan dengan nilai hash dari dokumen asli. Jika sesuai, hampir pasti dokumennya identik.
  
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 a man 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.
+
Tentu saja, masalahnya sekarang adalah menggunakan fungsi hash untuk tanda tangan digital tanpa membiarkan penyerang mengganggu pemeriksaan tanda tangan. Jika dokumen dan tanda tangan dikirim tidak terenkripsi, penyerang dapat memodifikasi dokumen dan menghasilkan tanda tangan yang sesuai tanpa sepengetahuan penerima. Jika hanya dokumen yang dienkripsi, penyerang bisa merusak tanda tangan dan menyebabkan tanda tangan gagal. Pilihan ketiga adalah menggunakan enkripsi kunci publik hibrida untuk mengenkrip tanda tangan dan dokumen. Penandatangan menggunakan kunci private-nya, dan siapa pun dapat menggunakan kunci publiknya untuk memeriksa tanda tangan dan dokumen. Ini terdengar bagus tapi sebenarnya omong kosong. Jika algoritma ini benar-benar mengamankan dokumen, dokumen itu juga akan mengamankannya dari gangguan dan tidak perlu tanda tangan. Masalah yang lebih serius, bagaimanapun, adalah bahwa ini tidak melindungi tanda tangan atau dokumen dari gangguan. Dengan algoritma ini, hanya session key untuk cipher simetris yang dienkripsi menggunakan kunci private penandatangan. Siapa saja dapat menggunakan kunci publik untuk memulihkan kunci sesi. Oleh karena itu, sangat mudah bagi penyerang untuk memulihkan key session dan menggunakannya untuk mengenkripsi dokumen pengganti dan tanda tangan untuk dikirim ke orang lain sesuai nama pengirim.
  
Good key management is crucial in order to ensure not just the integrity of your keyrings but the integrity of other users' keyrings as well. 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.
+
Algoritma yang melakukan pekerjaan adalah dengan menggunakan algoritma kunci publik untuk hanya mengenkripsi tanda tangan. Secara khusus, nilai hash dienkripsi menggunakan kunci private penandatangan, dan siapa pun dapat memeriksa tanda tangan menggunakan kunci publik. Dokumen yang ditandatangani dapat dikirim menggunakan algoritma enkripsi lain termasuk tidak ada jika itu adalah dokumen publik. Jika dokumen dimodifikasi maka cek tanda tangan akan gagal, tapi inilah tanda cek yang seharusnya ditelusuri. Digital Signature Standard (DSA) adalah algoritma tanda tangan kunci publik yang bekerja seperti yang baru saja dijelaskan. DSA adalah algoritma penandatanganan utama yang digunakan di GnuPG.
Managing 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.
+
==Chapter 3. Manajemen Kunci==
  
The command-line option --edit-key may be used to view a keypair. For example,
+
Perusakan kunci adalah kelemahan keamanan utama dengan kriptografi kunci publik. Penyadap mungkin merusak keyrings pengguna atau kunci publik pengguna yang sudah jebol dan menyebarkan agar bisa diunduh dan digunakan oleh orang lain. Misalnya, misalkan Chloe ingin memonitor pesan yang dikirim Alice ke Blake. Dia bisa melakukan apa yang disebut serangan Man in The Middle (MiTM). Dalam serangan ini, Chloe menciptakan keypair publik / private baru. Dia mengganti salinan kunci publik Blake Alice dengan kunci publik yang baru. Dia kemudian menyadap pesan yang dikirim Alice ke Blake. Untuk setiap pencegatan, dia mendekripsikannya menggunakan kunci private yang baru, menggunakannya kembali dengan kunci publik Blake yang benar, dan meneruskan pesan yang dienkripsi ulang ke Blake. Semua pesan yang dikirim dari Alice ke Blake sekarang bisa dibaca oleh Chloe.
 +
Manajemen kunci yang baik sangat penting untuk memastikan tidak hanya integritas keyrings anda tapi juga integritas keyrings pengguna lain. Inti dari manajemen kunci di GnuPG adalah gagasan untuk menandatangani kunci. Penandatanganan kunci memiliki dua tujuan utama: ini memungkinkan anda mendeteksi gangguan pada keyring anda, dan ini memungkinkan anda untuk memastikan bahwa kunci benar-benar milik orang yang diberi nama oleh ID pengguna pada kunci itu. Tanda tangan kunci juga digunakan dalam skema yang dikenal sebagai web trust untuk memperpanjang sertifikasi menjadi kunci yang tidak ditandatangani langsung oleh anda namun ditandatangani oleh orang lain yang anda percaya. Pengguna yang bertanggung jawab yang mempraktikkan manajemen kunci yang baik dapat mengalahkan usaha pengrusakan kunci sebagai serangan praktis terhadap komunikasi yang aman dengan GnuPG.
 +
 
 +
===Mengelola keypair Anda sendiri===
 +
 
 +
Sebuah keypair memiliki kunci publik dan kunci privat. Kunci publik terdiri dari bagian publik dari kunci penandatanganan master, bagian publik dari subkunci penandatangan dan subkunci enkripsi, dan satu set ID pengguna digunakan untuk mengaitkan kunci publik dengan orang sesungguhnya. Setiap bagian memiliki data tentang dirinya sendiri. Untuk sebuah kunci, data ini termasuk ID-nya, ketika dibuat, kapan akan kedaluwarsa, dll. Untuk ID pengguna, data ini mencakup nama orang asli yang diidentifikasi, komentar opsional, dan alamat emailnya. Struktur kunci privat serupa, kecuali hanya berisi bagian-bagian pribadi dari kunci, dan tidak ada informasi ID pengguna.
 +
 
 +
Opsi --edit-key dapat digunakan untuk melihat keypair. Contoh,
  
 
  chloe% gpg --edit-key chloe@cyb.org
 
  chloe% gpg --edit-key chloe@cyb.org
Line 332: Line 339:
 
  Command>
 
  Command>
  
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.
+
Kunci publik ditampilkan bersama dengan indikasi apakah kunci private tersedia atau tidak. Informasi tentang masing-masing komponen kunci publik kemudian dicantumkan. Kolom pertama menunjukkan jenis kunci. Kata Pub mengidentifikasi kunci penandatanganan master publik, dan sub kata kunci mengidentifikasi kunci bawahan publik. Kolom kedua menunjukkan panjang, jenis, dan ID kunci. Tipe D untuk kunci DSA, g untuk kunci ElGamal yang hanya enkripsi, dan G untuk kunci ElGamal yang dapat digunakan untuk enkripsi dan penandatanganan. Tanggal pembuatan dan tanggal kadaluarsa diberikan dalam kolom tiga dan empat. Daftar User ID terlihat mengikuti kunci.
  
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.
+
Informasi lebih lanjut tentang kunci dapat diperoleh dengan perintah interaktif. Perintah toggle beralih antara komponen publik dan komponen privat dari keypair jika memang kedua komponen tersedia.
  
 
  Command> toggle
 
  Command> toggle
Line 345: Line 352:
 
  (2)  Chloe (Plebian) <chloe@tel.net>
 
  (2)  Chloe (Plebian) <chloe@tel.net>
  
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.
+
Informasi yang diberikan serupa dengan daftar komponen kunci publik. Keyword sec mengidentifikasi kunci penandatanganan master pribadi, dan kata kunci sbb mengidentifikasi kunci bawahan pribadi. ID pengguna dari kunci publik juga tercantum untuk kenyamanan.
  
===Key integrity===
+
===Integritas Kunci===
  
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 a security risk since it 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.
+
Saat anda mendistribusikan kunci publik anda, anda mendistribusikan komponen publik kunci master dan bawahan anda serta ID pengguna. Mendistribusikan materi ini sendiri, bagaimanapun, adalah risiko keamanan karena memungkinkan penyerang untuk mengutak-atik kuncinya. Kunci publik dapat dimodifikasi dengan menambahkan atau mengganti kunci, atau dengan menambahkan atau mengubah ID pengguna. Dengan merusak ID pengguna, penyerang bisa mengubah alamat email pengguna ID agar emailnya dialihkan ke dirinya sendiri. Dengan mengubah salah satu kunci enkripsi, penyerang juga bisa mendekripsi pesan yang dialihkan kepadanya.
  
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 master 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.
+
Menggunakan tanda tangan digital adalah solusi untuk masalah ini. Ketika data ditandatangani oleh kunci privat, kunci publik yang terikat pada data yang ditandatangani. Dengan kata lain, hanya kunci publik yang sesuai yang dapat digunakan untuk memverifikasi tanda tangan dan memastikan bahwa data belum dimodifikasi. Kunci publik dapat dilindungi dari gangguan dengan menggunakan kunci privat yang sesuai untuk menandatangani komponen kunci publik dan ID pengguna, sehingga mengikat komponen ke kunci utama publik. Menandatangani komponen kunci publik dengan kunci penandatanganan master pribadi yang sesuai disebut penandatanganan sendiri, dan kunci publik yang memiliki ID pengguna yang ditandatangani sendiri yang terikat padanya disebut sertifikat.
  
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.
+
Sebagai contoh, Chloe mempunyai dua two user IDs dan tiga subkey. Tanda tangan / signature dari user ID dapat di cek menggunakan perintah check dari menu key edit.
  
 
  chloe% gpg --edit-key chloe
 
  chloe% gpg --edit-key chloe
Line 371: Line 378:
 
  sig!   26B6AAE1 1999-06-15 [self-signature]
 
  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.
+
Seperti yang diharapkan, kunci penandatanganan untuk setiap tanda tangan adalah kunci penandatanganan master dengan kunci ID 0x26B6AAE1. Tanda tangan pada subkunci ada di kunci publik, namun tidak ditunjukkan oleh antarmuka GnuPG.
  
===Adding and deleting key components===
+
===Menambah dan Men-delete komponen kunci===
  
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 command 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.
+
Subkunci baru dan ID pengguna baru keduanya dapat ditambahkan ke keypair anda setelah dibuat. ID pengguna ditambahkan dengan menggunakan perintah adduid. Anda diminta untuk mengisi nama, alamat email, dan komentar yang sebenarnya sama seperti saat anda membuat keypair awal. Subkunci ditambahkan menggunakan perintah addkey. Antarmuka ini mirip dengan antarmuka yang digunakan saat membuat keypair awal. Subkunci mungkin merupakan kunci penandatanganan DSA, dan kunci ElGamal hanya enkripsi, atau kunci ElGamal tanda dan kunci enkripsi. Bila subkunci atau ID pengguna dihasilkan, ia dapat menandatangani sendiri dengan menggunakan kunci penandatanganan master anda, oleh karena itu anda harus memberikan frasa sandi saat kunci dibuat.
  
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 groups of people may not overlap, though, each group may not trust the other user ID. Both user IDs are therefore necessary.
+
ID pengguna tambahan berguna saat anda membutuhkan banyak identitas. Misalnya, anda mungkin memiliki identitas untuk pekerjaan Anda dan identitas untuk anda sebagai aktivis politik. Rekan kerja akan mengenal Anda dengan ID pengguna pekerjaan Anda. Sesama aktivis akan mengenal anda melalui ID pengguna aktivis anda. Karena kelompok orang tersebut mungkin tidak tumpang tindih, meskipun, masing-masing kelompok mungkin tidak mempercayai ID pengguna lainnya. Oleh karena itu, kedua ID pengguna itu diperlukan.
  
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.
+
Subkey tambahan juga berguna. ID pengguna yang terkait dengan kunci utama publik anda divalidasi oleh orang-orang yang berkomunikasi dengan anda, dan oleh karenanya mengubah kunci utama memerlukan sertifikasi ulang. Ini mungkin sulit dan memakan waktu jika anda berkomunikasi dengan banyak orang. Di sisi lain, ada baiknya mengganti subkunci substitusi secara berkala. Jika kunci rusak, semua data yang dienkripsi dengan kunci tersebut akan rentan. Dengan mengubah kunci, hanya data yang dienkripsi dengan satu kunci yang rusak akan terungkap.
  
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 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.
+
Subkunci dan ID pengguna juga dapat dihapus. Untuk menghapus subkunci atau ID pengguna anda harus terlebih dahulu memilihnya menggunakan perintah kunci / key atau perintah uid. Perintah ini adalah switch / toggle. Sebagai contoh, perintah kunci 2 memilih subkunci kedua, dan kunci 2 memanggil lagi untuk membatalkannya. Jika tidak ada argumen tambahan yang diberikan, semua subkunci atau ID pengguna tidak terpilih. Setelah ID pengguna dihapus, perintah deluid akan benar-benar menghapus ID pengguna dari kunci anda. Demikian pula, perintah delkey menghapus semua subkunci yang dipilih dari kunci publik dan pribadi anda.
  
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.
+
Untuk manajemen kunci lokal, menghapus komponen kunci adalah cara yang baik untuk memangkas kunci publik orang lain dari materi yang tidak perlu. Dengan menghapus ID pengguna dan subkunci pada kunci anda sendiri, bagaimanapun, tidak selalu bijaksana karena ini mempersulit distribusi kunci. Secara default, saat pengguna mengimpor kunci publik yang diperbarui, anda akan digabungkan dengan salinan lama kunci publik anda di ring jika ada. Komponen dari kedua kunci / key digabungkan, dan ini secara efektif mengembalikan komponen yang anda hapus. Untuk memperbarui kunci dengan benar, pengguna harus menghapus dulu versi lama kunci anda lalu mengimpor versi yang baru. Ini memberi beban ekstra pada orang-orang yang berkomunikasi dengan anda. Selanjutnya, jika anda mengirim kunci anda ke keyserver, penggabungan akan terjadi, dan siapa pun yang mendownload kunci Anda dari keyserver tidak akan pernah melihat kunci Anda dengan komponen dihapus. Akibatnya, untuk memperbarui kunci anda sendiri, lebih baik mencabut komponen kunci daripada menghapusnya.
  
===Revoking key components===
+
===Revoke komponen kunci===
  
To revoke a subkey it must be selected. Once selected it may be revoked with the revkey command. The key is revoked by adding a revocation self-signature to the key. Unlike the command-line option --gen-revoke, the effect of revoking a subkey is immediate.
+
Untuk mencabut sebuah subkunci, dia harus di pilih terlebih dulu. Setelah dipilih mungkin maka dia bisa dicabut dengan perintah revkey. Kunci dicabut dengan menambahkan tanda tangan pencabutan diri ke kuncinya. Berbeda dengan opsi baris perintah --gen-revoke, efek dari mencabut subkunci akan terasa segera.
  
 
  Command> revkey
 
  Command> revkey
Line 404: Line 411:
 
  (2)  Chloe (Plebian) <chloe@tel.net>
 
  (2)  Chloe (Plebian) <chloe@tel.net>
  
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.
+
ID pengguna dicabut secara berbeda. Biasanya, ID pengguna mengumpulkan tanda tangan yang membuktikan bahwa ID pengguna menggambarkan orang yang benar-benar memiliki kunci terkait. Secara teori, ID pengguna menggambarkan seseorang selamanya, karena orang tersebut tidak akan pernah berubah. Namun, dalam praktiknya, elemen ID pengguna seperti alamat email dan komentar dapat berubah seiring berjalannya waktu, sehingga membuat ID pengguna menjadi tidak valid.
  
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.
+
Spesifikasi OpenPGP tidak mendukung pencabutan ID pengguna, namun ID pengguna dapat dicabut dengan sendirinya dengan mencabut tanda tangan sendiri pada ID pengguna. Untuk alasan keamanan yang dijelaskan sebelumnya, koresponden tidak akan mempercayai user ID tanpa tanda tangan yang sah.
  
A signature is revoked by using the command revsig. Since you may have signed any number of user IDs, the user interface prompts you to decide for each signature whether or not to revoke it.
+
Tanda tangan dicabut dengan menggunakan perintah revsig. Karena Anda mungkin telah menandatangani sejumlah ID pengguna, antarmuka pengguna meminta anda untuk memutuskan setiap tanda tangan untuk membatalkannya atau tidak..
  
 
  Command> revsig
 
  Command> revsig
Line 439: Line 446:
 
  (2)  Chloe (Plebian) <chloe@tel.net>
 
  (2)  Chloe (Plebian) <chloe@tel.net>
  
A revoked user ID is indicated by the revocation signature on the ID when the signatures on the key's user IDs are listed.
+
ID pengguna yang dicabut ditandai dengan tanda tangan pencabutan pada ID saat tanda tangan pada ID pengguna kunci di-list / di tampilkan.
  
 
  Command> check
 
  Command> check
Line 448: Line 455:
 
  sig!   B87DBA93 1999-06-28 [self-signature]
 
  sig!   B87DBA93 1999-06-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.
+
Mencabut kedua subkunci dan tanda tangan pada ID pengguna menambahkan revocation self-signature ke kuncinya. Karena tanda tangan ditambahkan dan tidak ada materi yang dihapus, pembatalan akan selalu terlihat oleh orang lain saat kunci publik yang diperbarui didistribusikan dan digabungkan dengan salinan yang lebih tua darinya. Dengan demikian pembatalan menjamin bahwa setiap orang memiliki salinan kunci publik anda yang konsisten.
Updating 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 self-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.
+
===Update waktu expire kunci===
  
===Validating other keys on your public keyring===
+
Waktu kedaluwarsa kunci dapat diperbarui dengan perintah expire dari menu edit utama. Jika tidak ada kunci yang dipilih, waktu kedaluwarsa dari primary key akan diperbarui. Jika tidak, waktu kedaluwarsa kunci bawahan yang dipilih akan diperbarui.
 +
Waktu kedaluwarsa kunci dikaitkan dengan kunci self-signature. Waktu kadaluwarsa diperbarui dengan menghapus tanda tangan diri lama dan menambahkan tanda tangan baru. Karena koresponden tidak akan menghapus tanda tangan lama, mereka akan melihat tanda tangan tambahan pada kunci saat mereka memperbarui salinan kunci anda. Tanda tangan diri terbaru diutamakan, bagaimanapun, sehingga semua koresponden akan dengan jelas mengetahui masa kadaluwarsa kunci anda.
  
In Chapter 1 a procedure was given to validate your correspondents' public 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 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.
+
===Validasi kunci lain di public keyring anda===
  
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
+
Di Chapter 1 sebuah prosedur diberikan untuk memvalidasi kunci publik koresponden anda: kunci koresponden telah divalidasi dengan secara pribadi memeriksa sidik jarinya dan kemudian menandatangani kunci publiknya dengan kunci pribadi anda. Dengan secara pribadi memeriksa sidik jari anda dapat memastikan bahwa kunci itu benar-benar miliknya, dan karena anda telah menandatangani kunci mereka, Anda dapat memastikan untuk mendeteksi adanya gangguan di masa depan. Sayangnya, prosedur ini canggung bila anda harus memvalidasi sejumlah besar kunci atau berkomunikasi dengan orang-orang yang tidak Anda kenal secara pribadi.
  
* Alice has signed Blake's key, and
+
GnuPG membahas masalah ini dengan mekanisme yang dikenal dengan sebutan web of trust. Dalam web model trust, tanggung jawab untuk memvalidasi kunci publik didelegasikan kepada orang yang anda percaya. Misalnya,
* Blake has 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.
+
* Alice sudah menanda tangani kunci Blake, dan
 +
* Blake sudah menanda tangani kunci Chloe dan kunci Dharma.
  
===Trust in a key's owner===
+
Jika Alice mempercayai Blake dan memvalidasi kunci yang dia tanda tangani, maka Alice dapat menyimpulkan bahwa kunci Chloe dan Dharma berlaku tanpa harus memeriksanya sendiri secara pribadi. Dia hanya menggunakan salinan kunci publik Blake yang valid untuk memastikan bahwa tanda tangan Blake pada Chloe dan Dharma baik. Secara umum, dengan asumsi bahwa Alice sepenuhnya mempercayai semua orang untuk benar memvalidasi kunci yang mereka tanda tangani, maka kunci yang ditandatangani oleh kunci yang valid juga dianggap valid. Akarnya adalah kunci Alice, yang secara otomatis diasumsikan valid.
  
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 properly 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.
+
===Percaya pada pemilik kunci===
  
====unknown====
+
Dalam prakteknya trust adalah subjektif. Sebagai contoh, kunci Blake berlaku untuk Alice sejak dia menandatanganinya, tapi dia mungkin tidak mempercayai Blake untuk benar memvalidasi kunci yang dia tanda tangani. Jika demikian, dia tidak akan menganggap kunci Chloe dan Dharma sebagai valid berdasarkan tanda tangan Blake saja. Web model trust menyumbang ini dengan mengasosiasikan setiap kunci publik di keyring anda menunjukkan seberapa besar trust anda terhadap pemilik kunci. Ada empat tingkat trust.
Nothing is known about the owner's judgment in key signing. Keys on your public keyring that you do not own initially have this trust level.
 
  
====none====
+
* unknown - Tidak ada yang diketahui tentang penilaian pemilik dalam penandatanganan kunci. Kunci pada keyring publik anda yang pada awalnya tidak anda miliki memiliki tingkat trust ini.
The owner is known to improperly sign other keys.
+
* none - Pemiliknya diketahui secara tidak benar menandatangani kunci lainnya.
 +
* marginal - Pemilik memahami implikasi penandatanganan kunci dan memvalidasi dengan benar kunci sebelum menandatanganinya.
 +
* full - Pemilik memiliki pemahaman yang sangat baik tentang penandatanganan kunci, dan tanda tangannya pada kunci akan sama bagusnya dengan keinginan Anda sendiri.
  
====marginal====
+
Tingkat trust kunci adalah sesuatu yang anda sendiri tetapkan ke kunci, dan ini dianggap sebagai informasi pribadi. Ini tidak dikemas dengan kunci saat diekspor; Bahkan disimpan terpisah dari keyrings anda di database terpisah.
The owner understands the implications of key signing and properly validates keys before signing them.
 
  
====full====
+
Editor kunci GnuPG dapat digunakan untuk menyesuaikan trust anda pada pemilik kunci. Perintahnya adalah trust. Dalam contoh ini Alice mengedit trust-nya pada Blake dan kemudian memperbarui basis data trust untuk menghitung ulang kunci mana yang valid berdasarkan trust barunya pada Blake.
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  
 
  alice% gpg --edit-key blake  
Line 517: Line 517:
 
  [...]
 
  [...]
  
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[4]. The four trust/validity levels are abbreviated: unknown (q), none (n), marginal (m), and full (f). 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.
+
Trust pada pemilik kunci dan validitas kunci ditunjukkan ke kanan saat tombol ditampilkan. Trust pada pemiliknya ditampilkan terlebih dahulu dan validitas kunci adalah yang kedua. Keempat tingkat trust / validitas disingkat: tidak diketahui (q), tidak ada (n), marjinal (m), dan penuh (f). Dalam kasus ini, kunci Blake sepenuhnya valid karena Alice menandatanganinya sendiri. Dia awalnya memiliki trust yang tidak diketahui pada Blake untuk benar menandatangani kunci lain namun memutuskan untuk mempercayainya sedikit.
  
===Using trust to validate keys===
+
===Menggunakan Trust untuk Memvalidasi Kunci===
  
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:
+
Jaringan trust memungkinkan algoritma yang lebih rumit digunakan untuk memvalidasi kunci. Dahulu, kunci dianggap sah hanya jika anda menandatanganinya secara pribadi. Algoritma yang lebih fleksibel sekarang dapat digunakan: kunci K dianggap valid jika memenuhi dua syarat:
  
  1. it is signed by enough valid keys, meaning
+
  1. dia di tanda tangani oleh kunci valid yang cukup, artinya
     * you have signed it personally,
+
     * anda sudah menanda tanganinya secara personal,
     * it has been signed by one fully trusted key, or
+
     * dia sudah di tanda tangani oleh satu kunci yang fully trusted, atau
     * it has been signed by three marginally trusted keys; and
+
     * dia sudah di tanda tangani oleh tiga kunci yang marginally trusted; dan
  2. the path of signed keys leading from K back to your own key is five steps or shorter.
+
  2. path dari kunci yang di tanda tangani dari K kembali ke kunci kita hanya lima langkah atau lebih pendek.
  
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.
+
Panjang path, jumlah kunci yang dipercaya secara marginal, dan jumlah kunci terpercaya yang diperlukan dapat disesuaikan. Angka yang diberikan di atas adalah nilai default yang digunakan oleh 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.
+
Figure 3-1 menunjukkan sebuah jaringan trust yang berakar pada Alice. Grafik menggambarkan siapa yang telah menandatangani kunci siapa. Tabel menunjukkan kunci Alice yang dianggap valid berdasarkan trust-nya pada anggota web lainnya. Contoh ini mengasumsikan bahwa dua kunci yang dipercaya secara marginal atau satu kunci terpercaya diperlukan untuk memvalidasi kunci lain. Panjang jalur maksimum adalah tiga.
  
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 Dharma's key is fully valid. Francis's key, however, will also be 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 Geoff's key since the maximum certification path is three, but the path length from Geoff back to Alice is four.
+
Saat menghitung kunci yang valid dalam contoh, Blake dan Dharma selalu dianggap benar karena mereka ditandatangani langsung oleh Alice. Validitas kunci lainnya bergantung pada trust. Dalam kasus pertama, Dharma dipercaya sepenuhnya, yang menyiratkan bahwa kunci Chloe dan Francis akan dianggap sahih. Pada contoh kedua, Blake dan Dharma dipercaya sedikit. Karena dua kunci yang dipercaya secara marginal diperlukan untuk benar-benar memvalidasi kunci, kunci Chloe akan dianggap sepenuhnya valid, namun kunci Francis hanya akan dianggap salah. Dalam kasus di mana Chloe dan Dharma sedikit dipercaya, kunci Chloe akan sedikit valid karena kunci Dharma sepenuhnya valid. Kunci Francis, bagaimanapun, juga akan dianggap absah karena hanya kunci yang benar-benar valid yang dapat digunakan untuk memvalidasi kunci lainnya, dan kunci Dharma adalah satu-satunya kunci sah yang telah digunakan untuk menandatangani kunci Francis. Ketika trust marjinal pada Blake ditambahkan, kunci Chloe menjadi benar-benar valid dan kemudian dapat digunakan untuk sepenuhnya memvalidasi kunci Francis dan memvalidasi kunci Elena secara marginal. Terakhir, ketika Blake, Chloe, dan Elena benar-benar dipercaya, ini masih belum cukup untuk memvalidasi kunci Geoff karena jalur sertifikasi maksimum adalah tiga, namun panjang jalur dari Geoff kembali ke Alice adalah empat.
  
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 more difficult to validate keys since you must personally sign more keys than if you accepted fewer and longer paths.
+
Web model trust adalah pendekatan fleksibel terhadap masalah pertukaran kunci publik yang aman. Ini memungkinkan anda menyetel GnuPG untuk mencerminkan bagaimana anda menggunakannya. Pada satu ekstrem anda mungkin bersikeras pada beberapa, jalur pendek dari kunci anda ke kunci K yang lain untuk mempercayainya. Di sisi lain, Anda mungkin merasa puas dengan jalan yang lebih panjang dan mungkin sesedikit satu jalur dari kunci anda ke kunci lain K. Membutuhkan banyak, jalan pendek adalah jaminan kuat bahwa K adalah milik anda yang dianggapnya benar. Harganya tentu saja, adalah bahwa lebih sulit untuk memvalidasi kunci karena anda harus secara pribadi menandatangani lebih banyak kunci daripada jika Anda menerima lebih sedikit dan lebih lama jalannya.
  
[[Image:Signatures.jpg|center|200px|thumb|A hypothetical web of trust]]
+
[[Image:Signatures.jpg|center|500px|thumb|A hypothetical web of trust]]
  
A graph indicating who has signed who's key
+
Graph yang menunjukkan siapa yang telah menandatangani kunci siapa
  
 
  trust validity
 
  trust validity
Line 549: Line 549:
 
   Blake, Chloe, Elena Blake, Chloe, Elena, Francis
 
   Blake, Chloe, Elena Blake, Chloe, Elena, Francis
  
===Distributing keys===
+
===Mendistribusikan Kunci===
  
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.
+
Idealnya, anda mendistribusikan kunci anda dengan memberikannya secara pribadi kepada koresponden anda. Namun, dalam praktiknya, kunci sering didistribusikan melalui email atau media komunikasi elektronik lainnya. Distribusi melalui email adalah praktik yang baik bila anda hanya memiliki sedikit koresponden, dan bahkan jika anda memiliki banyak koresponden, anda dapat menggunakan cara alternatif seperti memposting kunci publik Anda di halaman web anda. Ini tidak dapat diterima, namun, jika orang yang membutuhkan kunci publik anda tidak tahu di mana menemukannya di 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.
+
Untuk mengatasi masalah ini, server kunci publik digunakan untuk mengumpulkan dan mendistribusikan kunci publik. Kunci publik yang diterima oleh server ditambahkan ke database server atau digabungkan dengan kunci yang ada jika sudah ada. Saat permintaan kunci masuk ke server, server berkonsultasi dengan database-nya dan memberikan kunci publik yang diminta jika ditemukan.
  
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 community 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.
+
Keyerver juga berharga saat banyak orang sering menandatangani kunci orang lain. Tanpa keyerver, saat kunci Alice di tanda tangani Blake masuk, Blake akan mengirimi Alice sebuah copy kunci publiknya yang ditandatangani olehnya sehingga Alice bisa menambahkan kunci yang diperbarui ke ringnya dan juga menyebarkannya ke semua korespondennya. Melalui upaya ini, memenuhi tanggung jawab Alice dan Blake kepada masyarakat luas dalam membangun jaring trust yang ketat dan dengan demikian meningkatkan keamanan PGP. Meskipun demikian, hal ini akan mengganggu jika penandatanganan kunci sering dilakukan.
  
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.
+
Menggunakan keyserver membuat prosesnya agak mudah. Ketika Blake menanda kunci Alice, dia mengirim kunci yang ditandatangani ke server kunci. Server kunci menambahkan tanda tangan Blake pada salinan kunci Alice. Individu yang tertarik untuk memperbarui salinan kunci Alice mereka kemudian berkonsultasi dengan keyserver atas inisiatif mereka sendiri untuk mengambil kunci yang diperbarui. Alice tidak perlu terlibat dengan distribusi dan dapat mengambil tanda tangan di kuncinya hanya dengan query ke sebuah 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.
+
Satu atau lebih kunci dapat dikirim ke keyserver menggunakan opsi --send-keys . Opsi tersebut mengambil satu atau lebih key specifier dan mengirimkan kunci yang ditentukan ke server kunci. Server kunci untuk mengirim kunci ditentukan dengan opsi --keyserver. Demikian pula, opsi --recv-keys digunakan untuk mengambil kunci dari keyserver, namun opsi --recv-keys memerlukan kunci ID untuk menentukan kunci. Dalam contoh berikut, Alice memperbarui kunci publiknya dengan tanda tangan baru dari keyserver certserver.pgp.com dan kemudian mengirimkan salinan kunci publik Blake ke keyerver yang sama untuk memberi kontribusi pada tanda tangan baru yang mungkin telah ditambahkannya.
  
 
  alice% gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC
 
  alice% gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC
Line 570: Line 570:
 
  gpg: success sending to 'certserver.pgp.com' (status=200)
 
  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.
+
Ada beberapa keyserver populer yang digunakan di seluruh dunia. Keyserver utama akan mensinkronkan diri mereka sendiri, jadi tidak masalah jika memilih keyserver yang dekat dengan anda di Internet dan kemudian menggunakannya secara teratur untuk mengirim dan menerima kunci.
 +
 
 +
 
 +
===Contoh Keyserver===
 +
 
 +
Berikut adalah beberapa keyserver yang banyak digunakan untuk mencari kunci dengan perintah
 +
 
 +
gpg --recv-keys
 +
 
 +
* keyserver [http://keys.gnupg.net keys.gnupg.net]
 +
* keyserver [http://subkeys.pgp.net:11371 hkp://subkeys.pgp.net] (server pool)
 +
* keyserver [http://pgp.mit.edu http://pgp.mit.edu]
 +
* keyserver [http://pool.sks-keyservers.net:11371 hkp://pool.sks-keyservers.net] (server pool, juga mendukung secured key requests menggunakan [[Transport Layer Security|TLS]]: [https://hkps.pool.sks-keyservers.net hkps://hkps.pool.sks-keyservers.net])
 +
* keyserver [http://zimmermann.mayfirst.org/ hkp://zimmermann.mayfirst.org] (juga mendukung secured key requests menggunakan [[Transport Layer Security|TLS]])
 +
* keyserver [http://keyserver.ubuntu.com http://keyserver.ubuntu.com]
 +
 
 +
==Chapter 4. Penggunaan sehari-hari GnuPG==
  
==Chapter 4. Daily use of GnuPG==
+
GnuPG adalah alat yang kompleks dengan masalah teknis, sosial, dan hukum yang mengelilinginya. Secara teknis, telah dirancang untuk digunakan dalam situasi yang memiliki kebutuhan keamanan yang berbeda secara drastis. Ini mempersulit manajemen kunci. Secara sosial, menggunakan GnuPG tidak sepenuhnya merupakan keputusan pribadi. Untuk menggunakan GnuPG secara efektif kedua belah pihak berkomunikasi harus menggunakannya. Akhirnya, pada tahun 1999, undang-undang tentang enkripsi digital, dan khususnya apakah menggunakan GnuPG legal atau tidak, berbeda dari satu negara ke negara lain dan saat ini sedang diperdebatkan oleh banyak pemerintah nasional.
  
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.
+
Bab ini membahas masalah ini. Ini memberi saran praktis tentang cara menggunakan GnuPG untuk memenuhi kebutuhan keamanan anda. Ini juga menyarankan cara untuk mempromosikan penggunaan GnuPG untuk komunikasi yang aman antara anda dan rekan anda dimana saat ini rekan anda tidak menggunakan GnuPG. Akhirnya, status hukum GnuPG digarisbawahi mengingat status hukum enkripsi saat ini di dunia.
  
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.
+
===Mendefinisikan kebutuhan keamanan anda===
Defining your security needs
 
  
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.
+
GnuPG adalah alat yang anda gunakan untuk melindungi privasi Anda. Privasi anda terlindungi jika anda dapat berkorespondensi dengan orang lain tanpa ada yang bisa menyadap pesan tersebut.
  
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.
+
Bagaimana anda harus menggunakan GnuPG tergantung pada tekad dan sumber daya dari mereka yang mungkin ingin membaca pesan terenkripsi anda. Penyadap mungkin adalah administrator sistem yang tidak bermoral yang dengan mudah menscan surat anda, mungkin itu adalah mata-mata industri yang mencoba mengumpulkan rahasia perusahaan anda, atau mungkin agen penegak hukum mencoba untuk mengadili anda. Menggunakan GnuPG untuk melindungi dari penyamaran biasa akan berbeda daripada menggunakan GnuPG untuk melindungi diri dari musuh. Tujuan anda, akhirnya, adalah untuk membuatnya lebih mahal untuk memulihkan data yang tidak terenkripsi dari pada nilai data itu.
  
Customizing your use of GnuPG revolves around four issues:
+
Menyesuaikan penggunaan GnuPG berkisar pada empat isu:
  
* choosing the key size of your public/private keypair,
+
* memilih panjang kunci untuk public/private keypair anda,
* protecting your private key,
+
* memproteksi private key anda,
* selecting expiration dates and using subkeys, and
+
* memilih tanggal kadaluarsa dan menggunakan subkeys, dan
* managing your web of trust.
+
* memanaje jaringan trust anda.
  
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 masquerading 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.
+
Ukuran kunci yang dipilih dengan baik melindungi anda dari serangan brute force pada pesan terenkripsi. Melindungi kunci pribadi anda mencegah penyerang untuk tidak menggunakan kunci pribadi anda untuk mendekripsi pesan terenkripsi dan menandatangani pesan atas nama anda. Mengelola web trust dengan benar mencegah penyerang menyamar sebagai orang yang berkomunikasi dengan anda. Pada akhirnya, menangani masalah ini sehubungan dengan kebutuhan keamanan anda sendiri adalah bagaimana anda menyeimbangkan kerja ekstra yang diperlukan untuk menggunakan GnuPG dengan privasi yang diberikannya kepada anda.
  
===Choosing a key size===
+
===Memilih panjang kunci===
  
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.
+
Memilih panjang kunci tergantung pada kunci yang digunakan. Di OpenPGP, keypair publik / pribadi biasanya memiliki beberapa kunci. Paling tidak dia memiliki kunci penandatanganan master, dan mungkin ada satu atau beberapa subkunci tambahan untuk enkripsi. Dengan menggunakan parameter pembentuk kunci default dengan GnuPG, kunci utama adalah kunci DSA, dan subkuncinya adalah kunci ElGamal.
  
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.
+
DSA memungkinkan ukuran kunci hingga 1024 bit. Hal ini tidak terlalu baik mengingat teknologi yang ada saat ini, tapi itulah standar yang ditetapkan. Tanpa bertanya, anda harus menggunakan kunci DSA 1024 bit.
  
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.
+
Kunci ElGamal, di sisi lain, memungkinkan ukuran apapun. Karena GnuPG adalah sistem kunci publik hibrida, kunci publik digunakan untuk mengenkrip kunci sesi 128-bit, dan kunci privat digunakan untuk mendekripnya. Ukuran kunci bagaimanapun mempengaruhi kecepatan enkripsi dan dekripsi karena biaya algoritma ini eksponensial dengan panjang kunci. Kunci yang lebih panjang akan membutuhkan lebih banyak waktu untuk menghasilkan dan mengambil lebih banyak tempat untuk disimpan. Pada akhirnya, ada penurunan pengembalian pada keamanan ekstra yang diberikan oleh kunci yang panjang. Bagaimanapun, jika kuncinya cukup panjang untuk melawan serangan brute force, seorang penyadap hanya akan beralih ke metode lain untuk mendapatkan data plaintext anda. Contoh metode lain termasuk merampok rumah atau kantor anda dan memalak Anda. 1024 bit merupakan ukuran kunci yang disarankan. Jika Anda benar-benar membutuhkan ukuran kunci yang lebih besar, mungkin anda sudah mengetahui hal ini dan harus berkonsultasi dengan pakar keamanan data.
  
===Protecting your private key===
+
===Memproteksi kunci private anda===
  
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.
+
Melindungi kunci pribadi anda adalah pekerjaan terpenting yang harus anda lakukan untuk megunakan GnuPG dengan benar. Jika seseorang memperoleh kunci pribadi anda, semua data yang dienkripsi ke kunci privat dapat didekripsi dan tanda tangan dapat dibuat atas nama anda. Jika anda kehilangan kunci pribadi anda, maka anda tidak bisa lagi mendekripsi dokumen yang dienkripsi untuk anda di masa depan atau di masa lalu, dan anda tidak akan bisa membuat tanda tangan. Kehilangan satu-satunya kunci pribadi anda adalah bencana besar.
  
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.
+
Terlepas dari bagaimana anda menggunakan GnuPG, anda harus menyimpan sertifikat pembatalan kunci publik dan mencadangkan kunci private anda pada media yang write protected di tempat yang aman. Misalnya, anda bisa membakarnya di CD-ROM dan menyimpannya di safe deposit box anda di bank dalam amplop tertutup. Sebagai alternatif, anda bisa menyimpannya di disket dan menyembunyikannya di rumah anda. Apa pun yang anda lakukan, mereka harus memakai media yang aman disimpan selama anda mengharapkan untuk menyimpan kuncinya, dan anda harus menyimpannya lebih hati-hati daripada salinan kunci pribadi yang anda gunakan setiap hari.
  
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.
+
Untuk membantu melindungi kunci anda, GnuPG tidak menyimpan kunci private mentah anda pada disk. Akan tetapi mengenkripsi-nya menggunakan algoritma enkripsi simetris. Itulah sebabnya anda memerlukan frasa sandi untuk mengakses kunci. Jadi ada dua hambatan yang harus diatasi penyerang untuk mengakses kunci private anda: (1) dia benar-benar harus mendapatkan kunci itu, dan (2) dia harus melewati enkripsi.
  
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.
+
Menyimpan kunci private anda dengan aman penting, tapi ada biaya. Idealnya, anda menyimpan kunci private pada disk yang dapat dilepas dan ditulis dengan mudah seperti floppy disk, dan anda akan menggunakannya pada mesin pengguna tunggal yang tidak terhubung ke jaringan. Ini mungkin merepotkan atau tidak mungkin anda lakukan. Misalnya, anda mungkin tidak memiliki mesin sendiri dan harus menggunakan komputer di tempat kerja atau sekolah, atau mungkin anda terpaksa melepas komputer anda dari modem kabel anda setiap kali anda ingin menggunakan 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.
+
Ini tidak berarti anda tidak bisa atau tidak boleh menggunakan GnuPG. Ini berarti hanya bahwa anda telah memutuskan bahwa data yang anda lindungi cukup penting untuk disandikan namun tidak begitu penting untuk mengambil langkah ekstra untuk membuat penghalang pertama lebih kuat. Itu adalah pilihan anda.
  
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.
+
Frasa sandi yang baik sangat penting saat menggunakan GnuPG. Setiap penyerang yang memperoleh akses ke kunci pribadi anda harus melewati enkripsi pada kunci privat. Selain brute force menebak kunci, penyerang hampir pasti akan mencoba menebak frasa sandi.
  
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 randomness and lots of redundancy in natural language. You should avoid natural language passphrases if you can.
+
Motivasi untuk mencoba frasa sandi adalah karena kebanyakan orang memilih frasa sandi yang mudah ditebak daripada kunci 128-bit acak. Jika frase kata itu adalah sebuah kata, akan jauh lebih murah untuk mencoba semua kata dalam kamus bahasa dunia. Bahkan jika kata itu permutasi, misalnya, k3wldood, masih lebih mudah untuk mencoba kamus kata-kata dengan katalog permutasi. Masalah yang sama berlaku untuk kutipan. Secara umum, frasa sandi berdasarkan ucapan bahasa alami adalah frasa sandi yang buruk karena tidak banyak keacakan dan banyak redundansi dalam bahasa alami. Anda harus menghindari frase bahasa alami jika Anda bisa.
  
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.
+
Frasa sandi yang baik adalah kata yang dapat anda ingat tapi sulit ditebak oleh seseorang. Ini harus mencakup karakter dari keseluruhan jenis karakter yang dapat dicetak pada keyboard anda. Ini termasuk huruf besar huruf alfabet, angka, dan karakter khusus seperti } dan |. Jadilah kreatif dan luangkan sedikit waktu untuk mengingat frasa sandi anda; pilihan yang baik adalah penting untuk memastikan privasi anda.
  
===Selecting expiration dates and using subkeys===
+
===Memilih tanggal kadaluarsa dan menggunaan subkey===
  
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 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.
+
Secara default, kunci penandatanganan DSA master dan enkripsi subkey ElGamal dihasilkan saat anda membuat keypair baru. Ini mudah dilakukan, karena peran kedua kunci berbeda, dan karena itu anda mungkin menginginkan kunci memiliki daya tahan yang berbeda. Kunci penandatangan master digunakan untuk membuat tanda tangan digital, dan juga mengumpulkan tanda tangan orang lain yang telah mengkonfirmasi identitas anda. Kunci enkripsi hanya digunakan untuk mendekripsi dokumen terenkripsi yang dikirimkan kepada anda. Biasanya, tanda tangan digital memiliki masa pakai yang panjang, misalnya, untuk selamanya, dan anda juga tidak ingin kehilangan tanda tangan pada kunci yang berhasil Anda kumpulkan. Di sisi lain, subkey enkripsi dapat diubah secara berkala untuk keamanan tambahan, karena jika kunci enkripsi dipecahkan, penyerang dapat membaca semua dokumen yang dienkripsi ke kunci tersebut di masa depan dan dari masa lalu.
  
It is almost always the case that you will not want the master 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.
+
Hal ini hampir selalu terjadi bahwa anda tidak ingin master key berakhir. Ada dua alasan mengapa anda bisa memilih tanggal kedaluwarsa. Pertama, anda mungkin menginginkan kunci untuk memiliki masa pakai terbatas. Misalnya, ini digunakan untuk acara seperti kampanye politik dan tidak akan berguna lagi setelah kampanye berakhir. Alasan lain adalah jika anda kehilangan kontrol atas kunci dan tidak memiliki sertifikat pencabutan untuk mencabut kuncinya, memiliki tanggal kedaluwarsa pada kunci utama memastikan bahwa kunci tersebut pada akhirnya akan tidak digunakan lagi.
  
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.
+
Mengubah subkunci enkripsi sangat mudah namun bisa merepotkan. Jika Anda membuat keypair baru dengan tanggal kedaluwarsa pada subkey, subkey itu pada akhirnya akan kedaluwarsa. Sesaat sebelum berakhirnya anda akan menambahkan subkunci baru dan mempublikasikan kunci publik yang diperbarui. Setelah subkunci berakhir, mereka yang ingin berkorespondensi dengan anda harus menemukan kunci yang diperbarui karena tidak dapat lagi mengenkripsi kunci yang kadaluarsa. Ini mungkin merepotkan, tergantung bagaimana Anda mendistribusikan kuncinya. Untungnya, bagaimanapun, tidak ada tanda tangan tambahan yang diperlukan karena subkunci baru akan ditandatangani dengan kunci penandatanganan master anda, yang mungkin telah divalidasi oleh koresponden anda.
  
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 attack using whatever techniques he used against you the first time.
+
Ketidaknyamanan ini mungkin sepadan atau mungkin tidak sepadan dengan keamanan ekstra. Sama seperti anda, penyerang juga masih bisa membaca semua dokumen yang dienkripsi ke subkunci yang kadaluwarsa. Mengganti subkunci hanya melindungi dokumen yang akan datang. Untuk membaca dokumen yang dienkripsi ke subkunci baru, penyerang perlu memasang serangan baru dengan menggunakan teknik apa pun yang dulu digunakannya untuk melawan anda.
  
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.
+
Akhirnya, masuk akal untuk memiliki satu subkey enkripsi yang valid pada keyring. Tidak ada keamanan tambahan yang didapat dengan memiliki dua atau lebih subkey aktif. Mungkin ada sejumlah kunci kadaluarsa pada keyring sehingga dokumen yang dienkripsi di masa lalu masih dapat didekripsi, namun hanya satu subkey yang perlu aktif pada waktu tertentu.
  
===Managing your web of trust===
+
===Me-manaje web trust anda===
  
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.
+
Seperti melindungi kunci pribadi anda, mengelola kepercayaan anda adalah aspek lain penggunaan GnuPG yang memerlukan penyeimbangan keamanan terhadap kemudahan penggunaan. Jika anda menggunakan GnuPG untuk melindungi dari penyadapan dan pemalsuan maka anda dapat relatif mempercayai tanda tangan orang lain. Di sisi lain, jika anda khawatir bahwa mungkin ada penyerang yang pasti tertarik untuk menyerang privasi anda, maka anda harus lebih sedikit mempercayai tanda tangan lainnya dan menghabiskan lebih banyak waktu untuk memverifikasi tanda tangan secara pribadi.
  
Regardless of your own security needs, though, 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 on their signatures.
+
Terlepas dari kebutuhan keamanan anda sendiri, anda harus selalu berhati-hati saat memasukkan kunci lainnya. Adalah egois untuk menandatangani kunci dengan cukup percaya diri tentang validitas kunci untuk memenuhi kebutuhan keamanan anda sendiri. Yang lainnya, dengan kebutuhan keamanan yang lebih ketat, mungkin ingin bergantung pada tanda tangan anda. Jika mereka tidak dapat bergantung pada anda maka itu akan melemahkan jaringan trust dan membuat lebih sulit bagi semua pengguna GnuPG untuk berkomunikasi. Gunakan kepedulian yang sama dalam menandatangani kunci yang ingin anda gunakan pada orang lain saat anda bergantung pada tanda tangan mereka.
  
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.
+
Dalam praktiknya, mengelola kepercayaan anda mengurangi untuk memberi kepercayaan kepada orang lain dan menset opsi --marginals-needed dan --completes-needed . Kunci apa pun yang anda tanda tangani secara pribadi akan dianggap valid, kecuali untuk kelompok kecil, akan sangat tidak praktis untuk menanda tangani key dari  setiap orang yang anda berkomunikasi dengannya. Oleh karena itu anda harus memberikan kepercayaan kepada orang lain.
  
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.
+
Mungkin bijaksana untuk secara akurat saat memberikan trust dan kemudian menggunakan opsi untuk menyesuaikan bagaimana GnuPG hati-hati dengan validasi kunci. Sebagai contoh konkret, anda mungkin benar-benar mempercayai beberapa teman dekat yang anda yang anda tahu berhati-hati dengan penandatanganan kunci dan kemudian sedikit mempercayai orang lain pada keyring anda. Dari situlah, anda dapat menset --completes-needed ke 1 dan --marginals-needed ke 2 . Jika anda lebih memperhatikan keamanan, anda dapat memilih nilai masing-masing 1 dan 3 atau 2 dan 3. Jika anda kurang memperhatikan serangan privasi dan hanya menginginkan keyakinan yang masuk akal mengenai validitas, tetapkan nilainya ke 1 dan 1. Secara umum, angka yang lebih tinggi untuk opsi ini menyiratkan bahwa lebih banyak orang akan dibutuhkan untuk berkonspirasi melawan anda agar memiliki kunci yang divalidasi yang tidak benar-benar milik orang yang anda pikir itu.
  
===Building your web of trust===
+
===Membuat Web Trust anda===
  
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[5], 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.
+
Ingin menggunakan GnuPG sendiri tidak cukup. Agar bisa berkomunikasi dengan orang lain dengan aman, anda harus memiliki web trust. Sekilas, bagaimanapun, membangun jaringan trust adalah tugas yang menakutkan. Orang-orang yang berkomunikasi dengan anda perlu menggunakan GnuPG, dan perlu ada penandatanganan kunci yang cukup sehingga kunci dapat dianggap valid. Ini bukan masalah teknis; itu adalah masalah sosial. Kendati demikian, anda harus mengatasi masalah ini jika ingin menggunakan GnuPG.
  
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.
+
Saat mulai menggunakan GnuPG, penting untuk disadari bahwa anda tidak perlu berkomunikasi dengan baik dengan setiap koresponden anda. Mulailah dengan lingkaran kecil orang, mungkin hanya diri anda sendiri dan satu atau dua orang lain yang juga ingin menggunakan hak mereka untuk privasi. Buat kunci anda dan tanda tangan masing-masing kunci publik. Ini adalah kepercayaan awal anda. Dengan melakukan ini, anda akan menghargai nilai dari sebuah jaringan kepercayaan kecil dan kuat dan akan lebih berhati-hati saat mengembangkan web anda di masa depan.
  
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.
+
Selain mereka yang berada dalam jaringan kepercayaan awal anda, anda mungkin ingin berkomunikasi dengan orang lain yang juga menggunakan GnuPG. Dengan melakukan hal tersebut, Anda dapat menjadi canggung karena dua alasan: (1) anda tidak selalu tahu kapan seseorang menggunakan atau bersedia menggunakan GnuPG, dan (2) jika anda mengetahui seseorang yang menggunakannya, Anda mungkin masih memiliki masalah untuk memvalidasi kunci mereka. Alasan pertama terjadi karena orang tidak selalu mengiklankan bahwa mereka menggunakan GnuPG. Cara untuk mengubah perilaku ini adalah dengan memberi contoh dan mengiklankan bahwa anda menggunakan GnuPG. Setidaknya ada tiga cara untuk melakukannya: Anda dapat menandatangani pesan yang anda kirim ke orang lain atau mengirim ke papan pesan, anda dapat memasukkan kunci publik anda ke halaman web anda, atau jika anda meletakkan kunci pada keyserver, anda dapat memasukkan ID kunci dalam tanda tangan email anda. Jika anda mengiklankan kunci anda, maka anda membuatnya lebih dapat diterima orang lain untuk mengiklankan kunci mereka. Selanjutnya, anda mempermudah orang lain untuk mulai berkomunikasi dengan anda dengan aman sejak anda berinisiatif dan menjelaskan bahwa anda menggunakan GnuPG.
  
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 initiative and get your key signed by others outside of your initial 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 hold one. 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.
+
Validasi kunci lebih sulit. Jika anda tidak mengenal orang yang memiliki kunci yang ingin anda masuki secara pribadi, maka anda tidak dapat menandatanganinya sendiri. Anda harus bergantung pada tanda tangan orang lain dan berharap menemukan rangkaian tanda tangan yang mengarah pada kunci yang dimaksud kembali ke anda sendiri. Untuk memiliki kesempatan menemukan rantai, anda harus mengambil inisiatif dan mendapatkan kunci anda ditandatangani oleh orang lain di luar kepercayaan awal Anda. Cara efektif untuk melakukannya adalah berpartisipasi dalam pesta penandatangan kunci. Jika anda akan menghadiri konferensi lebih dulu untuk mengadakan pesta penandatanganan kunci, dan jika anda tidak melihat ada yang ditahan, tawarkan untuk menahannya. Anda juga bisa lebih pasif dan membawa fingerprint anda bersama anda untuk pertukaran kunci dadakan. Dalam situasi seperti ini orang yang anda beri fingerprint akan memverifikasinya dan menandatangani kunci publik anda begitu dia kembali ke rumah.
 +
Ingat, meskipun, bahwa ini adalah opsional. Anda tidak berkewajiban untuk mengiklankan kunci anda secara terbuka atau menandatangani kunci orang lain. Kekuatan GnuPG adalah cukup fleksibel untuk menyesuaikan diri dengan kebutuhan keamanan anda apa pun itu. Namun, realitas sosial adalah bahwa anda perlu mengambil inisiatif jika anda ingin mengembangkan kepercayaan dan memanfaatkan GnuPG sebanyak mungkin dalam komunikasi anda.
  
Keep in mind, though, that this is optional. You have no obligation to either publicly 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.
+
===Menggunakan GnuPG secara legal===
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 encryption software in your country.
+
Status hukum perangkat lunak enkripsi bervariasi dari satu negara ke negara lain, dan undang-undang tentang perangkat lunak enkripsi berkembang dengan cepat. Bert-Japp Koops memiliki Survei Hukum Kripto yang sangat bagus yang harus anda rujuk untuk status legal perangkat lunak enkripsi di negara anda.
  
 
==Chapter 5. Topics==
 
==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!
+
Bab ini membahas berbagai topik yang tidak sesuai dengan panduan pengguna lainnya. Seiring topik ditambahkan, mereka mungkin dikumpulkan dan diperhitungkan dalam bab-bab yang berdiri sendiri. Jika Anda ingin melihat topik tertentu yang dibahas, mohon saran. Lebih baik lagi, sukarela menulis draf pertama yang mencakup topik yang Anda sarankan!
Writing user interfaces
+
 
 +
===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.
+
Alma Whitten dan Doug Tygar telah melakukan studi tentang antarmuka pengguna PGP 5.0 NAI dan sampai pada kesimpulan bahwa pengguna pemula menemukan PGP membingungkan dan membuat frustrasi. Dalam studi faktor manusia, hanya empat dari dua belas subjek tes berhasil mengirim email terenkripsi dengan benar ke anggota tim mereka, dan tiga dari dua belas meng-email rahasia-nya tanpa enkripsi. Selanjutnya, setengah dari subjek tes memiliki latar belakang teknis.
  
These results are not surprising. PGP 5.0 has a nice user interface that is excellent if you already understand how public-key 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 help.
+
Hasil ini tidak mengejutkan. PGP 5.0 memiliki antarmuka pengguna yang bagus yang sangat bagus jika anda sudah mengerti bagaimana enkripsi kunci publik bekerja dan terbiasa dengan model manajemen kunci web trust yang ditentukan oleh OpenPGP. Sayangnya, pengguna pemula tidak mengerti enkripsi kunci publik maupun manajemen kunci, dan antarmuka pengguna tidak banyak membantu.
  
 
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 sent 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. As a 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.
 
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 sent 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. As a 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.
Line 687: Line 703:
  
 
* [[Linux Howto]]
 
* [[Linux Howto]]
 +
* [[GnuPG]]

Latest revision as of 12:36, 23 October 2022

Copyright © 1999 by The Free Software Foundation

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Please direct questions, bug reports, or suggestions concerning this manual to the maintainer, Mike Ashley (<jashley@acm.org>). When referring to the manual please specify which version of the manual you have by using this version string: $Name: v1_1 $.

Contributors to this manual include Matthew Copeland, Joergen Grahn, and David A. Wheeler. J Horacio MG has translated the manual to Spanish.


Chapter 1. Getting Started

GnuPG adalah alat komunikasi yang aman. Bab ini merupakan panduan ringkas yang mencakup fungsi inti GnuPG. Ini termasuk penciptaan keypair, pertukaran dan verifikasi kunci, mengenkripsi dan mendekripsi dokumen, dan mengautentikasi dokumen dengan tanda tangan digital. Ini tidak menjelaskan secara rinci konsep di balik kriptografi kunci publik, enkripsi, dan tanda tangan digital. Hal tersebut tercakup dalam Bab 2. Ini juga tidak menjelaskan bagaimana menggunakan GnuPG dengan bijak. Hal ini tercakup dalam Bab 3 dan 4.

GnuPG menggunakan kriptografi kunci publik sehingga pengguna dapat berkomunikasi dengan aman. Dalam sistem kunci publik, setiap pengguna memiliki sepasang kunci yang terdiri dari kunci pribadi dan kunci publik. Kunci pribadi pengguna dirahasiakan; Tidak perlu diungkap. Kunci publik dapat diberikan kepada siapa saja yang ingin berkomunikasi dengan pengguna. GnuPG menggunakan skema yang agak lebih canggih di mana pengguna memiliki keypair utama dan kemudian nol atau lebih tambahan keokohan bawahan. Keypairs utama dan bawahan digabungkan untuk memudahkan manajemen kunci dan bundel seringkali dianggap hanya sebagai satu keypair.

Membuat keypair baru

Opsi command line --gen-key digunakan untuk membuat primary keypair baru.

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 (sign only)
   (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 ElGamal subordinate keypair is also created for encr 
yption. Option 2 is similar but creates only a DSA keypair. Option 4[1] 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.

Anda juga harus memilih panjang kunci. Panjang kunci DSA harus antara 512 dan 1024 bit, dan kunci ElGamal memungkinkan untuk panjang yang bebas. GnuPG, bagaimanapun, mensyaratkan bahwa kunci tidak lebih kecil dari 768 bit. Oleh karena itu, jika opsi 1 dipilih dan anda memilih ukuran kunci yang lebih besar dari 1024 bit, kunci ElGamal akan memiliki ukuran yang diminta, namun tombol DSA akan menjadi 1024 bit.

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)

Semakin panjang kunci semakin aman terhadap serangan brute force, namun untuk hampir semua kebutuhan, ukuran kunci default sudah memadai karena akan lebih murah untuk menghindari enkripsi daripada mencoba memecahnya. Juga, enkripsi dan dekripsi akan lebih lambat karena ukuran kunci meningkat, dan ukuran kunci yang lebih besar dapat mempengaruhi panjang tanda tangan. Setelah dipilih, keysize tidak akan pernah bisa diubah.

Akhirnya, anda harus memilih tanggal kedaluwarsa. Jika opsi 1 dipilih, tanggal kedaluwarsa akan digunakan baik untuk ElGamal dan DSA keypair.

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0)

Bagi sebagian besar pengguna, kunci yang tidak kedaluwarsa cukup memadai. Waktu kedaluwarsa harus dipilih dengan hati-hati, namun walaupun memungkinkan untuk mengubah tanggal kedaluwarsa setelah kunci dibuat, mungkin sulit untuk mengkomunikasikan perubahan pada pengguna yang memiliki kunci publik Anda.

Anda harus memberikan ID pengguna di samping parameter utama. ID pengguna digunakan untuk mengaitkan kunci yang dibuat dengan orang sesungguhnya.

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) <heinrichh@duesseldorf.de>"

Real name: 

Hanya satu ID pengguna yang dibuat saat kunci dibuat, namun memungkinkan untuk membuat ID pengguna tambahan jika anda ingin menggunakan kunci tersebut dalam dua atau lebih konteks, misalnya, sebagai karyawan di tempat kerja dan aktivis politik di tempat lain. ID pengguna harus dibuat dengan hati-hati karena tidak dapat diedit setelah dibuat.

GnuPG membutuhkan frasa sandi untuk melindungi kunci privat utama dan bawahan yang anda simpan dalam kepemilikan anda.

You need a Passphrase to protect your private key.    

Enter passphrase: 

Tidak ada batas panjang frasa sandi, dan harus dipilih dengan cermat. Dari sudut pandang keamanan, frasa sandi untuk membuka kunci pribadi adalah salah satu poin terlemah di GnuPG (dan sistem enkripsi kunci publik lainnya juga) karena ini adalah satu-satunya perlindungan yang anda miliki jika orang lain mendapatkan kunci pribadi anda. Idealnya, frasa sandi tidak boleh menggunakan kata-kata dari kamus dan harus mencampur kasus karakter alfabet serta menggunakan karakter non-abjad. Frasa sandi yang baik sangat penting untuk penggunaan GnuPG yang aman.

Membuat revocation certificate

Setelah keypair anda dibuat, anda harus segera membuat sertifikat pencabutan untuk kunci publik utama menggunakan opsi --gen-revoke. Jika anda lupa frasa sandi anda atau jika kunci pribadi anda dikompromikan atau hilang, sertifikat pencabutan ini dapat dipublikasikan untuk memberi tahu orang lain bahwa kunci publik seharusnya tidak lagi digunakan. Kunci publik yang dicabut masih dapat digunakan untuk memverifikasi tanda tangan yang dibuat oleh anda di masa lalu, namun tidak dapat digunakan untuk mengenkripsi pesan mendatang kepada anda. Ini juga tidak mempengaruhi kemampuan Anda untuk mendekripsi pesan yang dikirim kepada anda di masa lalu jika Anda masih memiliki akses ke kunci pribadi.

gpg --output revoke.asc --gen-revoke mykey
[...]

Argumen mykey harus menjadi specifier kunci, baik ID kunci dari keypair utama anda atau bagian dari ID pengguna yang mengidentifikasi keypair anda. Sertifikat yang dihasilkan akan berada di file revoke.asc. Jika opsi --output dihilangkan, hasilnya akan ditempatkan pada output standar. Karena sertifikatnya pendek, anda mungkin ingin mencetak salinan sertifikat untuk menyimpan tempat yang aman seperti safe deposit box anda. Sertifikat tidak boleh disimpan di tempat dimana orang lain dapat mengaksesnya karena setiap orang dapat menerbitkan sertifikat pencabutan dan membuat kunci publik yang benar menjadi tidak berguna.

Mempertukarkan keys

Untuk berkomunikasi dengan orang lain anda harus bertukar kunci publik. Untuk melihat daftar key pada keyring publik anda dapat menggunakan opsi --list-keys.

gpg --list-keys
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org>
sub  1024g/78E9A8FA 1999-06-04

Export public key

Untuk mengirim kunci publik anda ke koresponden anda harus terlebih dahulu mengekspornya. Opsi --export digunakan untuk melakukan ini. Dibutuhkan argumen tambahan untuk mengidentifikasi kunci publik untuk diekspor. Seperti opsi --gen-revoke, ID kunci atau bagian ID pengguna dapat digunakan untuk mengidentifikasi kunci yang akan diekspor.

alice% gpg --output alice.gpg --export alice@cyb.org

Kuncinya diekspor dalam format biner, tapi ini bisa merepotkan saat kuncinya dikirim meski email atau dipublikasikan di halaman web. Oleh karena itu, GnuPG mendukung opsi --armour yang menyebabkan keluaran dihasilkan dalam format ASCII-armoured yang serupa dengan dokumen yang di uuencoded. Secara umum, setiap keluaran dari GnuPG, mis., kunci, dokumen terenkripsi, dan tanda tangan, dapat menjadi ASCII-armoured dengan menambahkan opsi --armor.

alice% gpg --armor --export alice@cyb.org
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v0.9.7 (GNU/Linux)
Comment: For info see http://www.gnupg.org

[...]
-----END PGP PUBLIC KEY BLOCK-----

Importing a public key

sebuah public key dapat di tambahkan pada public keyring anda dengan opsi --import

gpg --import blake.gpg
gpg: key 9E98BC16: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg --list-keys
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org>
sub  1024g/78E9A8FA 1999-06-04

pub  1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org>
sub  1024g/5C8CBD41 1999-06-04

Sekali kunci diimpor itu harus divalidasi. GnuPG menggunakan model trust yang kuat dan fleksibel yang tidak mengharuskan anda untuk secara pribadi memvalidasi setiap kunci yang anda impor. Beberapa kunci mungkin perlu divalidasi secara pribadi. Kunci divalidasi dengan memverifikasi fingerprint kunci dan kemudian menandatangani kunci untuk menyatakannya sebagai kunci yang valid. Fingerprint kunci dapat dilihat dengan cepat dengan opsi --fingerprint, namun untuk mengesahkan kunci, anda harus mengeditnya.

gpg --edit-key blake@cyb.org

pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
sub  1024g/5C8CBD41  created: 1999-06-04 expires: never     
(1)  Blake (Executioner) <blake@cyb.org>
Command> fpr
pub  1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org>
             Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

Fingerprint kunci diverifikasi dengan pemilik kunci. Hal ini dapat dilakukan secara langsung atau melalui telepon atau melalui cara lain selama anda dapat menjamin bahwa anda berkomunikasi dengan pemilik kunci yang sebenarnya. Jika fingerprint yang anda dapatkan sama dengan fingerprint pemilik kunci, anda dapat yakin bahwa anda memiliki salinan kunci yang benar.

Setelah memeriksa fingerprint, anda dapat menandatangani kunci untuk memvalidasinya. Karena verifikasi kunci adalah titik lemah dalam kriptografi kunci publik, anda harus sangat berhati-hati dan selalu memeriksa sidik jari kunci dengan pemiliknya sebelum menandatangani kunci.

Command> sign
             
pub  1024D/9E98BC16  created: 1999-06-04 expires: never      trust: -/q
             Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16 

     Blake (Executioner) <blake@cyb.org>

Are you really sure that you want to sign this key
with your key: "Alice (Judge) <alice@cyb.org>"

Really sign?

Setelah masuk, anda dapat memeriksa kunci untuk mencantumkan signature di atasnya dan melihat signature yang telah anda tambahkan. Setiap ID pengguna di kunci akan memiliki satu atau lebih signature sendiri dan juga signature untuk setiap pengguna yang telah memvalidasi kuncinya.

Command> check
uid  Blake (Executioner) <blake@cyb.org>
sig!       9E98BC16 1999-06-04   [self-signature]
sig!       BB7576AC 1999-06-04   Alice (Judge) <alice@cyb.org>

Enkripsi dan dekripsi dokumen

Kunci publik dan kunci private masing-masing memiliki peran khusus saat mengenkripsi dan mendekripsi dokumen. Kunci publik dapat dianggap sebagai brankas terbuka. Ketika seorang koresponden mengenkripsi dokumen dengan menggunakan kunci publik, dokumen itu dimasukkan ke dalam brankas, brankas ditutup, dan kunci kombinasi diputar beberapa kali. Kunci pribadi yang sesuai adalah kombinasi yang dapat membuka kembali brankas dan mengambil dokumen. Dengan kata lain, hanya orang yang memegang kunci privat dapat mengembalikan dokumen yang dienkripsi menggunakan kunci publik yang terkait.

Prosedur untuk mengenkripsi dan mendekripsi dokumen sangat mudah dengan model mental ini. Jika Anda ingin mengenkripsi pesan ke Alice, Anda mengenkripsi dengan menggunakan kunci publik Alice, dan dia mendekrip dengan kunci private-nya. Jika Alice ingin mengirimi anda pesan, dia mengenkripsinya menggunakan kunci publik anda, dan anda mendekripnya dengan kunci private anda.

Untuk mengenkripsi sebuah dokumen gunakan opsi --encrypt . Anda harus memiliki kunci publik dari penerima yang dimaksud. Perangkat lunak mengharapkan nama dokumen untuk dienkripsi sebagai masukan; Jika dihilangkan, ia membaca input standar. Hasil terenkripsi ditempatkan pada keluaran standar atau sesuai dengan opsi --output. Dokumen ini dikompres untuk keamanan tambahan selain mengenkripsi.

alice% gpg --output doc.gpg --encrypt --recipient blake@cyb.org doc

Opsi --recipient digunakan satu kali untuk setiap penerima dan mengambil argumen tambahan yang menentukan kunci publik yang dokumennya harus dienkripsi. Dokumen terenkripsi hanya bisa didekripsi oleh seseorang dengan kunci pribadi yang melengkapi salah satu kunci publik penerima. Secara khusus, anda tidak dapat mendekripsi sebuah dokumen yang dienkripsi oleh anda kecuali anda menyertakan kunci publik anda sendiri dalam daftar penerima.

Untuk mendekrip pesan gunakan opsi --decrypt . Anda memerlukan kunci privat yang digunakan untuk meng-enkripsi pesan. Serupa dengan proses enkripsi, dokumen yang akan didekrip adalah input, dan hasil dekrip adalah output.

blake% gpg --output doc --decrypt doc.gpg

You need a passphrase to unlock the secret key for
user: "Blake (Executioner) <blake@cyb.org>"
1024-bit ELG-E key, ID 5C8CBD41, created 1999-06-04 (main key ID 9E98BC16)

Enter passphrase: 

Dokumen juga dapat dienkripsi tanpa menggunakan kriptografi kunci publik. Sebagai gantinya, anda menggunakan cipher simetris untuk mengenkripsi dokumen. Kunci yang digunakan untuk cipher simetris berasal dari frasa sandi yang diberikan saat dokumen dienkripsi, dan untuk keamanan yang baik, kunci tersebut tidak boleh sama dengan frasa sandi yang anda gunakan untuk melindungi kunci privat anda. Enkripsi simetris berguna untuk mengamankan dokumen bila frasa sandi tidak perlu dikomunikasikan kepada orang lain. Sebuah dokumen dapat dienkripsi dengan cipher simetris dengan menggunakan opsi --symmetric.

alice% gpg --output doc.gpg --symmetric doc
Enter passphrase: 

Making and verifying signatures

Tanda tangan digital memberi tanda dan cap waktu sebuah dokumen. Jika dokumen kemudian diubah dengan cara apapun, verifikasi tanda tangan akan gagal. Tanda tangan digital dapat melayani tujuan yang sama seperti tanda tangan yang ditulis tangan dengan tambahan keuntungan karena tahan terhadap pengrusakan / perubahan. Distribusi sumber GnuPG, misalnya, ditandatangani sehingga pengguna dapat memverifikasi bahwa kode sumbernya belum dimodifikasi sejak dikemas.

Membuat dan memverifikasi tanda tangan menggunakan keypair publik / private dalam operasi yang berbeda dengan enkripsi dan dekripsi. Tanda tangan dibuat dengan menggunakan kunci pribadi penandatangan. Tanda tangan diverifikasi menggunakan kunci publik yang sesuai. Misalnya, Alice akan menggunakan kunci privat-nya untuk menandatangani secara digital kiriman terakhirnya ke Journal of Anorganic Chemistry. Editor asosiasi yang menangani pengirimannya akan menggunakan kunci publik Alice untuk memeriksa tanda tangan untuk memverifikasi bahwa penyerahannya benar-benar berasal dari Alice dan itu tidak dimodifikasi sejak Alice mengirimkannya. Konsekuensi menggunakan tanda tangan digital adalah sulit untuk menyangkal bahwa anda membuat tanda tangan digital karena itu berarti kunci pribadi anda telah disusupi.

Opsi --sign digunakan untuk membuat tanda tangan digital. Dokumen yang akan ditandatangani adalah input, dan dokumen yang ditandatangani adalah output.

alice% gpg --output doc.sig --sign doc

You need a passphrase to unlock the private key for
user: "Alice (Judge) <alice@cyb.org>"
1024-bit DSA key, ID BB7576AC, created 1999-06-04

Enter passphrase: 

Dokumen dikompres sebelum ditandatangani, dan hasilnya ada dalam format biner.

Dengan dokumen yang ditandatangani, anda bisa mengecek tanda tangan atau memeriksa tanda tangan dan mengembalikan dokumen aslinya. Untuk mengecek tanda tangan gunakan opsi --verify. Untuk memverifikasi tanda tangan dan ekstrak dokumen gunakan opsi --decrypt. Dokumen yang ditandatangani untuk memverifikasi dan memulihkan adalah masukan dan dokumen yang dipulihkan adalah keluaran.

blake% gpg --output doc --decrypt doc.sig
gpg: Signature made Fri Jun  4 12:02:38 1999 CDT using DSA key ID BB7576AC
gpg: Good signature from "Alice (Judge) <alice@cyb.org>"

Clearsigned dokumen

Penggunaan tanda tangan digital yang umum adalah menandatangani posting atau pesan email usenet. Dalam situasi seperti itu, tidak diinginkan untuk mengkompres dokumen saat menandatanganinya. Opsi --clearsign menyebabkan dokumen dibungkus dengan tanda tangan ASCII-armoured namun tidak mengubah dokumen.

alice% gpg --clearsign doc
You need a passphrase to unlock the secret key for
user: "Alice (Judge) <alice@cyb.org>"
1024-bit DSA key, ID BB7576AC, created 1999-06-04

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[...]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v0.9.7 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iEYEARECAAYFAjdYCQoACgkQJ9S6ULt1dqz6IwCfQ7wP6i/i8HhbcOSKF4ELyQB1
oCoAoOuqpRqEzr4kOkQqHRLE/b8/Rw2k
=y6kj
-----END PGP SIGNATURE-----

Detached signatures

Dokumen yang ditandatangani memiliki kegunaan yang terbatas. Pengguna lain harus memulihkan dokumen asli dari versi yang ditandatangani, dan bahkan dengan dokumen yang jelas, dokumen yang ditandatangani harus diedit untuk memulihkan dokumen asli. Oleh karena itu, ada metode ketiga untuk menandatangani dokumen yang membuat tanda tangan terpisah, yang merupakan file terpisah. Tanda tangan terpisah dibuat menggunakan opsi --detach-sig.

gpg --output doc.sig --detach-sig doc
You need a passphrase to unlock the secret key for
user: "Alice (Judge) <alice@cyb.org>"
1024-bit DSA key, ID BB7576AC, created 1999-06-04

Enter passphrase: 

Baik dokumen maupun tanda tangan yang diperlukan untuk mendapatkan tanda tangan. Untuk mengecek signature bisa menggunakan opsi --verify ;.

gpg --verify doc.sig doc
gpg: Signature made Fri Jun  4 12:38:46 1999 CDT using DSA key ID BB7576AC
gpg: Good signature from "Alice (Judge) <alice@cyb.org>"

Chapter 2. Konsep

GnuPG memanfaatkan beberapa konsep kriptografi termasuk cipher simetris, cipher kunci publik, dan hashing satu arah. Anda bisa membuat penggunaan dasar GnuPG tanpa memahami sepenuhnya konsep ini, namun untuk menggunakannya dengan bijak, beberapa pemahaman tentang hal itu diperlukan.

Bab ini memperkenalkan konsep kriptografi dasar yang digunakan dalam GnuPG. Buku-buku lain mencakup topik-topik ini secara lebih rinci. Sebuah buku bagus untuk dipelajari selanjutnya adalah "Applied Cryptography" oleh Bruce Schneier.

Symmetric cipher

Cipher simetris adalah cipher yang menggunakan kunci yang sama untuk enkripsi dan dekripsi. Dua pihak yang berkomunikasi menggunakan cipher simetris harus menyetujui kunci sebelumnya. Begitu mereka setuju, pengirim mengenkripsi pesan menggunakan kunci tersebut, mengirimkannya ke penerima, dan penerima mendekripsi pesan menggunakan kunci tersebut. Sebagai contoh, Enigma Jerman adalah cipher simetris, dan kunci harian didistribusikan sebagai buku kode. Setiap hari, operator radio pengirim atau penerima akan berkonsultasi dengan fotokopi buku kode untuk menemukan kunci hari itu. Lalu lintas radio untuk hari itu kemudian dienkripsi dan didekripsi dengan menggunakan kunci hari itu. Contoh modern dari simetris cipher meliputi 3DES, Blowfish, dan IDEA.

Sebuah cipher yang baik menempatkan semua keamanan pada key dan tidak ada dalam algoritma. Dengan kata lain, seharusnya tidak ada gunanya bagi penyerang jika dia mengetahui cipher mana yang sedang digunakan. Hanya jika dia mendapatkan kunci pengetahuan tentang algoritma dibutuhkan. Cipher yang digunakan di GnuPG memiliki properti ini.

Karena semua keamanan ada di kunci, penting sekali untuk mempersulit menebak kuncinya. Dengan kata lain, set kunci yang mungkin, yaitu, panjang kunci, harus berukuran besar. Sementara di Los Alamos, Richard Feynman terkenal karena kemampuannya untuk menjebol lemari besi. Untuk mendorong mistik ia bahkan membawa kemana-mana seperangkat alat termasuk stetoskop tua. Pada kenyataannya, ia menggunakan berbagai trik untuk mengurangi jumlah kombinasi yang ia coba untuk sejumlah kecil dan kemudian bisa ditebak sampai ia menemukan kombinasi yang tepat. Dengan kata lain, ia mengurangi ukuran panjang kunci.

Inggris menggunakan mesin untuk menebak kunci selama Perang Dunia 2. Enigma Jerman memiliki panjang kunci yang sangat besar, namun Inggris membangun mesin penghitung khusus, Bombes, untuk secara mekanis mencoba kunci sampai kunci hari itu ditemukan. Ini berarti kadang kala mereka menemukan kunci hari itu dalam hitungan jam penggunaan kunci baru, tapi itu juga berarti bahwa pada beberapa hari mereka tidak pernah menemukan kunci yang tepat. Bombes bukanlah komputer dengan tujuan umum namun merupakan prekursor komputer modern.

Saat ini, komputer bisa menebak kunci dengan sangat cepat, dan inilah sebabnya ukuran kunci penting dalam kriptosistem modern. DES cipher menggunakan kunci 56-bit, yang berarti ada 256 kemungkinan kunci. 256 adalah 72.057.594.037.927.936 kunci. Ini adalah kunci yang panjang, namun komputer tujuan umum dapat memeriksa keseluruhan panjang kunci dalam hitungan hari. Komputer khusus bisa memeriksanya berjam-jam. Di sisi lain, cipher yang baru dirancang seperti 3DES, Blowfish, dan IDEA semua menggunakan kunci 128-bit, yang berarti ada 2128 kemungkinan kunci. Ini kunci yang jauh lebih panjang lagi, dan bahkan jika semua komputer di planet ini bekerja sama, masih bisa memakan waktu lebih lama dari pada usia alam semesta untuk menemukan kuncinya.

Public-key cipher

Masalah utama dengan simetris cipher bukan keamanan mereka tapi dengan pertukaran kunci. Begitu pengirim dan penerima saling bertukar kunci, kunci itu bisa digunakan untuk berkomunikasi dengan aman, tapi saluran komunikasi aman mana yang digunakan untuk mengkomunikasikan kunci itu sendiri? Secara khusus, mungkin akan lebih mudah bagi penyerang untuk mencoba mencegat kunci daripada mencoba semua kemungkinan kunci. Masalah lainnya adalah banyaknya kunci yang dibutuhkan. Jika ada n orang yang perlu berkomunikasi, maka di perlukan n(n-1)/2 kunci untuk setiap pasangan orang untuk berkomunikasi secara pribadi. Ini mungkin baik untuk sejumlah kecil orang tapi dengan cepat menjadi berat bagi kelompok besar orang.

Cipher kunci publik diciptakan untuk menghindari masalah pertukaran kunci sepenuhnya. Cipher kunci publik menggunakan sepasang kunci untuk mengirim pesan. Kedua kunci itu milik orang yang menerima pesan tersebut. Salah satu kunci adalah kunci publik dan mungkin diberikan kepada siapa saja. Kunci lainnya adalah kunci private dan dirahasiakan oleh pemiliknya. Pengirim mengenkripsi pesan menggunakan kunci publik dan saat dienkrip, hanya kunci private yang dapat digunakan untuk mendekrip-nya.

Protokol ini memecahkan masalah pertukaran kunci yang melekat pada simetris cipher. Tidak perlu bagi pengirim dan penerima untuk menyetujui sebuah kunci. Yang dibutuhkan hanyalah beberapa saat sebelum komunikasi rahasia pengirim mendapat salinan kunci publik penerima. Selanjutnya, satu kunci publik dapat digunakan oleh siapa saja yang ingin berkomunikasi dengan penerima. Jadi, hanya n keypairs yang dibutuhkan n untuk saling berkomunikasi satu sama lain.

Kunci publik ciphers didasarkan pada fungsi one-way trapdoor. Fungsi satu arah adalah fungsi yang mudah dihitung, namun inversnya sulit dihitung. Sebagai contoh, mudah untuk mengalikan dua bilangan prima bersama-sama untuk mendapatkan komposit, namun sulit untuk menentukan komposit menjadi komponen utamanya. Fungsi one-way trapdoor serupa, namun memiliki pintu jebakan. Artinya, jika beberapa informasi diketahui, maka menjadi mudah untuk menghitung invers. Misalnya, jika anda memiliki nomor yang terdiri dari dua faktor prima, maka mengetahui salah satu faktor memudahkan untuk menghitung yang kedua. Dengan menggunakan cipher kunci publik berdasarkan faktorisasi prima, kunci publik berisi bilangan komposit yang dibuat dari dua faktor prima yang besar, dan algoritma enkripsi menggunakan komposit tersebut untuk mengenkripsi pesan. Algoritma untuk mendekripsi pesan memerlukan mengetahui faktor prima, jadi dekripsi mudah dilakukan jika anda memiliki kunci pribadi yang berisi salah satu faktor namun sangat sulit jika anda tidak memilikinya.

Seperti halnya dengan cipher simetris yang baik, dengan kunci publik yang bagus, semua keamanan bersandar pada kuncinya. Oleh karena itu, ukuran kunci adalah ukuran keamanan sistem, namun tidak dapat membandingkan ukuran kunci cipher simetris dan kunci sandi kunci publik sebagai ukuran keamanan relatif mereka. Dalam serangan brute force pada cipher simetris dengan ukuran kunci 80 bit, penyerang harus menghitung hingga 280 kunci untuk menemukan kunci yang tepat. Dalam serangan brute force pada kunci publik kunci dengan ukuran kunci 512 bit, penyerang harus memasukkan bilangan komposit yang dikodekan dalam 512 bit (sampai 155 digit desimal). Beban kerja penyerang pada dasarnya berbeda tergantung pada cipher yang sedang diserangnya. Sementara 128 bit cukup untuk simetris ciphers, mengingat hari ini teknologi kunci publik dengan 1024 bit yang direkomendasikan untuk sebagian besar tujuan.

Hybrid cipher

Cipher kunci publik bukanlah obat mujarab. Banyak ciphers simetris lebih kuat dari sudut pandang keamanan, dan enkripsi dan dekripsi kunci publik lebih mahal daripada operasi yang sesuai pada sistem simetris. Cipher kunci publik tetap merupakan alat yang efektif untuk mendistribusikan kunci cipher simetris, dan begitulah cara penggunaannya dalam sistem cipher hibrida.

Cipher hibrida menggunakan cipher simetris dan cipher kunci publik. Ia bekerja dengan menggunakan cipher kunci publik untuk berbagi kunci untuk cipher simetris. Pesan sebenarnya yang dikirim kemudian dienkripsi menggunakan kunci dan dikirim ke penerima. Karena pembagian kunci simetris aman, kunci simetris yang digunakan berbeda untuk setiap pesan yang dikirim. Oleh karena itu terkadang disebut session key.

Baik PGP dan GnuPG menggunakan teknologi hybrid ciphers. Key session, dienkripsi menggunakan kunci publik, dan pesan yang dikirim, yang dienkripsi dengan cipher simetris, digabungkan secara otomatis dalam satu paket. Penerima menggunakan kunci pribadinya untuk mendekrip key session dan key session kemudian digunakan untuk mendekrip pesan.

Cipher hibrida tidak lebih kuat daripada cipher kunci publik atau cipher simetris yang digunakannya, mana saja yang lebih lemah. Di PGP dan GnuPG, cipher kunci publik mungkin lebih lemah dari pasangan. Untungnya, jika penyerang bisa mendekripsi key session, itu hanya akan berguna untuk membaca satu pesan yang dienkripsi dengan kunci sesi itu. Penyerang harus memulai lagi dan mendekripsi kunci sesi lain untuk membaca pesan lainnya.

Digital Signature / Tanda Tangan Digital

Fungsi hash adalah fungsi many-to-one yang memetakan masukannya ke nilai dalam himpunan terbatas. Biasanya set ini adalah sebuah kisaran bilangan natural. Fungsi hash sederhana adalah f (x) = 0 untuk semua bilangan bulat x. Fungsi hash yang lebih menarik adalah f (x) = x mod 37, yang memetakan x ke sisa pembagian x oleh 37.

Tanda tangan digital dokumen adalah hasil penerapan fungsi hash pada dokumen. Akan berguna, bagaimanapun, fungsi hash perlu memenuhi dua sifat penting. Pertama, harus sulit menemukan dua dokumen dengan nilai hash yang sama. Kedua, untuk sebuah nilai hash maka harus sulit mengembalikan dokumen yang menghasilkan nilai tersebut.

Beberapa cipher kunci publik bisa digunakan untuk menandatangani dokumen. Penandatangan mengenkripsi dokumen dengan kunci pribadinya. Siapa saja yang ingin memeriksa tanda tangan dan melihat dokumen hanya menggunakan kunci publik penandatangan untuk mendekrip dokumen. Algoritma ini memenuhi dua sifat yang dibutuhkan dari fungsi hash yang baik, namun dalam praktiknya, algoritma ini terlalu lambat untuk bisa berguna.

Alternatif lain adalah dengan menggunakan fungsi hash yang dirancang untuk memenuhi dua sifat penting ini. SHA dan MD5 adalah contoh algoritma semacam itu. Dengan menggunakan algoritma semacam itu, sebuah dokumen ditandatangani oleh hashing, dan nilai hash adalah tanda tangannya. Orang lain dapat memeriksa tanda tangan dengan juga mengumpulkan salinan dokumen mereka dan membandingkan nilai hash yang mereka dapatkan dengan nilai hash dari dokumen asli. Jika sesuai, hampir pasti dokumennya identik.

Tentu saja, masalahnya sekarang adalah menggunakan fungsi hash untuk tanda tangan digital tanpa membiarkan penyerang mengganggu pemeriksaan tanda tangan. Jika dokumen dan tanda tangan dikirim tidak terenkripsi, penyerang dapat memodifikasi dokumen dan menghasilkan tanda tangan yang sesuai tanpa sepengetahuan penerima. Jika hanya dokumen yang dienkripsi, penyerang bisa merusak tanda tangan dan menyebabkan tanda tangan gagal. Pilihan ketiga adalah menggunakan enkripsi kunci publik hibrida untuk mengenkrip tanda tangan dan dokumen. Penandatangan menggunakan kunci private-nya, dan siapa pun dapat menggunakan kunci publiknya untuk memeriksa tanda tangan dan dokumen. Ini terdengar bagus tapi sebenarnya omong kosong. Jika algoritma ini benar-benar mengamankan dokumen, dokumen itu juga akan mengamankannya dari gangguan dan tidak perlu tanda tangan. Masalah yang lebih serius, bagaimanapun, adalah bahwa ini tidak melindungi tanda tangan atau dokumen dari gangguan. Dengan algoritma ini, hanya session key untuk cipher simetris yang dienkripsi menggunakan kunci private penandatangan. Siapa saja dapat menggunakan kunci publik untuk memulihkan kunci sesi. Oleh karena itu, sangat mudah bagi penyerang untuk memulihkan key session dan menggunakannya untuk mengenkripsi dokumen pengganti dan tanda tangan untuk dikirim ke orang lain sesuai nama pengirim.

Algoritma yang melakukan pekerjaan adalah dengan menggunakan algoritma kunci publik untuk hanya mengenkripsi tanda tangan. Secara khusus, nilai hash dienkripsi menggunakan kunci private penandatangan, dan siapa pun dapat memeriksa tanda tangan menggunakan kunci publik. Dokumen yang ditandatangani dapat dikirim menggunakan algoritma enkripsi lain termasuk tidak ada jika itu adalah dokumen publik. Jika dokumen dimodifikasi maka cek tanda tangan akan gagal, tapi inilah tanda cek yang seharusnya ditelusuri. Digital Signature Standard (DSA) adalah algoritma tanda tangan kunci publik yang bekerja seperti yang baru saja dijelaskan. DSA adalah algoritma penandatanganan utama yang digunakan di GnuPG.

Chapter 3. Manajemen Kunci

Perusakan kunci adalah kelemahan keamanan utama dengan kriptografi kunci publik. Penyadap mungkin merusak keyrings pengguna atau kunci publik pengguna yang sudah jebol dan menyebarkan agar bisa diunduh dan digunakan oleh orang lain. Misalnya, misalkan Chloe ingin memonitor pesan yang dikirim Alice ke Blake. Dia bisa melakukan apa yang disebut serangan Man in The Middle (MiTM). Dalam serangan ini, Chloe menciptakan keypair publik / private baru. Dia mengganti salinan kunci publik Blake Alice dengan kunci publik yang baru. Dia kemudian menyadap pesan yang dikirim Alice ke Blake. Untuk setiap pencegatan, dia mendekripsikannya menggunakan kunci private yang baru, menggunakannya kembali dengan kunci publik Blake yang benar, dan meneruskan pesan yang dienkripsi ulang ke Blake. Semua pesan yang dikirim dari Alice ke Blake sekarang bisa dibaca oleh Chloe. Manajemen kunci yang baik sangat penting untuk memastikan tidak hanya integritas keyrings anda tapi juga integritas keyrings pengguna lain. Inti dari manajemen kunci di GnuPG adalah gagasan untuk menandatangani kunci. Penandatanganan kunci memiliki dua tujuan utama: ini memungkinkan anda mendeteksi gangguan pada keyring anda, dan ini memungkinkan anda untuk memastikan bahwa kunci benar-benar milik orang yang diberi nama oleh ID pengguna pada kunci itu. Tanda tangan kunci juga digunakan dalam skema yang dikenal sebagai web trust untuk memperpanjang sertifikasi menjadi kunci yang tidak ditandatangani langsung oleh anda namun ditandatangani oleh orang lain yang anda percaya. Pengguna yang bertanggung jawab yang mempraktikkan manajemen kunci yang baik dapat mengalahkan usaha pengrusakan kunci sebagai serangan praktis terhadap komunikasi yang aman dengan GnuPG.

Mengelola keypair Anda sendiri

Sebuah keypair memiliki kunci publik dan kunci privat. Kunci publik terdiri dari bagian publik dari kunci penandatanganan master, bagian publik dari subkunci penandatangan dan subkunci enkripsi, dan satu set ID pengguna digunakan untuk mengaitkan kunci publik dengan orang sesungguhnya. Setiap bagian memiliki data tentang dirinya sendiri. Untuk sebuah kunci, data ini termasuk ID-nya, ketika dibuat, kapan akan kedaluwarsa, dll. Untuk ID pengguna, data ini mencakup nama orang asli yang diidentifikasi, komentar opsional, dan alamat emailnya. Struktur kunci privat serupa, kecuali hanya berisi bagian-bagian pribadi dari kunci, dan tidak ada informasi ID pengguna.

Opsi --edit-key dapat digunakan untuk melihat keypair. Contoh,

chloe% gpg --edit-key chloe@cyb.org
Secret key is available.

pub  1024D/26B6AAE1  created: 1999-06-15 expires: never      trust: -/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) <chloe@cyb.org>
(2)  Chloe (Plebian) <chloe@tel.net>
Command>

Kunci publik ditampilkan bersama dengan indikasi apakah kunci private tersedia atau tidak. Informasi tentang masing-masing komponen kunci publik kemudian dicantumkan. Kolom pertama menunjukkan jenis kunci. Kata Pub mengidentifikasi kunci penandatanganan master publik, dan sub kata kunci mengidentifikasi kunci bawahan publik. Kolom kedua menunjukkan panjang, jenis, dan ID kunci. Tipe D untuk kunci DSA, g untuk kunci ElGamal yang hanya enkripsi, dan G untuk kunci ElGamal yang dapat digunakan untuk enkripsi dan penandatanganan. Tanggal pembuatan dan tanggal kadaluarsa diberikan dalam kolom tiga dan empat. Daftar User ID terlihat mengikuti kunci.

Informasi lebih lanjut tentang kunci dapat diperoleh dengan perintah interaktif. Perintah toggle beralih antara komponen publik dan komponen privat dari keypair jika memang kedua komponen tersedia.

Command> toggle

sec  1024D/26B6AAE1  created: 1999-06-15 expires: never
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-06-15 expires: 2002-06-14
(1)  Chloe (Jester) <chloe@cyb.org>
(2)  Chloe (Plebian) <chloe@tel.net>

Informasi yang diberikan serupa dengan daftar komponen kunci publik. Keyword sec mengidentifikasi kunci penandatanganan master pribadi, dan kata kunci sbb mengidentifikasi kunci bawahan pribadi. ID pengguna dari kunci publik juga tercantum untuk kenyamanan.

Integritas Kunci

Saat anda mendistribusikan kunci publik anda, anda mendistribusikan komponen publik kunci master dan bawahan anda serta ID pengguna. Mendistribusikan materi ini sendiri, bagaimanapun, adalah risiko keamanan karena memungkinkan penyerang untuk mengutak-atik kuncinya. Kunci publik dapat dimodifikasi dengan menambahkan atau mengganti kunci, atau dengan menambahkan atau mengubah ID pengguna. Dengan merusak ID pengguna, penyerang bisa mengubah alamat email pengguna ID agar emailnya dialihkan ke dirinya sendiri. Dengan mengubah salah satu kunci enkripsi, penyerang juga bisa mendekripsi pesan yang dialihkan kepadanya.

Menggunakan tanda tangan digital adalah solusi untuk masalah ini. Ketika data ditandatangani oleh kunci privat, kunci publik yang terikat pada data yang ditandatangani. Dengan kata lain, hanya kunci publik yang sesuai yang dapat digunakan untuk memverifikasi tanda tangan dan memastikan bahwa data belum dimodifikasi. Kunci publik dapat dilindungi dari gangguan dengan menggunakan kunci privat yang sesuai untuk menandatangani komponen kunci publik dan ID pengguna, sehingga mengikat komponen ke kunci utama publik. Menandatangani komponen kunci publik dengan kunci penandatanganan master pribadi yang sesuai disebut penandatanganan sendiri, dan kunci publik yang memiliki ID pengguna yang ditandatangani sendiri yang terikat padanya disebut sertifikat.

Sebagai contoh, Chloe mempunyai dua two user IDs dan tiga subkey. Tanda tangan / signature dari user ID dapat di cek menggunakan perintah check dari menu key edit.

chloe% gpg --edit-key chloe
Secret key is available.

pub  1024D/26B6AAE1  created: 1999-06-15 expires: never      trust: -/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) <chloe@cyb.org>
(2)  Chloe (Plebian) <chloe@tel.net>

Command> check
uid  Chloe (Jester) <chloe@cyb.org>
sig!	   26B6AAE1 1999-06-15	 [self-signature]
uid  Chloe (Plebian) <chloe@tel.net>
sig!	   26B6AAE1 1999-06-15	 [self-signature]

Seperti yang diharapkan, kunci penandatanganan untuk setiap tanda tangan adalah kunci penandatanganan master dengan kunci ID 0x26B6AAE1. Tanda tangan pada subkunci ada di kunci publik, namun tidak ditunjukkan oleh antarmuka GnuPG.

Menambah dan Men-delete komponen kunci

Subkunci baru dan ID pengguna baru keduanya dapat ditambahkan ke keypair anda setelah dibuat. ID pengguna ditambahkan dengan menggunakan perintah adduid. Anda diminta untuk mengisi nama, alamat email, dan komentar yang sebenarnya sama seperti saat anda membuat keypair awal. Subkunci ditambahkan menggunakan perintah addkey. Antarmuka ini mirip dengan antarmuka yang digunakan saat membuat keypair awal. Subkunci mungkin merupakan kunci penandatanganan DSA, dan kunci ElGamal hanya enkripsi, atau kunci ElGamal tanda dan kunci enkripsi. Bila subkunci atau ID pengguna dihasilkan, ia dapat menandatangani sendiri dengan menggunakan kunci penandatanganan master anda, oleh karena itu anda harus memberikan frasa sandi saat kunci dibuat.

ID pengguna tambahan berguna saat anda membutuhkan banyak identitas. Misalnya, anda mungkin memiliki identitas untuk pekerjaan Anda dan identitas untuk anda sebagai aktivis politik. Rekan kerja akan mengenal Anda dengan ID pengguna pekerjaan Anda. Sesama aktivis akan mengenal anda melalui ID pengguna aktivis anda. Karena kelompok orang tersebut mungkin tidak tumpang tindih, meskipun, masing-masing kelompok mungkin tidak mempercayai ID pengguna lainnya. Oleh karena itu, kedua ID pengguna itu diperlukan.

Subkey tambahan juga berguna. ID pengguna yang terkait dengan kunci utama publik anda divalidasi oleh orang-orang yang berkomunikasi dengan anda, dan oleh karenanya mengubah kunci utama memerlukan sertifikasi ulang. Ini mungkin sulit dan memakan waktu jika anda berkomunikasi dengan banyak orang. Di sisi lain, ada baiknya mengganti subkunci substitusi secara berkala. Jika kunci rusak, semua data yang dienkripsi dengan kunci tersebut akan rentan. Dengan mengubah kunci, hanya data yang dienkripsi dengan satu kunci yang rusak akan terungkap.

Subkunci dan ID pengguna juga dapat dihapus. Untuk menghapus subkunci atau ID pengguna anda harus terlebih dahulu memilihnya menggunakan perintah kunci / key atau perintah uid. Perintah ini adalah switch / toggle. Sebagai contoh, perintah kunci 2 memilih subkunci kedua, dan kunci 2 memanggil lagi untuk membatalkannya. Jika tidak ada argumen tambahan yang diberikan, semua subkunci atau ID pengguna tidak terpilih. Setelah ID pengguna dihapus, perintah deluid akan benar-benar menghapus ID pengguna dari kunci anda. Demikian pula, perintah delkey menghapus semua subkunci yang dipilih dari kunci publik dan pribadi anda.

Untuk manajemen kunci lokal, menghapus komponen kunci adalah cara yang baik untuk memangkas kunci publik orang lain dari materi yang tidak perlu. Dengan menghapus ID pengguna dan subkunci pada kunci anda sendiri, bagaimanapun, tidak selalu bijaksana karena ini mempersulit distribusi kunci. Secara default, saat pengguna mengimpor kunci publik yang diperbarui, anda akan digabungkan dengan salinan lama kunci publik anda di ring jika ada. Komponen dari kedua kunci / key digabungkan, dan ini secara efektif mengembalikan komponen yang anda hapus. Untuk memperbarui kunci dengan benar, pengguna harus menghapus dulu versi lama kunci anda lalu mengimpor versi yang baru. Ini memberi beban ekstra pada orang-orang yang berkomunikasi dengan anda. Selanjutnya, jika anda mengirim kunci anda ke keyserver, penggabungan akan terjadi, dan siapa pun yang mendownload kunci Anda dari keyserver tidak akan pernah melihat kunci Anda dengan komponen dihapus. Akibatnya, untuk memperbarui kunci anda sendiri, lebih baik mencabut komponen kunci daripada menghapusnya.

Revoke komponen kunci

Untuk mencabut sebuah subkunci, dia harus di pilih terlebih dulu. Setelah dipilih mungkin maka dia bisa dicabut dengan perintah revkey. Kunci dicabut dengan menambahkan tanda tangan pencabutan diri ke kuncinya. Berbeda dengan opsi baris perintah --gen-revoke, efek dari mencabut subkunci akan terasa segera.

Command> revkey
Do you really want to revoke this key? y

You need a passphrase to unlock the secret key for
user: "Chloe (Jester) <chloe@cyb.org>"
1024-bit DSA key, ID B87DBA93, created 1999-06-28

pub  1024D/B87DBA93  created: 1999-06-28 expires: never      trust: -/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) <chloe@cyb.org>
(2)  Chloe (Plebian) <chloe@tel.net>

ID pengguna dicabut secara berbeda. Biasanya, ID pengguna mengumpulkan tanda tangan yang membuktikan bahwa ID pengguna menggambarkan orang yang benar-benar memiliki kunci terkait. Secara teori, ID pengguna menggambarkan seseorang selamanya, karena orang tersebut tidak akan pernah berubah. Namun, dalam praktiknya, elemen ID pengguna seperti alamat email dan komentar dapat berubah seiring berjalannya waktu, sehingga membuat ID pengguna menjadi tidak valid.

Spesifikasi OpenPGP tidak mendukung pencabutan ID pengguna, namun ID pengguna dapat dicabut dengan sendirinya dengan mencabut tanda tangan sendiri pada ID pengguna. Untuk alasan keamanan yang dijelaskan sebelumnya, koresponden tidak akan mempercayai user ID tanpa tanda tangan yang sah.

Tanda tangan dicabut dengan menggunakan perintah revsig. Karena Anda mungkin telah menandatangani sejumlah ID pengguna, antarmuka pengguna meminta anda untuk memutuskan setiap tanda tangan untuk membatalkannya atau tidak..

Command> revsig
You have signed these user IDs:
     Chloe (Jester) <chloe@cyb.org>
   signed by B87DBA93 at 1999-06-28
     Chloe (Plebian) <chloe@tel.net>
   signed by B87DBA93 at 1999-06-28
user ID: "Chloe (Jester) <chloe@cyb.org>"
signed with your key B87DBA93 at 1999-06-28
Create a revocation certificate for this signature? (y/N)n
user ID: "Chloe (Plebian) <chloe@tel.net>"
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) <chloe@tel.net>
   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) <chloe@cyb.org>"
1024-bit DSA key, ID B87DBA93, created 1999-06-28

pub  1024D/B87DBA93  created: 1999-06-28 expires: never      trust: -/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) <chloe@cyb.org>
(2)  Chloe (Plebian) <chloe@tel.net>

ID pengguna yang dicabut ditandai dengan tanda tangan pencabutan pada ID saat tanda tangan pada ID pengguna kunci di-list / di tampilkan.

Command> check
uid  Chloe (Jester) <chloe@cyb.org>
sig!	   B87DBA93 1999-06-28	 [self-signature]
uid  Chloe (Plebian) <chloe@tel.net>
rev!	   B87DBA93 1999-06-29	 [revocation]
sig!	   B87DBA93 1999-06-28	 [self-signature]

Mencabut kedua subkunci dan tanda tangan pada ID pengguna menambahkan revocation self-signature ke kuncinya. Karena tanda tangan ditambahkan dan tidak ada materi yang dihapus, pembatalan akan selalu terlihat oleh orang lain saat kunci publik yang diperbarui didistribusikan dan digabungkan dengan salinan yang lebih tua darinya. Dengan demikian pembatalan menjamin bahwa setiap orang memiliki salinan kunci publik anda yang konsisten.

Update waktu expire kunci

Waktu kedaluwarsa kunci dapat diperbarui dengan perintah expire dari menu edit utama. Jika tidak ada kunci yang dipilih, waktu kedaluwarsa dari primary key akan diperbarui. Jika tidak, waktu kedaluwarsa kunci bawahan yang dipilih akan diperbarui. Waktu kedaluwarsa kunci dikaitkan dengan kunci self-signature. Waktu kadaluwarsa diperbarui dengan menghapus tanda tangan diri lama dan menambahkan tanda tangan baru. Karena koresponden tidak akan menghapus tanda tangan lama, mereka akan melihat tanda tangan tambahan pada kunci saat mereka memperbarui salinan kunci anda. Tanda tangan diri terbaru diutamakan, bagaimanapun, sehingga semua koresponden akan dengan jelas mengetahui masa kadaluwarsa kunci anda.

Validasi kunci lain di public keyring anda

Di Chapter 1 sebuah prosedur diberikan untuk memvalidasi kunci publik koresponden anda: kunci koresponden telah divalidasi dengan secara pribadi memeriksa sidik jarinya dan kemudian menandatangani kunci publiknya dengan kunci pribadi anda. Dengan secara pribadi memeriksa sidik jari anda dapat memastikan bahwa kunci itu benar-benar miliknya, dan karena anda telah menandatangani kunci mereka, Anda dapat memastikan untuk mendeteksi adanya gangguan di masa depan. Sayangnya, prosedur ini canggung bila anda harus memvalidasi sejumlah besar kunci atau berkomunikasi dengan orang-orang yang tidak Anda kenal secara pribadi.

GnuPG membahas masalah ini dengan mekanisme yang dikenal dengan sebutan web of trust. Dalam web model trust, tanggung jawab untuk memvalidasi kunci publik didelegasikan kepada orang yang anda percaya. Misalnya,

  • Alice sudah menanda tangani kunci Blake, dan
  • Blake sudah menanda tangani kunci Chloe dan kunci Dharma.

Jika Alice mempercayai Blake dan memvalidasi kunci yang dia tanda tangani, maka Alice dapat menyimpulkan bahwa kunci Chloe dan Dharma berlaku tanpa harus memeriksanya sendiri secara pribadi. Dia hanya menggunakan salinan kunci publik Blake yang valid untuk memastikan bahwa tanda tangan Blake pada Chloe dan Dharma baik. Secara umum, dengan asumsi bahwa Alice sepenuhnya mempercayai semua orang untuk benar memvalidasi kunci yang mereka tanda tangani, maka kunci yang ditandatangani oleh kunci yang valid juga dianggap valid. Akarnya adalah kunci Alice, yang secara otomatis diasumsikan valid.

Percaya pada pemilik kunci

Dalam prakteknya trust adalah subjektif. Sebagai contoh, kunci Blake berlaku untuk Alice sejak dia menandatanganinya, tapi dia mungkin tidak mempercayai Blake untuk benar memvalidasi kunci yang dia tanda tangani. Jika demikian, dia tidak akan menganggap kunci Chloe dan Dharma sebagai valid berdasarkan tanda tangan Blake saja. Web model trust menyumbang ini dengan mengasosiasikan setiap kunci publik di keyring anda menunjukkan seberapa besar trust anda terhadap pemilik kunci. Ada empat tingkat trust.

  • unknown - Tidak ada yang diketahui tentang penilaian pemilik dalam penandatanganan kunci. Kunci pada keyring publik anda yang pada awalnya tidak anda miliki memiliki tingkat trust ini.
  • none - Pemiliknya diketahui secara tidak benar menandatangani kunci lainnya.
  • marginal - Pemilik memahami implikasi penandatanganan kunci dan memvalidasi dengan benar kunci sebelum menandatanganinya.
  • full - Pemilik memiliki pemahaman yang sangat baik tentang penandatanganan kunci, dan tanda tangannya pada kunci akan sama bagusnya dengan keinginan Anda sendiri.

Tingkat trust kunci adalah sesuatu yang anda sendiri tetapkan ke kunci, dan ini dianggap sebagai informasi pribadi. Ini tidak dikemas dengan kunci saat diekspor; Bahkan disimpan terpisah dari keyrings anda di database terpisah.

Editor kunci GnuPG dapat digunakan untuk menyesuaikan trust anda pada pemilik kunci. Perintahnya adalah trust. Dalam contoh ini Alice mengedit trust-nya pada Blake dan kemudian memperbarui basis data trust untuk menghitung ulang kunci mana yang valid berdasarkan trust barunya pada Blake.

alice% gpg --edit-key blake 

pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: q/f
sub  1024g/C19EA233  created: 1999-07-02 expires: never
(1)  Blake (Executioner) <blake@cyb.org>

Command> trust
pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: q/f
sub  1024g/C19EA233  created: 1999-07-02 expires: never
(1)  Blake (Executioner) <blake@cyb.org>
Please decide how far you trust this user to correctly
verify other users' keys (by looking at passports,
checking fingerprints from different sources...)?

 1 = Don't know
 2 = I do NOT trust
 3 = I trust marginally
 4 = I trust fully
 s = please show me more information
 m = back to the main menu

Your decision? 3

pub  1024D/8B927C8A  created: 1999-07-02 expires: never      trust: m/f
sub  1024g/C19EA233  created: 1999-07-02 expires: never
(1)  Blake (Executioner) <blake@cyb.org>

Command> quit
[...]

Trust pada pemilik kunci dan validitas kunci ditunjukkan ke kanan saat tombol ditampilkan. Trust pada pemiliknya ditampilkan terlebih dahulu dan validitas kunci adalah yang kedua. Keempat tingkat trust / validitas disingkat: tidak diketahui (q), tidak ada (n), marjinal (m), dan penuh (f). Dalam kasus ini, kunci Blake sepenuhnya valid karena Alice menandatanganinya sendiri. Dia awalnya memiliki trust yang tidak diketahui pada Blake untuk benar menandatangani kunci lain namun memutuskan untuk mempercayainya sedikit.

Menggunakan Trust untuk Memvalidasi Kunci

Jaringan trust memungkinkan algoritma yang lebih rumit digunakan untuk memvalidasi kunci. Dahulu, kunci dianggap sah hanya jika anda menandatanganinya secara pribadi. Algoritma yang lebih fleksibel sekarang dapat digunakan: kunci K dianggap valid jika memenuhi dua syarat:

1. dia di tanda tangani oleh kunci valid yang cukup, artinya
    * anda sudah menanda tanganinya secara personal,
    * dia sudah di tanda tangani oleh satu kunci yang fully trusted, atau
    * dia sudah di tanda tangani oleh tiga kunci yang marginally trusted; dan
2. path dari kunci yang di tanda tangani dari K kembali ke kunci kita hanya lima langkah atau lebih pendek.

Panjang path, jumlah kunci yang dipercaya secara marginal, dan jumlah kunci terpercaya yang diperlukan dapat disesuaikan. Angka yang diberikan di atas adalah nilai default yang digunakan oleh GnuPG.

Figure 3-1 menunjukkan sebuah jaringan trust yang berakar pada Alice. Grafik menggambarkan siapa yang telah menandatangani kunci siapa. Tabel menunjukkan kunci Alice yang dianggap valid berdasarkan trust-nya pada anggota web lainnya. Contoh ini mengasumsikan bahwa dua kunci yang dipercaya secara marginal atau satu kunci terpercaya diperlukan untuk memvalidasi kunci lain. Panjang jalur maksimum adalah tiga.

Saat menghitung kunci yang valid dalam contoh, Blake dan Dharma selalu dianggap benar karena mereka ditandatangani langsung oleh Alice. Validitas kunci lainnya bergantung pada trust. Dalam kasus pertama, Dharma dipercaya sepenuhnya, yang menyiratkan bahwa kunci Chloe dan Francis akan dianggap sahih. Pada contoh kedua, Blake dan Dharma dipercaya sedikit. Karena dua kunci yang dipercaya secara marginal diperlukan untuk benar-benar memvalidasi kunci, kunci Chloe akan dianggap sepenuhnya valid, namun kunci Francis hanya akan dianggap salah. Dalam kasus di mana Chloe dan Dharma sedikit dipercaya, kunci Chloe akan sedikit valid karena kunci Dharma sepenuhnya valid. Kunci Francis, bagaimanapun, juga akan dianggap absah karena hanya kunci yang benar-benar valid yang dapat digunakan untuk memvalidasi kunci lainnya, dan kunci Dharma adalah satu-satunya kunci sah yang telah digunakan untuk menandatangani kunci Francis. Ketika trust marjinal pada Blake ditambahkan, kunci Chloe menjadi benar-benar valid dan kemudian dapat digunakan untuk sepenuhnya memvalidasi kunci Francis dan memvalidasi kunci Elena secara marginal. Terakhir, ketika Blake, Chloe, dan Elena benar-benar dipercaya, ini masih belum cukup untuk memvalidasi kunci Geoff karena jalur sertifikasi maksimum adalah tiga, namun panjang jalur dari Geoff kembali ke Alice adalah empat.

Web model trust adalah pendekatan fleksibel terhadap masalah pertukaran kunci publik yang aman. Ini memungkinkan anda menyetel GnuPG untuk mencerminkan bagaimana anda menggunakannya. Pada satu ekstrem anda mungkin bersikeras pada beberapa, jalur pendek dari kunci anda ke kunci K yang lain untuk mempercayainya. Di sisi lain, Anda mungkin merasa puas dengan jalan yang lebih panjang dan mungkin sesedikit satu jalur dari kunci anda ke kunci lain K. Membutuhkan banyak, jalan pendek adalah jaminan kuat bahwa K adalah milik anda yang dianggapnya benar. Harganya tentu saja, adalah bahwa lebih sulit untuk memvalidasi kunci karena anda harus secara pribadi menandatangani lebih banyak kunci daripada jika Anda menerima lebih sedikit dan lebih lama jalannya.

A hypothetical web of trust

Graph yang menunjukkan siapa yang telah menandatangani kunci siapa

trust	validity
marginal	full	marginal	full
 	Dharma	 	Blake, Chloe, Dharma, Francis
Blake, Dharma	 	Francis	Blake, Chloe, Dharma
Chloe, Dharma	 	Chloe, Francis	Blake, Dharma
Blake, Chloe, Dharma	 	Elena	Blake, Chloe, Dharma, Francis
 	Blake, Chloe, Elena	 	Blake, Chloe, Elena, Francis

Mendistribusikan Kunci

Idealnya, anda mendistribusikan kunci anda dengan memberikannya secara pribadi kepada koresponden anda. Namun, dalam praktiknya, kunci sering didistribusikan melalui email atau media komunikasi elektronik lainnya. Distribusi melalui email adalah praktik yang baik bila anda hanya memiliki sedikit koresponden, dan bahkan jika anda memiliki banyak koresponden, anda dapat menggunakan cara alternatif seperti memposting kunci publik Anda di halaman web anda. Ini tidak dapat diterima, namun, jika orang yang membutuhkan kunci publik anda tidak tahu di mana menemukannya di Web.

Untuk mengatasi masalah ini, server kunci publik digunakan untuk mengumpulkan dan mendistribusikan kunci publik. Kunci publik yang diterima oleh server ditambahkan ke database server atau digabungkan dengan kunci yang ada jika sudah ada. Saat permintaan kunci masuk ke server, server berkonsultasi dengan database-nya dan memberikan kunci publik yang diminta jika ditemukan.

Keyerver juga berharga saat banyak orang sering menandatangani kunci orang lain. Tanpa keyerver, saat kunci Alice di tanda tangani Blake masuk, Blake akan mengirimi Alice sebuah copy kunci publiknya yang ditandatangani olehnya sehingga Alice bisa menambahkan kunci yang diperbarui ke ringnya dan juga menyebarkannya ke semua korespondennya. Melalui upaya ini, memenuhi tanggung jawab Alice dan Blake kepada masyarakat luas dalam membangun jaring trust yang ketat dan dengan demikian meningkatkan keamanan PGP. Meskipun demikian, hal ini akan mengganggu jika penandatanganan kunci sering dilakukan.

Menggunakan keyserver membuat prosesnya agak mudah. Ketika Blake menanda kunci Alice, dia mengirim kunci yang ditandatangani ke server kunci. Server kunci menambahkan tanda tangan Blake pada salinan kunci Alice. Individu yang tertarik untuk memperbarui salinan kunci Alice mereka kemudian berkonsultasi dengan keyserver atas inisiatif mereka sendiri untuk mengambil kunci yang diperbarui. Alice tidak perlu terlibat dengan distribusi dan dapat mengambil tanda tangan di kuncinya hanya dengan query ke sebuah keyserver.

Satu atau lebih kunci dapat dikirim ke keyserver menggunakan opsi --send-keys . Opsi tersebut mengambil satu atau lebih key specifier dan mengirimkan kunci yang ditentukan ke server kunci. Server kunci untuk mengirim kunci ditentukan dengan opsi --keyserver. Demikian pula, opsi --recv-keys digunakan untuk mengambil kunci dari keyserver, namun opsi --recv-keys memerlukan kunci ID untuk menentukan kunci. Dalam contoh berikut, Alice memperbarui kunci publiknya dengan tanda tangan baru dari keyserver certserver.pgp.com dan kemudian mengirimkan salinan kunci publik Blake ke keyerver yang sama untuk memberi kontribusi pada tanda tangan baru yang mungkin telah ditambahkannya.

alice% gpg --keyserver certserver.pgp.com --recv-key 0xBB7576AC
gpg: requesting key BB7576AC from certserver.pgp.com ...
gpg: key BB7576AC: 1 new signature

gpg: Total number processed: 1
gpg:	     new signatures: 1
alice% gpg --keyserver certserver.pgp.com --send-key blake@cyb.org
gpg: success sending to 'certserver.pgp.com' (status=200)

Ada beberapa keyserver populer yang digunakan di seluruh dunia. Keyserver utama akan mensinkronkan diri mereka sendiri, jadi tidak masalah jika memilih keyserver yang dekat dengan anda di Internet dan kemudian menggunakannya secara teratur untuk mengirim dan menerima kunci.


Contoh Keyserver

Berikut adalah beberapa keyserver yang banyak digunakan untuk mencari kunci dengan perintah

gpg --recv-keys

Chapter 4. Penggunaan sehari-hari GnuPG

GnuPG adalah alat yang kompleks dengan masalah teknis, sosial, dan hukum yang mengelilinginya. Secara teknis, telah dirancang untuk digunakan dalam situasi yang memiliki kebutuhan keamanan yang berbeda secara drastis. Ini mempersulit manajemen kunci. Secara sosial, menggunakan GnuPG tidak sepenuhnya merupakan keputusan pribadi. Untuk menggunakan GnuPG secara efektif kedua belah pihak berkomunikasi harus menggunakannya. Akhirnya, pada tahun 1999, undang-undang tentang enkripsi digital, dan khususnya apakah menggunakan GnuPG legal atau tidak, berbeda dari satu negara ke negara lain dan saat ini sedang diperdebatkan oleh banyak pemerintah nasional.

Bab ini membahas masalah ini. Ini memberi saran praktis tentang cara menggunakan GnuPG untuk memenuhi kebutuhan keamanan anda. Ini juga menyarankan cara untuk mempromosikan penggunaan GnuPG untuk komunikasi yang aman antara anda dan rekan anda dimana saat ini rekan anda tidak menggunakan GnuPG. Akhirnya, status hukum GnuPG digarisbawahi mengingat status hukum enkripsi saat ini di dunia.

Mendefinisikan kebutuhan keamanan anda

GnuPG adalah alat yang anda gunakan untuk melindungi privasi Anda. Privasi anda terlindungi jika anda dapat berkorespondensi dengan orang lain tanpa ada yang bisa menyadap pesan tersebut.

Bagaimana anda harus menggunakan GnuPG tergantung pada tekad dan sumber daya dari mereka yang mungkin ingin membaca pesan terenkripsi anda. Penyadap mungkin adalah administrator sistem yang tidak bermoral yang dengan mudah menscan surat anda, mungkin itu adalah mata-mata industri yang mencoba mengumpulkan rahasia perusahaan anda, atau mungkin agen penegak hukum mencoba untuk mengadili anda. Menggunakan GnuPG untuk melindungi dari penyamaran biasa akan berbeda daripada menggunakan GnuPG untuk melindungi diri dari musuh. Tujuan anda, akhirnya, adalah untuk membuatnya lebih mahal untuk memulihkan data yang tidak terenkripsi dari pada nilai data itu.

Menyesuaikan penggunaan GnuPG berkisar pada empat isu:

  • memilih panjang kunci untuk public/private keypair anda,
  • memproteksi private key anda,
  • memilih tanggal kadaluarsa dan menggunakan subkeys, dan
  • memanaje jaringan trust anda.

Ukuran kunci yang dipilih dengan baik melindungi anda dari serangan brute force pada pesan terenkripsi. Melindungi kunci pribadi anda mencegah penyerang untuk tidak menggunakan kunci pribadi anda untuk mendekripsi pesan terenkripsi dan menandatangani pesan atas nama anda. Mengelola web trust dengan benar mencegah penyerang menyamar sebagai orang yang berkomunikasi dengan anda. Pada akhirnya, menangani masalah ini sehubungan dengan kebutuhan keamanan anda sendiri adalah bagaimana anda menyeimbangkan kerja ekstra yang diperlukan untuk menggunakan GnuPG dengan privasi yang diberikannya kepada anda.

Memilih panjang kunci

Memilih panjang kunci tergantung pada kunci yang digunakan. Di OpenPGP, keypair publik / pribadi biasanya memiliki beberapa kunci. Paling tidak dia memiliki kunci penandatanganan master, dan mungkin ada satu atau beberapa subkunci tambahan untuk enkripsi. Dengan menggunakan parameter pembentuk kunci default dengan GnuPG, kunci utama adalah kunci DSA, dan subkuncinya adalah kunci ElGamal.

DSA memungkinkan ukuran kunci hingga 1024 bit. Hal ini tidak terlalu baik mengingat teknologi yang ada saat ini, tapi itulah standar yang ditetapkan. Tanpa bertanya, anda harus menggunakan kunci DSA 1024 bit.

Kunci ElGamal, di sisi lain, memungkinkan ukuran apapun. Karena GnuPG adalah sistem kunci publik hibrida, kunci publik digunakan untuk mengenkrip kunci sesi 128-bit, dan kunci privat digunakan untuk mendekripnya. Ukuran kunci bagaimanapun mempengaruhi kecepatan enkripsi dan dekripsi karena biaya algoritma ini eksponensial dengan panjang kunci. Kunci yang lebih panjang akan membutuhkan lebih banyak waktu untuk menghasilkan dan mengambil lebih banyak tempat untuk disimpan. Pada akhirnya, ada penurunan pengembalian pada keamanan ekstra yang diberikan oleh kunci yang panjang. Bagaimanapun, jika kuncinya cukup panjang untuk melawan serangan brute force, seorang penyadap hanya akan beralih ke metode lain untuk mendapatkan data plaintext anda. Contoh metode lain termasuk merampok rumah atau kantor anda dan memalak Anda. 1024 bit merupakan ukuran kunci yang disarankan. Jika Anda benar-benar membutuhkan ukuran kunci yang lebih besar, mungkin anda sudah mengetahui hal ini dan harus berkonsultasi dengan pakar keamanan data.

Memproteksi kunci private anda

Melindungi kunci pribadi anda adalah pekerjaan terpenting yang harus anda lakukan untuk megunakan GnuPG dengan benar. Jika seseorang memperoleh kunci pribadi anda, semua data yang dienkripsi ke kunci privat dapat didekripsi dan tanda tangan dapat dibuat atas nama anda. Jika anda kehilangan kunci pribadi anda, maka anda tidak bisa lagi mendekripsi dokumen yang dienkripsi untuk anda di masa depan atau di masa lalu, dan anda tidak akan bisa membuat tanda tangan. Kehilangan satu-satunya kunci pribadi anda adalah bencana besar.

Terlepas dari bagaimana anda menggunakan GnuPG, anda harus menyimpan sertifikat pembatalan kunci publik dan mencadangkan kunci private anda pada media yang write protected di tempat yang aman. Misalnya, anda bisa membakarnya di CD-ROM dan menyimpannya di safe deposit box anda di bank dalam amplop tertutup. Sebagai alternatif, anda bisa menyimpannya di disket dan menyembunyikannya di rumah anda. Apa pun yang anda lakukan, mereka harus memakai media yang aman disimpan selama anda mengharapkan untuk menyimpan kuncinya, dan anda harus menyimpannya lebih hati-hati daripada salinan kunci pribadi yang anda gunakan setiap hari.

Untuk membantu melindungi kunci anda, GnuPG tidak menyimpan kunci private mentah anda pada disk. Akan tetapi mengenkripsi-nya menggunakan algoritma enkripsi simetris. Itulah sebabnya anda memerlukan frasa sandi untuk mengakses kunci. Jadi ada dua hambatan yang harus diatasi penyerang untuk mengakses kunci private anda: (1) dia benar-benar harus mendapatkan kunci itu, dan (2) dia harus melewati enkripsi.

Menyimpan kunci private anda dengan aman penting, tapi ada biaya. Idealnya, anda menyimpan kunci private pada disk yang dapat dilepas dan ditulis dengan mudah seperti floppy disk, dan anda akan menggunakannya pada mesin pengguna tunggal yang tidak terhubung ke jaringan. Ini mungkin merepotkan atau tidak mungkin anda lakukan. Misalnya, anda mungkin tidak memiliki mesin sendiri dan harus menggunakan komputer di tempat kerja atau sekolah, atau mungkin anda terpaksa melepas komputer anda dari modem kabel anda setiap kali anda ingin menggunakan GnuPG.

Ini tidak berarti anda tidak bisa atau tidak boleh menggunakan GnuPG. Ini berarti hanya bahwa anda telah memutuskan bahwa data yang anda lindungi cukup penting untuk disandikan namun tidak begitu penting untuk mengambil langkah ekstra untuk membuat penghalang pertama lebih kuat. Itu adalah pilihan anda.

Frasa sandi yang baik sangat penting saat menggunakan GnuPG. Setiap penyerang yang memperoleh akses ke kunci pribadi anda harus melewati enkripsi pada kunci privat. Selain brute force menebak kunci, penyerang hampir pasti akan mencoba menebak frasa sandi.

Motivasi untuk mencoba frasa sandi adalah karena kebanyakan orang memilih frasa sandi yang mudah ditebak daripada kunci 128-bit acak. Jika frase kata itu adalah sebuah kata, akan jauh lebih murah untuk mencoba semua kata dalam kamus bahasa dunia. Bahkan jika kata itu permutasi, misalnya, k3wldood, masih lebih mudah untuk mencoba kamus kata-kata dengan katalog permutasi. Masalah yang sama berlaku untuk kutipan. Secara umum, frasa sandi berdasarkan ucapan bahasa alami adalah frasa sandi yang buruk karena tidak banyak keacakan dan banyak redundansi dalam bahasa alami. Anda harus menghindari frase bahasa alami jika Anda bisa.

Frasa sandi yang baik adalah kata yang dapat anda ingat tapi sulit ditebak oleh seseorang. Ini harus mencakup karakter dari keseluruhan jenis karakter yang dapat dicetak pada keyboard anda. Ini termasuk huruf besar huruf alfabet, angka, dan karakter khusus seperti } dan |. Jadilah kreatif dan luangkan sedikit waktu untuk mengingat frasa sandi anda; pilihan yang baik adalah penting untuk memastikan privasi anda.

Memilih tanggal kadaluarsa dan menggunaan subkey

Secara default, kunci penandatanganan DSA master dan enkripsi subkey ElGamal dihasilkan saat anda membuat keypair baru. Ini mudah dilakukan, karena peran kedua kunci berbeda, dan karena itu anda mungkin menginginkan kunci memiliki daya tahan yang berbeda. Kunci penandatangan master digunakan untuk membuat tanda tangan digital, dan juga mengumpulkan tanda tangan orang lain yang telah mengkonfirmasi identitas anda. Kunci enkripsi hanya digunakan untuk mendekripsi dokumen terenkripsi yang dikirimkan kepada anda. Biasanya, tanda tangan digital memiliki masa pakai yang panjang, misalnya, untuk selamanya, dan anda juga tidak ingin kehilangan tanda tangan pada kunci yang berhasil Anda kumpulkan. Di sisi lain, subkey enkripsi dapat diubah secara berkala untuk keamanan tambahan, karena jika kunci enkripsi dipecahkan, penyerang dapat membaca semua dokumen yang dienkripsi ke kunci tersebut di masa depan dan dari masa lalu.

Hal ini hampir selalu terjadi bahwa anda tidak ingin master key berakhir. Ada dua alasan mengapa anda bisa memilih tanggal kedaluwarsa. Pertama, anda mungkin menginginkan kunci untuk memiliki masa pakai terbatas. Misalnya, ini digunakan untuk acara seperti kampanye politik dan tidak akan berguna lagi setelah kampanye berakhir. Alasan lain adalah jika anda kehilangan kontrol atas kunci dan tidak memiliki sertifikat pencabutan untuk mencabut kuncinya, memiliki tanggal kedaluwarsa pada kunci utama memastikan bahwa kunci tersebut pada akhirnya akan tidak digunakan lagi.

Mengubah subkunci enkripsi sangat mudah namun bisa merepotkan. Jika Anda membuat keypair baru dengan tanggal kedaluwarsa pada subkey, subkey itu pada akhirnya akan kedaluwarsa. Sesaat sebelum berakhirnya anda akan menambahkan subkunci baru dan mempublikasikan kunci publik yang diperbarui. Setelah subkunci berakhir, mereka yang ingin berkorespondensi dengan anda harus menemukan kunci yang diperbarui karena tidak dapat lagi mengenkripsi kunci yang kadaluarsa. Ini mungkin merepotkan, tergantung bagaimana Anda mendistribusikan kuncinya. Untungnya, bagaimanapun, tidak ada tanda tangan tambahan yang diperlukan karena subkunci baru akan ditandatangani dengan kunci penandatanganan master anda, yang mungkin telah divalidasi oleh koresponden anda.

Ketidaknyamanan ini mungkin sepadan atau mungkin tidak sepadan dengan keamanan ekstra. Sama seperti anda, penyerang juga masih bisa membaca semua dokumen yang dienkripsi ke subkunci yang kadaluwarsa. Mengganti subkunci hanya melindungi dokumen yang akan datang. Untuk membaca dokumen yang dienkripsi ke subkunci baru, penyerang perlu memasang serangan baru dengan menggunakan teknik apa pun yang dulu digunakannya untuk melawan anda.

Akhirnya, masuk akal untuk memiliki satu subkey enkripsi yang valid pada keyring. Tidak ada keamanan tambahan yang didapat dengan memiliki dua atau lebih subkey aktif. Mungkin ada sejumlah kunci kadaluarsa pada keyring sehingga dokumen yang dienkripsi di masa lalu masih dapat didekripsi, namun hanya satu subkey yang perlu aktif pada waktu tertentu.

Me-manaje web trust anda

Seperti melindungi kunci pribadi anda, mengelola kepercayaan anda adalah aspek lain penggunaan GnuPG yang memerlukan penyeimbangan keamanan terhadap kemudahan penggunaan. Jika anda menggunakan GnuPG untuk melindungi dari penyadapan dan pemalsuan maka anda dapat relatif mempercayai tanda tangan orang lain. Di sisi lain, jika anda khawatir bahwa mungkin ada penyerang yang pasti tertarik untuk menyerang privasi anda, maka anda harus lebih sedikit mempercayai tanda tangan lainnya dan menghabiskan lebih banyak waktu untuk memverifikasi tanda tangan secara pribadi.

Terlepas dari kebutuhan keamanan anda sendiri, anda harus selalu berhati-hati saat memasukkan kunci lainnya. Adalah egois untuk menandatangani kunci dengan cukup percaya diri tentang validitas kunci untuk memenuhi kebutuhan keamanan anda sendiri. Yang lainnya, dengan kebutuhan keamanan yang lebih ketat, mungkin ingin bergantung pada tanda tangan anda. Jika mereka tidak dapat bergantung pada anda maka itu akan melemahkan jaringan trust dan membuat lebih sulit bagi semua pengguna GnuPG untuk berkomunikasi. Gunakan kepedulian yang sama dalam menandatangani kunci yang ingin anda gunakan pada orang lain saat anda bergantung pada tanda tangan mereka.

Dalam praktiknya, mengelola kepercayaan anda mengurangi untuk memberi kepercayaan kepada orang lain dan menset opsi --marginals-needed dan --completes-needed . Kunci apa pun yang anda tanda tangani secara pribadi akan dianggap valid, kecuali untuk kelompok kecil, akan sangat tidak praktis untuk menanda tangani key dari setiap orang yang anda berkomunikasi dengannya. Oleh karena itu anda harus memberikan kepercayaan kepada orang lain.

Mungkin bijaksana untuk secara akurat saat memberikan trust dan kemudian menggunakan opsi untuk menyesuaikan bagaimana GnuPG hati-hati dengan validasi kunci. Sebagai contoh konkret, anda mungkin benar-benar mempercayai beberapa teman dekat yang anda yang anda tahu berhati-hati dengan penandatanganan kunci dan kemudian sedikit mempercayai orang lain pada keyring anda. Dari situlah, anda dapat menset --completes-needed ke 1 dan --marginals-needed ke 2 . Jika anda lebih memperhatikan keamanan, anda dapat memilih nilai masing-masing 1 dan 3 atau 2 dan 3. Jika anda kurang memperhatikan serangan privasi dan hanya menginginkan keyakinan yang masuk akal mengenai validitas, tetapkan nilainya ke 1 dan 1. Secara umum, angka yang lebih tinggi untuk opsi ini menyiratkan bahwa lebih banyak orang akan dibutuhkan untuk berkonspirasi melawan anda agar memiliki kunci yang divalidasi yang tidak benar-benar milik orang yang anda pikir itu.

Membuat Web Trust anda

Ingin menggunakan GnuPG sendiri tidak cukup. Agar bisa berkomunikasi dengan orang lain dengan aman, anda harus memiliki web trust. Sekilas, bagaimanapun, membangun jaringan trust adalah tugas yang menakutkan. Orang-orang yang berkomunikasi dengan anda perlu menggunakan GnuPG, dan perlu ada penandatanganan kunci yang cukup sehingga kunci dapat dianggap valid. Ini bukan masalah teknis; itu adalah masalah sosial. Kendati demikian, anda harus mengatasi masalah ini jika ingin menggunakan GnuPG.

Saat mulai menggunakan GnuPG, penting untuk disadari bahwa anda tidak perlu berkomunikasi dengan baik dengan setiap koresponden anda. Mulailah dengan lingkaran kecil orang, mungkin hanya diri anda sendiri dan satu atau dua orang lain yang juga ingin menggunakan hak mereka untuk privasi. Buat kunci anda dan tanda tangan masing-masing kunci publik. Ini adalah kepercayaan awal anda. Dengan melakukan ini, anda akan menghargai nilai dari sebuah jaringan kepercayaan kecil dan kuat dan akan lebih berhati-hati saat mengembangkan web anda di masa depan.

Selain mereka yang berada dalam jaringan kepercayaan awal anda, anda mungkin ingin berkomunikasi dengan orang lain yang juga menggunakan GnuPG. Dengan melakukan hal tersebut, Anda dapat menjadi canggung karena dua alasan: (1) anda tidak selalu tahu kapan seseorang menggunakan atau bersedia menggunakan GnuPG, dan (2) jika anda mengetahui seseorang yang menggunakannya, Anda mungkin masih memiliki masalah untuk memvalidasi kunci mereka. Alasan pertama terjadi karena orang tidak selalu mengiklankan bahwa mereka menggunakan GnuPG. Cara untuk mengubah perilaku ini adalah dengan memberi contoh dan mengiklankan bahwa anda menggunakan GnuPG. Setidaknya ada tiga cara untuk melakukannya: Anda dapat menandatangani pesan yang anda kirim ke orang lain atau mengirim ke papan pesan, anda dapat memasukkan kunci publik anda ke halaman web anda, atau jika anda meletakkan kunci pada keyserver, anda dapat memasukkan ID kunci dalam tanda tangan email anda. Jika anda mengiklankan kunci anda, maka anda membuatnya lebih dapat diterima orang lain untuk mengiklankan kunci mereka. Selanjutnya, anda mempermudah orang lain untuk mulai berkomunikasi dengan anda dengan aman sejak anda berinisiatif dan menjelaskan bahwa anda menggunakan GnuPG.

Validasi kunci lebih sulit. Jika anda tidak mengenal orang yang memiliki kunci yang ingin anda masuki secara pribadi, maka anda tidak dapat menandatanganinya sendiri. Anda harus bergantung pada tanda tangan orang lain dan berharap menemukan rangkaian tanda tangan yang mengarah pada kunci yang dimaksud kembali ke anda sendiri. Untuk memiliki kesempatan menemukan rantai, anda harus mengambil inisiatif dan mendapatkan kunci anda ditandatangani oleh orang lain di luar kepercayaan awal Anda. Cara efektif untuk melakukannya adalah berpartisipasi dalam pesta penandatangan kunci. Jika anda akan menghadiri konferensi lebih dulu untuk mengadakan pesta penandatanganan kunci, dan jika anda tidak melihat ada yang ditahan, tawarkan untuk menahannya. Anda juga bisa lebih pasif dan membawa fingerprint anda bersama anda untuk pertukaran kunci dadakan. Dalam situasi seperti ini orang yang anda beri fingerprint akan memverifikasinya dan menandatangani kunci publik anda begitu dia kembali ke rumah. Ingat, meskipun, bahwa ini adalah opsional. Anda tidak berkewajiban untuk mengiklankan kunci anda secara terbuka atau menandatangani kunci orang lain. Kekuatan GnuPG adalah cukup fleksibel untuk menyesuaikan diri dengan kebutuhan keamanan anda apa pun itu. Namun, realitas sosial adalah bahwa anda perlu mengambil inisiatif jika anda ingin mengembangkan kepercayaan dan memanfaatkan GnuPG sebanyak mungkin dalam komunikasi anda.

Menggunakan GnuPG secara legal

Status hukum perangkat lunak enkripsi bervariasi dari satu negara ke negara lain, dan undang-undang tentang perangkat lunak enkripsi berkembang dengan cepat. Bert-Japp Koops memiliki Survei Hukum Kripto yang sangat bagus yang harus anda rujuk untuk status legal perangkat lunak enkripsi di negara anda.

Chapter 5. Topics

Bab ini membahas berbagai topik yang tidak sesuai dengan panduan pengguna lainnya. Seiring topik ditambahkan, mereka mungkin dikumpulkan dan diperhitungkan dalam bab-bab yang berdiri sendiri. Jika Anda ingin melihat topik tertentu yang dibahas, mohon saran. Lebih baik lagi, sukarela menulis draf pertama yang mencakup topik yang Anda sarankan!

Writing user interfaces

Alma Whitten dan Doug Tygar telah melakukan studi tentang antarmuka pengguna PGP 5.0 NAI dan sampai pada kesimpulan bahwa pengguna pemula menemukan PGP membingungkan dan membuat frustrasi. Dalam studi faktor manusia, hanya empat dari dua belas subjek tes berhasil mengirim email terenkripsi dengan benar ke anggota tim mereka, dan tiga dari dua belas meng-email rahasia-nya tanpa enkripsi. Selanjutnya, setengah dari subjek tes memiliki latar belakang teknis.

Hasil ini tidak mengejutkan. PGP 5.0 memiliki antarmuka pengguna yang bagus yang sangat bagus jika anda sudah mengerti bagaimana enkripsi kunci publik bekerja dan terbiasa dengan model manajemen kunci web trust yang ditentukan oleh OpenPGP. Sayangnya, pengguna pemula tidak mengerti enkripsi kunci publik maupun manajemen kunci, dan antarmuka pengguna tidak banyak membantu.

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 sent 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. As a 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.

  • 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.
  • 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.
  • Consistently use the same terms for the same actions. Do not alternate between synonyms like ``encrypt and ``encipher.
  • 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 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 cubbyholes. 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.

  • Users are likely to be uncertain on how and when to grant accesses.
  • 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.

Notes

[1] Option 3 is to generate an ElGamal keypair that is not usable for making signatures. [2] Many command-line options that are frequently used can also be set in a configuration file. [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. [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. [5] In this section, GnuPG refers to the GnuPG implementation of OpenPGP as well as other implementations such as NAI's PGP product.


Pranala Menarik