BAB I
PENGANTAR KEAMANAN KOMPUTER
Dalam
dunia komunikasi data global dan perkembangan teknologi informasi yang
senantiasa berubah serta cepatnya perkembangan software, keamanan merupakan
suatu isu yang sangat penting, baik itu keamanan fisik, keamanan data maupun
keamanan aplikasi.
Perlu
kita sadari bahwa untuk mencapai suatu keamanan itu adalah suatu hal yang
sangat mustahil, seperti yang ada dalam dunia nyata sekarang ini. Tidak ada
satu daerah pun yang betul-betul aman kondisinya, walau penjaga keamanan telah
ditempatkan di daerah tersebut, begitu juga dengan keamanan sistem komputer.
Namun yang bisa kita lakukan adalah untuk mengurangi gangguan keamanan
tersebut.
1. Pengertian
Keamanan Komputer
Pengertian
tentang keamanan komputer ini beragam-ragam, sebagai contoh dapat kita lihat
beberapa defenisi keamanan komputer menurut para ahlinya, antara lain :
·
Menurut John D. Howard dalam
bukunya “An Analysis of security incidents on the internet” menyatakan bahwa :
Keamanan
komputer adalah tindakan pencegahan dari serangan pengguna komputer atau
pengakses jaringan yang tidak bertanggung jawab.
·
Menurut Gollmann pada tahun 1999 dalam
bukunya “Computer Security” menyatakan bahwa :
Keamanan komputer adalah berhubungan dengan pencegahan
diri dan deteksi terhadap tindakan pengganggu yang tidak dikenali dalam system
komputer.
Dengan semakin berkembangnya eCommerce dan internet, maka masalah keamanan
tidak lagi masalah keamanan data belaka. Berikut pernyataan
Erkki Liikanen yang disampaikannya pada Information Security Solutions Europe
(ISSE 99), berlin 14 october 1999, antara lain :
- Keamanan
merupakan kunci pengaman user untuk lebih percaya diri dalam menggunakan
komputer dan internet, ini hanya dapat dicapai jika bentuk keamanan
terhubung dengan jaringan internet dan user memiliki jaminan keamanan yang
sesuai.
- Mengamankan
pasar internal yang krusial untuk pengembangan selanjutnya pasar security
Eropa, dan menciptakan industri kriptografi Eropa. Ini memerlukan evolusi metalitas peraturan dalam
batas ketentuan nasional, mari berfikir dengan cara Eropa.
- Pemeritah Eropa dan komisi lain berhadapan dengan
kepercayaan penuh, kita lihat pasar dan dewan perwakilan telah membahasnya
, kita harus melakukan pembicaraan lebih lanjut dan memusatkan pada hal
perlindungan publik dari pada bahaya publik.
- Akhirnya mempromosikan system sumber terbuka yang
sesuai dengan teknologi adalah tahap penting untuk tahap ke depan guna
membuka potensi pasar pengamanan industri kriptografi Eropa.
Dalam keamanan sistem komputer yang perlu kita lakukan
adalah untuk mempersulit orang lain untuk mengganggu sistem yang kita pakai,
baik itu kita menggunakan komputer yang sifatnya stand alone, jaringan local
maupun jaringan global. Kita harus memastikan system bisa berjalan dengan baik
dan kondusif, selain itu program aplikasinya masih bisa dipakai tanpa ada
masalah.
Beberapa hal yang menjadikan kejahatan komputer terus terjadi dan cenderung
meningkat adalah sebagai berikut :
- Meningkatnya
pengguna komputer dan internet
- Banyaknya
software yang pada awalnya digunakan untuk melakukan audit sebuah system
dengan cara mencari kelemahan dan celah yang mungkin ada disalahgunakan
untuk melakukan scanning system orang lain.
- Banyaknya
software-software untuk melakukan probe dan penyusupan yang tersedia di
Internet dan bisa di download secara gratis.
- Meningkatnya kemampuan pengguna komputer dan
internet
- Desentralisasi server sehingga lebih banyak
system yang harus ditangani, sementara SDM terbatas.
- Kurangnya huku yang mengatur kejahatan komputer.
- Semakin banyaknya perusahaan yang menghubungkan
jaringan LAN mereka ke Internet.
- Meningkatnya aplikasi bisnis yang menggunakan
internet.
- Banyaknya
software yang mempunyai kelemahan (bugs).
2.
Masalah
Keamakan system computer secara umum
Sebelum
adanya personal komputer, komputer-komputer di dunia hanya berada di dalam
instansi-instansi pemerintah dan kantor-kantor bisnis yang besar saja. Komputer
pada waktu itupun hanya terbatas pada jenis-jenis komputer tertentu saja
seperti komputer mini dan komputer mainframe saja.
Pada
tahun 1977, dua anak muda yaitu Steve Jobs dan Steve Wozniak dari Silicon
Valley, California, memperkenalkan konsep baru , Personal Komputer, yang diberi
nama ‘Apple Computer I’, dengan prinsip ‘satu orang satu komputer’ mereka
mendirikan perusahaan “Apple Computer Inc”.
Kebutuhan
akan personal komputer naik secara drastic. Merasuknya personal Komputer ke
jaringan kehidupan masyarakat menumbuhkan kebutuhan baru bagi pemakai-pemakai
komputer tersebut, yaitu kebutuhan untuk saling bertukar informasi antar
komputer. Pertukaran informasi antar komputer dilakukan dengan menghubungkan
satu komputer dengan komputer lain. Hubungan ini dapat dilakukan dengan
menghubungkan komputer-komputer melalui kabel secara langsung. Atau dapat pula
dilakukan secara tidak langsung, seperti hubungan melalui satelit. Jika
beberapa komputer dihubungkan satu dengan yang lain melalui hubungan komunikasi
, mereka adalah bagian dari jaringan kerja komputer (computer network).
Jaringan
computer mengubah cara kerja para pemakai komputer. Keuntungan dari adanya
komputer network sangatlah banyak. Akan tetapi, kenyamanan dari adanya jaringan
komputer ini tidak lepas dari rongrongan phak-pihak tertentu. Keterbukaan suatu
jaringan komputer memberi kesempatan kepada penjahat-penjahat komputer untuk
mencoba
mendapatkan
akses ke dalam sistem komputer perusahaan. Dapat dikatakan bahwa jaringan
komputer itu tidak akan lepas dari kejahatan komputer. Contoh. Banking Fraud
yang dilakukan oleh 2 mahasiswa komputer pada awal Oktober 1990.
Kejahatan
komputer itu dapat dikategorikan sebagai “White Collar Crime” yang dalam
beroperasinya lebih banyak menggunakan pikiran / otak.
Kejahatan
computer dapat dibagi dlam 2 kategori :
1. Kejahatan
computer internal adalah kejahatan yang dilakukan oleh atau mendapat bantuan
dari ‘orang dalam’. Yang dimaksud ‘orang dalam’ disini adalah para pekerja
didalam satu instansi dimana computer pusat tersebut berada, atau dari seorang
programmer yang memprogram aplikasi tersebut. Pada dasarnya kejahatan computer
ini dapat dilakukan dengan cara :
o
manipulasi transaksi input dan mengubah
data
o
modifikasi software / hardware
2. Kejahatan
computer external adalah kejahatan yang dilakukan dari luar instansi tanpa
bantuan “orang dalam”. Kejahatan jenis ini dilakukan oleh seseorang yang
sebelumnya sama sekali tidak mengetahui tentang system computer yang bersangkutan.
o
HACKER
Istilah
ini muncul sekitar tahun 1960-an dimana komputer-komputer masih merupakan
monster yang besar ukurannya. Para hacker ini berhasil menulis program catu
yang pertama. Mereka juga membantu Johan McCarthy dalam mengembangkan salah
satu bahasa Artificial Inteligence (AI), yaitu bahasa LISP. Para hacker ini
terlibat juga dalam proyek MAC (Multiple Access Computer). Para hacker MAC juga
merupakan pelopor terciptanya Expert System dan computer Time Sharing.
o
PHREAKER
Adalah
hacker yang bermain-main dengn system komunikasi jaringan telephone secara
gratis. Phreaker berasal dari kata phone freak dan hacker. Istilah hacker dan
phreaker erat hubungannya satu sama lain. Seorang hacker harus mengetahui
teknik phreaking (teknik yang berhubungan dengan system komunikasi), sedangkan
phreaker hamper selalu menjadi hacker.
ASPEK YANG
BERKAITAN DENGAN PERSYARATAN KEAMANAN
Aspek yang
berkaitan dengan persyaratan keamanan, antara lain :
·
Secrecy. Berhubungan dengan akses
membaca data dan informasi. Data dan informasi di dalam suatu system computer
hanya dapat diakses dan dibaca oleh orang yang berhak.
·
Integrity. Berhubungan dengan akses
merubah data dan informasi. Data dan informasi yang berada di dalam suatu
system computer hanya dapat diubah oleh orang yang berhak.
·
Availability. Berhubungan dengan
ketersediaan data dan informasi. Data dan informasi yang berada dalam suatu
system computer tersedia dan dapat dimanfaatkan oleh orang yang berhak.
ASPEK YANG
BERKAITAN DENGAN ANCAMAN KEAMANAN
Aspek yang
berkaitan dengan ancaman keamanan antara lain :
·
Interruption. Merupakan ancaman terhadap
availability, yaitu data dan informasi yang berada dalam system computer
dirusak atau dibuang, sehingga menjadi tidak ada dan tidak berguna. Contohnya,
hard disk yang dirusak, memotong line komunikasi, dan lain-lain.
·
Interception. Merupakan ancaman terhadap
secrecy, yaitu orang yang tidak berhak namun berhasil mendapatkan akses
informasi daari dalam system computer. Contohnya, dengan menyadap data yang melalui
jaringan public (wiretapping) atau menyalin secara tidak sah file atau program.
·
Modification. Merupakan ancaman terhadap
integritas, yaitu orang yang tidak berhak yang tidak hanya berhasil mendapatkan
akses informasi dari dalam system computer, tetapi juga dapat melakukan
perubahan terhadap informasi. Contohnya, merubah program dan lainlain.
·
Fabrication. Merupakan ancaman terhadap
integritas , yaitu orang yang tidak berhak yang meniru atau memalsukan suatu
objek ke dalam system. Contohnya, dengan menambahkan suatu record ke dalam
file.
Menurut Saltzer,
J., dan Schroeder, M. (“The Protection of Information in Computer System” Proceeding of the IEEE, September 1975), di
dalam merancang suatu system keamanan, ada beberapa prinsip yang harus diperhatikan,
antara lain :
·
Least privilege. Semua program dan user
dari system harus beroperasi pada level terendah yang diperlukan untuk
menyelesaikan tugasnya (tidak ada hak istimewa).
·
Economy of mechanisms. Mekanisme
keamanan harus sederhana, dan merupakan bagian yang tak terpisahkan dengan
rancangan system secara keseluruhan.
·
Acceptability. Sistem keamanan mudah
dipergunakan oleh user.
·
Complete mediation. Setiap akses harus
dicek ke dalam informasi control akses, termasuk pada saat kondisi tidak normal
seperti pada saat recovery atau pemeliharaan.
·
Open design. Mekanisme keamanan dari
system harus dapat disebarluaskan sehingga ada umpan-balik yang dapat
dimanfaatkan untuk perbaikan system keamanan.
Untuk sistem
jaringan komputer, dimana banyak sumber daya seperti prosesor, memori,
peralatan I/O, program, dan data yang dipakai bersama, maka diperlukan suatu
pengamanan tertentu untuk menjamin keamanannya. Menurut Pfleeger, C (“Security
in Computing”, Englewood Cliffs, NJ, Prentice Hall 1989), sistem operasi dalam
komputer biasanya dapat memberikan pengamanan dengan beberapa tingkatan, antara
lain :
·
No-protection,
mencukupi bila proses sensitif dijalankan pada saat yang terpisah / khusus.
·
Isolation,
mencukupi bila setiap proses dijalankan secara terpisah dengan proses lainnya.
·
Share
all or share nothing, user dapat memutuskan suatu informasi dapat menjadi milik
bersama atau menjadi milik pribadi tanpa ada pemilihan tingkatan jenis akses.
·
Share
via access limitation, pemakaian bersama suatu objek dalam grup terbatas, O/S
memeriksa hak akses dari user terhadap suatu objek, O/S bertindak sebagai
penjaga / pemisah antara user dan objek.
·
Share
via dynamic capabilities, akses kontrol terhadap suatu objek berubah secara
dinamis sesuai dengan kebutuhan.
·
Limit
use of an object, perlindungan terhadap suatu objek bukan saja terhadap
aksesnya, melainkan juga terhadap penggunaannya.
Ancaman paling
signifikan terhadap keamanan dari sistem komputer pada saat ini bukan berupa
ancaman terhadap keamanan fisik , tetapi juga ancaman terhadap keamanan non
fisik, yang dapat dibagi dalam 2 kategori, yaitu :
1.
Intrudes,
biasa dikenal dengan “Hacker / crackers “ Untuk menghindari ancaman kategori
ini, biasanya suatu sistem computer dilengkapi dengan fasilitas user password
sehingga sangat penting untuk melindungi file password dari kemungkinan
ancaman yang mungkin timbul dengan jalan :
·
One-way
encryption. Sistem hanya menyimpan password dalam bentuk yang telah dienkripsi.
·
Access
Control. Memberikan akses terhadap file password dengan sangat terbatas.
·
User
education. Memberikan penjelasan secara terus menerus kepada user dalam suatu
sistem komputer akan pentingnya menjaga kerahasiaan password. Kelemahan teknik
ini adalah sulitnya mengontrol disiplin user untuk menjaga kerahasiaan password,
apabila digunakan pada sistem komputer dengan populasi yang besar.
·
Computer
Generated Password. Sistem komputer memberikan password secara random kepada
user. Kelemahan teknik inisulit bagi user untuk mengingat password yang
diberikan oleh komputer sehingga mereka menuliskannya pada suatu tempat dan
mengakibatkan kemungkinan bocornya password.
·
Reactive
Password Checking. Sistem komputer secara periodic menjalankan program untuk
mencoba menerka password user, password-password yang berhasil ditemukan
dibatalkan dan diinformasikan kepada user untuk menggantinya dengan password
yang lain. Kelemahan teknik ini adalah banyaknya CPU time yang harus
dipergunakan, apabila hendak menjalankan program ini.
·
Proactive
Password Checking. User menentukan password yang diinginkan, kemudian sistem
komputer menentukan apakah password tersebut dapat diterima atau ditolak
berdasarkan database password yang dimilikinya dan memberikan panduan bagaimana
memilih password yang baik.
2. Malicious
Program.. Program yang dibuat untuk mengganggu, dan bahkan merusak suatu sistem
komputer. Jenis-jenis program ini dapat dikelompokkan menjadi 2, yaitu :
a.
Needs
Host Program Jenis yang memerlukan program dari host untuk dapat melakukan fungsinya.
Yang termasuk ke dalamnya, adalah :
·
Trapdoors.
Akses masuk rahasia ke dalam suatu program tanpa harus melalui prosedur yang
seharusnya. Biasanya dibuat pada saat melakukan uji coba suatu program.
·
Logic
Bombs. Perintah yang dituliskan dalam suatu program yang akan meledak apabila
suatu kondisi terpenuhi.
·
Trojan
Horses. Perintah rahasia yang dibuat secara tidak terlihat dalam suatu program
untuk melakukan suatu tindakan apabila program dijalankan.
·
Viruses.
Program / perintah yang diselipkan ke dalam suatu program lain yang akan
memperbanyak dirinya sendiri dan memasukkannya kembali ke dalam program
lainnya, biasanya akan timbul suatu tindakan yang tidak diinginkan/ merusak. Ada
5 jenis virus yang dikenal, yaitu :
Ø Parasitic virus.
Virus yang menetap pada file yang dapat dieksekusi, dan memperbanyak dirinya
setiap kali program dijalankan dan mencari tempat penularan yang lainnya. Memory-resident
virus. Menetap dalam main memory dan menulari setiap program yang dijalankan. Boot
sector virus. Menulari master boot record dan menyebar pada saat suatu sistem
komputer di boot dengan menggunakan disk yang mengandung virus tersebut.
Ø Stealth virus.
Jenis virus yang dibuat untuk dapat bersembunyi dari deteksi program antivirus.
Ø Polymorphic
virus. Jenis virus yang akan mengalami mutasi setiap kali menyebar untuk
menghindari pendeteksian dari program antivirus.
b.
Independent
Jenis yang dapat berdiri sendiri untuk menjalankan fungsinya. Yang termasuk
dalam kelompok ini, antara lain :
·
Bacteria.
Program yang dibuat untuk menggangu sistem dengan jalan memperbanyak diri
sehingga mengurangi bahkan dapat menghabiskan sumber daya sistem.
·
Worm.
Program yang dapat memperbanyak dirinya dan mengirimkan kopinya ke komputer
lain melalui jaringan.
BAB II
ENKRIPSI DAN
DEKRIPSI
1. Enkripsi
Enkripsi
digunakan untuk menyandikan data-data atau informasi sehingga tidak dapat
dibaca oleh orang yang tidak berhak. Dengan enkripsi data anda disandikan
(encrypted) dengan menggunakan sebuah kunci (key). Untuk membuka (decrypt) data
tersebut digunakan juga sebuah kunci yang dapat sama dengan kunci untuk
mengenkripsi (untuk kasus private key cryptography) atau dengan kunci yang
berbeda (untuk kasus public key cryptography). Gambar berikut menunjukkan
contoh proses enkripsi dan dekripsi dengan dua kunci yang berbeda.
Gambar
2.1 Diagram Enkripsi dan Deskripsi
Secara
matematis, proses atau fungsi enkripsi (E) dapat dituliskan sebagai:
E (M) = C
Dimana
: M adalah plaintext (message) dan C adalah ciphertext.
Proses
atau fungsi dekripsi (D) dapat dituliskan sebagai:
D (C) = M
2.
Elemen dari Enkripsi
Algoritma dari Enkripsi dan
Dekripsi. Algoritma dari enkripsi adalah fungsi-fungsi yang digunakan untuk
melakukan fungsi enkripsi dan dekripsi. Algoritma yang digunakan menentukan
kekuatan dari enkripsi, dan ini biasanya dibuktikan dengan basis matematika.
Kunci yang digunakan dan
panjangnya kunci. Kekuatan dari penyandian bergantung kepada kunci yang
digunakan. Beberapa algoritma enkripsi memiliki kelemahan pada kunci yang
digunakan. Untuk itu, kunci yang lemah tersebut tidak boleh digunakan. Selain
itu, panjangnya kunci, yang biasanya dalam ukuran bit, juga menentukan kekuatan
dari enkripsi. Kunci yang lebih panjang biasanya lebih aman dari kunci yang
pendek. Jadi enkripsi dengan menggunakan kunci 128-bit lebih sukar dipecahkan
dengan algoritma enkripsi yang sama tetapi dengan kunci 56-bit. Semakin panjang
sebuah kunci, semakin besar keyspace yang harus dijalani untuk mencari kunci
dengan cara brute force attack atau coba-coba karena keyspace yang harus
dilihat merupakan pangkat dari bilangan 2. Jadi kunci 128-bit memiliki keyspace
2128, sedangkan kunci 56-bit memiliki keyspace 256. Artinya semakin lama kunci
baru bisa ketahuan.
Plaintext. Plaintext adalah
pesan atau informasi yang dikirimkan.
Ciphertext.
Ciphertext adalah informasi yang sudah dienkripsi.
3.
Teknik Dasar Enkripsi
·
Substitusi
Salah
satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas.
Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat
dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang
sama untuk keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan
semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.
Gambar
2.2 Tabel Subsitusi
Tabel
substitusi diatas dibuat secara acak. Dengan menggunakan tabel tersebut maka :
plaintext
: "5 teknik dasar kriptografi"
dihasillkan
ciphertext
:"L 7Q6DP6 KBVBM 6MPX72AMBGP".
Dengan
menggunakan tabel substitusi yang sama secara dengan arah yang terbalik
(reverse), plaintext dapat diperoleh kembali dari ciphertext-nya.
·
Blocking
Sistem
enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari
beberapa karakter yang kemudian dienkripsikan secara independen. Plaintext yang
dienkripsikan dengan menggunakan teknik blocking adalah :
Gambar
2.3 Enkripsi dengan Blocking
Dengan menggunakan enkripsi blocking dipilih jumlah lajur dan
kolom untuk penulisan pesan. Jumlah lajur atau kolom menjadi kunci bagi
kriptografi dengan teknik ini. Plaintext dituliskan secara vertikal ke bawah
berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya
tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal
berurutan sesuai dengan blok-nya. Jadi ciphertext yang dihasilkan dengan teknik
ini adalah "5K G KRTDRAEAIFKSPINAT IRO ". Plaintext dapat pula
ditulis secara horizontal dan ciphertextnya adalah hasil pembacaan secara
vertikal.
·
Permutasi
Salah
satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut
transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan
tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik
substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang
diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya
yang diacak. Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu
dibagi menjadi blok-blok dengan panjang yang sama. Untuk contoh diatas,
plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan
aturan permutasi sebagai berikut :
Gambar
2.3 Permutasi
Dengan
menggunakan aturan diatas, maka proses enkripsi dengan permutasi dari plaintext
adalah sebagai berikut :
Gambar 2.5 Proses Enkripsi dengan Permutasi
Ciphertext
yang dihasilkan dengan teknik permutasi ini adalah :
"N
ETK5SKD AIIRK RAATGORPIF".
·
Ekspansi
Suatu
metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan
aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan
meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu
kata di akhir kata itu dan menambahkan akhiran "an". Bila suatu kata
dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran
"i". Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi
sebagai berikut :
Gambar 2.6 Enkripsi dengan Ekspansi
Ciphertextnya
adalah :
"5AN
EKNIKTAN ASARDAN RIPTOGRAFIKAN".
Aturan
ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan
dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah
untuk dipecahkan.
·
Pemampatan (Compaction)
Mengurangi
panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi
pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter
ke-tiga secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali
dan disusulkan sebagai "lampiran" dari pesan utama, dengan diawali
oleh suatu karakter khusus, dalam contoh ini digunakan "&".
Proses yang terjadi untuk plaintext kita adalah :
Gambar
2.7 Enkripsi dengan Pemampatan
Aturan
penghilangan karakter dan karakter khusus yang berfungsi sebagai pemisah
menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali.
Dengan
menggunakan kelima teknik dasar kriptografi diatas, dapat diciptakan kombinasi
teknik kriptografi yang amat banyak, dengan faktor yang membatasi semata-mata
hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat sederhana,
kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi
turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan
dalam teknik kriptografi modern.
4.
Hash function -
integrity checking
Salah
satu cara untuk menguji integritas sebuah data adalah dengan memberikan
“checksum” atau tanda bahwa data tersebut tidak berubah. Cara yang paling mudah
dilakukan adalah dengan menjumlahkan karakter-karakter atau data-data yang ada
sehingga apabila terjadi perubahan, hasil penjumlahan menjadi berbeda. Cara ini
tentunya mudah dipecahkan dengan menggunakan kombinasi data yang berbeda akan
tetapi menghasilkan hasil penjumlahan yang sama.
Pada
sistem digital biasanya ada beberapa mekanisme pengujian integritas seperti
antara lain:
·
parity checking
·
checksum
·
hash function
Hash
function merupakan fungsi yang bersifat satu arah dimana jika kita masukkan
data, maka dia akan menghasilkan sebuah “checksum” atau “fingerprint” dari data
tersebut. Ada beberapa hash function yang umum digunakan, antara lain: MD5,
SHA.
5.
Penyandi Monoalphabetic
Sebuah cipher merupakan suatu metode untuk mengenkrip sebuah
pesan, yaitu mengubah pesan ke dalam sesuatu yangtidak mudah dibaca. Pesan yang
asli disebut plaintext atau clear dan pesan hasil enkripsi disebut chyptogram
atau ciphertext. Substitution cipher adalah sebuah kondisi dimana masing-masing
huruf dari sebuah plaintext diganti oleh simbol yang lain. Biasanya yang
digunakan dalam penggantian simbol ini adalah huruf-huruf dari sederet
alphabet.
Sebuah alphabet adalah
serangkaian urutan simbol-simbol. Sebagai contoh, secara normal alphabet
Inggris terdiri dari simbol A sampai dengan Z dan hal ini digolongkan dalam
rangkaian urutan simbol. Substitsi sederhana adalah dimana dalam pesan, simbol
plaintext selalu diganti dengan simbol ciphertext yang sama. Dengan kata lain,
terjadi hubungan satu persatu di antara huruf-huruf dalam ciphertext maupun
plaintext. Meskipun ada 26 cara alphabet ciphertext yang mungkin, semua pihak
tahu bahwa cipher substitusi yang sederhana ini secara relative mudah dapat
memecah sandi dengan analisi frekuensi huruf dan menebak kata-kata yang sering
dipakai.
Sembilan
huruf yang paling sering dipakai dalam bahasa Inggris adalah E, T, N, A, O, R,
I, S dan H. Lima huruf yang kurang sering muncul adalah J, K, Q, X dan Z.
Secara umum, kita akan membutuhkan huruf dengan panjang yang dapat
dipertimbangkan untuk membuat penggunaan secara baik dari pengetahuan kita
mengenai frekuensi huruf yang muncul.
Sebagai
contoh, amati pesan rahasia berikut ini :
TK IL KQ JKT TK IL TBST CR TBL OULRTCKJ
Dalam
pesan ini, huruf yang paling muncul adalah huruf T. Jika kita mengasumsikan
bahwa T=E, maka kita tidak akan mendapat sesuatu yang bisa menolong. Perhatikan
contoh yang lain :
E- -- -- --E E- -- E—E – E-- ----E---
Satu
masalah dalam hal ini adalah pola E- dan pola E—E. karena ada dua huruf kata
bahasa Inggris yang mulai dengan huruf E, maka hipotesa kita bahwa T=E mungkin
salah. Jenis pengetahuan lain yang dapat kita gunakan untuk memecahkan
cryptogram ini adalah bahwa dua huruf yang paling sering muncul dalam bahasa
Inggris adalah :
OF IT IN IS TO BE BY HE AS ON AT OR AN SO IF NO
Karena
ada kata-kata dalam 2 huruf ini yang terdapat dalam sebuah pesan dan diawali
dan diakhiri dengan huruf K, barangkali hipotesa kita mungkin lebih baik
apabila kita mengasumsikan jika K=O. Jika kita mencoba substitusi ini, kita
akan mendapat hasil sebagai berikut :
-O – O- -O- -O -- ---- -- --- ------O-
Karena
kedua huruf yang paling sering muncul dalam alphabet Inggris adalah T,
barangkali hipotesa kita berguna untuk yang lain, yaitu menjadi T=T --. Dengan
kata lain, T ini bisa berdiri sendiri. Dari hipotesa ini, kita akan memeperoleh
hasil sebagai berikut :
TO – O- -OT TO – T—T -- T-- ----T-O-
Dari
hasil ini, kita bisa mulai melihat titik terang yang menjanjikan. Pada contoh
diatas, T—bisa kita asumsikan bahwa paling umum tiga huruf dalam kata yang terdapat
dalam alphabet Inggris yang sering dipakai yang diawali dengan T adalah THE.
Jika kita membuat tebakan bahwa B=H dan L=E, maka kita akan mendapatkan hasil
sebagai berikut :
TO -E O- -OT TO -E TH-T – THE –E-T-O-
Dari
hasil ini mulai kelihatan lebih baik. Pola TH-T dapat kita tebak adalah THAT.
Pola –OT kita tebak adalah NOT. Jika kita mengasumsikan lagi bahwa S=A dan J=N,
maka kita akan mendapatkan hasil sebagai berikut :
TO –E O- NOT TO –E THAT – THE –E-T-O-
Kata
terakhir dalam pesan berakhir dengan pola T-ON, yang bisa kita tebak adalah
TION. Dan, jika kita membuat tebakan C=I, maka kita akan mendapat hasil sebagai
berikut :
TO –E O- NOT TO –E THAT I- THE –E-TION
Dan
sekarang tampak hasilnya dan kita sekarang mempunyai kata-kata seperti HAMLET
pernah kemukakan, yaitu :
TO BE OR NOT TO BE THAT IS THE QUESTION
Melalui
contoh ini dapat ditunjukkan, walaupun ada 26 cara untuk menciptakan cryptogram
substitusi sederhana, kita biasanya dapat memecahkan pesan yang sangat pendek
dengan membuat keputusan dengan berdasarkan pengetahuan frekuensi huruf dan
kata, pola kata seperti THE dan THAT dan dengan membuat serangkaian tebakan
dalam bentuk ciphertext K yang diganti dengan O.
Ada
cara yang sederhana untuk membuat cryptogram substitusi sederhana menjadi lebih
sukar yaitu dengan melepaskan batas-batas kata. Sebagai contoh, perhatikan
kata-kata berikut ini :
TKILK QJKTT KIL TB STCRT BLOUL RTCKJ
Hal
ini akan menjadi lebih sukar untuk menggunakan pengetahuan kita tentang 2 dan 3
huruf untuk memecahkan masalah diatas. Dan, memang pesan yang dienkrip akan
lebih aman.
6.
Penyandi Polialphabetic
Salah satu dari masalah utama dengan simple substitution cipher
adalah kode-kode itu mudah dibajak untuk dianalsis frekuensi. Dengan ciphertext
yang besar maka akan mudah dipecah dengan pemetaan frekuensi dari
huruf-hurufnya seperti dalam text Inggris. Oleh karena itu, untuk membuat
cipher lebih aman, para cryptographer tertarik untuk mengembangkan teknik
menulis pesan yang aman untuk analisis frekuensi.
Salah satu pendekatan yang paling umum untuk menekan data
frekuensi normal adalah dengan menggunakan lebih dari satu alphabet untuk
mengenkrip pesan. Polyalphabetic substitution cipher melibatkan penggunaan 2
atau lebih cipher alphabet. Kendati ada hubungan timbal balik di antara
masing-masing huruf dan penggantinya, ada satu sampai banyak hubungan di antara
masing-masing huruf dan penggantinya.
Vigenere
cipher menggunakan tabel bersama dengan kata kunci untuk menulis sebuah pesan.
Sebagai contoh, anggaplah kita akan mengenkrip dari pesan dari plaintext.
TO BE OR NOT TO BE THAT IS THE QUESTION
Dengan menggunakan kata kunci RELATIONS. Kita mulai dengan menulis
kata kunci, mengulang beberapa kali jika perlu diatas pesan plaintext. Untuk
mengambil ciphertext dengan menggunakan tabel yang berlaku pada masing-masing
plaintext, di temukan hubungan antara baris tertentu pada pesan dengan kata
kunci.
Sebagai
contoh, perhatikan pesan berikut ini :
Kata
kunci : RELAT IONSR ELATI ONSRE LATIO NSREL
Plaintext
: TOBEO RNOTT OBETH ATIST HEQUE STION
Ciphertext
: KSMEH ZBBLK SMEMP OGAJX SEJCS FLZSY
Kekuatan
vigener cipher terhadap analisis frekuensi dapat dilihat dengan menguji
ciphertext di atas. Dengan catatan ada 7 buah huruf T dalam pesan plaintext dan
huruf-huruf ini telah dienkrip oleh H, L, K, M, G, X dan L.
Dari analisis di atas, pesan yang telah dienkrip dengan
menggunakan vigenere cipher adalah kumpulan banyak cipher yang digunakan untuk
mengganti huruf-huruf yang ada dalam kata kunci. Variasi vigenere cipher adalah
gronsfeld cipher. Grounsfeld cipher menggunakan digit dari angka-angka yang
terdapat pada kata kunci, bukan dari huruf-huruf yang terdapat pada kunci-kunci
7.
Model-Model Kriptografi
Dalam membahas model-model enkripsi beserta algoritmanya akan
digunakan dua hal penting yang akan dijelaskan, yaitu enkripsi dengan kunci
pribadi dan enkripsi dengan kunci public.
·
Symmetric Cryptosytem
Dalam
symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan
dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan
dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah
sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci yang
dibutuhkan umumnya adalah :
nC2 =
n . (n-1) -------- 2
dengan
n menyatakan banyaknya pengguna.
Karena
pembuat pesan dan penerimanya harus memiliki kunci yang sama persis, maka
siapapun yang memiliki kunci tersebut, termasuk pihak-pihak yang tidak
diinginkan, dapat membuat dan membongkar rahasia ciphertext . Problem yang
paling jelas disini terkadang bukanlah masalah pengiriman ciphertext-nya,
melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak
yang diinginkan.
Gambar 2.8.
Kriptografi Simetris
Ada
beberapa model enkripsi yang termasuk dalam golongan ini, diantaranya Simple
Cipher, DES, Triple DES, Blowfish, IDEA, Rivest Code 2 (RC2), Rivest Code 4
(RC4), Skipjack, Enigma cipher.
·
Asymmetric Cryptosytem
Metode yang digunakan menggunakan kunci yang perlu diketahui oleh
umum, atau kunci publik yang kita miliki dapat disebarkan ke orang lain. Jika
teknik kriptografi menggunakan kunci simetris dan menggunakan kunci yang sama
untuk melakukan proses enkripsi dan deskripsi, maka teknik kriptografi ini
menggunakan menggunakan kunci asimetris yang memerlukan sepasang kunci untuk
enkripsi dan deskripsi.
Pesan yang dienkripsi dengan menggunakan sebuah kunci hanya bisa
dibuka menggunakan kunci pasangannya. Pesan tersebut tidak bisa dibuka
menggunakan kunci yang sama. Kunci pertama disebut kunci publik dan
pasangannnya disebut kunci private. Jadi, sebuah pesan yang dienkripsi
menggunakan kunci publik hanya bisa dibuka dengan menggunakan kunci private, demikian
pula sebaliknya. Kunci publik dapat diketahui semua orang, sedangkan kunci
private hanya boleh diketahui oeleh satu orang saja, yaitu orang yang berhak
memilikinya.
Cara
enkripsi ini memiliki banyak kelebihan, salah satunya adalah setiap orang hanya
perlu memilik satu set kunci tanpa peduli berapa banya orang yang diajak
berkomunikasi. Setiap orang yang menggunakan enkripsi ini harus memiliki dua
buah kunci. Jika si A hendak mengirim pesan kepada si B, si A perlu
mengenkripsi pesan tersebut dengan kunci publik milik si B. Pesan yang telah di
enkripsi tersebut hanya dapat dibuka dan dibaca dengan menggunakan kunci
private si B, maka si B wajib menjaga kunci private-nya.
Gambar 2.9.
Kriptografi Asimetris
Kelebihannya
karena kunci private tidak perlu diketahui oleh pihak lain maka tidak akan
pernah dikirim lewat jalur umum, hal ini menjadi lebih aman dari sistem
simetris. Ada beberapa algoritma yang terkenal pada model enkripsi ini misalnya
sistem Diffie Hellman, RSA, dan PGP.
8.
Berbagai Model Enkripsi
·
Caesar Cipher
Salah satu contoh dari
“substitution cipher” adalah Caesar Cipher yang digunakan oleh Julius Caesar.
Pada prinsipnya, setiap huruf digantikan dengan huruf yang berada tiga (3)
posisi dalam urutan alfabet. Sebagai contoh huruf “a” digantikan dengan huruf
“D” dan seterusnya. Transformasi yang digunakan adalah:
plain
: a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher:
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
·
Enigma Cipher
Enigma
adalah suatu metode yang terkenal untuk kontribusinya bagi pihak Jerman pada
perang Dunia II. Sewaktu dikembangkan suatu model pengkodean dengan mesin
Enigma (Enigma Rotor machine). Mesin ini mempunyai 3 motor yang menggantikan
huruf dalam cipher dengan huruf dalm plaintext. Rotor ini akan berputar dan
menghasilkan hubungan antara furuf yang astu dengan huruf yang lain sehingga
menampilkan berbagai subtitusi seperti pergeseran Caesar.
1.
Data Encryption Standard
(DES)
§ standar bagi USA Government
§ didukung ANSI dan IETF
§ popular untuk metode secret key
§ terdiri dari : 40-bit, 56-bit dan 3x56-bit (Triple DES)
2.
Advanced Encryption Standard
(AES)
§ untuk menggantikan DES (launching akhir 2001)
§ menggunakan variable length block chipper
§ key length : 128-bit, 192-bit, 256-bit
§ dapat diterapkan untuk smart card.
3.
Digital Certificate Server
(DCS)
§ verifikasi untuk digital signature
§ autentikasi user
§ menggunakan public dan private key
§ contoh : Netscape Certificate Server
4.
IP Security (IPSec)
§ enkripsi public/private key
§ dirancang oleh CISCO System
§ menggunakan DES 40-bit dan authentication
§ built-in pada produk CISCO
§ solusi tepat untuk Virtual Private Network (VPN) dan Remote
Network Access
5.
Kerberos
§ solusi untuk user authentication
§ dapat menangani multiple platform/system
§ free charge (open source)
§ IBM menyediakan versi komersial : Global Sign On (GSO)
6.
Point to point Tunneling
Protocol(PPTP), Layer Two Tunneling Protocol (L2TP)
§ dirancang oleh Microsoft
§ autentication berdasarkan PPP(Point to point protocol)
§ enkripsi berdasarkan algoritm Microsoft (tidak terbuka)
§ terintegrasi dengan NOS Microsoft (NT, 2000, XP)
7.
Remote Access Dial-in User
Service (RADIUS)
§ multiple remote access device menggunakan 1 database untuk
§ didukung oleh 3com, CISCO, Ascend
§ tidak menggunakan encryption
8.
RSA (Rivest, Shamir,
Adleman) Encryption
§ dirancang oleh Rivest, Shamir, Adleman tahun 1977
§ standar de facto dalam enkripsi public/private key
§ didukung oleh Microsoft, apple, novell, sun, lotus
§ mendukung proses authentication
§ multi platform
9.
Secure Hash Algoritm (SHA)
§ dirancang oleh National Institute of Standard and Technology
(NIST) USA.
§ bagian dari standar DSS(Decision Support System) USA dan bekerja
sama dengan DES untuk digital signature.
§ SHA-1 menyediakan 160-bit
message digest
§ Versi : SHA-256, SHA-384, SHA-512 (terintegrasi dengan AES)
10. MD5
§ dirancang oleh Prof. Robert Rivest (RSA, MIT) tahun 1991
§ menghasilkan 128-bit digest.
§ cepat tapi kurang aman
11. Secure Shell (SSH)
§ digunakan untuk client side authentication antara 2 sistem
§ mendukung UNIX, windows, OS/2
§ melindungi telnet dan ftp (file transfer protocol)
12. Secure Socket Layer (SSL)
§ dirancang oleh Netscape
§ menyediakan enkripsi RSA pada layes session dari model OSI.
§ independen terhadap servise yang digunakan.
§ melindungi system secure web e-commerce
§ metode public/private key dan dapat melakukan authentication
§ terintegrasi dalam produk
browser dan web server Netscape.
13. Security Token
§ aplikasi penyimpanan password dan data user di smart card
14. Simple Key Management for Internet Protocol
§ seperti SSL bekerja pada level session model OSI.
§ menghasilkan key yang static, mudah bobol.
9.
Aplikasi Enkripsi
Beberapa
aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi
diantaranya adalah :
1.
Jasa telekomunikasi
§ Enkripsi untuk mengamankan informasi konfidensial baik berupa
suara, data, maupun gambar yang akan dikirimkan ke lawan bicaranya.
§ Enkripsi pada transfer data untuk keperluan manajemen jaringan dan
transfer on-line data billing.
§ Enkripsi untuk menjaga copyright dari informasi yang diberikan.
2.
Militer dan pemerintahan
§ Enkripsi diantaranya digunakan dalam pengiriman pesan.
§ Menyimpan data-data rahasia militer dan kenegaraan dalam media
penyimpanannya selalu dalam keaadan terenkripsi.
3.
Data Perbankan
§ Informasi transfer uang antar bank harus selalu dalam keadaan
terenkripsi
4.
Data konfidensial perusahaan
§ Rencana strategis, formula-formula produk, database
pelanggan/karyawan dan database operasional
§ pusat penyimpanan data perusahaan dapat diakses secara on-line.
§ Teknik enkripsi juga harus diterapkan untuk data konfidensial
untuk melindungi data dari pembacaan maupun perubahan secara tidak sah.
5.
Pengamanan electronic mail
§ Mengamankan pada saat ditransmisikan maupun dalam media
penyimpanan.
§ Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail,
diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy), keduanya
berbasis DES dan RSA.
6.
Kartu Plastik
§ Enkripsi pada SIM Card, kartu telepon umum, kartu langganan TV
kabel, kartu kontrol akses ruangan dan komputer, kartu kredit, kartu ATM, kartu
pemeriksaan medis, dll
§ Enkripsi teknologi penyimpanan data secara magnetic, optik, maupun
chip.
7.
Data Encryption Standard
(DES)
DES atau
DEA (Data Encryption Algoritm) merupakan algoritma kriptografi simetris yang
palinh umum digunakan saat ini. DES bermula dari Lucifer, enkripsi yang
dikembangkan di IBM kala itu. DES baru secara resmi digunakan pemerintah
Amerika Serikat tahun 1977. Ia di kenal sebagai Federal Information Program
Standard 46 (FIPS PUB46).
DES banyak
digunakan pada enkripsi password di system UNIX dan berbagai aplikasi
perbankan. DES beroperasi pada system biner artinya data yang dikirim akan
diubah ke system biner (berupa bilangan 0 dan 1), misalnya karakter a binernya
adalah 0110001 (dengan system ASCII). DES akan membagi data menjadi 64 bit dan
kunci berukuran 56 bit. Data 64 bit ini akan diprmutasi lalu dibagi dua
amsing-masing 32 bit (L dan R). Lalu, pad masing-masing data 32 bit ini alan
dilakukan operasi subtitusi dan penambahan kunci sampai dengan beberapa
langkah, biasanya smapai 16 langkah.
Setelah itu, kedua data ini
digabung menjadi 64 bit lagi dan dilakukan permutasi akhir yang merupan lawan
dari permutasi wal. Bisa dibayangkan betapa rumitnya algoritma ini. Untuk
memecahkan kode DES dengan mencoba segala kombinasi, dibutuhkan 256 kombinasi
atau sekitar 70 miliar kombinasi.
a. Memecahkan DES
DES merupakan block chiper
yang beroperasi dengan menggunakan blok berukuran 64-bit dan kunci berukuran
56-bit. Brute force attack dengan mencoba segala kombinasi membutuhkan 256
kombinasi atau sekitar 7x 1017 atau 70 juta milyar kombinasi. DES dengan
penggunaan yang biasa (cookbook mode) dengan panjang kunci 56 bit saat ini
sudah dapat dianggap tidak aman karena sudah berhasil dipecahkan dengan metoda
coba-coba (brute force attack).
Ada
berbagai group yang mencoba memecahkan DES dengan berbagai cara. Salah satu
group yang bernama distributed.net menggunakan teknologi Internet untuk
memecahkan problem ini menjadi sub-problem yang kecil (dalam ukuran blok).
Pengguna dapat menjalankan sebuah program yang khusus dikembangkan oleh tim ini
untuk mengambil beberapa blok, via Internet, kemudian memecahkannya di komputer
pribadinya.
Program
yang disediakan meliputi berbagai operating system seperti Windows, DOS,
berbagai variasi Unix, Macintosh. Blok yang sudah diproses dikembalikan ke
distributed.net via Internet. Dengan cara ini puluhan ribu orang, membantu
memecahkan DES. Mekanisme ini dapat memecahkan DES dalam waktu 30 hari. Sebuah
group lain yang disebut Electronic Frontier Foundation (EFF) membuat sebuah
komputer yang dilengkapi dengan Integrated Circuit chip DES cracker.
Dengan mesin seharga US$50.000
ini mereka dapat memecahkan DES 56-bit dalam waktu rata-rata empat (4) sampai
lima (5) hari. DES cracker yang mereka kembangkan dapat melakukan eksplorasi
keseluruhan dari 56-bit keyspace dalam waktu sembilan (9) hari. Dikarenakan
56-bit memiliki 216 (atau 65536) keyspace dibandingkan DES dengan 40-bit, maka
untuk memecahkan DES 40-bit hanya dibutuhkan waktu sekitar 12 detik1.
Dikarenakan hukum average, waktu rata-rata untuk memecahkan DES 40-bit adalah 6
detik.
Perlu
diingat bahwa group seperti EFF merupakan group kecil dengan budget yang
terbatas. Dapat dibayangkan sistem yang dimiliki oleh National Security Agency
(NSA) dari pemerintah Amerika Serikat. Tentunya mereka dapat memecahkan DES
dengan lebih cepat.
Aplikasi yang menggunakan
DES antara lain:
·
enkripsi dari password di
sistem UNIX
·
berbagai aplikasi di bidang
perbankan
b. Triple DES (3DES)
Triple DES
adalah variasi minor dari model enkripsi DES, cara ini dipakai untuk membuat
DES lebih kuat lagi, yaitu dengan melakukan enkripsi DES tiga kali dengan
menggunakan dua kunci yang berbeda.
Triple DES menjawab dari
kekurangan DES, karenamodelnya didasrkan pada algoritma DES, maka sangatlah
mudah untuk memodifikasi software yang menggunakan Triple DES. Panjang kunci
lebih panjang sehingga dapat mematahkan serangan yang tiba-tiba datang.
c. Rivest Code 2 (RC2) dan Rivest Code 4 (RC4)
RC4
merupakan salah satu algoritma kunci simetris yang berbentuk stream cipher.
Algoritma ini di temukan oleh Ronald Rivest pada tahun 1987 dan menjadi symbol
keamanan RSA. Kunci RC4 sering terbatas hanya 40 bit, tetapi terkadang juga
menggunakan 128 bit. Biasanya RC4 digunakan dalam paket software perdagangan
seperti LOTUS NOTES dan Oracle Secure SQL.
Algoritma
RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input
data pada suatu saat. Unit atau data pada umumnya adalah sebuah byte atau
kadang-kadang dalam bit (byte dalam hal RC4). Dengan cara ini enkripsi atau
deskripsi dapat dilaksanakn panjang yang variabel.
Algoritma ini tidak harus
menunggu sejumlah input data tertertentu sebelum diproses atau menambahkan byte
tambahan untuk mengenkripsi.
Contoh
stream cipher adalah RC4, Seal, A5, Oryx, dan lain-lain. Tipe lainnya adalah
block cipher yang memproses sekaligus sejumlah tertentu data (biasanya 64 bit
atau 128 bit blok), contohnya blowfish, DES, Gost, Idea, RC5, Safer, Square,
Twofish, RC6, Loki97, dan lain-lainnya. RC4 merupakan enkripsi stream simetrik
proprietary yang dibuat RSA Data Security, Inc (RSADSI). Penyebarannya diawali
dari sebuah source code yang siyakinkan sebagai RC4 dan dipublikasikan secara
anonim pada tahun 1994. Algoritma yang dipublikasikan ini sangat identik dengan
implementasi RC4 pada produk resmi. RC4 digunakan secara luas pada beberapa
aplikasi dan umumnya dinyatakan sangat aman.
d. Kerberos
Kerberos
adalah sebuah sistem autentikasi yang dikembangkan oleh Proyek Athena di MIT.
Ketika pemakai login, Kerberos mengautentikasi pemakai tersebut (menggunakan
password), dan memberikan pemakai suatu cara untuk membuktikan identitasnya ke
server dan host lain yang tersebar di jaringan.
Autentikasi ini kemudian
digunakan oleh program seperti rlogin untuk membolehkan pemakai login ke host
lain tanpa password (seperti file .rhosts). Autentikasi juga digunakan oleh
sistem surat dalam rangka menjamin bahwa surat dikirimkan kepada orang yang
tepat, dan juga menjamin bahwa pengirim adalah benar orang yang diklaimnya.
Efek
keseluruhan menginstalasi Kerberos dan berbagai program bersamanya adalah
secara virtual menghilangkan kemampuan pemakai untuk menipu (spoof) sistem agar
mempercayai bahwa mereka adalah orang lain. Sayangnya, instalasi Kerberos
sangat sulit, membutuhkan modifikasi atau mengganti berbagai program standar.
e. Blowfish
Blowfish merupakan metoda
enkripsi yang mirip dengan DES (DES-like cipher) dan diciptakan oleh Bruce
Schneier yang ditujukan untuk mikroposesor besar (32 bit ke atas dengan cache
data yang besar). Blowfish dikembangkan untuk memenuhi kriteria disain sebagai
berikut:
·
Cepat, pada implementasi
yang optimal Blowfish dapat mencapai kecepatan 26 clock cycle per byte.
·
Kompak, Blowfish dapat
berjalan pada memori kurang dari 5 KB.
·
Sederhana, Blowfish hanya
menggunakan operasi yang simpel: penambahan (addition), XOR, dan penelusuran
tabel (table lookup) pada operand 32 bit. Desainnya mudah untuk dianalisa yang
membuatnya resisten terhadap kesalahan implementasi.
·
Keamanan yang variabel,
panjang kunci Blowfish dapat bervariasi dan dapat mencapai 448 bit (56 byte).
Blowfish dioptimasikan untuk
aplikasi dimana kunci tidak sering berubah, seperti jalur komunikasi atau
enkripsi file otomatis. Blowfish jauh lebih cepat dari DES bila
diimplementasikan pada 32 bit mikroprosesor dengan cache data yang besar,
seperti Pentium dan Power PC, Blowfish tidak cocok untuk aplikasi seperti
packet switching, dengan perubahan kunci yang sering, atau sebagai fungsi hash
satu arah. Kebutuhan memorinya yang besar tidak memungkinkan untuk aplikasi
kartu pintar (smart card).
§ Deskripsi dari Blowfish
Blowfish merupakan blok
cipher 64-bit dengan panjang kunci variabel. Algoritma ini terdiri dari dua
bagian: key expansion dan enkripsi data. Key expansion merubah kunci yang dapat
mencapai 448 bit menjadi beberapa array subkunci (subkey) dengan total 4168
byte.
Enkripsi data terdiri dari
iterasi fungsi sederhana sebanyak 16 kali. Setiap putaran terdiri dari
permutasi kunci-dependent dan substitusi kunci- dan data-dependent. Semua
operasi adalah penambahan dan XOR pada variable 32-bit. Tambahan operasi
lainnya hanyalah empat penelusuran tabel (table lookup) array berindeks untuk
setiap putaran.
Blowfish menggunakan
subkunci yang besar. Kunci ini harus dihitung sebelum enkripsi atau dekripsi
data.
Array P terdiri dari delapan
belas 32-bit subkunci:
P1,P2, . . . ,P18
Empat 32-bit S-box
masing-masing mempunyai 256 entri:
S1,0, S1,1, . . . , S1,255
S2,0, S2,1, . . . , S2,255
S3,0, S3,1, . . . , S3,255
S4,0, S4,1, . . . , S4,255
Metoda selengkapnya untuk
menghitung subkunci ini akan dijelaskan pada bagian bawah.
Blowfish merupakan algoritma
yang menerapkan jaringan Feistel (Feistel network) yang terdiri dari 16
putaran. Input merupakan elemen 64 bit, X. Untuk mengenkrip:
Bagi X menjadi dua 32-bit: XL,
XR
untuk i = 1 sampai 16
XL = XL xor Pi
XR = F(XL) xor XR
Tukar XL dan XR
Tukar XL dan XR (batalkan
penukaran terakhir)
XR = XR xor P17
XL = XL xor P18
Kombinasikan kembali XL dan
XR
Fungsi F adalah sebagai
berikut:
Bagi XL, menjadi empat
bagian 8-bit: a, b, c dan d
F(XL) = ((S1,a +
S2,b mod 232) xor S3,c) + S4,c mod 232
Dekripsi sama persis dengan
enkripsi, kecuali P1, P2, . . . , P18 digunakan pada urutan yang terbalik.
Subkunci dihitung
menggunakan algoritma Blowfish, metodanya adalah sebagai berikut:
1. Pertama-tama inisialisasi P-array dan kemudian empat S-box
secara berurutan dengan string yang tetap. String ini terdiri digit hexadesimal
dari pi.
2. XOR P1 dengan 32 bit pertama kunci, XOR P2 dengan 32 bit kedua
dari kunci dan seterusnya untuk setiap bit dari kunci (sampai P18). Ulangi
terhadap bit kunci sampai seluruh P-array di XOR dengan bit kunci.
3. Enkrip semua string nol dengan algoritma Blowfish dengan
menggunakan subkunci seperti dijelaskan pada langkah (1) dan (2).
4. Ganti P1 dan P2 dengan keluaran dari langkah (3)
5. Enkrip keluaran dari langkah (3) dengan algoritma Blowfish
dengan subkunci yang sudah dimodifikasi.
6. Ganti P3 dan P4 dengan keluaran dari langkah (5).
7. Lanjutkan proses
tersebut, ganti seluruh elemen dari P-array, dan kemudian seluruh keempat S-box
berurutan, dengan keluaran yang berubah secara kontinyu dari algoritma
Blowfish.
Total diperlukan 521 iterasi
untuk menghasilkan semua subkunci yang dibutuhkan. Aplikasi kemudian dapat
menyimpan subkunci ini dan tidak dibutuhkan langkah-langkah proses penurunan
ini berulang kali, kecuali kunci yang digunakan berubah.
§ Keamanan dari Blowfish
Tidak ada kelemahan yang
berarti dari algoritma Blowfish yang dapat ditemukan sampai saat ini, kecuali
adanya weak key, dimana dua entri dari S-box mempunyai nilai yang sama. Tidak
ada cara untuk mencek weak key sebelum melakukan key expansion. Bila
dikuatirkan hal ini dapat mengurangi keamanannya maka dapat dibuat rutin untuk
mengecek entri S-box, walaupun hal ini tidak perlu. Sampai saat ini tidak ada
cryptanalysis yang berhasil tehadap Blowfish, untuk amannya jangan menggunakan
Blowfish dengan kurang dari 16 putaran (round).
§ Aplikasi
Untuk mengaplikasikan metoda
ini dapat dibuat dengan menggunakan Delphi yang dapat dilihat pada unit
Blowfish.pas dan tabel inisialisasi bf_init.inc. Untuk mengecek kebenaran
implementasi dari algortima ini perlu melengkapinya dengan prosedur self test
yang dapat dilihat hasilnya dengan menjalankan program BFTest.dpr. Saat ini
banyak sekali aplikasi security yang menggunakan Blowfish sebagai metoda
enkripsinya, untuk melihat aplikasi apa saja yang sudah menggunakan metoda ini
dapat dilihat websitenya di Counterpane.
8.
RSA (Rivest, Shamir, Adleman) Encryption
Dibidang kriptografi, RSA adalah sebuah algoritma pada enkripsi
public key. RSA merupakan algoritma pertama yang cocok untuk digital signature
seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang
kriptografi public key. RSA masih digunakan secara luas dalam protokol
electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci
yang cukup panjang.
§ Sejarah RSA
Algortima RSA dijabarkan pada tahun 1977
oleh Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of
Technology, huruf RSA itu sendiri juga berasal dari inisial nama mereka
(Rivest—Shamir—Adleman). Clifford Cocks, seorang matematikawan Inggris yang
bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal
di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997
dikarenan alasan top-secret classification. Algoritma tersebut dipatenkan oleh
Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat
sebagai U.S. Patent 4405829. Paten tersebut berlaku hingga 21 September 2000.
Semenjak Algoritma RSA dipublikasikan sebagai aplikasi paten, regulasi di
sebagian besar negara-negara lain tidak memungkinkan penggunaan paten. Hal ini
menyebabkan hasil temuan Clifford Cocks di kenal secara umum, paten di Amerika
Serikat tidak dapat mematenkannya.
§ Pembangkitan Kunci
Semisal Alice berkeinginan untuk
mengijinkan Bob untuk mengirimkan kepadanya sebuah pesan pribadi (private
message) melalui media transmisi yang tidak aman (insecure). Alice melakukan
langkah-langkah berikut untuk membuat sebuah public key dan private key:
1. Pilih dua bilangan prima p ≠ q secara acak dan terpisah untuk tiap-tiap
p dan q. Hitung N = p q. N hasil perkalian dari p dikalikan dengan q.
2. Hitung φ = (p-1)(q-1).
3. Pilih bilangan bulat (integer) antara satu dan φ (1 < e < φ)
yang juga merupakan coprime dari φ.
4. Hitung d hingga d e ≡ 1 (mod φ).
·
bilangan prima dapat diuji
probabilitasnya menggunakan Fermat's little theorem- a^(n-1) mod n = 1 jika n
adalah bilangan prima, diuji dengan beberapa nilai a menghasilkan kemungkinan
yang tinggi bahwa n ialah bilangan prima. Carmichael numbers (angka-angka
Carmichael) dapat melalui pengujian dari seluruh a, tetapi hal ini sangatlah
langka.
·
langkah 3 dan 4 dapat
dihasilkan dengan algoritma extended Euclidean; lihat juga aritmetika modular.
·
langkah 4 dapat dihasilkan
dengan menemukan integer x sehingga d = (x(p-1)(q-1) + 1)/e menghasilkan
bilangan bulat, kemudian menggunakan nilai dari d (mod (p-1)(q-1));
·
langkah 2 PKCS#1 v2.1
menggunakan &lamda; = lcm(p-1, q-1) selain daripada φ = (p-1)(q-1)).
Pada
public key terdiri atas:
·
N, modulus yang digunakan.
·
e, eksponen publik (sering
juga disebut eksponen enkripsi).
Pada
private key terdiri atas:
·
N, modulus yang digunakan,
digunakan pula pada public key.
·
d, eksponen pribadi (sering
juga disebut eksponen dekripsi), yang harus dijaga kerahasiaannya.
Biasanya, berbeda dari
bentuk private key (termasuk parameter CRT):
·
p dan q, bilangan prima dari
pembangkitan kunci.
·
d mod (p-1) dan d mod (q-1)
(dikenal sebagai dmp1 dan dmq1).
·
(1/q) mod p (dikenal sebagai
iqmp).
Bentuk ini membuat proses
dekripsi lebih cepat dan signing menggunakan Chinese Remainder Theorem (CRT).
Dalam bentuk ini, seluruh bagian dari private key harus dijaga kerahasiaannya.
Alice mengirimkan public key
kepada Bob, dan tetap merahasiakan private key yang digunakan. p dan q sangat
sensitif dikarenakan merupakan faktorial dari N, dan membuat perhitungan dari d
menghasilkan e. Jika p dan q tidak disimpan dalam bentuk CRT dari private key,
maka p dan q telah terhapus bersama nilai-nilai lain dari proses pembangkitan
kunci.
§ Proses Enkripsi Pesan
Misalkan Bob ingin mengirim pesan m ke Alice. Bob mengubah m
menjadi angka n < N, menggunakan protokol yang sebelumnya telah disepakati
dan dikenal sebagai padding scheme. Maka
Bob memiliki n dan mengetahui N dan e, yang telah diumumkan oleh Alice. Bob
kemudian menghitung ciphertext c yang terkait pada n: Perhitungan tersebut dapat diselesaikan dengan
cepat menggunakan metode exponentiation by squaring. Bob kemudian mengirimkan c
kepada Alice.
§ Proses Deskripsi Pesan
Alice menerima c dari Bob,
dan mengetahui private key yang digunakan oleh Alice sendiri. Alice kemudian
memulihkan n dari c dengan langkah-langkah berikut:
n ≡ cd mod N
Perhitungan diatas akan
menghasilkan n, dengan begitu Alice dapat mengembalikan pesan semula m. Prosedur
dekripsi bekerja karena
cd ≡ (ne)d ≡ ned (mod N)
Kemudian, dikarenakan ed ≡ 1
(mod p-1) dan ed ≡ 1 (mod q-1), hasil dari Fermat's little theorem.
ned ≡ n (mod p)
dan
ned ≡ n (mod q)
Dikarenakan p dan q
merupakan bilangan prima yang berbeda, mengaplikasikan Chinese remainder
theorem akan menghasilkan dua macam kongruen
ned ≡ n (mod pq)
serta
cd ≡ n (mod N)
§ Contoh Proses
Berikut
ini merupakan contoh dari enkripsi RSA dan dekripsinya. Parameter yang
digunakan disini berupa bilangan kecil.
Kita membuat p = 61
|
: bilangan prima pertama (harus dijaga kerahasiannya atau
dihapus secara hati-hati)
|
q = 53
|
: bilangan prima kedua (harus dijaga kerahasiannya atau dihapus
secara hati-hati)
|
N = pq = 3233
|
: modulus (diberikan kepada publik)
|
e = 17
|
: eksponen publik (diberikan kepada publik)
|
d = 2753
|
: eksponen pribadi (dijaga kerahasiannya)
|
Untuk
melakukan enkripsi plaintext bernilai "123", perhitungan yang
dilakukan
encrypt(123)
= 12317 mod 3233 = 855
Untuk
melakukan dekripsi ciphertext bernilai "855" perhitungan yang
dilakukan
decrypt(855)
= 8552753 mod 3233 = 123
Kedua
perhitungan diatas diselesaikan secara effisien menggunakan square-and-multiply
algorithm pada modular exponentiation.
§ Padding Schemes
Padding
Scheme harus dibangun secara hati-hati sehingga tidak ada nilai dari m yang
menyebabkan masalah keamanan. Sebagai contoh, jika kita ambil contoh sederhana
dari penampilan ASCII dari m dan menggabungkan bit-bit secara bersama-sama akan
menghasilkan n, kemudian pessan yang berisi ASCII tunggal karakter NUL (nilai
numeris 0) akan menghasilkan n= 0, yang akan menghasilkan ciphertext 0 apapun
itu nilai dari e dan N yang digunakan. Sama halnya dengan karakter ASCII
tunggal SOH (nilai numeris 1) akan selalu menghasilkan chiphertext 1. Pada
kenyataannya, untuk sistem yang menggunakan nilai e yang kecil, seperti 3,
seluruh karakter tunggal ASCII pada pesan akan disandikan menggunakan skema
yang tidak aman, dikarenakan nilai terbesar n adalah nilai 255, dan 2553 menghasilkan
nilai yang lebih kecil dari modulus yang sewajarnya, maka proses dekripsi akan
menjadi masalah sederhana untuk mengambil pola dasar dari ciphertext tanpa
perlu menggunakan modulus N. Sebagai konsekuensinya, standar seperti PKCS
didesain dengan sangat hati-hati sehingga membuat pesan asal-asalan dapat
terenkripsi secara aman. Dan juga berdasar pada bagian Kecepatan, akan
dijelaskan kenapa m hampir bukanlah pesan itu sendiri tetapi lebih pada message
key yang dipilh secara acak.
§ Pengesahan Pesan
RSA
dapat juga digunakan untuk mengesahkan sebuah pesan. Misalkan Alice ingin
mengirim pesan kepada Bob. Alice membuat sebuah hash value dari pesan tersebut,
di pangkatkan dengan bilangan d dibagi N (seperti halnya pada deskripsi pesan),
dan melampirkannya sebagai "tanda tangan" pada pesan tersebut. Saat
Bob menerima pesan yang telah "ditandatangani", Bob memangkatkan
"tanda tangan" tersebut dengan bilangan e dibagi N (seperti halnya
pada enkripsi pesan), dan membandingkannya dengan nilai hasil dari hash value
dengan hash value pada pesan tersebut. Jika kedua cocok, maka Bob dapat
mengetahui bahwa pemilik dari pesan tersebut adalah Alice, dan pesan pun tidak
pernah diubah sepanjang pengiriman.
Harap
dicatat bahwa padding scheme merupakan hal yang esensial untuk mengamankan pengesahan
pesan seperti halnya pada enkripsi pesan, oleh karena itu kunci yang sama tidak
digunakan pada proses enkripsi dan pengesahan.
§ Keamanan
Penyerangan
yang paling umum pada RSA ialah pada penanganan masalah faktorisasi pada
bilangan yang sangat besar. Apabila terdapat faktorisasi metode yang baru dan
cepat telah dikembangkan, maka ada kemungkinan untuk membongkar RSA.
Pada
tahun 2005, bilangan faktorisasi terbesar yang digunakan secara umum ialah
sepanjang 663 bit, menggunakan metode distribusi mutakhir. Kunci RSA pada
umumnya sepanjang 1024—2048 bit. Beberapa pakar meyakini bahwa kunci 1024-bit
ada kemungkinan dipecahkan pada waktu dekat (hal ini masih dalam perdebatan),
tetapi tidak ada seorangpun yang berpendapat kunci 2048-bit akan pecah pada masa
depan yang terprediksi.
Semisal
Eve, seorang eavesdropper (pencuri dengar—penguping), mendapatkan public key N
dan e, dan ciphertext c. Bagimanapun juga, Eve tidak mampu untuk secara
langsung memperoleh d yang dijaga kerahasiannya oleh Alice. Masalah untuk
menemukan n seperti pada ne=c mod N di kenal sebagai permasalahan RSA.
Cara
paling efektif yang ditempuh oleh Eve untuk memperoleh n dari c ialah dengan
melakukan faktorisasi N kedalam p dan q, dengan tujuan untuk menghitung
(p-1)(q-1) yang dapat menghasilkan d dari e. Tidak ada metode waktu polinomial
untuk melakukan faktorisasi pada bilangan bulat berukuran besar di komputer
saat ini, tapi hal tersebut pun masih belum terbukti.
Masih
belum ada bukti pula bahwa melakukan faktorisasi N adalah satu-satunya cara
untuk memperoleh n dari c, tetapi tidak ditemukan adanya metode yang lebih
mudah (setidaknya dari sepengatahuan publik).
Bagaimanapun
juga, secara umum dianggap bahwa Eve telah kalah jika N berukuran sangat besar.
Jika
N sepanjang 256-bit atau lebih pendek, N akan dapat difaktorisasi dalam
beberapa jam pada Personal Computer, dengan menggunakan perangkat lunak yang
tersedia secara bebas. Jika N sepanjang 512-bit atau lebih pendek, N akan dapat
difaktorisasi dalam hitungan ratusan jam seperti pada tahun 1999. Secara teori,
perangkat keras bernama TWIRL dan penjelasan dari Shamir dan Tromer pada tahun
2003 mengundang berbagai pertanyaan akan keamanan dari kunci 1024-bit. Santa
disarankan bahwa N setidaknya sepanjang 2048-bit.
Pada
thaun 1993, Peter Shor menerbitkan Algoritma Shor, menunjukkan bahwa sebuah
komputer quantum secara prinsip dapat melakukan faktorisasi dalam waktu
polinomial, mengurai RSA dan algoritma lainnya. Bagaimanapun juga, masih
terdapat pedebatan dalam pembangunan komputer quantum secara prinsip.
§ Pembangkit Kunci
Menemukan
bilangan prima besar p dan q pada biasanya didapat dengan mencoba serangkaian
bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima
yang dapat dengan cepat menghapus hampir semua bilangan bukan prima.
p
dan q seharusnya tidak "saling-berdekatan", agar faktorisasi fermat
pada N berhasil. Selain itu pula, jika p-1 atau q-1 memeiliki faktorisasi
bilangan prima yang kecil, N dapat difaktorkan secara mudah dan nilai-nilai
dari p atau q dapat diacuhkan.
Seseorang
seharusnya tidak melakukan metoda pencarian bilangan prima yang hanya akan
memberikan informasi penting tentang bilangan prima tersebut kepada penyerang.
Biasanya, pembangkit bilangan acak yang baik akan memulai nilai bilangan yang
digunakan. Harap diingat, bahwa kebutuhan disini ialah "acak" dan
"tidak-terduga". Berikut ini mungkin tidak memenuhi kriteria, sebuah
bilangan mungkin dapat dipilah dari proses acak (misal, tidak dari pola
apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip
dengan bilangan yang mudah ditebak), maka metode tersebut akan kehilangan
kemampuan keamanannya. Misalnya, tabel bilangan acak yang diterbitkan oleh Rand
Corp pada tahun 1950-an mungkin memang benar-benar teracak, tetapi dikarenakan
diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam
mendapatkan bilangan tersebut. Jika penyerang dapat menebak separuh dari digit
p atau q, para penyerang dapat dengan cepat menghitung separuh yang lainnya
(ditunjukkan oleh Donald Coppersmith pada tahun 1997).
Sangatlah
penting bahwa kunci rahasia d bernilai cukup besar, Wiener menunjukkan pada
tahun 1990 bahwa jika p diantara q dan 2q (yang sangat mirip) dan d lebih kecil
daripada N1/4/3, maka d akan dapat dihitung secara effisien dari N dan e. Kunci
enkripsi e = 2 sebaiknya tidak digunakan.
§ Kecepatan
RSA
memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma
simetrik lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan
algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan
kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang
dienkripasi secara simetrik kepada Alice.
Prosedur
ini menambah permasalahan akan keamanan. Singkatnya, Sangatlah penting untuk
menggunakan pembangkit bilangan acak yang kuat untuk kunci simetrik yang
digunakan, karena Eve dapat melakukan bypass terhadap RSA dengan menebak kunci
simterik yang digunakan.
§ Distribusi Kunci
Sebagaimana
halnya chiper, bagaimana public key RSA didistribusi menjadi hal penting dalam
keamanan. Distribusi kunci harus aman dari man-in-the-middle attack
(penghadang-ditengah-jalan). Anggap Eve dengan suatu cara mampu memberikan kunci
arbitari kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice.
Anggap Eve dapan "menghadang" sepenuhnya transmisi antara Alice dan
Bob. Eve mengirim Bob public key milik Eve, dimana Bob percaya bahwa public key
tersebut milik Alice. Eve dapat menghadap seluruh ciphertext yang dikirim oleh
Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan
salinan dari pesan tersebut, melakukan enkripsi menggunakan public key milik
Alice, dan mengirimkan ciphertext yang baru kepada Alice. Secara
prinsip,
baik Alice atau Bob tidak menyadari kehadiran Eve diantara transmisi mereka.
Pengamanan terhadap serangan semacam ini yaitu menggunakan sertifikat
digitalatau kompnen lain dari infrastuktur public key.
§ Penyerangan waktu
Kocher
menjelaskan sebuah serangan baru yang cerdas pada RSA di tahun 1995: jika
penyerang, Eve, mengetahui perangkat keras yang dimiliki oleh Alice secara
terperinci dan mampu untuk mengukur waktu yang dibutuhkan untuk melakukan dekripsi
untuk beberapa ciphertext, Eve dapat menyimpulkan kunci dekripsi d secara
cepat. Penyerangan ini dapat juga diaplikasikan pada skema "tanda
tangan" RSA. SAlah satu cara untuk mencegah penyerangan ini yaitu dengan
memastikan bahwa operasi dekripsi menggunakan waktu yang konstan untuk setiap
ciphertext yang diproses. Cara yang lainnya, yaitu dengan menggunakan properti
multipikatif dari RSA. Sebagai ganti dari menghitung cd mod N, Alice
pertama-tama memilih nilai bilangan acak r dan menghitung (rec)d mod N. Hasil
dari penghitungan tersebut ialah rm mod N kemudian efek dari r dapat
dihilangkan dengan perkalian dengan inversenya. Nilai baru dari r dipilih pada
tiap ciphertext. Dengan teknik ini, dikenal sebagai message blinding (pembutaan
pesan), waktu yang diperlukan untuk proses dekripsi tidak lagi berhubungan
dengan nilai dari ciphertext sehingga penyerangan waktu akan gagal.
§ Penyerangan ciphertext adaptive
Pada
tahun 1998, Daniel Bleichenbacher menjelaskan penggunaan penyerangan ciphertext
adaptive, terhadap pesan yang terenkripsi menggunakan RSA dan menggunakan PKCS
#1 v1 padding scheme. Dikarenakan kecacatan pada skema PKCS #1, Bleichenbacher
mampu untuk melakukan serangkaian serangan terhadap implementasi RSA pada
protokol Secure Socket Layer, dan secara potensial mengungkap kunci-kunci yang
digunakan. Sebagai hasilnya, para pengguna kriptografi menganjurkan untuk
menggunakan padding scheme yang relatif terbukti aman seperti Optimal
Asymmetric Encryption Padding, dan Laboratorium RSA telah merilis versi terbaru
dari PKCS #1 yang tidak lemah terdapat serangan ini.
Pretty
Good Privacy (PGP)
PGP
merupakan produk kriptografi yang kuat dan memungkinkan orang secara aman
bertukar informasi dan file di jaringan publik. PGP menggunakan IDEA sebagai
algoritma enkripsi private key dan RSA unruk enkripsi publik key-nya.
PGP
mengkombinasikan 3 mekanisme sistem keamanan, yaitu enkripsi, tanda tangan
digital (Digital Signature), dan hash. Beberapa alasan mengapa PGP cepat
berkembang adalah :
·
PGP tersedia dalam beberapa
flatform seperti DOS, Windows, UNIX, Machintos.
·
PGP menggunakan algoritma
enkripsi yang sudah terbukti keamanannya
BAB III
PENGAMANAN SISTEM OPERASI
Saat ini sistem
komputer yang terpasang makin mudah diakses, sistem timesharing dana akses
jarak jauh menyebabkan kelemahan komuniksai data menjadi pokok masalah keamanan.
Terlebih dengan meningkatnya perkembangan jaringan komputer. Kecenderungan lain
saat ini adalah memberi tanggungjawab pengelolaan aktivitas pribadi dan bisnis
ke komputer, seperti :
·
Sistem transfer dana elektronis
(electronic fund transfer system) melewatkan uang sebagai aliran bit.
·
Sistem kendali lalu-lintas udara (air
trafic control system) melakukan banyak kerja yang sebelumnya ditangani
pengendali manusia.
·
Unit rawat intensif di rumah sakit sudah
sangat terkomputerisasi.
·
Dan sebagainya.
Implementasi
pengamanan sangat penting untuk menjamin sistem tidak diinterupsi dan diganggu.
Proteksi dan pengamanan terhadap perangkat keras dan system operasi sama
pentingnya. Sistem operasi hanya satu bagian kecil dari seluruh perangkat lunak
di suatu sistem.
Tetapi karena
sistem operasi mengendalikan pengaksesan ke sumber daya, dimana perangkat lunak
lain meminta pengaksesan sumber daya lewat sistem operasi maka sistem operasi
menempati posisi yang penting dalam pengamanan sistem.
Pengamanan
perangkat lunak cenderung memfokuskan pada pengamanan system operasi, karena
perangkat lunak aplikasi juga memberi resiko keamanan.Keamanan sistem operasi
merupakan bagian masalah keamanan sistem computer secara total. Pengamanan sistem
operasi berarti kecil jika setiap orang dapat melenggang di ruang sistem
komputer. Pengamanan secara fisik dengan membatasi pengaksesan fisik secara
langsung dengan fasilitas sistem computer harus dilakukan juga.
1. KEAMANAN
Keamanan sistem
komputer adalah untuk menjamin sumber daya tidak digunakan atau dimodifikasi
orang tak terotorisasi. Pengamanan termasuk masalah teknis, manajerial,
legalitas dan politis. Keamanan sistem terbagi menjadi tiga, yaitu :
a. Keamanan
eksternal (external security).
Berkaitan dengan pengamanan fasilitas komputer dari
penyusup (hacker) dan bencana seperti kebakaran dan kebanjiran.
b. Keamanan
interface pemakai (user interface security). Berkaitan dengan identifikasi
pemakai sebelum pemakai diijinkan mengakses program dan data yang disimpan.
c. Keamanan
internal (internal security).
Berkaitan dengan
pengamanan beragam kendali yang dibangun pada perangkat keras dan sistem
operasi yang menjamin operasi yang handal dan tak terkorupsi untuk menjaga
integritas program dan data. Istilah keamanan (security) dan proteksi (protection)
sering digunakan secara bergantian. Untuk menghindari kesalahpahaman, istilah
keamanan mengacu ke seluruh masalah keamanan dan istilah mekanisme proteksi mengacu
ke mekanisme sistem yang digunakan untuk memproteksi/melindungi informasi pada
sistem komputer.
2. Masalah-masalah
keamanan
Terdapat dua
masalah penting, yaitu :
a. Kehilangan data (data loss).
Dapat disebabkan karena :
·
Bencana.
·
Kebakaran.
·
Banjir.
·
Gempa bumi.
·
Perang.
·
Kerusuhan.
·
Binatang.
b. Kesalahan
perangkat keras dan perangkat lunak.
·
Ketidak berfungsian pemroses.
·
Disk atau tape yang tidak terbaca.
·
Kesalahan telekomunikasi.
·
Kesalahan program (bugs).
c. Kesalahan/kelalaian
manusia.
·
Kesalahan pemasukan data.
·
Memasang tape atau disk yang salah.
·
Eksekusi program yang salah.
·
Kehilangan disk atau tape.
Kehilangan data
dapat diatasi dengan mengelola beberapa backup dan
backup
ditempatkan jauh dari data yang online.
d. Penyusup
(hacker).
Terdiri dari :
·
Penyusup pasif, yaitu yang membaca data
yang tak diotorisasi.
·
Penyusup aktif, yaitu yang mengubah data
yang tak diotorisasi. Kateogri penyusupan :
-
Lirikan mata pemakai non teknis. Pada
sistem time-sharing, kerja pemakai dapat diamati orang sekelilingnya. Bila
dengan lirikan itu dapat mengetahui apa yang diketik saat pengisian password,
maka pemakai non teknis dapat mengakses fasilitas yang bukan haknya.
-
Penyadapan oleh orang dalam.
-
Usaha hacker dalam mencari uang.
-
Spionase militer atau bisnis.
3.
Ancaman-ancaman keamanan
Sasaran
pengamanan adalah menghindari, mencegah dan mengatasi ancaman terhadap sistem.
Kebutuhan keamanan sistem computer dikategorikan tiga aspek, yaitu :
1. Kerahasiaan
(secrecy).
Adalah keterjaminan bahwa informasi
disistem komputer hanya dapat diakses oleh pihak-pihak yang diotorisasi dan
modifikasi tetap menjaga konsistensi dan keutuhan data di sistem.
2. Integritas
(integrity).
Adalah keterjaminan bahwa sumber daya
sistem komputer hanya dapat dimodifikasi oleh pihak-pihak yang diotorisasi.
3. Ketersediaan
(availability).
Adalah keterjaminan bahwa susmber daya
sistem komputer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan. Tipe-tipe
ancaman terhadap keamanan sistem dapat dimodelkan dengan memandang fungsi
sistem komputer sebagai penyedia informasi.
Berdasarkan
fungsi ini, ancaman terhadap sistem komputer dapat dikategorikan menjadi empat
ancaman, yaitu :
1. Interupsi
(interuption).
Sumber daya
sistem komputer dihancurkan atau menjadi tak tersedia atau
tak berguna.
Interupsi merupakan ancaman terhadap ketersediaan.
Contoh :
penghancuran bagian perangkat keras, seperti harddisk,
pemotongan kabel
komunikasi.
2. Intersepsi
(interception).
Pihak tak
diotorisasi dapat mengakses sumber daya. Interupsi merupakan
ancaman terhadap
kerahasiaan. Pihak tak diotorisasi dapat berupa orang atau
program
komputer.
Contoh :
penyadapan untuk mengambil data rahasia, mengetahui file tanpa
diotorisasi.
3. Modifikasi
(modification).
Pihak tak
diotorisasi tidak hanya mengakses tapi juga merusak sumber daya.
Modifikasi
merupakan ancaman terhadap integritas.
Contoh :
mengubah nilai-nilai file data, mengubah program sehingga
bertindak secara
berbeda, memodifikasi pesan-pesan yang ditransmisikan
pada jaringan.
4. Fabrikasi
(fabrication).
Pihak tak
diotorisasi menyisipkan/memasukkan objek-objek palsu ke sistem.
Fabrikasi
merupakan ancaman terhadap integritas.
Contoh :
memasukkan pesan-pesan palsu ke jaringan, penambahan record ke
file.
4. Petunjuk
pengamanan sistem
Terdapat
beberapa prinsip pengamanan sistem komputer, yaitu :
1. Rancangan
sistem seharusnya publik.
Keamanan sistem
seharusnya tidak bergantung pada kerahasiaan rancangan
mekanisme
pengamanan. Mengasumsikan penyusup tidak akan mengetahui
cara kerja
sistem pengamanan hanya menipu/memperdaya perancang
sehingga tidak
membuat mekanisme proteksi yang bagus.
2. Dapat
diterima.
Skema yang
dipilih harus dapat diterima secara psikologis. Mekanisme
proteksi
seharusnya tidak menganggu kerja pemakai dan memenuhi
kebutuhan
otorisasi pengaksesan. Jika mekanisme tidak mudah digunakan
maka tidak akan
digunakan atau digunakan secara tak benar.
3. Pemeriksaan
otoritas saat itu.
Sistem tidak
seharusnya memeriksa ijin dan menyatakan pengaksesan
diijinkan, serta
kemudian menetapkan terus informasi ini untuk penggunaan
selanjutnya.
Banyak sistem memeriksa ijin ketika file dibuka dan setelah itu
(operasi-operasi
lain) tidak diperiksa. Pemakai yang membuka file dan lupa
menutup file
akan terus dapat walaupun pemilik file telah mengubah atribut
proteksi file.
4. Kewenangan
serendah mungkin.
Program atau
pemakai sistem seharusnya beroperasi dengan kumpulan
wewenang
serendah mungkin yang diperlukan untuk menyelesaikan
tugasnya.
Default sistem yang digunakan harus tak ada akses sama sekali.
5. Mekanisme
yang ekonomis.
Mekanisme
proteksi seharusnya sekecil, sesederhana mungkin dan seragam
sehingga
memudahkan verifikasi. Proteksi seharusnya dibangun dilapisan
terbawah.
Proteksi merupakan bagian integral rancangan sistem, bukan
mekanisme yang
ditambahkan pada rancangan yang telah ada.
Komponen
Arsitektur Keamanan NT :
1.
Adminisrasi
User dan Group
·
Jenis Account User :
§ Administrator
§ Guest
§ User
·
Jenis Account Gorup :
§ Administrator
§ Guest
§ User
§ Operator back-up
§ Power user
§ Operator server
§ Operator account
§ Operator printer
·
Hak User / Grup :
Hak basic : acces computer from network, back-up files/directory,
change system time, logon locally, manage auditing and security, log (event
viewer), restore files
and directory, shutdown system, take ownership files or other object, dll.
·
Hak advance : access service and kernel
untuk kebutuhan pengembangan system.
2. Keamanan untuk system File
a.
NTFS :
·
Cepat dalam operasi standar file (read –
write – search)
·
Terdapat system file recovery, access
control dan permission.
·
Memandang obyek sebagai kumpulan atribut,
termasuk permission access.
b. Proteksi
untuk integritas data
·
Transaction logging : merupakan system
file yang dapat di-recovery untuk dapat mencatat semua perubahan terakhir pada
directory dan file secara otomatis. Jika transaksi system berhasil NT akan
melakukan pembaharuan pada file. Jika transaksi gagal, NT akan melalui :
-
Tahap analisis : mengukur kerusakan dan
menentukan lokasi cluster yang harus diperbarui per informasi dalam file log.
-
Tahap redo : melakukan semua tahapan
transaksi yang dicatat pada titik periksa terakhir
-
Tahap undo : mengembalikan ke kondisi
semula untuk semua transaksi yang belum selesai dikerjakan.
·
Sector sparing : Teknik dynamic data
recovery yang hanya terdapat pada disk SCSI dengan cara memanfaatkan teknologi
fault-tolerant volume untuk membuat duplikat data dari sector yang mengalami
error. Metodenya adalah dengan merekalkulasi dari stripe set with parity atau
dengan membaca sector dari mirror drive dan menulis data tersebut ke sektor
baru.
·
Cluster remapping : Jika ada kegagalan
dalam transaksi I/O pada disk , secara otomatis akan mencari cluster baru yang
tidak rusak, lalu menandai alamat cluster yang mengandung bad sector tersebut.
c. Fault
tolerance
·
Kemampuan untuk menyediakan redudansi
data secara realtime yang akan memberikan tindakan penyelamatan bila terjadi
kegagalan perangkat keras, korupsi perangkat lunak dan kemungkinan masalah
lainnya.
·
Teknologinya disebut RAID (Redudant
Arrays of inexpensive Disk) : sebuah array disk dimana dalam sebuah media
penyimpanan terdapat informasi redudan tentang data yang disimpan di sisa media
tersebut.
·
Kelebihan RAID :
-
Meningkatkan kinerja I/O
-
media penyimpanan