STUDI SISTEM KEAMANAN DATA DENGAN METODE
PUBLIC KEY CRYPTOGRAPHY
Abstrak
Kemajuan
di bidang teknologi informasi telah memungkinkan institusi-institusi pendidikan
atau lainnya melakukan interaksi dengan konsumen melalui jaringan komputer.
Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko bilamana
informasi yang sensitif dan berharga tersebut diakses oleh orang-orang yang
tidak berhak.
Untuk
proteksi data yang cukup penting tidak ada jalan lain selain menggunakan
program khusus proteksi / enkripsi data. Saat ini telah banyak beredar program
khusus proteksi data baik freeware, shareware, maupun komersial yang sangat
baik. Pada umumnya program tersebut tidak hanya menyediakan satu metoda saja,
tetapi beberapa jenis sehingga kita dapat memilih yang menurut kita paling
aman. Salah satu metode enkripsi adalah public key criptography. Kriptografi
adalah suatu ilmu ataupun seni mengamankan pesan dan dilakukan oleh
criptographer. Public Key Criptography dilakukan dengan menggabungkan secara
kriptografi dua buah kunci yang berhubungan yang disebut sebagai pasangan kunci
public dan kunci privat. Kedua kunci tersebut dibuat pada waktu yang bersamaan
dan berhubungan secara matematis.
Algoritma
semetrik merupakan jenis algoritma enkripsi yang paling umum. Algoritma ini
disebut sebagai simetrik sebab kunci yang sama digunakan untuk enkripsi dan
dekripsi. Berbeda halnya dengan kunci yang digunakan pada algoritma kunci
publik, kunci yang digunakan pada simetrik
key biasanya sering berubah-ubah. Jika dibandingkan dengan algoritma
kunci publik, algoritma simetrik key sangat cepat dan oleh karena itu lebih
cocok jika digunakan untuk melakukan enkripsi data yang sangat besar. Protokol
kriptografi modern pada saat ini banyak yang menggabungkan algoritma kunci
publik dengan algoritma simetrik untuk memperoleh keunggulan-keunggulan pada
masing-masing algoritma.
Dalam
tugas akhir ini penulis akan membahas lebih lanjut tentang sistem keamanan data
dengan metode public key criptography yang menjelaskan perlu atau tidaknya
public key dan pemilihan sistem atau algoritma yang sesuai.
Referensi :
- http://www.tedi-h.com/papers/p
kripto.html
- http://www.budi.insan.co.id/courses/el695
- http://www.criptography.com
- Bruce Schneier,”Applied Criptography:
Protocols, Algoritms, and Source Code in C,” second edition, John Wiley
& Sons, Inc., 1996.
- http://www.infokomputer.com/arsip/internet/0698/cakra/cakrawa1.shtml
- http://www.ilmukomputer.com/populer/afs/afs-security.pdf
- http://www.majalah.web.id/article.php?sid=106
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah melimpahkan
rahmat dan hidayah-Nya kepada kami sehingga kami dapat menyelesaikan tugas
menyusun paper, sebagai salah satu syarat dalam menempuh mata kuliah Teknologi
Jaringan Nirkabel dan Bergerak. Paper ini kami susun dengan judul “Studi Sistem Keamanan Data dengan Metode Public Key Cryptography”.
Perkenankan bersama ini kami
mengucapkan terima kasih yang sebesar-besarnya kepada dosen, kerabat, sahabat
dan pihak-pihak yang selama ini turut membantu kami. Semoga Allah memberikan
balasan yang sepadan atas budi baik yang selama ini diberikan.
Tidak lupa kami mohon maaf yang sebesar-besarnya atas segala kesalahan
yang kami perbuat selama menyelesaikan paper ini.
Dengan terselesainya tugas penyusunan paper ini kami berharap sekiranya
paper ini dapat memberikan manfaat pada pengembangan penerapan teknologi
informasi. Kritik dan saran yang membangun untuk perbaikan papaer ini akan kami
terima dengan senang hati.
STUDI SISTEM KEAMANAN DATA
DENGAN METODE PUBLIC KEY CRYPTOGRAPHY
I. PENDAHULUAN
Kemajuan di bidang teknologi informasi telah memungkinkan
institusi-institusi pendidikan atau lainnya melakukan interaksi dengan konsumen
melalui jaringan komputer. Kegiatan-kegiatan tersebut tentu saja akan
menimbulkan resiko bilamana informasi yang sensitif dan berharga tersebut
diakses oleh orang-orang yang tidak berhak. Aspek keamanan data sebenarnya meliputi
banyak hal yang saling berkaitan, tetapi khusus dalam tulisan ini penulis akan
membahas tentang enkripsi dan keamanan proteksi data dengan metode public key cryptography.
Saat ini telah banyak beredar program khusus proteksi data baik
freeware, shareware, maupun komersial yang sangat baik. Pada umumnya program
tersebut tidak hanya menyediakan satu metoda saja, tetapi beberapa jenis
sehingga kita dapat memilih yang menurut kita paling aman. Salah satu metode
enkripsi adalah public key criptography.
Sampai saat ini penulis memperhatikan telah banyak program proteksi data yang
telah diterbitkan pada majalah Mikrodata ataupun Antivirus, tetapi jarang
sekali yang cukup baik sehingga dapat dipercaya untuk melindungi data yang
cukup penting.
Terlepas dari aman atau tidak, penulis sangat menghargai kreatifitas
programmer-programmer di negara kita, sehingga penulis selalu tertarik jika ada
artikel tentang program proteksi data di majalah ini, meskipun (sekali lagi)
sangat jarang metoda-metoda tersebut dapat memberikan proteksi yang baik
terhadap data kita. Dari pengamatan penulis kekuatan dari metoda-metoda
enkripsi adalah pada kunci (dari password yang kita masukkan) sehingga walaupun
algoritma metoda tersebut telah tersebar luas orang tidak akan dapat membongkar
data tanpa kunci yang tepat. Walaupun tentunya untuk menemukan metoda tersebut
diperlukan teori matematika yang cukup rumit. Tetapi intinya disini ialah
bagaimana kita mengimplementasikan metoda-metoda yang telah diakui keampuhannya
tersebut didalam aplikasi kita sehingga dapat meningkatkan keamanan dari
aplikasi yang kita buat.
Memang untuk membuat suatu metoda enkripsi yang sangat kuat (tidak
dapat dibongkar) adalah cukup sulit. Ada satu peraturan tidak tertulis dalam
dunia cryptography bahwa untuk dapat membuat metoda enkripsi yang baik orang
harus menjadi cryptanalysis (menganalisa suatu metoda enkripsi atau mungkin
membongkarnya) terlebih dahulu. Salah satu contohnya adalah Bruce Schneier
pengarang buku Applied Crypthography yang telah menciptakan metoda Blowfish dan
yang terbaru Twofish. Bruce Schneier (dan sejawatnya di Counterpane) telah
banyak menganalisa metoda-metoda seperti 3-Way, Cast, Cmea, RC2, RC5, Tea,
Orix, dll dan terbukti metoda yang ia buat yaitu Blowfish (yang operasi
ciphernya cukup sederhana bila dibandingkan dengan DES misalnya) sampai saat
ini dianggap salah satu yang terbaik dan tidak bisa dibongkar dan juga sangat
cepat. Bahkan untuk menciptakan Twofish ia dan timnya di Counterpane
menghabiskan waktu ribuan jam untuk menganalisanya dan sampai saat-saat
terakhir batas waktu penyerahan untuk AES (15 Juni 1998) ia terus
menganalisisnya dan menurutnya sampai saat inipun ia masih terus menganalisis
Twofish untuk menemukan kelemahannya.
Tabel 1. Performance
Metoda-metoda Enkripsi
Metoda
|
Rutin Penulis
|
Rutin Barton
|
Faktor
(
x )
|
(
Kbytes/detik)
|
Blowfish
|
6063,06
|
26,33
|
230,3
|
IDEA
|
1458,44
|
913,91
|
1,6
|
RC2
|
1867,76
|
640,37
|
2,9
|
RC4
|
9416,20
|
6429,49
|
1,5
|
RC5
|
5760,37
|
1907,91
|
3,0
|
RC6
|
4291,85
|
812,30
|
5,3
|
GOST
|
3524,44
|
-
|
-
|
Safer
|
1234,77
|
-
|
-
|
Skipjack
|
-
|
497,45
|
-
|
Dari tabel di atas terlihat performance dari
metoda-metoda ekripsi yang telah di-port ke dalam Delphi rata-rata cukup baik
bila di-optimize dengan benar, bahkan ada diantaranya yang lebih cepat
(dicompile dengan Delphi 3.0, dengan directive {$O+;$R-;$Q-}) dibandingkan
rutin C-nya yang dicompile dengan Borland C/C++ 5.2 (BCC32 dari Borland C++
Builder, dengan option optimize for speed,-O2), contohnya adalah Blowfish dan
RC4. Faktor penting dalam optimasi dengan Delphi 32 bit (Delphi 2.x, 3.x, 4.0
tampaknya menggunakan metoda optimasi yang sama) adalah penggunaan variabel 32
bit (Integer/LongInt/LongWord), karena tampaknya Delphi ini dioptimasikan untuk
operasi 32 bit. Contohnya adalah rutin Idea yang menggunakan beberapa variabel
Word (16 bit) dalam proses ciphernya, ketika penulis mengganti
variabel-variabel ini dengan Integer dan me-mask beberapa operasi yang perlu
sehingga hasilnya masih dalam kisaran Word, akan meningkatkan performance
kurang lebih 40%. Demikian juga dengan RC4 yang dalam tabel permutasinya
menggunakan type Byte (8 bit) penulis mengganti dengan Integer, kecepatannya
meningkat drastis. Walaupun demikian, dengan cara ini terjadi peningkatkan
overhead penggunaan memori, seperti pada RC4 dari tabel 256 byte menjadi 256*4
= 1024 byte. Tetapi karena kita memakainya untuk implementasi software saja dan
saat ini harga memori cukup murah jadi tidak terlalu menjadi masalah. Faktor
lain dalam optimasi adalah menghindari pemanggilan fungsi/procedure dalam blok
enkripsi utama, karena pemanggilan fungsi/procedure akan menyebabkan overhead
yang sangat besar. Hal lain yang perlu dihidari adalah penggunaan loop (for,
while, repeat) sehingga memungkinkan kode program dieksekusi secara paralel,
terutama pada prosesor superscalar seperti Pentium atau yang lebih baru.
Perlu juga diketahui bahwa ada diantara
metoda-metoda enkripsi tersebut yang dipatenkan seperti Idea, Seal, RC5, RC6,
Mars atau mungkin tidak diperdagangkan/disebarkan secara bebas (trade secret)
seperti RC2, RC4. Dan ada juga yang bebas digunakan seperti Blowfish, Twofish,
Sapphire II, Diamond II, 3-Way, Safer, Cast-256, dll., walaupun tentu saja
secara etika kita harus tetap mencantumkan pembuatnya/penciptanya pada program
kita.
II. TINJAUAN PUSTAKA
2.1.SISTEM KEAMANAN DATA
Bagi institusi-institusi atau pengguna lainnya,
sarana komunikasi data elektronis memunculkan masalah baru, yaitu keamanan.
Sistem autentikasi (bukti diri) konvensional dengan KTP, SIM, dsb. yang
bersandar pada keunikan tanda tangan tidak berlaku untuk komunikasi elektronis.
Pengewalan satpam tidak lagi bisa membantu keamanan kiriman dokumen. Komunikasi
data elektronis memerlukan perangkat keamanan yang benar-benar berbeda dengan
komunikasi konvensional.
Keamanan merupakan komponen yang vital dalam
komunikasi data elektronis. Masih banyak yang belum menyadari bahwa keamanan
(security) merupakan sebuah komponen penting yang tidak murah. Teknologi
kriptografi sangat berperan juga dalam proses komunikasi, yang digunakan untuk
melakukan enkripsi (pengacakan) data yang ditransaksikan selama perjalanan dari
sumber ke tujuan dan juga melakukan dekripsi (menyusun kembali) data yang telah
teracak tersebut. Berbagai sistem yang telah dikembangkan adalah seperti sistem
private key dan public key. Penguasaan algoritma-algoritma populer digunakan
untuk mengamankan data juga sangat penting.
Contoh – contoh algoritma ini antara lain : DES, IDEA, RC5, RSA, dan ECC
( Elliptic Curve Cryptography ). Penelitian dalam bidang ini di
perguruan tinggi merupakan suatu hal yang penting.
Dari sisi tindakan pihak yang bertanggung
jawab, keamanan jaringan komputer terbagi dua level: 1. keamanan fisik
peralatan mulai dari server, terminal/client router sampai dengan cabling; 2.
keamanan sistem sekiranya ada penyelindup yang berhasil mendapatkan akses ke
saluran fisik jaringan komputer. Sebagai contoh, dalam sistem
mainframe-dumb-terminal di suatu gedung perkantoran, mulai dari komputer
sentral sampai ke terminal secara fisik keamanan peralatan dikontrol penuh oleh
otoritas sentral. Manakala sistem tersebut hendak diperpanjang sampai ke
kantor-kantor cabang di luar gedung, maka sedikit banyak harus menggunakan
komponen jaringan komputer yang tidak sepenuhnya dikuasai pemilik sistem
seperti menyewa kabel leased-line atau menggunakan jasa komunikasi satelit.
Dari sisi pemakaian, sistem keamanan dipasang
untuk mencegah: 1. pencurian, 2. kerusakan, 3 penyalahgunaan data yang terkirim
melalui jaringan komputer. Dalam praktek, pencurian data berwujud pembacaan
oleh pihak yang tidak berwenang biasanya dengan menyadap saluran publik.
Teknologi jaringan komputer telah dapat mengurangi bahkan membuang kemungkinan
adanya kerusakan data akibat buruknya konektivitas fisik namun kerusakan tetap
bisa terjadi karena bug pada program aplikasi atau ada unsur kesengajaan yang
mengarah ke penyalahgunaan sistem.
Di institusi pendidikan, selain kepentingan
administratif sebagaimana di institusi-institusi lainnya, jaringan komputer
Internet khususnya dapat digunakan untuk berinteraksi dengan konsumen (siswa).
Pada umumnya, institusi pendidikan tidak menyelenggarakan pelayanan jasa yang
ketat seperti penyelenggaraan bank atau asuransi. Namun demikian, dalam sistem
terpadu, beberapa komponen bisa bersifat kritis seperti komunikasi data
pembayaran SPP dan menyentuh rahasia pribadi seperti penggunaan email untuk
konsultasi bimbingan dan penyuluhan. Untuk masalah pembayaan SPP, yang penting
adalah akurasi data dan pada dasarnya daftar pembayar SPP tidak perlu
disembunyikan karena pada akhirnya semua siswa membayar SPP. Untuk konsultasi
psikologis sebaiknya memang hanya siswa dan pembibing saja yang bisa membaca
teks komunikasi bahkan administrator jaringan pun harus dibuat tidak bisa
membaca electronic-mail.
2.2. KRIPTOGRAFI
2.2.1. Pengertian Kriptografi
Kriptografi (cryptography)
merupakan ilmu dan seni penyimpanan pesan, data, atau informasi secara aman.
Kriptografi (Cryptography) berasal dari bahasa Yunani yaitu dari kata
Crypto dan Graphia yang berarti penulisan rahasia. Kriptografi adalah suatu
ilmu yang mempelajari penulisan secara rahasia. Kriptografi merupakan bagian
dari suatu cabang ilmu matematika yang disebut Cryptology. Kriptografi
bertujuan menjaga kerahasiaan informasi yang terkandung dalam data sehingga
informasi tersebut tidak dapat diketahui oleh pihak yang tidak sah.
Dalam menjaga kerahasiaan data,
kriptografi mentransformasikan data jelas (plaintext) ke dalam bentuk
data sandi (ciphertext) yang tidak dapat dikenali. Ciphertext inilah
yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver).
Setelah sampai di penerima, ciphertext tersebut ditranformasikan kembali ke
dalam bentuk plaintext agar dapat dikenali.
Proses tranformasi dari plaintext menjadi ciphertext disebut proses Encipherment
atau enkripsi (encryption), sedangkan proses mentransformasikan
kembali ciphertext menjadi plaintext disebut proses dekripsi (decryption).
Untuk mengenkripsi dan mendekripsi data. Kriptografi menggunakan suatu
algoritma (cipher) dan kunci (key). Cipher adalah fungsi matematika yang
digunakan untuk mengenkripsi dan mendekripsi. Sedangkan kunci merupakan
sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data.
Suatu pesan yang tidak disandikan disebut sebagai plaintext ataupun
dapat disebut juga sebagai cleartext. Proses yang dilakukan untuk
mengubah plaintext ke dalam ciphertext disebut encryption atau encipherment.
Sedangkan proses untuk mengubah ciphertext kembali ke plaintext disebut decryption
atau decipherment. Secara sederhana istilah-istilah di atas dapat
digambarkan sebagai berikut :
Gambar 1. Proses Enkripsi/Dekripsi Sederhana
Cryptography adalah suatu ilmu ataupun seni mengamankan
pesan, dan dilakukan oleh cryptographer. Sedang, cryptanalysis adalah
suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang melakukannya
disebut cryptanalyst.
Cryptographic system atau cryptosystem adalah suatu fasilitas untuk mengkonversikan plaintext ke ciphertext
dan sebaliknya. Dalam sistem ini, seperangkat parameter yang menentukan
transformasi pencipheran tertentu disebut suatu set kunci. Proses enkripsi dan
dekripsi diatur oleh satu atau beberapa kunci kriptografi. Secara umum,
kunci-kunci yang digunakan untuk proses pengenkripsian dan pendekripsian tidak
perlu identik, tergantung pada sistem yang digunakan.
Secara umum operasi enkripsi dan dekripsi dapat
diterangkan secara matematis sebagai berikut :
EK (M) = C (Proses Enkripsi)
DK (C) = M (Proses Dekripsi)
Pada saat proses enkripsi kita menyandikan
pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses
dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga
dihasilkan pesan M yang sama seperti pesan sebelumnya.
Dengan demikian keamanan suatu pesan tergantung
pada kunci ataupun kunci-kunci yang digunakan, dan tidak tergantung pada
algoritma yang digunakan. Sehingga algoritma-algoritma yang digunakan tersebut
dapat dipublikasikan dan dianalisis, serta produk-produk yang menggunakan
algoritma tersebut dapat diproduksi massal. Tidaklah menjadi masalah apabila
seseorang mengetahui algoritma yang kita gunakan. Selama ia tidak mengetahui
kunci yang dipakai, ia tetap tidak dapat membaca pesan.
2.2.2.
Algoritma Kriptografi
Berdasarkan
kunci yang dipakai, algoritma kriptografi dapat dibedakan atas dua golongan,
yaitu :
a. Symmetric Algorithms
Algoritma kriptografi simeteris atau disebut juga algoritma kriptografi
konvensioanl adalah algoritma yang menggunakan kunci untuk proses enkripsi sama
dengan kunci untuk proses dekripsi.
Algoritma kriptografi simeteris dibagi
menajdi 2 kategori yaitu algoritma aliran (Stream Ciphers) dan algoritma
blok (Block Ciphers). Pada algoritma aliran, proses penyandiannya
berorientasi pada satu bit atau satu byte data. Sedang pada algoritma blok,
proses penyandiannya berorientasi pada sekumpulan bit atau byte data (per
blok). Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption Standard).
b. Asymmetric Algorithms
Algoritma kriptografi nirsimetris adalah algoritma yang menggunakan
kunci yang berbeda untuk proses enkripsi dan dekripsinya. Algoritma ini disebut
juga algoritma kunci umum (public key algorithm) karena kunci untuk
enkripsi dibuat umum (public key) atau dapat diketahui oleh setiap
orang, tapi kunci untuk dekripsi hanya diketahui oleh orang yang berwenang
mengetahui data yang disandikan atau sering disebut kunci pribadi (private
key). Contoh algoritma terkenal yang menggunakan kunci asimetris adalah RSA
dan ECC.
Gambar 2. Proses Enkripsi/Dekripsi Public Key Cryptography
Algoritma RSA :
Key generation :
1. Hasilkan dua buah integer prima besar, p dan q
Untuk memperoleh tingkat keamanan yang tinggi pilih p dan q
yang berukuran besar, misalnya 1024 bit.
2. Hitung m = (p-1)*(q-1)
3. Hitung n = p*q
4. Pilih d yg relatively prime terhadap m
e relatively prime thd m artinya faktor pembagi terbesar keduanya
adalah 1, secara matematis disebut gcd(e,m) = 1. Untuk mencarinya
dapat digunakan algoritma Euclid.
5. Cari d, sehingga e*d = 1 mod (m), atau d = (1+nm)/e
Untuk bilangan besar, dapat digunakan algoritma extended Euclid.
6. Kunci publik : e, n
Kunci private : d, n
Public key encryption
B mengenkripsi message M untuk A
Yg harus dilakukan B :
1. Ambil kunci publik A yg otentik (n, e)
2. Representasikan message sbg integer M dalam interval [0,n-1]
3. Hitung C = M ^ e (mod n)
4. Kirim C ke A
Untuk mendekripsi, A melakukan :
Gunakan kunci pribadi d untuk menghasilkan M = C^(d) (mod n)
Contoh Penerapan :
Misalkan :
Di sini saya pilih bilangan yg kecil agar memudahkan perhitungan, namun dalam aplikasi nyata pilih bilangan prima besar untuk meningkatkan keamanan.
p = 3
q = 11
n = 3 * 11 = 33
m = (3-1) * (11-1) = 20
e = 2 => gcd(e, 20) = 2
e = 3 => gcd(e, 20) = 1 (yes)
n = 0 => e = 1 / 3
n = 1 => e = 21 / 3 = 7 (yes)
Public key : (3, 33)
Private key : (7, 33)
Let's check the math using numbers
----------------------------------
* Try encryption : message "2"
C = 2 ^ 3 (mod 33)
= 8
Try to decrypt : ciphertext "8"
M = 8 ^ 7 (mod 33)
= 2097152 (mod 33)
= 2
** Encrypt : message " " (ASCII=20)
C = 20 ^ 3 (mod 33)
= 8000 (mod 33)
= 14
Decrypt : ciphertext 32
M = 14 ^ 7 (mod 33)
= 105413504 (mod 33)
= 20
2.2.3. Tanda Tangan Digital
Penandatanganan digital terhadap suatu
dokumen adalah sidik jari dari dokumen tersebut beserta timestamp-nya dienkripsi dengan menggunakan kunci privat pihak yang
menandatangani. Tanda tangan digital memanfaatkan fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku
untuk dokumen yang bersangkutan saja. Keabsahan tanda tangan digital itu dapat diperiksa
oleh pihak yang menerima pesan.
Gambar 3. Tanda tangan digital
2.2.4. Sertifikat Digital
Sertifikat digital adalah kunci publik dan informasi penting mengenai
jati diri pemilik kunci publik, seperti misalnya nama, alamat, pekerjaan,
jabatan, perusahaan dan bahkan hash dari
suatu informasi rahasia yang ditandatangani oleh suatu pihak terpercaya.
Sertifikat digital tersebut ditandatangani oleh sebuah pihak yang dipercaya
yaitu Certificate Authority (CA).
2.2.5. Secure Socket Layer (SSL)
SSL dapat menjaga kerahasiaan (confidentiality)
dari informasi yang dikirim karena menggunakan teknologi enkripsi yang maju dan
dapat di-update jika ada teknologi
baru yang lebih bagus. Dengan penggunaan sertifikat digital, SSL menyediakan
otentikasi yang transparan antara client dengan
server. SSL menggunakan algoritma RSA
untuk membuat tanda tangan digital (digital
signature) dan amplop digital (digital
envelope). Selain itu, untuk melakukan enkripsi dan dekripsi data setelah
koneksi dilakukan, SSL menggunakan RC4 sebagai algoritma standar untuk enkripsi
kunci simetri.
Saat aplikasi menggunakan SSL, sebenarnya terjadi dua sesi, yakni sesi handshake dan sesi pertukaran informasi.
Biasanya, browser-browser seperti Netscape Navigator atau
Microsoft Internet Explorer sudah menyertakan sertifikat digital dari CA utama
yang terkenal, sehingga memudahkan pemeriksaan sertifikat digital pada koneksi
SSL.Penyertaan serfikat digital CA utama pada browser akan menghindarkan client
dari pemalsuan sertifikat CA utama.
2.3.
Public Key Cryptography
Public key cryptography (lawan dari symmetric
key cryptography) bekerja berdasarkan
fungsi satu arah. Fungsi yang dapat dengan mudah dikalkulasi akan tetapi
sangat sulit untuk dibalik/invers
atau reverse tanpa informasi yang
mendetail. Salah satu contoh adalah faktorisasi; biasanya akan sulit untuk
memfaktorkan bilangan yang besar, akan tetapi mudah untuk melakukan
faktorisasi. Contohnya, akan sangat sulit untuk memfaktorkan 4399 daripada
memverifikasi bahwa 53 x 83 = 4399. Public
key cryptography menggunakan sifat-sifat asimetrik ini untuk membuat
fungsi satu arah, sebuah fungsi dimana semua orang dapat melakukan satu operasi
(enkripsi atau verifikasi sign) akan tetapi sangat sulit untuk menginvers
operasi (dekripsi atau membuat sign) tanpa informasi yang selengkap-lengkapnya.
Public key cryptography dilakukan dengan menggabungkan secara kriptografi dua
buah kunci yang berhubungan yang kita sebut sebagai pasangan kunci publik dan
kunci privat. Kedua kunci tersebut dibuat pada waktu yang bersamaan dan
berhubungan secara matematis. Secara matematis, kunci privat dibutuhkan untuk
melakukan operasi invers terhadap kunci public dan kunci publik dibutuhkan untuk melakukan operasi invers terhadap
operasi yang dilakukan oleh kunci privat.
Jika kunci publik didistribusikan secara
luas, dan kunci privat disimpan di tempat yang tersembunyi maka akan diperoleh
fungsi dari banyak ke satu. Semua orang dapat menggunakan kunci publik untuk
melakukan operasi kriptografi akan tetapi hanya orang yang memegang kunci
privat yang dapat melakukan invers terhadap data yang telah terenkripsi
tersebut. Selain itu dapat juga diperoleh fungsi dari satu ke banyak, yaitu
pada saat orang yang memegang kunci privat melakukan operasi enkripsi maka
semua orang yang memiliki kunci publik dapat melakukan invers terhadap data
hasil enkripsi tersebut.
2.4. Algoritma Public Key Cryptography
Sistem kriptografi
asimetris menggunakan dua buah key, yaitu public key dan private key. Salah
satu key akan diberi tahu kepada publik.
|
Gambar 4. Kriptografi asimetris
|
Matematika
merupakan perangkat bantu analisis dalam masalah sekuriti. Sebagai contoh
berikut ini adalah penulisan protokol SSL yang memungkinkan pertukaran session
key antara Web server dan client. Pada versi SSL protokol tersebut dilaksanakan
dengan cara berikut ini:
v Pada pesan pertama mengirimkan session key ke server dengan menggunakan publik key .
v Kemudian akan menghasilkan ``tantangan''
(challenge)
v akan melakukan ``sign'' dan akan mengirimkan kembali ke dengan sertifikat
Versi SSL di atas tidak memiliki otentikasi client seperti
yang diharapkan. Sehingga dapat menimbulkan suatu ``attaclk''. Perbaikan dari
masalah ini dilakukan dengan mengubah tahapan ke tiga menjadi :
Dalam
bahasan ini tidak dibahas lebih dalam lagi mengenai pemanfaatan matematika
dalam sekuriti, karena sudah merupakan suatu syarat mutlak yang lazim
diketahui.
Dalam mendisain sekuriti dapat dipakai 5 tahapan dasar
berikut ini :
1.
Pada aplikasi yang bersangkutan,
apakah mekanisme proteksi difokuskan, apakah pada data, operasi, atau pengguna
- Pada layer manakahdari sistem komputer mekanisme
sekuriti akan ditempatkan ?
- Mana yang lebih diinginkan kesederhanaan dan
jaminan tinggi atau pada sistem yang memiliki feature yang kaya.
- Apakah tugas untuk mendefinisikan dan mengerapkan
security harus diberikan pada badan terpusat atau diberikan pada
masing-masing individu pada suatu sistem ?
- Bagaimana dapat melindungi dari penyerang yang
ingin meperoleh akses pada sistem yang dilindungi mekanisme proteksi ?
Asimetrik
kriptografi digunakan dalam public key kriptografi. Ada 2 key, private dan
public key. Private key disimpan sendiri, dan publik key didistribusikan. Bila
publik key digunakan untuk menenkripsi maka hanya private key yang dapat
mendekripsi. Begitu juga sebaliknya.
Key yang digunakan
pada sistem kriptografi memegang peran yang sangat penting.
v Pseudo random number
v Panjangnya key, semakin panjang semakin aman. Tetapi perlu diingat
bahwa membandingkan dua buah sistem kriptografi yang berbeda dengan berdasarkan
panjang keynya saja tidaklah cukup.
v Private key harus disimpan secara aman baik dalam file (dengan PIN atau
passphrase) atau dengan smart card.
Untuk
menyusun strategi sekuriti yang baik perlu difiikrikan pertimbangan dasar
berikuti ini :
v Kemungkinan dipenuhinya (ekonomis dan pertimbangan waktu)
v Apakah sistem tetap dapat difungsikan
v Kesesuaian kultur
v Hukum setempat yang berlaku
Matematika
merupakan perangkat bantu analisis dan sintesis dalam masalah sekuriti. Sebagai
contoh berikut ini adalah penulisan protokol SSL yang memungkinkan pertukaran
session key antara Web server dan client.
III. SPESIFIKASI RANCANGAN
SISTEM
3.1. Keuntungan Public Key Cryptography
Pada algoritma public key ini, semua
orang dapat mengenkripsi data dengan memakai public key penerima yang telah
diketahui secara umum. Akan tetapi data yang telah terenkripsi tersebut hanya
dapat didekripsi dengan menggunakan private key yang hanya diketahui oleh
penerima.
3.2. Pemilihan
Sistem dan Algoritma
Pendekatan multidimensi dalam desain dan
implementasi sekuriti saat ini sudah tak dapat ditawar lagi. Sebaliknya
pendekatan tradisonal mulai ditinggalkan. Pendekatan multidimensi mencakup
keseluruhan sumber daya, policy, dan mekanisme sekuriti yang komprehensif.
Kunci dalam pelaksanaan sistem sekuriti model ini harus melibatkan keseluruhan
staf dari semua jajaran dan area yang ada dalam organisasi tersebut. Tanpa
pemahaman yang cukup dan kerjasama dari semua pihak maka mekanisme sekuriti
tersebut tidak dapat dilaksanakan dengan baik.
Untuk mendapatkan pertahanan yang kuat diperlukan sistem pertahanan
bertingkat yang melibatkan policy dan teknologi. Secara konseptual pertahanan
dapat dibagi menjadi tiga tingkat :
v
Perimeter
Pertahanan yang terletak paling luar adalah perimeter dimana terdapat mekanisme
firewall, mekanisme akses kontrol, proses autentikasi user yang memadai, VPN
(virtual private network), enkripsi, antivirus, network screening software,
real time audit, intrusion detection system, dan lain-lain. Pada tingkat
pertahanan ini terdapat alarm yang akan menyala apabila terjadi serangan
terhadap sistem
v
Servers
Server merupakan entry-point dari setiap layanan. Hampir semua layanan, data,
dan pengolahan informasi dilakukan di dalam server. Server memerlukan
penanganan sekuriti yang komprehensif dan mekanisme administrasi yang tepat.
Diantaranya adalah melakukan pemeriksaan, update patch, dan audit log yang
berkala
v
Desktops
Desktop merupakan tempat akses pengguna ke dalam sistem. Pengalaman telah
menunjukkan bahwa kelemahan sekuriti terbesar ada pada tingkat desktop karena
pengguna dengan tingkat pemahaman sekuriti yang rendah dapat membuat lobang
sekuriti seperti menjalankan email bervirus, mendownload file bervirus,
meninggalkan sesi kerja di desktop, dan lain-lain.
3.3.
Sekuritas
3.3.1. Tahapan Desain Sekuriti
Sekuriti adalah proses tahap demi tahap, teknis, bisnis, dan manajemen.
Oleh karena itu diperlukan langkah-langkah yang tepat sebagai strategi
implementasi sekuriti secara menyeluruh dan komprehensif.
v Inisialisasi
Objektif dari tahap ini adalah mendefinisikan kebutuhan yang relevan dan dapat
diaplikasikan dalam evolusi arsitektur sekuriti. Dalam tahap ini perlu adanya
edukasi dan penyebaran informasi yang memadai untuk mempersiapkan seluruh
jajaran staf dan manajemen.
v Mendefinisikan system sekuriti awal
Objektif dari tahap ini adalah mendefinisikan status system sekuriti
awal, mendokumentasi, melakukan analisa resiko, dan mencanangkan perubahan yang
relevan dari hasil analisa resiko.
v Mendefinisikan arsitektur sekuriti yang diharapkan
Objektif dari tahap ini adalah mendefinisikan arsitektur sekuriti baru
berdasarkan hasil analisa resiko dan prediksi terhadap kemungkinan terburuk.
Dalam tahap ini dibentuk juga model dari sub-arsitektur lainnya yang hendak
dibangun dan mempengaruhi sistem sekuriti secara keseluruhan.
v Merencanakan pengembangan dan perubahan
Melakukan perubahan dalam suatu organisasi bukan merupakan hal yang
mudah, termasuk dalam merubah sistem sekuriti yang sedang berjalan, karena
secara langsung maupun tidak langsung akan mempengaruhi proses-proses lain yang
sedang berjalan. Objektif dari tahap ini adalah membuat rencana pengembangan
yang komprehensif dengan memperhatikan semua aspek dan mempunyai kekuatan legal
yang kuat. Rencana tersebut diharapkan dapat secara fleksibel mengadopsi
feedback yang mungkin muncul pada masa pengembangan.
v Implementasi
Objektif dari tahap ini adalah mengeksekusi rencana pengembangan tersebut.
Termasuk dalam proses ini adalah memasukkan arsitektur sekuriti ke dalam
pengambilan keputusan di tingkat manajerial dan melakukan adjustment akibat
dari feedback.
v Maintenance
Sekuriti adalah hal yang sangat dinamik dan ditambah pula dengan
perubahan-perubahan teknologi yang cepat. Hal ini memerlukan proses
pemeliharaan (maintenance) untuk beradaptasi kepada semua perubahan-perubahan
yang terjadi sehingga dapat mengantisipasi terjadinya kelemahan pada sekuriti.
|
Gambar 5. Pendekatan implementasi sekuriti
|
Untuk menjamin terlaksananya sistem sekuriti yang baik, maka perlu
dilakukan tindakan yang menyeluruh. Baik secara preventif, detektif maupun
reaktif.
Tindakan tersebut dijabarkan sebagai berikut.
Melakukan tindakan preventif atau juga lazin disebut dengan interdiction
adalah lebih baik dari pada menyembuhkan lobang sekuriti dalam sistem. Beberapa
hal yang dapat dilakukan untuk mencegah terjadinya security incidents antara
lain adalah :
v Membentuk dan menerapkan security policy yang tepat
v Menanamkan pemahaman sekuriti kepada seluruh pengguna
v Mendefinisikan proses otentikasi
v Mendefinisikan aturan-aturan pada firewall dan akses kontrol
v Pelatihan dan penerapan hukum bagi terjadinya pelanggaran sekuriti
v Disain jaringan dan protokol yang aman
v Deteksi kemungkinan terjadinya vulnerability dan dilakukannya perbaikan
sebelum timbul kejadian.
Dengan melakukan deteksi terhadap setiap akses maka tindakan yang tidak
diinginkan dapat dicegah sedini mungkin. Tindakan ini pada dasrnya meliputi
kegiatan intelligence dan threat assesment. Tindakan detektif meliputi :
v Memasang Intrusion Detection System di dalam sistem internal. Pada
sistem ini juga dapat diterapkan teknik data-mining. Penerapan
distributed intruder detection sangat disarankan untuk sistem yang besar.
v Memasang network scanner dan system scanner untuk mendeteksi adanya
anomali di dalam network atau sistem. Analasis jaringan secara real time, untuk
mengetahui kemungkinan serangan melalui packet-packet yang membebani secara
berlebihan.
v Memasang content screening system dan antivirus software.
v Memasang audit program untuk menganalisa semua log
v Pengumpulan informasi secara social engineering. Hal ini untuk
mendengar issue-issue tentang kelemahan sistem yang dikelola.
v Perangkat monitor web dan newsgroup secara otomatis. Dapat juga
dilakukan proses monitoring pada channel IRC yang sering digunakan sebagai
tempat tukar-menukar infomrasi kelemahan sistem.
v Membentuk tim khusus untuk menangani kejadian sekuriti
v Melakukan simulasi terhadap serangan dan beban sistem serta melakukan
analisis vulnerabilitas. Membuat laporan analisis kejadian sekuriti.
v Melakukan pelaporan dengan cara mencari korelasi kejadian secara
otomatis
Jika alarm tanda bahaya berbunyi, sederetan tindakan responsif harus
dilakukan segera mungkin. Dalam kegiatan ini termasuk pemanfaatan teknik
forensik digital. Mekanisme ini dapat meresponse dan mengembalikan sistem pada
state dimana security incidents belum terjadi. Tindakan responsif meliputi :
v Prosedur standar dalam menghadapi security incidents.
v Mekanisme respon yang cepat ketika terjadi incidents
v Disaster Recovery Plan (DRP), termasuk juga dilakukannya proses
auditing.
v Prosedur untuk melakukan forensik dan audit terhadap bukti security
incidents. Untuk informasi sensitif (misal log file, password file dan
sebagainya), diterapkan mekanisme two-person rule yaitu harus minimum 2
orang yang terpisah dan berkualifikasi dapat melakukan perubahan.
v Prosedur hukum jika security incidents menimbulkan adanya
konflik/dispute
v Penjejakan paket ke arah jaringan di atas (upstream).
3.3.3. Prinsip disain teknologi
Prinsip utama dalam mendisain sistem sekuriti telah dipublikasikan oleh
Jerome Saltzer dan MD. Schroeder sejak tahun 1975. Prinsip ini hingga kini
tetap dapat berlaku, yaitu :
·
Hak terendah mungkin (least
priviledge).
Setiap pengguna atau proses, harus hanya memiliki hak yang memang
benar-benar dibutuhkan. Hal ini akan mencegah kerusakan yang dapat ditimbulkan
oleh penyerang. Hak akses harus secara eksplisit diminta, ketimbang secara
default diberikan.
·
Mekanisme yang ekonomis.
Disain sistem harus kecil, dan sederhana sehingga dapat diverifikasi
dan diimplementasi dengan benar. Untuk itu perlu dipertimbangkan juga bagaimana
cara verifikasi terhadap sistem pembangun yang digunakan. Pada beberapa
standard sekuriti untuk aplikasi perbankan , keberadaan source code menjadi
syarat dalam verifikasi.
·
Perantaraan yang lengkap.
Setiap akses harus diuji untuk otorisasi yang tepat
·
Disain terbuka.
Sekuriti harus didisain dengan asumsi yang tak bergantung pada
pengabaian dari penyerang. Desain sistem harus bersifat terbuka, artinya jika
memiliki source code maka kode tersebut harus dibuka, sehingga
meminimalkan kemungkinan adanya backdoor (celah keamanan) dalam sistem.
·
Pemisahan hak akses
(previledge)
Bila mungkin, akses ke resource sistem harus bergantung pada lebih dari
satu persyaratan yang harus dipenuhi. Model sekuriti yang memisahkan tingkat
pengguna akan lebih baik.
·
Mekanisme kesamaan terendah
User harus terpisahkan satu dengan yang lainnya pada sistem.
·
Penerimaan psikologi.
Pengendalian sekuriti harus mudah digunakan oleh pemakai sehingga
mereka akan menggunakan dan tidak mengabaikannya. Sudah saatnya disainer
memikirkan perilaku pengguna.
Untuk menerapkan sekuriti, berbagai pihak pada dasarnya menggunakan
pendekatan berikut ini :
- Tanpa sekuriti. Banyak orang tidak melakukan apa-apa yang berkaitan dengan
sekuriti, dengan kata lain hanya menerapkan sekuriti minimal (out of the
box, by default) yang disediakan oleh vendor. Jelas hal ini kuranglah
baik.
- ''Security through obscurity'' (security dengan cara penyembunyian) Pada pendekatan ini sistem
diasumsikan akan lebih aman bila tak ada orang yang tahu mengenai sistem
itu, misal keberadaannya, isinya, dan sebagainya. Sayangnya hal tersebut
kurang berarti di Internet, sekali suatu situs terkoneksi ke Internet
dengan cepat keberadaanya segera diketahui. Ada juga yang berkeyakinan
bahwa dengan menggunakan sistem yan tak diketahui oleh umum maka dia akan
memperoleh sistem yang lebih aman.
- Host security. Pada pendekatan ini, maka tiap host pada sistem akan dibuat
secure. Permasalahan dari pendekatan ini adalah kompleksitas. Saat ini
relatif pada suatu organisasi besar memiliki sistem ang heterogen.
Sehingga proses menjadikan tiap host menjadi secure sangatlah kompleks.
Pendekatan ini cocok untuk kantor yang memiliki jumlah host yang sedikit.
- Network security. Ketika sistem bertambah besar, maka menjaga keamanan dengan
memeriksa host demi host yang ada di sistem menjadi tidak praktis. Dengan
pendekatan sekuriti jaringan, maka usaha dikonsentrasikan dengan
mengontrol akses ke jaringan pada sistem.
Tetapi
dengan bertambah besar dan terdistribusinya sistem komputer yang dimiliki suatu
organisasi maka pendekatan tersebut tidaklah mencukupi. Sehingga perlu
digunakan pendekatan sistem sekuriti yang berlapis. Yang perlu diingat, adalah
kenyataan bahwa tak ada satu model pun yang dapat memenuhi semua kebutuhan dari
sekuriti sistem yang kita inginkan. Sehingga kombinasi dari berbagi pendekatan
perlu dilakukan.
Orang/pengguna merupakan sisi terlemah dari
sekuriti. Mereka tak memahami komputer, mereka percaya apa yang disebutkan
komputer. Mereka tak memahami resiko. Mereka tak mengetahui ancaman yang ada.
Orang menginginkan sistem yang aman tetapi mereka tak mau melihat bagaimana
kerja sistem tersebut. Pengguna tak memiliki ide, apakah situs yang dimasukinya
situs yang bisa dipercaya atau tidak.
Salah satu permasalahan utama dengan user di
sisi sekuriti, adalah akibat komunikasi atau penjelasan yang kurang memadai
pada user dan disain yang kurang berpusat pada user yang mengakibatkan lemahnya
sekuriti (Adams dan Sasse, 1999). User seringkali tak menerima penjelasan yang
cukup, sehingga mereka membuat atau mereka-reka sendiri resiko atau model
sekuriti yang terjadi. Seringkali ini menimbulkan pengabaian dan mengakibatkan
kelemahan sekuriti.
Di samping itu, akibat pengabaian para
pendisain sistem terhadap perilaku user dalam berinteraksi terhadap sistem,
maka timbul kesalahan misalnya adanya pengetatan yang tak perlu, yang malah
mengakibatkan user mengabaikan pengetatan itu. Atau penyesuaian kecil yang
seharusnya bisa dilakukan untuk menambah keamanan, tetapi tak dilakukan.
Sebagai contoh layout page tidak pernah mempertimbangkan sisi sekuriti,
ataupun belum ada desain layout yang meningkatkan kewaspadaan pengguna akan
keamanan. Disan halaman Web lebih ditekankan pada sisi estetika belaka. Untuk
itu sebaiknya dalam disain sistem, user diasumsikan sebagai pihak yang memiliki
kewaspadaan terendah, yang mudah melakukan kesalahan. Artinya pihak
perancanglah yang mencoba menutupi, atau memaksa si user menjadi waspada.
Beberapa langkah yang perlu dilakukan oleh penyedia layanan dalam
merancang sistem yang berkaitan dengan sisi pengguna adalah :
·
Sekuriti perlu menjadi
pertimbangan yang penting dari disain sistem .
Memberikan umpan balik pada mekanisme sekuriti akan meningkatkan pemahaman user
terhadap mekanisme sekuriti ini.
·
Menginformasikan user tentang
ancaman potensial pada sistem .
Kepedulian akan ancaman ini akan mengurangi ketakpedulian pengguna terhadap
ditail langkah transaksi yang dilakukan. Memang para pengguna Internet di
Indonesia kebanyakan memiliki kendala dalam hal bahasa . Sehingga mereka
sering melewati dan tak membaca pesan yang tampil di layar. Hal ini menuntut Semakin perlunya menu dan keterangan
berbahasa Indonesia pada.
·
Kepedulian user perlu selalu
dipelihara
Secara rutin penyedia layanan harus memberikan jawaban terhadap
pertanyaaan masalah sekuriti, baik yang secara langsung maupun tidak
·
Berikan user panduan tentang
sekuriti sistem , termasuk langkah-langkah yang
sensitif.
Sebaiknya ketika user baru memulai menggunakan suatu layanan, mereka
telah di-''paksa'' untuk membaca petunjuk ini terlebih dahulu.
IV. PENUTUP
- Kesimpulan
1.
Public Key Criptography dilakukan
dengan menggabungkan secara kriptografi dua buah kunci yang berhubungan yang
disebut sebagai pasangan kunci public dan kunci privat.
2.
Protokol kriptografi modern pada
saat ini banyak yang menggabungkan algoritma kunci publik dengan algoritma
simetrik untuk memperoleh keunggulan-keunggulan pada masing-masing algoritma.
3.
Pendekatan multidimensi dalam
desain dan implementasi sekuriti mencakup keseluruhan sumber daya, policy, dan
mekanisme sekuriti yang komprehensif.
- Saran
1.
Dalam mendisain sekuriti hendaknya
mengikuti tahapan-tahapan dasar yang benar.
2.
Dalam mendisain sekuriti hendaknya
dilakukan pemilihan algoritma yang sesuai.
DAFTAR PUSTAKA
- http://www.tedi-h.com/papers/p
kripto.html, Tedi Hariyanto, “Pengenalan Kriptografi”, edisi Juni
1999.
- http://www.budi.insan.co.id/courses/el695
- http://www.criptography.com
- Bruce Schneier,”Applied Criptography:
Protocols, Algoritms, and Source Code in C,” second edition, John Wiley
& Sons, Inc., 1996.
- http://www.infokomputer.com/arsip/internet/0698/cakra/cakrawa1.shtml
Budi Sukmawan, “Keamanan
Data dan Metode Enkripsi”, edisi Jan. 1998.
- http://www.ilmukomputer.com/populer/afs/afs-security.pdf,
Phil Zimmerman, “Sekilas Tentang Enkripsi”, NeoTek, April 2002.
- http://www.majalah.web.id/article.php?sid=106
- Budi Raharjo, “ Keamanan system informasi Berbasis
Internet “ PT Insan Infonesia – Bandung & PT INDOCISC – Jakarta, 2002