au semuanya tidak menjamin bahwa pendekatan otentikasi 

akan aman. Untuk mencapai keamanan yang sebenarnya, kita perlu berpikir dengan hati-hati 

tentang masalah yang kita coba pecahkan dan alat yang kita miliki; kita juga perlu memikirkan untuk 

memblokir kemungkinan serangan dan penyerang.

Misalkan kita ingin mengontrol akses ke sistem komputasi. Selain nama dan kata sandi, kami dapat 

memakai  informasi lain yang tersedia untuk mengautentikasi pemakai . Misalkan Adams 

bekerja di departemen akuntansi selama shift antara 8:00 dan 5:00, Senin sampai Jumat. Setiap 

upaya akses yang sah oleh Adams harus dilakukan selama waktu itu, melalui stasiun kerja di kantor 

departemen akuntansi. Dengan membatasi Adams untuk masuk dalam kondisi ini , sistem 

melindungi dari dua masalah:

• Seseorang dari luar mungkin mencoba meniru Adams. Upaya ini akan digagalkan oleh 

waktu akses atau port tempat akses dicoba.

• Adams mungkin mencoba mengakses sistem dari rumah atau di akhir pekan, berencana 

memakai  sumber daya yang tidak diizinkan atau melakukan sesuatu yang terlalu 

berisiko dengan orang lain di sekitarnya.


71

Membatasi pemakai  ke stasiun kerja tertentu atau waktu akses tertentu dapat memicu  

komplikasi (seperti saat  pemakai  secara sah perlu bekerja lembur, seseorang harus mengakses 

sistem saat berada di luar kota untuk urusan bisnis, atau stasiun kerja tertentu gagal). Namun, 

beberapa perusahaan memakai  teknik otentikasi ini sebab  keamanan tambahan yang mereka 

berikan melebihi ketidaknyamanan. Sebagai analis keamanan, kita perlu melatih pikiran kita untuk 

mengenali kualitas yang membedakan aktivitas normal dan diperbolehkan.

Seperti yang Anda lihat, praktisi keamanan memiliki berbagai mekanisme otentikasi yang siap 

dipakai . Tidak ada yang sempurna; semua memiliki kekuatan dan kelemahan, dan bahkan 

kombinasi mekanisme tidak sempurna. Seringkali antarmuka pemakai  tampak sederhana dan 

sangat mudah (apa yang bisa lebih mudah daripada meletakkan jari di atas piring kaca?), namun  

seperti yang telah kami jelaskan, di balik kesederhanaan itu terdapat ketidakpastian, ambiguitas, dan 

kerentanan. Namun demikian, di bagian ini Anda telah melihat jenis dan contoh sehingga saat  Anda 

mengembangkan sistem dan aplikasi yang memerlukan otentikasi, Anda akan dapat memakai  

latar belakang ini untuk memilih pendekatan yang memenuhi kebutuhan keamanan Anda.

2.4   Kontrol Akses

Di bagian ini kita membahas bagaimana melindungi objek umum, seperti file, tabel, akses ke 

perangkat keras atau koneksi jaringan, dan sumber daya lainnya. Secara umum, kami menginginkan 

struktur yang fleksibel, sehingga pemakai  tertentu dapat memakai  sumber daya dalam 

satu cara (misalnya, hanya-baca), yang lain dengan cara yang berbeda (misalnya, mengizinkan 

modifikasi), dan yang lainnya tidak sama sekali. Kami menginginkan teknik yang kuat, mudah 

dipakai , dan efisien.

Kita mulai dengan paradigma kontrol akses dasar, diartikulasikan oleh Scott Graham dan Peter 

Denning : Subjek diizinkan untuk mengakses objek dalam mode tertentu, dan hanya akses resmi 

yang diizinkan.

•  Subyek yaitu  pemakai  manusia, sering diwakili oleh program pengganti yang berjalan atas 

nama pemakai .

•  Objek yaitu  hal-hal di mana suatu tindakan dapat dilakukan: File, tabel, program, objek memori, 

perangkat keras, string, bidang data, koneksi jaringan, dan prosesor yaitu  contoh objek. Begitu 

juga pemakai , atau lebih tepatnya program atau proses yang mewakili pemakai , sebab  

sistem operasi (program yang mewakili administrator sistem) dapat bertindak atas pemakai , 

misalnya, memungkinkan pemakai  untuk menjalankan program, menghentikan pemakai , 

atau memberikan hak istimewa untuk pemakai .

•  Mode akses yaitu  tindakan subjek yang dapat dikontrol pada objek, termasuk, namun tidak 

terbatas pada, membaca, menulis, memodifikasi, menghapus, mengeksekusi, membuat, 

menghancurkan, menyalin, mengekspor, mengimpor, dan sebagainya.

Pemisahan yang efektif akan menjaga subjek yang tidak berwenang dari akses yang tidak sah ke 

objek, namun  celah pemisahan harus dilewati untuk subjek dan mode yang berwenang. Di bagian 

ini kami mempertimbangkan cara untuk mengizinkan semua dan hanya akses yang diizinkan.


72

2.4.1 Kebijakan Akses

Kontrol akses yaitu  proses mekanis, mudah diimplementasikan oleh tabel dan proses komputer: 

Subjek tertentu dapat atau tidak dapat mengakses objek tertentu dengan cara tertentu. Mendasari 

keputusan langsung yaitu  keputusan yang kompleks dan bernuansa yang aksesnya harus diizinkan; 

keputusan ini didasarkan pada kebijakan keamanan formal atau informal.

Keputusan kontrol akses (atau tidak boleh) dibuat secara tiba-tiba. Pat mendapatkan akses ke file ini 

sebab  dia mengerjakan proyek yang membutuhkan data; Sol yaitu  administrator dan harus dapat 

menambah dan menghapus pemakai  untuk sistem. Memiliki basis menyederhanakan pembuatan 

keputusan serupa untuk pemakai  dan objek lain. Kebijakan juga menyederhanakan penetapan 

aturan kontrol akses, sebab  hanya mencerminkan kebijakan yang ada.

Jadi, sebelum mencoba menerapkan kontrol akses, organisasi perlu meluangkan waktu untuk 

mengembangkan kebijakan keamanan tingkat yang lebih tinggi, yang lalu  akan mendorong 

semua aturan kontrol akses.

Implementasi Kebijakan yang Efektif

Melindungi objek melibatkan beberapa tujuan yang saling melengkapi.

•  Periksa setiap akses. Kami mungkin ingin mencabut hak istimewa pemakai  untuk mengakses 

suatu objek. Jika sebelumnya kami telah mengizinkan pemakai  untuk mengakses objek, kami 

tidak bermaksud bahwa pemakai  harus mempertahankan akses tak terbatas ke objek. Bahkan, 

dalam beberapa situasi, kami mungkin ingin mencegah akses lebih lanjut segera setelah kami 

mencabut otorisasi, misalnya, jika kami mendeteksi pemakai  yang menyamar. Untuk alasan 

ini, kita harus bertujuan untuk memeriksa setiap akses oleh pemakai  ke suatu objek.

•  Terapkan hak istimewa paling rendah. Prinsip hak istimewa terkecil menyatakan bahwa 

subjek harus memiliki akses ke jumlah objek terkecil yang diperlukan untuk melakukan beberapa 

tugas. Bahkan jika informasi tambahan tidak berguna atau tidak berbahaya jika subjek memiliki 

akses, subjek tidak boleh memiliki akses tambahan itu. Misalnya, sebuah program tidak boleh 

memiliki akses ke alamat memori absolut yang diterjemahkan oleh referensi nomor halaman, 

meskipun program tidak dapat memakai  alamat ini  dengan cara yang efektif. Tidak 

mengizinkan akses ke objek yang tidak perlu menjaga dari kelemahan keamanan jika bagian 

dari mekanisme perlindungan gagal.

•  Verifikasi pemakai an yang dapat diterima. Kemampuan untuk mengakses yaitu  keputusan 

ya atau tidak. namun  yang sama pentingnya yaitu  memeriksa apakah aktivitas yang akan 

dilakukan pada suatu objek sudah sesuai. Misalnya, struktur data seperti tumpukan memiliki 

operasi tertentu yang dapat diterima, termasuk push, pop, clear, dan sebagainya. Kita mungkin 

ingin tidak hanya mengontrol siapa atau apa yang memiliki akses ke tumpukan namun  juga untuk 

memastikan bahwa semua akses yang dilakukan yaitu  akses tumpukan yang sah.

Pelacakan/Tracking

•  Verifikasi pemakai an yang dapat diterima. Kemampuan untuk mengakses yaitu  keputusan 

ya atau tidak. namun  yang sama pentingnya yaitu  memeriksa apakah aktivitas yang akan 

dilakukan pada suatu objek sudah sesuai. Misalnya, struktur data seperti tumpukan memiliki 


73

operasi tertentu yang dapat diterima, termasuk push, pop, clear, dan sebagainya. Kita mungkin 

ingin tidak hanya mengontrol siapa atau apa yang memiliki akses ke tumpukan namun  juga untuk 

memastikan bahwa semua akses yang dilakukan yaitu  akses tumpukan yang sah.

Menerapkan kebijakan yang tepat bukanlah akhir dari administrasi akses. Terkadang administrator 

perlu meninjau kembali kebijakan akses untuk menentukan apakah itu berfungsi sebagaimana 

mestinya. Apakah seseorang telah ada untuk waktu yang lama dan telah memperoleh sejumlah 

besar hak yang tidak lagi dibutuhkan? Apakah begitu banyak pemakai  memiliki akses ke satu objek 

yang tidak lagi perlu dikendalikan? Atau haruskah itu dipecah menjadi beberapa objek sehingga 

individu dapat diizinkan mengakses hanya bagian yang mereka butuhkan? Administrator perlu 

mempertimbangkan pertanyaan semacam ini pada kesempatan untuk menentukan apakah kebijakan 

dan implementasi melakukan apa yang seharusnya. Kami mengeksplorasi sisi manajemen dalam 

mendefinisikan kebijakan keamanan di Bab 10, namun  kami meninjau beberapa masalah di sini 

sebab  memiliki pengaruh teknis pada kontrol akses.

Granularitas

Yang kami maksud dengan granularity yaitu  kehalusan atau kekhususan kontrol akses. Ini yaitu  

spektrum: Di satu ujung Anda dapat mengontrol akses ke setiap bit atau byte, setiap kata dalam 

dokumen, setiap nomor pada spreadsheet, setiap foto dalam koleksi. Tingkat kekhususan itu 

umumnya berlebihan dan rumit untuk diterapkan. Semakin halus granularitasnya, semakin besar

jumlah keputusan kontrol akses yang harus dibuat, sehingga ada penalti kinerja. Di ekstrem lain 

Anda cukup mengatakan Adam memiliki akses lengkap ke komputer C1. Pendekatan itu mungkin 

berhasil jika komputer hanya untuk dipakai  Adam, namun  jika komputer C1 dipakai  bersama, 

maka sistem tidak memiliki dasar untuk mengontrol atau mengatur pembagian itu. Dengan demikian, 

titik tengah yang masuk akal harus diterapkan.

Biasanya file, program, atau ruang data yaitu  unit terkecil yang aksesnya dikendalikan. Namun, 

perhatikan bahwa aplikasi dapat mengimplementasikan kontrol aksesnya sendiri. Jadi, misalnya, 

seperti yang kami jelaskan di Bab 7, sistem manajemen basis data dapat memiliki akses ke basis 

data yang lengkap, namun  sistem ini  lalu  mengukir basis data menjadi unit yang lebih 

kecil dan membagi akses: pemakai  ini dapat melihat nama namun  tidak gaji, pemakai  ini  

dapat hanya melihat data karyawan di kantor barat.

Perangkat keras, blok memori, ruang pada disk tempat kode program disimpan, aplikasi khusus, 

semua ini kemungkinan merupakan objek yang aksesnya dikendalikan.

Akses Log

Setelah membuat keputusan akses, sistem bertindak untuk mengizinkan akses itu dan meninggalkan 

pemakai  dan objek untuk menyelesaikan transaksi. Sistem juga mencatat akses mana yang 

telah diizinkan, menciptakan apa yang disebut log audit. Log ini dibuat dan dipelihara oleh sistem, 

dan disimpan untuk analisis selanjutnya. Beberapa alasan untuk akses logging yaitu  sebagai 

berikut:

•  Catatan akses dapat membantu merencanakan peralatan baru atau yang ditingkatkan, dengan 

menunjukkan item mana yang telah banyak dipakai .


74

•  Jika sistem gagal, catatan ini dapat menunjukkan akses apa yang sedang berlangsung dan 

mungkin membantu mengidentifikasi penyebab kegagalan.

•  Jika pemakai  menyalahgunakan objek, log akses menunjukkan dengan tepat objek mana yang 

diakses pemakai .

•  Dalam hal kompromi eksternal, log audit dapat membantu mengidentifikasi bagaimana 

penyerang memperoleh akses dan item data mana yang diakses (dan sebab  itu terungkap 

atau dikompromikan). Data ini untuk analisis forensik setelah fakta sangat membantu dalam 

menangani insiden besar.

Sebagai bagian dari aktivitas kontrol akses, sistem membangun dan melindungi log audit ini. Jelas, 

granularity penting: Sebuah log yang mencatat setiap byte memori yang diakses terlalu panjang 

untuk menjadi banyak nilai praktis, namun  log yang mengatakan “8:01 pemakai  menyalakan sistem; 

17:21 pemakai  mematikan sistem” mungkin berisi terlalu sedikit detail untuk membantu.

Pada bagian berikutnya kami mempertimbangkan mekanisme perlindungan yang sesuai untuk objek 

umum dari jenis yang tidak ditentukan, seperti jenis objek yang tercantum di atas. Untuk membuat 

penjelasan lebih mudah dipahami, terkadang kita memakai  contoh objek tertentu, seperti file. 

Namun, perhatikan bahwa mekanisme umum dapat dipakai  untuk melindungi semua jenis objek 

yang terdaftar.

Hak Istimewa Terbatas

Sistem yang melarang semua akses ke apa pun oleh siapa pun tentu saja mencapai kerahasiaan dan 

integritas, namun  sama sekali gagal dalam ketersediaan dan kegunaan. Jadi, kami mencari titik tengah 

yang menyeimbangkan kebutuhan akan beberapa akses dengan risiko akses yang berbahaya dan 

tidak pantas. Tentu saja, kami tidak mengharapkan pemakai  atau proses memicu  kerugian. 

Namun menyadari bahwa tidak semua pemakai  beretika atau bahkan kompeten dan bahwa tidak 

semua proses berfungsi sebagaimana dimaksud, kami ingin membatasi paparan dari pemakai  

yang berperilaku tidak semestinya atau proses yang tidak berfungsi. Hak istimewa terbatas yaitu  

cara untuk membatasi eksposur itu.

Hak istimewa terbatas yaitu  konsep manajemen, bukan kontrol teknis. Proses menganalisis 

pemakai  dan menentukan hak istimewa yang mereka butuhkan yaitu  langkah pertama yang 

diperlukan untuk memberi otorisasi dalam batasan ini . Setelah menetapkan batasan, kami 

beralih ke teknologi kontrol akses untuk menerapkan batasan ini . Dalam Bab 3 kami kembali 

mengangkat konsep hak istimewa terbatas saat  kami menjelaskan desain dan implementasi 

program yang menjamin keamanan. Prinsip desain keamanan yang pertama kali ditulis oleh Jerome 

Saltzer dan Michael Schroeder [SAL75] menjelaskan keuntungan dari membatasi hak istimewa yang 

dipakai  pemakai  dan program mereka untuk dijalankan.

2.4.2 Menerapkan Kontrol Akses

Kontrol akses sering dilakukan oleh sistem operasi. Hanya sistem operasi yang dapat mengakses 

objek primitif, seperti file, untuk mengontrolnya, dan sistem operasi membuat dan menghentikan 

program yang mewakili pemakai  (subjek). Namun, desain perangkat keras saat ini tidak selalu 

mendukung sistem operasi dalam mengimplementasikan kontrol akses yang terdiferensiasi dengan 


75

baik atau fine-grained. Sistem operasi biasanya tidak melihat di dalam file atau objek data, misalnya, 

sehingga tidak dapat melakukan kontrol akses tingkat baris atau elemen dalam database. Juga, 

sistem operasi tidak dapat dengan mudah membedakan antara jenis lalu lintas jaringan. Dalam Studi 

Kasus ini, sistem operasi tunduk pada manajer database atau perangkat jaringan dalam menerapkan 

beberapa aspek kontrol akses. Dengan jenis hak istimewa yang terbatas untuk dialokasikan, sistem 

operasi tidak dapat dengan mudah mengontrol manajer database dan memungkinkan manajer 

database mengontrol pemakai . Dengan demikian, desain perangkat keras saat ini membatasi 

beberapa desain sistem operasi.

Monitor Referensi

James Anderson dan komite studinya (Anderson:72) memberi nama dan struktur pada versi 

digital dari sebuah konsep yang telah ada selama ribuan tahun. Untuk melindungi benteng abad 

pertengahan mereka, para penguasa memiliki satu gerbang yang sangat dilindungi sebagai satu-

satunya cara masuk. Para jenderal mengepung markas pasukan dengan benteng dan penjaga jaga. 

Para bankir menyimpan uang tunai dan barang-barang berharga lainnya di brankas dengan pintu 

yang tidak dapat ditembus yang hanya dimiliki oleh segelintir orang tepercaya. Penjahat dongeng 

mengunci gadis-gadis di menara. Semua contoh ini menunjukkan kontrol akses yang kuat sebab  

desain yang gagal-aman.

Dalam formulasi Anderson untuk komputer, kontrol akses bergantung pada kombinasi perangkat 

keras dan perangkat lunak yang:

•  selalu dipanggil; memvalidasi setiap upaya akses

•  kebal dari gangguan

•  pasti benar

Anderson menyebut konstruksi ini sebagai monitor referensi. Harus jelas mengapa ketiga sifat ini 

penting.

Monitor referensi yaitu  gagasan, bukan alat yang dapat Anda beli untuk dicolokkan ke port. Itu 

bisa disematkan dalam aplikasi (untuk mengontrol objek aplikasi), bagian dari sistem operasi (untuk 

objek yang dikelola sistem) atau bagian dari alat. Namun, Anda akan melihat tiga sifat yang sama 

ini muncul berulang kali dalam buku ini. Untuk memiliki monitor referensi yang efektif, kita perlu 

mempertimbangkan cara yang efektif dan efisien untuk menerjemahkan kebijakan, dasar validasi, ke 

dalam tindakan. Bagaimana kami merepresentasikan kebijakan dalam data biner memiliki implikasi 

pada seberapa efisien dan bahkan seberapa efektif mediasinya.

Pada bagian berikutnya kami menyajikan beberapa model tentang bagaimana hak akses dapat 

dipertahankan dan diimplementasikan oleh monitor referensi.

Direktori Kontrol Akses

Salah satu cara sederhana untuk melindungi suatu objek yaitu  dengan memakai  mekanisme 

yang bekerja seperti direktori file. Bayangkan kita mencoba melindungi file (kumpulan objek) dari 

pemakai  sistem komputasi (kumpulan subjek). Setiap file memiliki pemilik unik yang memiliki hak 

akses "kontrol" (termasuk hak untuk menyatakan siapa yang memiliki akses apa) dan untuk mencabut 


76

akses setiap orang kapan saja. Setiap pemakai  memiliki direktori file, yang mencantumkan semua 

file yang dapat diakses oleh pemakai  ini .

Jelas, tidak ada pemakai  yang diizinkan untuk menulis di direktori file, sebab  itu akan menjadi 

cara untuk memalsukan akses ke file. Oleh sebab  itu, sistem operasi harus memelihara semua 

direktori file, di bawah perintah dari pemilik file. Hak yang jelas untuk file yaitu  membaca, menulis, 

dan mengeksekusi yang umum pada banyak sistem bersama. Selanjutnya, hak lain, pemilik, dimiliki 

oleh pemilik, yang mengizinkan pemakai  ini  untuk memberikan dan mencabut hak akses. 

Gambar 2-8 menunjukkan contoh direktori file.

Pendekatan ini mudah diterapkan sebab  memakai  satu daftar per pemakai , yang menyebutkan 

semua objek yang diizinkan untuk diakses oleh pemakai . Namun, beberapa kesulitan dapat muncul. 

Pertama, daftar menjadi terlalu besar jika banyak objek bersama, seperti pustaka subprogram 

atau tabel umum pemakai , dapat diakses oleh semua pemakai . Direktori setiap pemakai  

harus memiliki satu entri untuk setiap objek bersama ini , bahkan jika pemakai  tidak berniat 

mengakses objek ini . Penghapusan harus tercermin di semua direktori.

Gambar 2.8 Hak Akses Direktori

Kesulitan kedua yaitu  pencabutan akses. Jika pemilik A telah memberikan hak kepada pemakai  B 

untuk membaca file F, entri untuk F dibuat dalam direktori untuk B. Pemberian akses ini menyiratkan 

tingkat kepercayaan antara A dan B. Jika A lalu  mempertanyakan kepercayaan itu, A dapat 

ingin mencabut hak akses B. Sistem operasi dapat dengan mudah menanggapi permintaan tunggal 

untuk menghapus hak B untuk mengakses F, sebab  tindakan itu melibatkan penghapusan satu 

entri dari direktori tertentu. namun  jika A ingin menghapus hak setiap orang untuk mengakses F, 

sistem operasi harus mencari setiap direktori individu untuk entri F, suatu aktivitas yang dapat 

memakan waktu pada sistem yang besar. Misalnya, sistem besar atau jaringan sistem yang lebih 

kecil dapat dengan mudah memiliki 5.000 hingga 10.000 akun aktif. Selain itu, B mungkin telah 

memberikan hak akses untuk F ke pemakai  lain C, situasi yang dikenal sebagai propagasi hak 

akses, sehingga A mungkin tidak mengetahui bahwa akses C ada dan harus dicabut. Masalah ini 

sangat serius dalam jaringan.


77

Kesulitan ketiga melibatkan nama samaran. Pemilik A dan B mungkin memiliki dua file berbeda 

bernama F, dan mereka berdua mungkin ingin mengizinkan akses oleh S. Jelas, direktori untuk 

S tidak dapat berisi dua entri dengan nama yang sama untuk file yang berbeda. Oleh sebab  itu, 

S harus mampu mengidentifikasi secara unik F untuk A (atau B). Salah satu pendekatan yaitu  

memasukkan penunjukan pemilik asli seolah-olah itu yaitu  bagian dari nama file, dengan notasi 

seperti A:F (atau B:F).

Misalkan, bagaimanapun, S ingin memakai  nama selain F untuk membuat isi file lebih jelas. 

Sistem dapat mengizinkan S untuk memberi nama F dengan nama apa pun yang unik untuk 

direktori S. lalu , F dari A dapat dipanggil Q ke S. Seperti yang ditunjukkan pada Gambar 

2-9, S mungkin lupa bahwa Q yaitu  F dari A, dan jadi S meminta akses lagi dari A untuk F. Tapi 

sekarang A mungkin lebih percaya pada S, jadi A mentransfer F dengan hak yang lebih besar dari 

sebelumnya. Tindakan ini membuka kemungkinan bahwa satu subjek, S, mungkin memiliki dua 

set hak akses yang berbeda ke F, satu di bawah nama Q dan satu di bawah nama F. Dengan cara 

ini, mengizinkan nama samaran dapat memicu  beberapa izin yang belum tentu konsisten. 

Dengan demikian, pendekatan direktori mungkin terlalu sederhana untuk sebagian besar situasi 

perlindungan objek.

Gambar 2.9 Hak Akses Ambigu

Matriks Kontrol Akses

Kita dapat menganggap direktori sebagai daftar objek yang dapat diakses oleh satu subjek, dan 

daftar akses sebagai tabel yang mengidentifikasi subjek yang dapat mengakses satu objek. Data 

dalam dua representasi ini setara, perbedaannya yaitu  kemudahan pemakai an dalam situasi 

tertentu.

Sebagai alternatif, kita dapat memakai  matriks kontrol akses, yang ditunjukkan pada Gambar 

2-10, sebuah tabel di mana setiap baris mewakili subjek, setiap kolom mewakili objek, dan setiap 

entri yaitu  kumpulan hak akses untuk subjek itu ke objek itu.


78

Gambar 2.10 Matriks Kontrol Akses

Contoh representasi matriks kontrol akses yang lebih rinci ditunjukkan pada Tabel 2-8. Hak akses 

yang ditunjukkan pada tabel ini  yaitu  O, own; R, baca; W, tulis; dan X, jalankan. Secara 

umum, matriks kontrol akses jarang (artinya sebagian besar sel kosong): Sebagian besar subjek 

tidak memiliki hak akses ke sebagian besar objek. Matriks akses dapat direpresentasikan sebagai 

daftar tiga kali lipat, masing-masing memiliki bentuk subjek, objek, hak, seperti yang ditunjukkan 

pada Tabel 2-9.

Tabel 2.8 Matriks Kontrol Akses

Tabel 2.9 Daftar Tiga Kali Kontrol Akses

Representasi ini mungkin lebih efisien daripada matriks kontrol akses sebab  tidak ada triple 

untuk setiap sel kosong dari matriks (seperti USER T, Bibliog, – ). Meskipun triple dapat diurutkan 

berdasarkan subjek atau objek sesuai kebutuhan, pencarian sejumlah besar dari triple ini cukup 

tidak efisien sehingga implementasi ini jarang dipakai .


79

Daftar Kontrol Akses

Representasi alternatif yaitu  daftar 

kontrol akses; seperti yang ditunjukkan 

pada Gambar 2-11, representasi ini sesuai 

dengan kolom dari matriks kontrol akses. 

Ada satu daftar ini  untuk setiap 

objek, dan daftar ini  menunjukkan 

semua subjek yang harus memiliki 

akses ke objek dan apa akses mereka. 

Pendekatan ini berbeda dari daftar direktori 

sebab  ada satu daftar kontrol akses per 

objek; direktori dibuat untuk setiap mata 

pelajaran. Meskipun perbedaan ini tampak 

kecil, ada beberapa keuntungan signifikan 

dari pendekatan ini.

Representasi daftar kontrol akses dapat menyertakan hak default. Pertimbangkan subjek A dan 

S, keduanya memiliki akses ke objek F. Sistem operasi akan mempertahankan hanya satu daftar 

akses untuk F, menunjukkan hak akses untuk A dan S, seperti yang ditunjukkan pada Gambar 2-12. 

Daftar kontrol akses dapat menyertakan entri default umum untuk setiap pemakai . Dengan cara ini, 

pemakai  tertentu dapat memiliki hak eksplisit, dan semua pemakai  lain dapat memiliki serangkaian 

hak default. Dengan organisasi ini, semua pemakai  sistem yang mungkin dapat berbagi file atau 

program publik tanpa memerlukan entri untuk objek di direktori individu setiap pemakai .

Gambar 2.12 Daftar Kontrol Akses dengan Dua Subjek

Gambar 2-.11 Daftar Kontrol Akses


80

Sistem operasi Multics memakai  bentuk daftar kontrol akses di mana setiap pemakai  

termasuk dalam tiga kelas perlindungan: pemakai , grup, dan kompartemen. Penunjukan pemakai  

mengidentifikasi subjek tertentu, dan penunjukan grup menyatukan subjek yang memiliki minat 

yang sama, seperti menjadi rekan kerja dalam sebuah proyek. Kompartemen membatasi objek 

yang tidak dipercaya; program yang dieksekusi di satu kompartemen tidak dapat mengakses objek 

di kompartemen lain tanpa izin khusus. Kompartemen juga merupakan cara untuk mengumpulkan 

objek yang terkait, seperti semua file untuk satu proyek.

Untuk melihat bagaimana jenis perlindungan ini dapat bekerja, anggaplah setiap pemakai  yang 

memulai akses ke sistem mengidentifikasi grup dan kompartemen yang dapat dipakai  untuk 

bekerja. Jika Adams masuk sebagai pemakai  Adams di grup Decl dan kompartemen Art2, hanya 

objek yang memiliki Adams-Decl-Art2 dalam daftar kontrol akses yang dapat diakses dalam sesi.

Dengan sendirinya, mekanisme semacam ini akan terlalu membatasi untuk dapat dipakai . 

Adams tidak dapat membuat file umum untuk dipakai  dalam sesi apa pun. Lebih buruk lagi, 

objek bersama tidak hanya harus mencantumkan Adams sebagai subjek yang sah namun  juga harus 

mencantumkan Adams di bawah semua kelompok yang dapat diterima dan semua kompartemen 

yang dapat diterima untuk setiap kelompok.

Solusinya yaitu  pemakai an kartu liar, yang berarti placeholder yang menunjuk "pemakai  mana 

pun" (atau "grup apa pun" atau "kompartemen apa pun"). Daftar kontrol akses mungkin menentukan 

akses oleh Adams-Decl-Art1, memberikan hak khusus kepada Adams jika bekerja dalam grup Decl 

pada kompartemen Art1. Daftar mungkin juga menentukan Adams-*-Art1, artinya Adams dapat 

mengakses objek dari grup mana pun di kompartemen Art1. Demikian juga, notasi *-Decl-* akan 

berarti "pemakai  mana pun dalam grup Decl di kompartemen mana pun." Penempatan yang 

berbeda dari notasi wildcard * memiliki interpretasi yang jelas.

Unix memakai  pendekatan serupa dengan izin pemakai -grup-dunia. Setiap pemakai  termasuk 

dalam grup pemakai  terkait—siswa di kelas yang sama, pekerja di proyek bersama, atau anggota 

departemen yang sama. Izin akses untuk setiap objek yaitu  triple (u,g,w) di mana u yaitu  untuk 

hak akses pemakai , g untuk anggota grup lainnya, dan w untuk semua pemakai  lain di dunia.

Daftar kontrol akses dapat dipertahankan dalam urutan yang diurutkan, dengan * diurutkan 

sebagai datang setelah semua nama tertentu. Misalnya, Adams-Decl-* akan muncul setelah semua 

penunjukan kompartemen khusus untuk Adams. Pencarian izin akses berlanjut hanya sampai 

pertandingan pertama. Dalam protokol, semua penunjukan eksplisit diperiksa sebelum wildcard di 

posisi apa pun, sehingga hak akses tertentu akan didahulukan daripada hak wildcard. Entri terakhir 

pada daftar akses dapat berupa *-*-*, yang menentukan hak yang diizinkan untuk pemakai  mana 

pun yang tidak secara eksplisit ada dalam daftar akses. Dengan perangkat wildcard ini, objek publik 

bersama dapat memiliki daftar akses yang sangat pendek, secara eksplisit menyebutkan beberapa 

subjek yang seharusnya memiliki hak akses yang berbeda dari default.

Daftar Hak Istimewa

Daftar hak istimewa, kadang-kadang disebut direktori, yaitu  deretan matriks akses, yang 

menunjukkan semua hak istimewa atau hak akses untuk subjek tertentu (ditunjukkan pada Gambar 

2-13). Salah satu keuntungan dari daftar hak istimewa yaitu  kemudahan pencabutan: Jika pemakai  


81

dihapus dari sistem, daftar hak istimewa menunjukkan semua objek yang dapat diakses pemakai  

sehingga hak ini  dapat dihapus dari objek.

Gambar 2.13 Daftar Kontrol Hak Istimewa

2.4.3 Kemampuan (Capability)

Sejauh ini, kami telah memeriksa skema 

perlindungan di mana sistem operasi harus 

melacak semua objek dan hak perlindungan. 

namun  pendekatan lain memberikan beberapa 

beban pada pemakai . Misalnya, pemakai  

mungkin diharuskan memiliki tiket atau pass 

yang memungkinkan akses, seperti tiket atau 

kartu identitas yang tidak dapat digandakan.

Secara lebih formal, kami mengatakan bahwa 

kapabilitas yaitu  tanda yang tidak dapat 

dipalsukan yang memberikan pemiliknya hak tertentu atas suatu objek. Sistem Multics, dan Hydra 

memakai  kemampuan untuk kontrol akses. Seperti yang ditunjukkan pada Gambar 2-14, 

kapabilitas hanyalah satu kontrol akses tiga kali lipat dari subjek, objek, dan hak. Secara teori, subjek 

dapat membuat objek baru dan dapat menentukan operasi yang diizinkan pada objek ini . 

Misalnya, pemakai  dapat membuat objek seperti file, segmen data, atau subproses dan juga dapat 

menentukan jenis operasi yang dapat diterima, seperti membaca, menulis, dan mengeksekusi. namun  

pemakai  juga dapat membuat objek yang benar-benar baru, seperti struktur data baru, dan dapat 

menentukan jenis akses yang sebelumnya tidak diketahui oleh sistem.

Pikirkan kemampuan sebagai tiket yang memberikan izin kepada subjek untuk memiliki jenis akses 

tertentu ke suatu objek. Untuk kemampuan menawarkan perlindungan yang solid, tiket harus tidak 

dapat dipalsukan. Salah satu cara untuk membuatnya tidak dapat dimaafkan yaitu  dengan tidak 

memberikan tiket secara langsung kepada pemakai . Sebaliknya, sistem operasi menyimpan 

semua tiket atas nama pemakai . Sistem operasi mengembalikan kepada pemakai  sebuah 

penunjuk ke struktur data sistem operasi, yang juga menautkan ke pemakai . Kemampuan hanya 

dapat dibuat dengan permintaan khusus dari pemakai  ke sistem operasi. Setiap kemampuan juga 

mengidentifikasi akses yang diizinkan. Atau, kemampuan dapat dienkripsi di bawah kunci yang hanya 

tersedia untuk mekanisme kontrol akses. Jika kemampuan terenkripsi berisi identitas pemilik yang 

sah, pemakai  A tidak dapat menyalin kemampuan dan memberikannya kepada pemakai  B.

Gambar 2.14 Kemampuan


82

Salah satu kemungkinan hak akses ke suatu objek yaitu  transfer atau propagasi. Subjek yang 

memiliki hak ini dapat memberikan salinan kemampuan kepada subjek lain. Pada gilirannya, masing-

masing kemampuan ini juga memiliki daftar jenis akses yang diizinkan, salah satunya mungkin juga 

transfer. Dalam hal ini, proses A dapat mengirimkan salinan kemampuan ke B, yang lalu  dapat 

meneruskan salinan ke C. B dapat mencegah distribusi lebih lanjut dari kemampuan (dan sebab  

itu mencegah penyebaran lebih lanjut dari hak akses) dengan menghilangkan hak transfer dari hak 

yang diberikan dalam kemampuan ke C. B mungkin masih memberikan hak akses tertentu ke C, 

namun  bukan hak untuk menyebarkan hak akses ke subjek lain.

Saat proses dijalankan, ia beroperasi di domain atau ruang nama lokal. Domain yaitu  kumpulan 

objek yang dapat diakses oleh proses. Domain untuk pemakai  pada waktu tertentu mungkin 

mencakup beberapa program, file, segmen data, dan perangkat I/O seperti printer dan terminal. 

Contoh domain ditunjukkan pada Gambar 2-15.

Gambar  2.15 Contoh Domain

Saat eksekusi berlanjut, proses dapat memanggil subprosedur, melewati beberapa objek yang 

memiliki akses sebagai argumen ke subprosedur. Domain subprosedur tidak harus sama dengan 

prosedur pemanggilannya; pada kenyataannya, prosedur pemanggilan hanya dapat melewatkan 

beberapa objeknya ke subprosedur, dan subprosedur mungkin memiliki hak akses ke objek lain yang 

tidak dapat diakses oleh prosedur pemanggilan, seperti yang ditunjukkan pada Gambar 2-16. 

Gambar 2.16 Melewati Objek ke Domain


83

Penelepon juga dapat melewati hanya sebagian dari hak aksesnya untuk objek yang diteruskannya 

ke subprosedur. Sebagai contoh, suatu prosedur dapat memberikan hak untuk membaca kepada 

subprosedur namun  tidak untuk mengubah nilai data tertentu.

sebab  setiap kapabilitas mengidentifikasi satu objek dalam domain, kumpulan kapabilitas 

mendefinisikan domain. saat  suatu proses memanggil subprosedur dan meneruskan objek tertentu 

ke subprosedur, sistem operasi membentuk tumpukan semua kemampuan prosedur saat ini. Sistem 

operasi lalu  menciptakan kemampuan baru untuk subprosedur.

Secara operasional, kemampuan yaitu  cara mudah untuk melacak hak akses subjek ke objek 

selama eksekusi. Kemampuan didukung oleh tabel yang lebih komprehensif, seperti matriks kontrol 

akses atau daftar kontrol akses. Setiap kali suatu proses berusaha memakai  objek baru, sistem 

operasi memeriksa daftar induk objek dan subjek untuk menentukan apakah objek ini  dapat 

diakses. Jika demikian, sistem operasi menciptakan kemampuan untuk objek itu.

Kemampuan harus disimpan dalam memori yang tidak dapat diakses oleh pemakai  biasa. Salah 

satu cara untuk mencapai ini yaitu  dengan menyimpan kapabilitas dalam segmen yang tidak 

ditunjuk oleh tabel segmen pemakai  atau untuk memasukkannya ke dalam memori yang dilindungi 

seperti dari sepasang register basis/batas. Pendekatan lain yaitu  dengan memakai  mesin 

arsitektur yang ditandai untuk mengidentifikasi kemampuan sebagai struktur yang membutuhkan 

perlindungan. Selama eksekusi, hanya kemampuan objek yang telah diakses oleh proses saat ini 

yang tetap tersedia. Pembatasan ini meningkatkan kecepatan akses ke objek dapat diperiksa. 

Kemampuan dapat dicabut. saat  subjek penerbit mencabut suatu kapabilitas, tidak boleh ada 

akses lebih lanjut di bawah kapabilitas yang dicabut ini . Tabel kapabilitas dapat berisi petunjuk 

ke kapabilitas aktif yang muncul di bawahnya sehingga sistem operasi dapat melacak hak akses 

apa yang harus dihapus jika kapabilitas dicabut. Masalah serupa yaitu  menghapus kemampuan 

untuk pemakai  yang tidak lagi aktif.

Ketiga struktur dasar ini, direktori, matriks kontrol akses dan subsetnya, serta kapabilitas, merupakan 

dasar dari sistem kontrol akses yang diterapkan saat ini. Terlepas dari implementasi mekanis dari 

matriks kontrol akses atau substrukturnya, dua model akses berhubungan lebih khusus dengan 

tujuan kontrol akses: menghubungkan akses ke peran subjek atau konteks akses. Kami menyajikan 

model-model itu selanjutnya.

2.4.4 Procedure-Oriented Access Control

Salah satu tujuan dari kontrol akses yaitu  membatasi tidak hanya subjek yang memiliki akses 

ke suatu objek, namun  juga apa yang dapat mereka lakukan terhadap objek ini . Akses baca 

versus tulis dapat dikontrol dengan lebih mudah oleh sebagian besar aplikasi dan sistem operasi, 

namun  kontrol yang lebih kompleks tidak mudah dicapai.

Paradigma Prosedural atau dikenal juga dengan paradigma imperatif memakai  metode 

pemrograman dengan mengeluarkan perintah yang akan dieksekusi oleh komputer. Baris demi 

baris dieksekusi secara berurutan mulai dari baris atas hingga bawah, dimana semua data dan kode 

digabung menjadi satu bagian dalam satu program. Menurut – Wikipedia Procedural Programming 


84

(PP) yaitu  paradigma pemrograman, yang berasal dari pemrograman terstruktur, berdasarkan 

konsep pemanggilan prosedur. Procedural programming, juga dikenal sebagai rutinitas, subrutin, atau 

fungsi, cukup berisi serangkaian langkah komputasi yang harus dilakukan. Bahasa pemrograman 

prosedural utama pertama muncul sekitar tahun 1957–1964, termasuk Fortran, ALGOL, COBOL, 

PL / I dan BASIC. Pascal dan C diterbitkan sekitar tahun 1970-1972. 

Procedural programming merupakan pemrograman secara inline dengan memakai  konsep 

top-down approach dengan kata lain, PP dapat diartikan dengan memberi intruksi berupa tahapan 

kegiatan untuk menyelesaikan suatu aktivitas tergantung procedures dan routines terkait.

Dengan Procedure-OrientedAccess Control, menyiratkan adanya prosedur yang mengontrol akses ke 

objek (misalnya, dengan melakukan otentikasi pemakai nya sendiri untuk memperkuat perlindungan 

dasar yang disediakan oleh sistem operasi dasar). Intinya, prosedur membentuk kapsul di sekitar 

objek, hanya mengizinkan akses tertentu yang ditentukan.

Prosedur dapat memastikan bahwa akses ke objek dilakukan melalui antarmuka tepercaya. Misalnya, 

baik pemakai  maupun rutinitas sistem operasi umum mungkin tidak diizinkan mengakses langsung 

ke tabel pemakai  yang valid. Sebaliknya, satu-satunya akses yang diizinkan mungkin melalui tiga 

prosedur: satu untuk menambahkan pemakai , satu untuk menghapus pemakai , dan satu untuk 

memeriksa apakah nama tertentu sesuai dengan pemakai  yang valid. Prosedur ini, terutama 

menambah dan menghapus, dapat memakai  pemeriksaan mereka sendiri untuk memastikan 

bahwa panggilan ke mereka sah.

Proteksi berorientasi prosedur menerapkan prinsip penyembunyian informasi sebab  cara 

mengimplementasikan objek hanya diketahui oleh prosedur kontrol objek. Tentu saja, tingkat 

perlindungan ini membawa konsekuensi ketidakefisienan. Dengan perlindungan berorientasi 

prosedur, tidak ada pemeriksaan akses yang sederhana dan cepat, bahkan jika objek ini  

sering dipakai .

2.4.5 Role Based Access Control (RBAC)

Kami belum membedakan jenis pemakai , namun  kami ingin beberapa pemakai  (seperti administrator) 

memiliki hak istimewa yang signifikan, dan kami ingin orang lain (seperti pemakai  biasa atau tamu) 

memiliki hak istimewa yang lebih rendah. Di perusahaan dan institusi pendidikan, ini bisa menjadi 

rumit saat  pemakai  biasa menjadi administrator atau pembuat roti pindah ke grup pembuat 

kandil. Kontrol akses berbasis peran memungkinkan kami mengaitkan hak istimewa dengan grup, 

seperti semua administrator dapat melakukan ini atau pembuat candlestick dilarang melakukan itu. 

Mengelola keamanan lebih mudah jika kita dapat mengontrol akses berdasarkan tuntutan pekerjaan, 

bukan oleh orang. Kontrol akses mengikuti orang yang mengubah tanggung jawab, dan administrator 

sistem tidak harus memilih pengaturan kontrol akses yang sesuai untuk seseorang. Untuk detail 

selengkapnya tentang nuansa kontrol akses berbasis peran.

RBAC memberikan hak akses untuk roles bukan menerapkan hak akses pelaku atau subjek. 

pemakai  tidak bisa mengambil hak akses pemakai  lain merupakan dasar perbedaan antara 

RBAC dan DAC. Dalam organisasi, roles dibuat untuk fungsi kerja yang berbeda sesuai dengan 

peran keanggotaan yang didasarkan pada kompetensi, tugas, dan kewenangan. Tugas keamanan 


85

RBAC diberikan pada kontrol akses sebagai prioritas tertinggi untuk mengontrol akses ke sumber 

daya. Administrator sangat berperan dalam memberikan hak kepada pemakai , sehingga subjek 

akan mendapatkan akses ke objek melalui role yang telah diberikan oleh administrator. Struktur 

RBAC meliputi roles, permission, user, dan session. RBAC memerlukan penunggasan hak akses 

untuk role pada setiap subjek, dengan cara menghubungkan subjek dengan role. Hak akses yang 

ditugaskan ke roles akan dipakai  oleh pemakai  untuk membuat sebuah session, dan session 

akan mendapatkan izin (permission) dari role yang didapatkan oleh pemakai  untuk mengaktifkan 

perannya (roles). 

Dalam RBAC, role didefinisikan sebagai suatu gagasan yang merupakan dasar dari kebijakan 

kontrol akses (Sandhu & Bhamidipati, 1999). Role didefinisikan dalam ilmu perilaku sebagai pola 

yang ditentukan sesuai perilaku seseorang dalam situasi tertentu berdasarkan posisi orang .

Kesimpulannya, studi kami tentang mekanisme kontrol akses telah dengan sengaja berkembang 

dari yang sederhana ke yang kompleks. Secara historis, sebab  mekanisme telah memberikan 

fleksibilitas yang lebih besar, mereka melakukannya dengan harga overhead yang meningkat. 

Misalnya, mengimplementasikan kemampuan yang harus diperiksa pada setiap akses jauh lebih 

sulit daripada menerapkan struktur direktori sederhana yang diperiksa hanya pada akses pertama 

subjek ke objek. Kompleksitas ini jelas bagi pemakai  dan pelaksana. pemakai  mengetahui fitur 

perlindungan tambahan, namun  pemakai  yang naif mungkin merasa frustrasi atau terintimidasi sebab  

harus memilih opsi perlindungan dengan sedikit pemahaman tentang kegunaannya. Kompleksitas 

implementasi menjadi jelas dalam respons yang lambat terhadap pemakai . Keseimbangan antara 

kesederhanaan dan fungsionalitas yaitu  perjuangan berkelanjutan dalam keamanan.

2.5  Kriptografi

Selanjutnya kami memperkenalkan yang ketiga dari alat keamanan dasar kami, kriptografi. Dalam 

bab ini kami hanya menyajikan dasar-dasar topik, cukup sehingga Anda dapat melihat bagaimana 

hal itu dapat dipakai  dan apa yang dapat dicapai. Kami meninggalkan internal untuk Bab 12 

di akhir buku ini. Kami melakukan itu sebab  sebagian besar praktisi keamanan komputer akan 

kesulitan untuk menjelaskan atau menerapkan kriptografi yang baik dari awal, yang membuat 

poin kami bahwa Anda tidak perlu memahami internal kriptografi hanya untuk memakai nya 

dengan sukses. Saat Anda membaca bab ini, Anda mungkin bertanya mengapa sesuatu dilakukan 

dengan cara tertentu atau bagaimana sesuatu benar-benar bekerja. Bab ini berfokus pada alat dan 

pemakai annya, meninggalkan cara kerja internal untuk masa depan.

Enkripsi atau kriptografi—nama yang berarti penulisan rahasia—mungkin merupakan pertahanan 

terkuat dalam gudang perlindungan keamanan komputer. Data yang disamarkan dengan baik tidak 

dapat dengan mudah dibaca, dimodifikasi, atau dibuat-buat. Sederhananya, enkripsi seperti mesin: 

Anda meletakkan data di satu ujung, roda gigi berputar dan lampu berkedip, dan Anda menerima 

data yang dimodifikasi di ujung lainnya. Faktanya, beberapa perangkat enkripsi yang dipakai  

selama Perang Dunia II beroperasi dengan roda gigi dan rotor yang sebenarnya, dan perangkat ini 

efektif untuk menghalangi (walaupun tidak selalu mencegah) pihak yang berlawanan untuk membaca 

pesan yang dilindungi. Sekarang mesin telah digantikan oleh algoritma komputer, namun  prinsipnya 

sama: Transformasi membuat data sulit untuk ditafsirkan oleh orang luar.


86

Kita mulai dengan memeriksa apa yang dilakukan enkripsi dan bagaimana cara kerjanya. Kami 

memperkenalkan prinsip-prinsip dasar algoritma enkripsi, memperkenalkan dua jenis enkripsi 

dengan kegunaan yang berbeda. sebab  enkripsi yang lemah atau cacat hanya menciptakan 

ilusi perlindungan, kami juga melihat bagaimana enkripsi bisa gagal. Kami menjelaskan secara 

singkat teknik yang dipakai  untuk menembus tutup pelindung untuk membatalkan keamanan. 

Berdasarkan jenis enkripsi dasar ini, kami menunjukkan cara menggabungkannya untuk mengatasi 

beberapa masalah umum komputasi dan komunikasi dengan aman.

2.5.1 Masalah yang Ditangani dengan Enkripsi

Terkadang kami menggambarkan enkripsi dalam konteks pengiriman pesan rahasia. Pembingkaian 

ini hanya untuk memudahkan deskripsi: Konsep yang sama berlaku untuk melindungi file data 

atau informasi sensitif dalam memori. Jadi saat  kita berbicara tentang mengirim pesan, Anda 

juga harus memikirkan untuk melindungi objek digital apa pun untuk akses hanya oleh orang yang 

berwenang.

Pertimbangkan langkah-langkah yang terlibat dalam pengiriman pesan dari pengirim, S, ke penerima, 

R. Jika S mempercayakan pesan ke T, yang lalu  mengirimkannya ke R, T lalu  menjadi 

media transmisi. Jika orang luar, O, ingin mengakses pesan (untuk membaca, mengubah, atau 

bahkan menghancurkannya), kami menyebut O sebagai pencegat atau penyusup. Setiap saat 

setelah S mengirimkan pesan melalui T, ia rentan terhadap eksploitasi, dan O mungkin mencoba 

mengaksesnya dengan salah satu cara berikut:

•  memblokirnya, dengan mencegahnya mencapai R, sehingga mempengaruhi ketersediaan 

pesan

•  mencegatnya, dengan membaca atau mendengarkan pesan, sehingga mempengaruhi 

kerahasiaan pesan

•  memodifikasinya, dengan mengambil pesan dan mengubahnya dengan cara tertentu, yang 

mempengaruhi integritas pesan

•  membuat pesan yang tampak otentik, mengaturnya agar disampaikan seolah-olah itu berasal 

dari S, sehingga juga mempengaruhi integritas pesan

Seperti yang Anda lihat, kerentanan pesan mencerminkan empat kemungkinan kegagalan keamanan 

yang kami identifikasi di Bab 1. Untungnya, enkripsi yaitu  teknik yang dapat mengatasi semua 

masalah ini. Enkripsi yaitu  cara untuk menjaga keamanan data di lingkungan yang tidak aman. 

Dalam buku ini, kita mempelajari enkripsi sebagai teknik keamanan, dan kita melihat bagaimana 

enkripsi dipakai  dalam melindungi program, database, jaringan, dan komunikasi elektronik.

Terminologi

Enkripsi yaitu  proses penyandian pesan sehingga maknanya tidak jelas; dekripsi yaitu  proses 

sebaliknya, mengubah pesan terenkripsi kembali ke bentuk aslinya yang normal. Sebagai alternatif, 

istilah encode dan decode atau encipher dan decipher dipakai  sebagai ganti mengenkripsi dan 

mendekripsi. Artinya, kita katakan kita menyandikan, mengenkripsi, atau menyandikan pesan asli untuk 

menyembunyikan maknanya. lalu , kami mendekode, mendekripsi, atau menguraikannya untuk 

mengungkapkan pesan asli. Sebuah sistem untuk enkripsi dan dekripsi disebut kriptosistem.


87

Terdapat sedikit perbedaan makna dari ketiga pasangan kata encode dan decode atau encipher 

dan decipher, meskipun tidak signifikan dalam konteks pembahasan ini. Tegasnya, encoding

yaitu  proses menerjemahkan seluruh kata atau frasa ke kata atau frasa lain, sedangkan 

enciphering yaitu  menerjemahkan huruf atau simbol secara individual; enkripsi yaitu  istilah 

grup yang mencakup pengkodean dan penyandian.

Bentuk asli dari sebuah pesan dikenal sebagai plaintext, dan bentuk terenkripsi disebut ciphertext. 

Hubungan ini ditunjukkan pada Gambar 2-18. Pikirkan enkripsi sebagai bentuk cat buram yang 

mengaburkan atau menghilangkan teks biasa, mencegahnya terlihat atau ditafsirkan secara akurat. 

lalu , dekripsi yaitu  proses pengelupasan cat untuk mengungkapkan kembali plaintext 

asli.

Gambar 2.18 Plaintext dan Ciphertext

Kami memakai  notasi formal untuk menggambarkan transformasi antara plaintext dan ciphertext. 

Sebagai contoh, kita menulis C = E(P) dan P = D(C), di mana C mewakili ciphertext, E yaitu  aturan 

enkripsi, P yaitu  plaintext, dan D yaitu  aturan dekripsi. Apa yang kita cari yaitu  kriptosistem 

yang P = D(E(P)). Dengan kata lain, kami ingin dapat mengubah pesan plaintext menjadi ciphertext 

untuk melindunginya dari penyusup, namun  kami juga ingin mendapatkan kembali pesan asli sehingga 

penerima dapat membacanya dengan benar.

Kunci Enkripsi

Sebuah cryptosystem melibatkan seperangkat aturan tentang bagaimana mengenkripsi plaintext dan 

mendekripsi ciphertext. Aturan enkripsi dan dekripsi, yang disebut algoritma, sering memakai  

perangkat yang disebut kunci, dilambangkan dengan K, sehingga ciphertext yang dihasilkan 

tergantung pada pesan plaintext asli, algoritma, dan nilai kunci. Kami menulis ketergantungan ini 

sebagai C = E(K, P). Pada dasarnya, E yaitu  satu set algoritma enkripsi, dan kunci K memilih 

satu algoritma tertentu dari set.

Proses ini mirip dengan memakai  kunci yang diproduksi secara massal di rumah. Sebagai 

pemilik rumah, Anda akan membayar mahal untuk membuat kontrak dengan seseorang untuk 

menemukan dan membuat kunci hanya untuk rumah Anda. Selain itu, Anda tidak akan tahu apakah 

kunci penemu tertentu benar-benar kokoh atau bagaimana dibandingkan dengan kunci penemu 

lain. Solusi yang lebih baik yaitu  memiliki beberapa perusahaan yang terkenal dan dihormati yang 

memproduksi kunci standar yang berbeda menurut kunci (fisik). lalu , Anda dan tetangga 

Anda mungkin memiliki merek dan gaya kunci yang sama, namun  kunci Anda hanya akan membuka 

gembok Anda. Dengan cara yang sama, berguna untuk memiliki beberapa algoritma enkripsi yang 

diperiksa dengan baik untuk dipakai  semua orang, namun  kunci yang berbeda akan mencegah 

seseorang membobol data yang Anda coba lindungi.


88

Terkadang kunci enkripsi dan dekripsi sama, jadi P = D(K,E(K,P)), artinya kunci yang sama, K, 

dipakai  baik untuk mengenkripsi pesan dan lalu  mendekripsinya. Bentuk ini disebut enkripsi 

simetris atau kunci tunggal atau kunci rahasia sebab  D dan E yaitu  proses bayangan cermin. 

Sebagai contoh sepele, algoritma enkripsi mungkin menggeser setiap huruf plaintext ke depan n 

posisi dalam alfabet. Untuk n = 1, A diubah menjadi b, B menjadi c, … P menjadi q, … dan Z menjadi 

a, jadi kita katakan nilai kuncinya yaitu  n, memindahkan n posisi maju untuk enkripsi dan mundur 

untuk dekripsi. (Anda mungkin memperhatikan bahwa kami telah menulis plaintext dalam huruf 

besar dan ciphertext yang sesuai dalam huruf kecil; kriptografer terkadang memakai  konvensi 

itu untuk membantu mereka membedakan keduanya.)

Di lain waktu, kunci enkripsi dan dekripsi datang berpasangan. lalu , kunci dekripsi, KD, 

membalikkan enkripsi kunci KE, sehingga P = D(KD, E(KE,P)). Algoritma enkripsi bentuk ini disebut 

asimetris atau kunci publik sebab  mengubah C kembali ke P melibatkan serangkaian langkah dan 

kunci yang berbeda dari langkah dan kunci E. Perbedaan antara enkripsi simetris dan asimetris 

ditunjukkan pada Gambar 2-18.

 

Gambar 2.18 Enkripsi Simetris dan Asimetris

Kunci memberi kita fleksibilitas dalam memakai  skema enkripsi. Kita dapat membuat enkripsi 

yang berbeda dari satu pesan teks biasa hanya dengan mengubah kuncinya. Selain itu, memakai  

kunci memberikan keamanan tambahan. Jika algoritma enkripsi harus jatuh ke tangan pencegat, 

pesan masa depan masih dapat dirahasiakan sebab  pencegat tidak akan mengetahui nilai kunci. 

Studi Kasus 2-14 menjelaskan bagaimana Inggris menangani kunci dan kode tertulis dalam Perang 

Dunia II. Skema enkripsi yang tidak memerlukan pemakai an kunci disebut cipher tanpa kunci.

Studi Kasus 2-14  : Silken Codes (Kode Sutra)

Leo Marks menggambarkan kehidupannya sebagai pembuat kode di Inggris selama 

Perang Dunia II. Artinya, Inggris menyewa Marks dan lainnya untuk merancang 

kode yang dapat dipakai  oleh mata-mata dan tentara di lapangan. Pada hari-hari 

awal, skema enkripsi bergantung pada puisi yang ditulis untuk setiap mata-mata, 

dan bergantung pada kemampuan mata-mata untuk menghafal dan mengingat puisi 

dengan benar.


89

Sejarah enkripsi sangat menarik; itu didokumentasikan dengan baik dalam buku David Kahn [KAH96]. 

Claude Shannon dianggap sebagai bapak kriptografi modern sebab  ia meletakkan dasar matematis 

formal untuk keamanan informasi dan menguraikan beberapa prinsip untuk kriptografi yang aman di 

awal komputasi digital [SHA49]. Enkripsi telah dipakai  selama berabad-abad untuk melindungi 

komunikasi diplomatik dan militer, terkadang tidak berhasil sepenuhnya. Kata kriptografi mengacu 

pada praktik memakai  enkripsi untuk menyembunyikan teks. Seorang cryptanalyst mempelajari 

enkripsi dan pesan terenkripsi, berharap menemukan makna tersembunyi. Seorang cryptanalyst 

mungkin juga bekerja secara defensif, menyelidiki kode dan cipher untuk melihat apakah mereka 

cukup solid untuk melindungi data secara memadai.

Baik kriptografer maupun kriptanalis berusaha menerjemahkan materi yang dikodekan kembali 

ke bentuk aslinya. Biasanya, kriptografer bekerja atas nama pengirim atau penerima yang sah, 

sedangkan kriptoanalis bekerja atas nama pencegat yang tidak sah. Akhirnya, kriptologi yaitu  

penelitian dan studi tentang enkripsi dan dekripsi; itu mencakup baik kriptografi dan kriptanalisis.

2.5.2 Pembacaan Sandi

Tugas seorang cryptanalyst yaitu  memecahkan enkripsi. Artinya, cryptanalyst mencoba untuk 

menyimpulkan arti asli dari pesan ciphertext. Lebih baik lagi, cryptanalyst berharap untuk menentukan 

algoritma dekripsi mana, dan idealnya kunci mana, yang cocok dengan algoritma enkripsi untuk 

dapat memecahkan pesan lain yang dikodekan dengan cara yang sama.

Misalnya, anggaplah dua negara sedang berperang dan negara pertama telah mencegat pesan 

terenkripsi dari negara kedua. Cryptanalysts dari negara pertama ingin menguraikan pesan tertentu 

untuk mengantisipasi pergerakan dan sumber daya yang kedua. namun  yang lebih baik yaitu  

menemukan metode dekripsi yang sebenarnya; maka negara pertama dapat menembus enkripsi 

semua pesan yang dikirim oleh negara kedua.

Seorang analis bekerja dengan berbagai informasi: pesan terenkripsi, algoritma enkripsi yang 

diketahui, teks biasa yang dicegat, item data yang diketahui atau diduga berada dalam pesan teks 

sandi, alat dan teknik matematika atau statistik, dan properti bahasa, serta banyak kecerdikan dan 

keberuntungan. Setiap bukti dapat memberikan petunjuk, dan analis menyatukan petunjuk untuk 

mencoba membentuk gambaran yang lebih besar tentang makna pesan dalam konteks bagaimana 

enkripsi dilakukan. Ingatlah bahwa tidak ada aturan. Seorang pencegat dapat memakai  segala 

cara yang tersedia untuk mencari tahu arti dari pesan ini .

Tanda mengurangi risiko kesalahan dengan memperkenalkan skema pengkodean 

yang dicetak pada potongan sutra. Sutra yang tersembunyi di balik pakaian tidak bisa 

dirasakan saat  mata-mata itu ditepuk dan digeledah. Dan, tidak seperti kertas, sutra 

terbakar dengan cepat dan sempurna, sehingga mata-mata dapat menghancurkan 

bukti yang memberatkan, juga memastikan bahwa musuh tidak bisa mendapatkan 

bahkan potongan kode yang berharga. saat  ditekan oleh atasan mengapa Inggris 

harus memakai  sutra langka (yang juga dibutuhkan untuk kebutuhan masa 

perang seperti parasut) untuk kode, Marks mengatakan bahwa itu yaitu  pilihan.

"antara sutra dan sianida."


90

Work Factor

Sebuah algoritma enkripsi disebut breakable atau 'dapat dipecahkan' saat , dengan waktu dan 

data yang cukup, seorang analis dapat menentukan algoritmanya. Namun, sebuah algoritme yang 

secara teoritis dapat dipecahkan mungkin sebenarnya tidak praktis untuk dicoba dipecahkan. Untuk 

mengetahui alasannya, pertimbangkan pesan 25 karakter yang diungkapkan hanya dengan huruf 

besar. Skema cipher yang diberikan mungkin memiliki 2625 (sekitar 1035) kemungkinan dekripsi, 

jadi tugasnya yaitu  memilih yang benar dari 2625. Jika komputer Anda dapat melakukan urutan 

1010 operasi per detik, menemukan dekripsi ini akan membutuhkan urutan 1025 detik, atau kira-

kira 1017 tahun. Dalam hal ini, meskipun kita tahu bahwa secara teoritis kita dapat menghasilkan 

solusi, menentukan algoritma penguraian dengan memeriksa semua kemungkinan dapat diabaikan 

sebab  tidak layak dengan teknologi saat ini.

Kesulitan memecahkan enkripsi disebut work factor (faktor kerja). Sekali lagi, analogi dengan 

kunci fisik mungkin terbukti bermanfaat. Seperti yang Anda ketahui, kunci fisik memiliki takik atau 

ketidakteraturan lainnya, dan takik memicu  pin bergerak di dalam kunci, memungkinkan kunci 

terbuka. Beberapa kunci sederhana, seperti yang dijual dengan koper, hanya memiliki satu takik, 

sehingga kunci ini sering kali dapat dibuka hanya dengan seutas kawat bengkok; lebih buruk lagi, 

beberapa produsen hanya memproduksi sedikit (dan terkadang hanya satu!) desain pin internal 

yang berbeda; Anda mungkin dapat membuka kunci semacam itu hanya dengan beberapa tombol. 

Jelas kunci ini hanya kosmetik.

Kunci rumah biasa memiliki lima atau enam takik, dan setiap takik dapat memiliki sepuluh kedalaman. 

Untuk membuka kunci seperti itu, diperlukan kombinasi yang tepat dari kedalaman takik, yang 

mungkin ada hingga satu juta kemungkinan, jadi membawa cincin sebanyak itu tidak mungkin 

dilakukan. Meskipun secara teori seseorang dapat membuka salah satu dari kunci ini dengan 

mencoba semua kunci yang mungkin, dalam praktiknya jumlah kemungkinan ini  menjadi 

penghalang. Kami mengatakan bahwa faktor kerja untuk membuka salah satu kunci ini tanpa kunci 

yang sesuai cukup besar untuk mencegah sebagian besar serangan. Begitu juga dengan kriptografi: 

Sebuah enkripsi cukup jika pekerjaan mendekripsi tanpa mengetahui kunci enkripsi lebih besar dari 

nilai data yang dienkripsi.

Dua masalah penting lainnya harus ditangani saat  mempertimbangkan pemecahan algoritma 

enkripsi. Pertama, cryptanalyst tidak dapat diharapkan untuk mencoba hanya dengan cara yang 

keras dan panjang. Dalam contoh yang baru saja disajikan, dekripsi yang jelas mungkin memerlukan 

2625 operasi mesin, namun  pendekatan yang lebih cerdik mungkin hanya membutuhkan 1015 operasi. 

Pada kecepatan 1010 operasi per detik, 1015 operasi memakan waktu sedikit lebih dari satu hari. 

Pendekatan yang cerdik tentu layak dilakukan. Bahkan, surat kabar terkadang mencetak teka-teki 

kriptogram yang diselesaikan manusia dengan pena dan kertas saja, jadi jelas ada jalan pintas 

ke mesin komputer kita yang memperkirakan waktu bertahun-tahun atau bahkan satu hari usaha. 

Permainan surat kabar memberikan petunjuk tentang panjang kata dan karakter berulang, sehingga 

manusia memecahkan masalah yang lebih mudah. Seperti yang kami katakan, bagaimanapun, 

cryptanalyst juga memakai  setiap informasi yang mereka miliki.

Beberapa algoritme yang kami pelajari dalam buku ini didasarkan pada masalah "sulit" yang diketahui 

yang membutuhkan waktu lama untuk diselesaikan. namun  cryptanalyst tidak harus memecahkan 

masalah mendasar untuk memecahkan enkripsi satu pesan. pemakai an kontrol yang ceroboh 


91

dapat mengungkapkan kemungkinan kata atau frasa, dan seorang analis dapat memakai  

tebakan terdidik yang dikombinasikan dengan analisis yang cermat untuk menghasilkan semua 

atau sebagian besar pesan penting. Atau cryptanalyst mungkin mempekerjakan mata-mata untuk 

mendapatkan plaintext sepenuhnya di luar sistem; analis lalu  dapat memakai  sepasang 

plaintext dan ciphertext yang sesuai untuk menyimpulkan algoritme atau kunci yang dipakai  

untuk diterapkan ke pesan berikutnya.

Kedua, perkiraan breakability didasarkan pada teknologi saat ini. Kemajuan teknologi besar komputasi 

telah terjadi sejak tahun 1950. Hal-hal yang tidak mungkin dilakukan di 1940 menjadi mungkin pada 

1950-an, dan setiap dekade berikutnya telah membawa perbaikan yang lebih besar. Sebuah dugaan 

yang dikenal sebagai "Hukum Moore" menegaskan bahwa kecepatan prosesor berlipat ganda setiap 

1,5 tahun, dan dugaan ini telah berlaku selama lebih dari tiga dekade. Kami tidak berani mengatakan 

suatu algoritma aman hanya sebab  tidak dapat dipecahkan dengan teknologi saat ini, atau lebih 

buruk lagi, bahwa itu belum rusak.

Dalam buku ini kami menulis bahwa ada sesuatu yang tidak mungkin; misalnya, tidak mungkin 

mendapatkan plaintext dari ciphertext tanpa kunci dan algoritma yang sesuai. Harap dipahami 

bahwa dalam kriptografi ada beberapa hal yang benar-benar tidak mungkin: tidak mungkin atau 

sangat sulit, mungkin, namun  tidak mungkin, tidak.

 

2.5.3 Sistem Enkripsi Simetris dan Asimetris

Ingatlah bahwa dua jenis enkripsi dasar yaitu  simetris (juga disebut "kunci rahasia") dan asimetris 

(juga disebut "kunci publik"). Algoritma simetris memakai  satu kunci, yang berfungsi untuk 

enkripsi dan dekripsi. Biasanya, algoritma dekripsi terkait erat dengan enkripsi, pada dasarnya 

menjalankan enkripsi secara terbalik.

Sistem simetris menyediakan saluran dua arah kepada pemakai nya: A dan B berbagi kunci 

rahasia, dan keduanya dapat mengenkripsi informasi untuk dikirim ke yang lain serta mendekripsi 

informasi dari yang lain. Selama kunci tetap rahasia, sistem juga memberikan keaslian, bukti bahwa 

pesan yang diterima tidak dibuat-buat oleh orang lain selain pengirim yang dinyatakan.  Ini yaitu  

buku keamanan, kami menunjukkan bahwa buktinya sebenarnya yaitu  bahwa pesan ini  

dikirim oleh seseorang yang memiliki atau dapat mensimulasikan efek dari kunci pengirim. Dengan 

banyak ancaman keamanan, ada risiko kecil, namun  bukan nol, bahwa pesan ini  sebenarnya 

bukan dari pengirim namun  merupakan pemalsuan yang kompleks. Keaslian terjamin sebab  hanya 

pengirim yang sah yang dapat menghasilkan pesan yang akan didekripsi dengan baik dengan yang 

dibagikan kunci.

Simetri yaitu  keuntungan utama dari jenis enkripsi ini, namun  juga menimbulkan masalah: Bagaimana 

dua pemakai  A dan B mendapatkan kunci rahasia bersama mereka? Dan hanya A dan B yang 

dapat memakai  kunci itu untuk komunikasi terenkripsi mereka. Jika A ingin berbagi komunikasi 

terenkripsi dengan pemakai  lain C, A dan C memerlukan kunci rahasia bersama yang berbeda. 

Mengelola kunci yaitu  kesulitan utama dalam memakai  enkripsi simetris. Secara umum, n 

pemakai  yang ingin berkomunikasi secara berpasangan membutuhkan n * (n – 1)/2 kunci. Dengan 

kata lain, jumlah kunci yang dibutuhkan meningkat pada tingkat yang sebanding dengan kuadrat 


92

dari jumlah pemakai ! Jadi properti dari sistem enkripsi simetris yaitu  bahwa mereka memerlukan 

sarana distribusi kunci.

Sistem kunci asimetris atau publik, di sisi lain, biasanya memiliki pasangan kunci yang sama persis. 

Kunci diproduksi bersama atau satu diturunkan secara matematis dari yang lain. Dengan demikian, 

suatu proses menghitung kedua kunci sebagai satu set.

namun  untuk kedua jenis enkripsi, kunci harus disimpan dengan baik. Setelah kunci simetris atau 

privat diketahui oleh orang luar, semua pesan yang ditulis sebelumnya atau di masa depan dapat 

didekripsi (dan sebab nya dibaca atau dimodifikasi) oleh orang luar. Jadi, untuk semua algoritma 

enkripsi, manajemen kunci yaitu  masalah utama. Ini melibatkan penyimpanan, pengamanan, dan 

pengaktifan kunci.

Sistem asimetris unggul dalam manajemen kunci. Dengan pendekatan kunci publik, Anda dapat 

mengirim kunci publik dalam pesan email atau mempostingnya di direktori publik. Hanya kunci 

pribadi yang sesuai, yang mungkin tidak diungkapkan, yang dapat mendekripsi apa yang telah 

dienkripsi dengan kunci publik.

 

2.5.4 Streaming dan Blokir Cipher

A block cipher yaitu  algoritma serbaguna yang mengimplementasikan permutasi kunci yang 

bergantung pada nilai-nilai yang merupakan urutan dari sejumlah bit yang tetap (disebut "blok"). Ini 

dapat dipakai  untuk berbagai peran dalam berbagai jenis protokol kriptografi. Salah satu peran 

ini  yaitu  enkripsi massal aliran data yang panjang; untuk mencapai hal seperti itu, cipher 

blok harus dipakai  dengan mode operasi yang sesuai (alias "mode chaining"), yang tradisional 

yaitu  CBC, dan mode baru yang trendi menjadi RKT.

A stream cipher yaitu  algoritma khusus untuk tujuan enkripsi massal dari aliran data yang panjang. 

Idenya yaitu  bahwa, dengan kehilangan fleksibilitas cipher blok, akan mungkin untuk membuat 

algoritma yang lebih efisien (mis. Sesuatu yang mengenkripsi data lebih cepat).

Salah satu karakterisasi terakhir dari algoritma enkripsi berkaitan dengan sifat data yang akan 

disembunyikan. Misalkan Anda sedang streaming video, mungkin film, dari satelit. Aliran mungkin 

datang dalam semburan, tergantung pada hal-hal seperti beban pada satelit dan kecepatan di mana 

pengirim dan penerima dapat beroperasi. Untuk aplikasi ini  Anda dapat memakai  apa 

yang disebut enkripsi aliran, di mana setiap bit, atau mungkin setiap byte, dari aliran data dienkripsi 

secara terpisah. Sebuah model stream enciphering ditunjukkan pada Gambar 2-19. Perhatikan 

bahwa simbol input diubah satu per satu. Keuntungan dari stream cipher yaitu  dapat langsung 

diterapkan ke item data apa pun yang siap dikirim. namun  kebanyakan algoritma enkripsi melibatkan 

transformasi yang kompleks; untuk melakukan transformasi ini pada satu atau beberapa bit pada 

suatu waktu mahal.


93

Gambar 2-19 Penyandian Aliran

Untuk mengatasi masalah ini dan mempersulit cryptanalyst untuk memecahkan kode, kita dapat 

memakai  cipher blok. Sebuah cipher blok mengenkripsi sekelompok simbol plaintext sebagai 

satu blok. Sebuah algoritma block cipher melakukan pekerjaannya pada sejumlah data plaintext 

sekaligus. Seperti mesin yang memotong 24 cookie sekaligus, algoritme ini memanfaatkan skala 

ekonomi dengan mengoperasikan sejumlah besar data sekaligus. Blok untuk algoritma ini  

biasanya 64, 128, 256 bit atau lebih. Ukuran blok tidak perlu memiliki hubungan khusus dengan 

ukuran karakter. Block cipher bekerja pada blok plaintext dan menghasilkan blok ciphertext, seperti 

yang ditunjukkan pada Gambar 2-20. Pada gambar, kotak tengah mewakili mesin enkripsi: Pasangan 

plaintext sebelumnya diubah menjadi po, yang saat ini dikonversi yaitu  IH, dan mesin akan segera 

mengonversi ES.

Gambar 2-20 Blok Cipher

Cipher aliran mengenkripsi satu bit atau satu byte pada satu waktu; cipher blok mengenkripsi 

sejumlah bit tetap sebagai potongan tunggal.

Meskipun keduanya yaitu  sandi simetris, stream cipher didasarkan pada menghasilkan keystream 

cryptograpic "tak terbatas", dan memakai nya untuk mengenkripsi satu bit atau byte pada suatu 

waktu (mirip dengan pad satu kali), sedangkan cipher blok bekerja pada potongan data yang lebih 


94

besar. (yaitu blok) pada suatu waktu, sering menggabungkan blok untuk keamanan tambahan 

(misalnya AES dalam mode CBC).

• Stream cipher biasanya lebih cepat dari pada block, namun  itu memiliki harganya sendiri.

• Cipher blok biasanya memerlukan lebih banyak memori, sebab  mereka bekerja pada potongan 

data yang lebih besar dan sering memiliki "terbawa" dari blok sebelumnya, sedangkan sejak 

stream cipher bekerja pada hanya beberapa bit pada satu waktu mereka memiliki persyaratan 

memori yang relatif rendah (dan sebab  itu lebih murah untuk terapkan dalam skenario terbatas 

seperti perangkat tertanam, firmware, dan perangkat keras khusus).

• Stream cipher lebih sulit diimplementasikan dengan benar, dan rentan terhadap kelemahan 

berdasarkan pemakai an - sebab  prinsipnya mirip dengan pad sekali pakai, keystream memiliki 

persyaratan yang sangat ketat. Di sisi lain, itu biasanya bagian yang sulit, dan dapat diturunkan 

ke mis. kotak eksternal.

• sebab  cipher blok mengenkripsi seluruh blok pada satu waktu (dan lebih jauh lagi memiliki mode 

"umpan balik" yang paling direkomendasikan), mereka lebih rentan terhadap kebisingan dalam 

transmisi, yaitu jika Anda mengacaukan satu bagian dari data, sisanya mungkin tidak dapat 

dipulihkan. Sedangkan dengan stream cipher byte byte dienkripsi secara individu tanpa koneksi 

ke potongan data lainnya (dalam kebanyakan cipher/mode), dan sering memiliki dukungan untuk 

gangguan pada saluran.

Juga, stream cipher tidak memberikan perlindungan integritas atau otentikasi, sedangkan 

beberapa cipher blok (tergantung pada mode) dapat memberikan perlindungan integritas, selain 

kerahasiaan.

sebab  semua hal di atas, stream cipher biasanya terbaik untuk Studi