BAB II TINJAUAN PUSTAKA 2.1 Sistem Database 2.1.1 Pengertian Database Kata “database” diambil dari bahasa inggris, terdiri dari dua kata yaitu base dapat diartikan sebagai dasar, landasan, atau tempat berkumpul. Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Database dapat didefenisikan dalam sejumlah sudut pandang seperti: • Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. • Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemkian rupa dan tanpa redundansi yang tidak perlu untuk memenuhi berbagai kebutuhan. • Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. Dari beberapa definisi-definisi tersebut, dapat dikatakan bahwa database mempunyai berbagai sumber data dalam pengumpulan data, bervariasi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa pengguna untuk berbagai kepentingan. Universitas Sumatera Utara 2.1.2 Konsep Database Dalam mengorganisasikan data dikenal istilah hirarki data yang terdiri dari: elemen data, record dan file. Yang disebut dengan elemen data adalah unit data terkecil, tidak dapat dibagi lagi menjadi unit yang berarti. Sebagai contoh: dalam record gaji, elemen data berupa nama, nomor pegawai, nomor jaminan sosial, upah dan jumlah tanggungan keluarga. Record merupakan hirarki setingkat lebih tinggi dari elemen data. Satu record terdiri dari semua elemen data yang berhubungan dengan objek atau kegiatan tertentu. Semua record sejenis disusun menjadi satu file. File adalah kumpulan record data yang berhubungan dengan suatu subjek tertentu. Database adalah suatu koleksi data yang terintegrasi, diorganisasikan dan disimpan dengan suatu cara yang memudahkan pengambilan kembali. Integrasi logis dari record-record dalam banyak file ini disebut konsep database yang bertujuan untuk meminimumkan redundansi data (artinya data yang sama disimpan dalam beberapa file) dan mencapai independensi data (kemampuan untuk membuat perubahan dalam struktur data tanpa membuat perubahan pada program yang memproses data). Konsep dasar database adalah kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah database memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya, penjelasan ini disebut skema. Skema menggambarkan objek yang diwakili suatu database dan hubungan di antara objek tersebut. Ada banyak cara untuk mengorganisasi skema atau memodelkan struktur database, ini dikenal sebagai model database atau model data. Model Universitas Sumatera Utara database adalah sekumpulan konsep yang digunakan untuk menjelaskan struktur dari database dan memberikan gambaran tingkat-tingkat abstraksi data. Model yang umum digunakan sekarang adalah model relasional. Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. Model yang lain seperti model hirarkis dan model jaringan menggunakan cara yang lebih eksplisit untuk mewakili hubungan antar tabel. Gambar 2.1 Konsep sistem database 2.1.3 Sistem Database Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional dengan fungsi khusus yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses tertentu. Database hanyalah sebuah objek yang pasif. Database tidak akan pernah berguna jika tidak ada penggeraknya. Yang menjadi penggeraknya secara langsung adalah DBMS (Database Management System) yaitu aplikasi yang menangani semua Universitas Sumatera Utara pengaksesan ke database. Gabungan antara database dan DBMS menghasilkan sistem database. Karena itu, secara umum sistem database dapat dikatakan sebagai sistem yang terdiri atas kumpulan file (tabel) yang saling berhubungan (dalam sebuah database di sebuah sistem komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pengguna untuk mengakses dan memanipulasi file-file tersebut. 2.1.4 Abstraksi Data Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas antar muka dalam memperlihatkan data kepada pengguna. Untuk itu, sistem tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara. Karena itu, seringkali data yang terlihat oleh pengguna sebelumnya berbeda dengan yang disimpan secara fisik. Gambar 2.2 Tiga level abstraksi data Abstraksi data merupakan tingkatan/level tentang bagaimana melihat data dalam sebuah sistem database, yang meliputi sbb : 1. Level Fisik Universitas Sumatera Utara Merupakan level terendah dalam abstraksi data, yang menunjukkan bagaimana sesungguhnya suatu data disimpan. Pada level ini, pengguna melihat data sebagai gabungan dari struktur dan datanya sendiri. Pengguna juga berkompeten dalam mengetahui bagaimana representasi fisik dari penyimpanan dan pengorganisasian data. Pada level ini kita berurusan dengan data sebagai teks, sebagai angka atau bahkan melihatnya sebagai himpunan bit data. 2. Level Konseptual Merupakan level berikutnya dalam abstraksi data yang menggambarkan data apa yang sebenarnya disimpan dalam database dan hubungannya dengan data yang lain. Pengguna pada level ini dapat mengetahui misalnya bahwa data pegawai disimpan atau direpresentasikan dalam beberapa tabel, seperti tabel biodata, tabel pendidikan, tabel pekerjaan, tabel keluarga dan lain sebagainya. 3. Level Penampakan Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari database. Banyak pengguna dalam sistem database tidak akan terlibat dengan semua data yang tersimpan. Para pengguna umumnya hanya membutuhkan sebagian data atau informsi dalam database yang kemunculannya di mata pengguna diatur oleh aplikasi pengelola database. Aplikasi ini juga yang mengkonversi data secara fisik menjadi data yang bermakna kepada pengguna. Misalnya: data hari yang disimpan dalam bentuk kode (1 untuk senin, 2 selasa dst) yang kemudian ditampilkan bukan dalam bentuk kodenya, tapi sudah dalam bentuk nama harinya (senin, selasa, rabu dan seterusnya). Data yang dinikmati pengguna juga bahkan sama sekali berbeda dengan representasi fisiknya, misalnya data yang dapat divisualkan sebagai gambar, data Universitas Sumatera Utara yang dapat diperdengarkan sebagai suara dan lain sebagainya. Data yang diperlihatkan juga bisa saja tidak berasal dari hanya sebuah tabel, tapi mewakili relasi antar tabel. Tapi bagi pengguna yang menggunakannya terasa sebagai suatu kesatuan data yang kompak. 2.2 Database Relasional 2.2.1 Pengertian Database Relasional Pada model relasional, database akan disebar atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data (row/record) dan lajur vertikal yang biasa disebut dengan kolom (column/field). Pertemuan antara baris dengan kolom disebut item data (data value), tabel-tabel yang ada terhubung membentuk relasi sedemikian rupa menggunakan kunci relasional sehingga dapat meminimalkan duplikasi data. Database relasional diperkenalkan pertama kali oleh E.F. Codd. Model database menunjukkan suatu mekanisme yang digunakan untuk mengelola data secara fisik dalam memori sekunder yang akan berdampak pula pada bagaimana kita mengelompokkan dan membentuk keseluruhan data yang terkait dalam sistem yang sedang kita tinjau. Database relasional adalah tipe database yang paling populer digunakan saat ini. Banyak perkembangan yang telah dibuat dari model database sebelumnya. Data menjadi lebih mudah dimanajemen terutama melalui penggunaan batasan integritas. Pengambilan data merupakan proses penyaringan yang memungkinkan pengguna memvisualisasikan database melalui struktur tabel relasional dan meminta data tertentu tanpa perlu memahami struktur databasenya. Universitas Sumatera Utara 2.2.2 Istilah-istilah dalam Database Relasional • Relasi Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya. • Entitas Merupakan sesuatu yang dapat diidentifikasi dari suatu sistem database, bisa berupa objek, orang, tempat, kejadian atau konsep yang informasinya akan disimpan di database. Misalnya pada sistem database akademik, yang menjadi entitas adalah, mahasiswa, dosen, mata kuliah dan lain-lain. Dalam aplikasi nantinya, penggunaan istilah entitas sering disamakan dengan istilah tabel. Disebut tabel, karena dalam merepresentasikan datanya diatur dalam bentuk baris dan kolom. • Atribut (Field) Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki atribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data. Dalam tabel database, field ini disebut juga kolom. Atribut/field merupakan bagian dari record yang menunjukkan suatu item Universitas Sumatera Utara data yang sejenis, misalnya : field nama, field NIM dan lain sebagainya. Setiap field harus mempunyai nama dan tipe data tertentu. • Baris (Record) Dalam tabel database, record disebut juga baris. Record merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang/sesuatu, misalnya: NPM, nama mahasiswa, alamat, kota perbarisnya. • Kunci Relasi (relational key) Untuk secara unik mengenali suatu baris (record), setiap tabel harus memiliki suatu primary key. Primary key merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan record secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada. 2.2.3 Bahasa query Bahasa query adalah suatu bahasa yang menyediakan fasilitas bagi user untuk mengakses informasi dari database. Pada umumnya level bahasa ini lebih tinggi dari bahasa pemrograman standar. Bahasa query dapat dikategorikan sebagai prosedural dan non-prosedural. Universitas Sumatera Utara Dalam bahasa prosedural, user menginstruksikan ke sistem agar membentuk serangkaian operasi dalam database untuk mengeluarkan hasil yang diinginkan. Dalam bahasa non-prosedural, user mendeskripsikan informasi yang diinginkan tanpa memberikan prosedur detail untuk menghasilkan informasi tersebut. Sebagian besar sistem database relasional yang beredar dipasaran menawarkan bahasa query dengan pendekatan prosedural dan non-prosedural. Beberapa bahasa query yang murni adalah: aljabar relasional (relational algebra) merupakan bahasa query prosedural, sedangkan kalkulus relasional tupel (tuple relational calculus) dan kalkulus relasional domain (domain relational calculus) adalah non-prosedural. Bahasa Komersial adalah bahasa query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya. Contohnya antara lain: QUEL (Berbasis pada kalkulus relasional), QBE (Berbasis pada kalkulus relasional) dan SQL (Berbasis pada kalkulus dan aljabar relasional). 2.3 Keamanan Sistem Database Seiring dengan database semakin menantang. lama Pihak yang perkembangan menjadi teknologi, pekerjaan bertanggung jawab yang pengelolaan semakin terhadap keamanan sulit dan sistem keamanan database harus dapat memastikan tiga hal utama dalam keamanan database yaitu Universitas Sumatera Utara kerahasiaan (confidentiality), integritas (Integrity) dan ketersediaan (availability). 2.3.1 Kerahasiaan (Confidentiality) Kerahasiaan dapat diartikan sebagai perlindungan terhadap data dalam sistem database sehingga tidak dapat diakses oleh pihak yang tidak berwenang. Banyak yang beranggapan bahwa tipe perlindungan seperti ini hanya penting untuk kalangan militer dan pemerintahan, dimana sangat perlu merahasiakan rencana dan data rahasia negara. Akan tetapi kerahasian juga sangat penting bagi kalangan bisnis yang perlu melindungi rahasia dagang mereka dari kompetitor, atau untuk mencegah akses terhadap data-data yang dianggap sensitif oleh orangorang yang tidak berhak didalam perusahaan (contohnya data personalia, medis, dan lainnya). Isu seputar privasi yang semakin diperhatikan akhir-akhir ini, telah memaksa badan pemerintahan dan perusahaan swasta sekalipun untuk menjaga kerahasiaan informasi secara lebih baik lagi, demi melindungi datadata pribadi yang disimpan dalam sistem databasenya. Kerahasiaan harus terdefinisi dengan baik, dan prosedur untuk menjaga kerahasiaan informasi harus diterapkan secara berhati-hati. Aspek penting dari kerahasiaan adalah pengidentifikasian dan otentikasi terhadap pengguna. Identifikasi positif dari setiap pengguna sangat penting untuk memastikan efektifitas dari kebijakan yang menentukan siapa saja yang berhak untuk mengakses data tertentu. Model yang sering dipergunakan untuk menggambarkan penerapan sistem kerahasiaan informasi adalah model proses Bell-LaPadula . Model ini mendefinisikan hubungan antara objek (contohnya: field, data), dan subjek Universitas Sumatera Utara (contohnya : orang atau proses). Hubungan diantara keduanya dijelaskan dalam istilah- istilah yang berhubungan dengan tingkat hak akses subjek dan tingkat sensitifitas dari objek. 2.3.2 Integritas (Integrity) Integritas adalah perlindungan terhadap sistem database dari perubahan yang tidak terotorisasi, baik secara sengaja maupun secara tidak sengaja. Tantangan yang dihadapi setiap sistem keamanan database adalah untuk memastikan bahwa data terpelihara dalam keadaan yang sesuai dengan harapan dari pengguna. Walau tidak dapat meningkatkan akurasi dari dimasukkan kedalam sistem oleh pengguna, inisiatif data keamanan yang data memastikan bahwa setiap perubahan memang benar-benar dikehendaki dan dilakukan secara benar. Ada tiga sasaran dari integritas yaitu : 1. Mencegah pengguna yang tidak berhak melakukan perubahan data 2. Mencegah pengguna yang berhak, melakukan perubahan yang tidak benar atau tidak terotorisasi 3. Menjaga konsistensi data dalam database secara internal dan eksternal. Elemen tambahan dari integritas adalah kebutuhan untuk melindungi proses atau program yang digunakan untuk memanipulasi data dari modifikasi yang tidak terotorisasi. Saat paling penting dalam pemrosesan data adalah memastikan integritas data untuk mencegah penipuan (fraud) dan kesalahan (error). Dengan demikian, sangat penting diperhatikan bahwa tidak ada pengguna yang data sensitif, dapat mengubah data hingga menyebabkan hilangnya atau menyebabkan informasi yang dipakai untuk mengambil Universitas Sumatera Utara keputusan yang reliabilitasnya diragukan. Integritas bergantung kepada kontrol terhadap akses, dengan demikian sangat penting untuk mengidentifikasi setiap orang yang berusaha mengakses secara secara positif dan unik. 2.3.3 Ketersediaan (Availability) Ketersediaan ini dapat diartikan sebagai kepastian bahwa sebuah sistem informasi dapat diakses oleh pengguna yang berhak kapan saja sistem informasi tersebut dibutuhkan. Masalah-masalah seputar urusan fisik, teknis dan administratif merupakan aspek penting dari inisiatif keamanan informasi untuk mengatasi isu ketersediaan. Masalah seputar urusan fisik termasuk kontrol terhadap akses demi mencegah orang yang tidak berhak untuk berhubungan langsung dengan pusat data, berbagai mekanisme pengendalian ancaman api dan air, hot site dan cold site yang akan digunakan sebagai tempat pemrosesan data alternatif, dan fasilitas penyimpanan backup media yang berjauhan dari data center utama. Masalah seputar urusan teknis termasuk mekanisme fault-tolerance (contohnya redundansi hardware, disk mirroring, dan aplication checkpoint restart), electronic vaulting (contohnya backup yang otomatis ke lokasi yang aman dan berjauhan dari data center utama), dan yang tidak kalah penting adalah kontrol akses dari sisi software untuk mencegah user yang tidak berhak mencoba mengganggu jalannya layanan pusat data. Masalah seputar urusan administratif termasuk kebijaksanaan kontrol akses, prosedur operasional, contingency plan, dan pelatihan user. Walau Universitas Sumatera Utara terlihat kurang penting, pelatihan yang memadai untuk para operator, programmer, dan petugas keamanan akan dapat membantu menghindari gangguan terhadap databa s e yang bisa menyebabkan hilangnya ketersediaan sistem database. Sebagai tambahan, ketersediaan sistem database bisa terhalangi apabila seorang petugas keamanan secara tidak sengaja mengunci database kontrol akses saat melakukan pemeliharaan rutin, sehingga mencegah user yang berhak untuk mengakses sistem dalam waktu yang cukup panjang. 2.3.4 Metode-metode Identifikasi dan Otentikasi Elemen antarmuka pengguna yang pertama kali ditemui kebanyakan subjek ketika mengakses sistem database adalah identifikasi dan otentikasi. Tahap identifikasi memperkenankan subjek mengklaim sebagai entitas tertentu dengan menunjukkan bukti-bukti identitas. Bukti-bukti tersebut dapat sesederhana identtas pengguna atau nomor PIN, atau yang lebih kompleks seperti atribut fisik. Setelah subjek mengklaim suatu identitas, sistem memvalidasi apakah pengguna tersebut sudah terdaftar sebagai pengguna database dan membuktikan bahwa subjek tesebut adalah benar-benar sebagai entitas yang diklaimnya. Tahap otentikasi meminta subjek menunjukkan informasi tambahan yang berkesesuaian dengan informasi tentang subjek tesebut yang telah disimpan. Dua tahap ini sering disebut dengan otentikasi dua faktor, yang memberikan proteksi terhadap subjek yang tidak memiliki otoritas untuk mengakses sistem. Setelah subjek diotentikasi, sistem kontrol akses mengevaluasi hak dan izin subjek untuk mengabulkan atau menolak permintaan akses terhadap objek. Tahap ini disebut dengan tahap otorisasi. Universitas Sumatera Utara 2.4 Akses Kontrol dalam Database Aspek keamanan dari database menjadi pemikiran utama dari banyak organisasi. Kebutuhan keamanan database menjadi penting karena nilai dari data yang disimpan sangat berharga bagi organisasi tersebut. Tidak semua data mempunyai nilai yang sama. Setiap bagian data mempunyai kepentingan dan nilai yang berbeda pula. Untuk itu diperlukan suatu metode pengaturan dari keamanan data. Hal ini penting karena untuk data dengan jumlah dan jenis yang besar diperlukan manajemen data yang baik. Untuk data dengan kapasitas volume data yang relatif kecil mungkin cukup dengan cara administrasi tunggal, dengan kata lain semua hak istimewa (privilege) dari data yang disimpan diatur oleh seorang adminstrator. Masalah akan muncul jika volume data berkembang menjadi sangat besar, maka manajemen dari data tersebut tidak cukup diatur oleh seorang administrator saja, karena itu diperlukan suatu teknik yang dapat digunakan untuk mengatur akses kontrol dari sebuah objek dalam sistem database. 2.4.1 Pengertian Akses Kontrol Kontrol adalah sebuah mekanisme yang mengatur mana yang berhak dan tidak berhak melakukan akses terhadap sebuah objek. Kontrol bisa menjadi penjaga keamanan informasi dari serangan. Akses kontrol merupakan fitur-fitur keamanan yang mengontrol bagaimana pemakai sistem berkomunikasi dan berinteraksi dengan sistem dan Universitas Sumatera Utara sumber daya lainnya. Akses kontrol melindungi sistem dan sumber daya dari akses yang tidak berhak dan umumnya menentukan tingkat otorisasi setelah prosedur otentikasi berhasil dilengkapi. Akses adalah aliran informasi antara subjek dan objek. Sebuah subjek merupakan entitas aktif yang meminta akses ke suatu objek atau data dalam objek tersebut. Sebuah subjek dapat berupa pemakai, program, atau proses yang mengakses informasi untuk menyelesaikan suatu tugas tertentu. Ketika sebuah program mengakses sebuah file, program menjadi subjek dan file menjadi objek. Objek adalah entitas pasif yang mengandung informasi. Objek bisa sebuah entitas, data atau field pada tabel yang berada di dalam database. 2.4.2 Subjek dan Objek Kontrol akses adalah semua yang mengatur tentang proses pengontrolan akses. Sebuah entitas yang meminta akses ke sebuah sumber daya disebut sebagai akses dari subjek. Sebuah subjek merupakan entitas yang aktif karena dia menginisiasi sebuah permintaan akses. Sebuah sumber daya yang akan diakses oleh subjek disebut sebagai objek dari akses. Objek dari akses merupakan bagian yang pasif dari akses karena subjek melakukan akses terhadap objek tersebut. Jadi tujuan dari kebijakan kontrol akses adalah mengijinkan hanya subjek yang mempunyai otorisasi yang bisa mengakses objek yang sudah diijinkan untuk diakses. Hal ini mungkin juga ada subjek yang sudah mempunyai otorisasi tapi tidak mengizinkan akses terhadap spesifik objek tertentu. Universitas Sumatera Utara 2.4.3 Least Privilege Organisasi-organisasi menggunakan beberapa kebijakan dalam menerapkan peraturan kontrol akses. Filosofi yang paling tidak aman (paling berbahaya) adalah memberikan hak akses kepada setiap orang secara default. Memang kelihatannya mudah akan tetapi hal ini mudah juga untuk dibobol. Jadi pada metode ini, kita harus memastikan bahhwa semua akses harus dibatasi karena administrasi yang buruk bisa menyebabkan lubang kemanan. Filosofi dari least privilege adalah sebuah subjek hanya diberikan hak sesuai dengan keperluannya tidak lebih. Least privilege membantu menghindari authorization creep, yaitu sebuah kondisi dimana sebuah subjek memiliki hak akses lebih dari yang sebenarnya dibutuhkan. 2.4.4 Model Akses Kontrol Model akses kontrol sangat berfungsi dalam menentukan jenis kontrol akses yang akses diperlukan kontrol dalam mendukung kebijakan keamanan. Model ini menyediakan level konseptual dari kebijakan keamanan. Hal ini akan mengijinkan kita untuk melakukan pemetaan antara tujuan dan petunjuk dari kebijakan keamanan terhadap masalah yang spesifik. Penerapan akses kontrol pada subjek sistem (sebuah entitas aktif seperti individu atau proses) terhadap objek sistem (sebuah entitas pasif seperti sebuah file) berdasarkan aturan (rules). Model kontrol akses merupakan sebuah framework yang menjelaskan bagaimana subjek mengakses objek. Model ini menggunakan teknologi kontrol akses dan mekanisme sekuriti untuk menerapkan aturan dan tujuan suatu model. Universitas Sumatera Utara Ada tiga tipe utama model kontrol akses yaitu mandatory, discretionary, dan role-based. Tiap tipe model memakai metode berbeda untuk mengkontrol bagaimana subjek mengakses objek dan mempunyai kelebihan serta keterbatasan masing- masing. Beberapa model dipakai secara eksklusif dan kadang-kadang model tersebut dikombinasikan sehingga mampu mencapai tingkat keperluan keamanan yang dibutuhkan. 2.4.4.1 Mandatory Access Control Otorisasi suatu akses subjek terhadap objek bergantung pada label menunjukkan ijin otorisasi suatu subjek dan klasifikasi dari objek. Pada mandatory access control, pengguna dan pemilik data tidak memiliki banyak kebebasan untuk menentukan siapa yang dapat mengakses file-file yang dibuatnya. Pemilik data dapat mengijinkan pihak lain untuk mengakses file miliknya namun sistemlah yang membuat keputusan final dan dapat membatalkan kebijakan dari pemilik data. Model ini lebih terstruktur dan ketat serta berdasarkan label keamanan sistem. Pengguna diberikan ijin otorisasi dan data diklasifikasikan. Klasifikasi disimpan di label sekuriti pada sumber daya. Klasifikasi label menentukan tingkat kepercayaan pengguna yang harus dimiliki untuk dapat mengakses suatu file. Ketika sistem membuat keputusan mengenai pemenuhan permintaan akses ke suatu objek, keputusan akan didasarkan pada ijin otorisasi subjek dan klasifikasi objek. Aturan-aturan bagaimana subjek mengakses data dibuat oleh manajemen, dikonfigurasikan oleh administrator, dijalankan oleh sistem dan Universitas Sumatera Utara didukung oleh teknologi sekuriti. 2.4.4.2 Discretionary Access Control Subjek memiliki otoritas, dengan batasan tertentu, untuk menentukan objek-objek apa yang dapat diakses. Contohnya adalah penggunaan daftar kontrol akses (access control list). Daftar kontrol akses merupakan sebuah daftar yang menunjuk pengguna-pengguna mana yang memiliki hak ke sumber daya tertentu. Misalnya daftar tabular akan menunjukkan subjek atau pengguna mana yang memiliki akses ke objek dan hak apa yang mereka punya berkaitan dengan objek tersebut. Kontrol akses triple terdiri dari pengguna, program, dan file dengan hubungan hak akses terkait dengan tiap pengguna. Tipe kontrol akses ini digunakan secara lokal, dan mempunyai situasi dinamis dimana subjek-subjek harus memiliki pemisahan untuk menentukan sumber daya tertentu yang diijinkan untuk diakses oleh pengguna. Ketika pengguna dengan batasan tertentu memiliki hak untuk merubah kontrol akses ke objek-objek tertentu, hal ini disebut sebagai user-directed discretionary access control. Sedangkan kontrol akses (identity-based access control) adalah tipe kontrol berbasis identitas akses terpisah berdasarkan identitas suatu individu. Dalam beberapa kasus, pendekatan hybrid juga digunakan, yaitu yang mengkombinasikan fitur-fitur user-based dan identity-based discretionary access control. Jika pengguna membuat suatu file, maka ia merupakan pemilik file tersebut. Kepemilikan juga bisa diberikan kepada individu spesifik. Sistem yang Universitas Sumatera Utara menerapkan model discretionary access control memungkinkan pemilik sumber daya untuk menentukan subjek-subjek apa yang dapat mengakses sumber daya spesifik. Model ini dinamakan discretionary karena kontrol akses didasarkan pada pemisahan pemilik. Akses dibatasi berdasarkan otorisasi yang diberikan pada pengguna. Ini berarti bahwa subjek-subjek diijinkan untuk menentukan tipe akses apa yang dapat terjadi pada objek yang mereka miliki. Jika organisasi menggunakan model discretionary access control, administrator jaringan dapat mengijinkan pemilik sumber daya mengontrol siapa yang dapat mengakses file/sumber daya tersebut. Implemetasi umum dari discretionary access control adalah melalui access control list yang dibuat oleh pemilik, diatur oleh administrator jaringan, dan dijalankan oleh sistem. Dengan demikian kontrol ini tidak termasuk dalam lingkungan terkontrol yang terpusat dan dapat memberi kemampuan pada pengguna untuk mengakses informasi secara dinamis, kebalikan dari aturan yang lebih statis pada mandatory access control. 2.4.4.3 Non Discretionary (Role-Based) Access Control Otoritas sentral menentukan subjek-subjek apa yang mempunyai akses ke objek-objek tertentu berdasarkan kebijakan keamanan organisasi. Kontrol akses bisa berdasarkan peran individu dalam suatu organisasi (role-based) atau tanggung jawab subjek dan tugasnya (task-based). Dalam organisasi dimana sering terdapat adanya perubahan/pergantian Universitas Sumatera Utara personel, non-discretionary access control merupakan model yang tepat karena kontrol akses didasarkan pada peran individu atau jabatan dalam suatu organisasi. Kontrol akses ini tidak perlu diubah saat individu baru masuk menggantikan individu lama. Tipe lain dari non-discretionary access control adalah kontrol akses lattice-based. Dalam model lattice (lapis tingkatan), terdapat pasangan- pasangan elemen yang memiliki batas tertinggi terkecil dari nilai dan batas terendah terbesar dari nilai. Untuk menerapkan konsep kontrol akses ini, pasangan elemen adalah subjek dan objek, dan subjek memiliki batas terendah terbesar serta batas tertinggi terkecil untuk hak akses pada suatu objek. Selain itu terdapat model role-based access control yang juga sebagai non-discretionary access control. Model ini menerapkan seperangkat aturan terpusat pada kontrol untuk menentukan bagaimana subjek dan objek berinteraksi. Tipe model ini mengijinkan akses ke sumber daya berdasarkan peran yang pengguna tangani dalam suatu organisasi. Administrator menempatkan pengguna dalam peran dan kemudian memberikan hak akses pada peran tersebut. 2.5 Mandatory Access Control (MAC) Database berukuran besar berisi sejumlah besar informasi dan biasanya mempunyai beberapa kelompok pengguna. Kebanyakan pengguna hanya perlu untuk mengakses sebagian kecil database untuk menjalankan tugasnya. Mengizinkan pengguna memiliki akses tidak terbatas pada semua data tidak Universitas Sumatera Utara direkomendasikan, dan DBMS sebaiknya menyediakan mekanisme untuk mengontrol akses ke data. DBMS menawarkan dua pendekatan utama untuk kontrol data. Dicretionary acceess control didasarkan pada konsep hak akses, atau privilege dan mekanisme untuk memberikan pengguna privilege. Privilege mengizinkan pengguna untuk mengakses beberapa objek data dalam cara tertentu (misalnya, untuk membaca atau memodifikasi). Pengguna yang membuat objek database seperti tabel atau view secara otomatis mendapatkan privilege yang dapat diterapkan pada objek tersebut. Selanjutnya DBMS terus menelusuri bagaimana privilege ini diberikan ke pengguna lain dan mungkin dicabut, dan memastikan bahwa pada setiap waktu hanya pengguna dengan privilege penting yang dapat mengakses objek. Akses kontrol dapat diartikan juga sebagai bentuk keamanan dengan jalan membatasi akses subjek terhadap objek. Subjek harus diberikan hak akses secara jelas tentang operasi apa saja yang mungkin dilakukan. Selain itu juga harus ditentukan syarat (requirement) apa saja yang harus dipenuhi agar dapat mengakses objek. Sistem yang mengimplementasikan Mandatory access control (MAC) memerlukan label untuk setiap subjek dan objek, label ini berguna sebagai identitas dari masing-masing subjek dan objek. Mekanisme discretionary access control (DAC) secara umum efektif namun mempunyai kelemahan tertentu. Secara khusus, pengguna tidak sah dapat menipu pengguna sah untuk memperlihatkan data senstif. Mandatory access control didasarkan pada kebijakan pengembangan sistem yang tidak dapat diubah pengguna perseorangan. Universitas Sumatera Utara Dalam pendekatan ini, tiap objek database diberikan kelas keamanan, tiap pengguna diberikan izin untuk kelas keamanan, dan aturan ditentukan pada membaca dan menulis objek yang diberikan berdasar pada aturan tertentu yang mencakup level keamanan objek dan izin pengguna. Aturan tersebut mencari untuk memastikan bahwa data sensitif tidak pernah dapat dilewati oleh pengguna tanpa izin yang diperlukan. 2.5.1 Pengelompokkan MAC Kebijakan mandatory access dapat dikelompokkan kedalam dua bagian yaitu berdasarkan kerahasiaan dan berdasarkan kesatuan/integritas • Berdasarkan kerahasiaan Tujuan utama dari kebijakan keamanan mandatory berdasarkan kerahasiaan adalah untuk melindungi kerahasiaan data. Sebagai konsekuensinya, level keamanan dari kelas akses dihubungkan dengan sebuah objek dengan melihat seberapa penting isinya sedangkan level keamanan dari kelas akses dihubungkan dengan sebuah subjek disebut clearance atau ijin yang mencerminkan tingkat kepercayaan yang diberikan ke dalam subjek untuk tidak menyingkap informasi rahasia. Kumpulan kategori dihubungkan dengan subjek dan juga objek yang mendefenisikan area kewenangan dari subjek dan data tersebut. Seorang pengguna dapat berhubungan dengan sistem dengan menggunakan clearance yang dimilikinya atau akses apapun yang didominasi oleh ijinnya. Sebuah proses dibangkitkan oleh pengguna yang terhubung dengan sebuah kelas akses khusus yang memiliki kelas akses yang sama dengan sebagai pengguna. Universitas Sumatera Utara Pendekatan ini mencegah aliran informasi dari subjek/objek level tinggi ke subjek/objek level rendah sehingga menjamin kepastian (confidentiality) data. Akan tetapi terlalu bersifat membatasi, sebagai contoh: data mungkin saja perlu di downgrade. Untuk menyelesaikan masalah ini, maka pendekatan berdasarkan kerahasiaan mengijinkan pengecualian kepada subjek terpercaya dan dapat memastikan kevalidan data. • Berdasarkan integritas Tujuan utama dari kebijakan ini adalah untuk mencegah subjek secara tidak langsung memodifikasi informasi yang bukan haknya. Derajat kepercayaan ditempatkan pada tiap subjek yang dapat menambah atau mengubah data sensitif. Level integritas dihubungkan dengan sebuah objek yang menunjukkan derajat kepercayaan yang terkandung dalam objek dan kerusakan yang mungkin terjadi jika informasi tersebut berhasil terbongkar. Kumpulan kategori ini dihubungkan dengan subjek dan objek yang merumuskan wilayah kewenangan pengguna dan data. Pendekatan berdasarkan integritas mencegah aliran informasi dari level bawah objek ke level atas objek. Batasan dari model ini adalah hanya dapat mendeteksi pelanggaran integritas dari aliran informasi yang tidak sesuai (improper). Akan tetapi, integritas dapat memiliki cakupan yang luas dan aspekaspek tambahan dapat ditambahkan untuk menyempurnakan kebijakan. Perlu dicatat bahwa kebijakan berdasarkan keamanan dan kebijakan berdasarkan integritas tidak bersifat mutual eksklusif, jadi keduanya dapat digunakan bersamaan untuk melindungi baik kerahasiaan data maupun integritas. Universitas Sumatera Utara Untuk kasus ini, jelas bahwa setiap subjek dan objek harus dihubungkan dengan sebuah kelas keamanan dan sebuah kelas integritas. 2.5.2 Mandatory Model Kebijakan keamanan Mandatory access control didasarkan pada regulasi yang telah ditetapkan oleh sistem dan tidak dapat diubah. Bentuk paling umum dari akses kontrol ini adalah multilvel security (MLS) yang didasarkan pada pengelompokan subjek dan objek di dalam sistem. Tiap subjek dan objek dalam sistem dihubungkan dengan sebuah kelas akses, biasanya tersusun oleh sebuah level keamanan dan sekumpulan kategori pengelompokkan. Level keamanan dalam sistem ditunjukkan oleh sebuah urutan relasi total, sementara bentuk kategori adalah tidak terurut, karena itu, kumpulan kelas akses ini ditunjukkan oleh sebuah urutan relasi parsial yang dibei tanda dan disebut dominan. Sebagai contoh: dua buah kelas akses c1 da c2, c1 dominan terhadap c2 atau c1 c2, artinya bahwa kelas keamanan c1 lebih besar atau sama dengan kelas keamanan c2 dan kumpulan kategori c1 termasuk dalam kumpulan kategori c2. Masalah utama dari kebijakan mandatory adalah hanya dapat mengontrol aliran informasi yang terjadi lewat overts channels yaitu channel yang bekerja secara sah dan telah dtetapkan. Sebagai akibatnya, kebijakan mandatory sangat rentan terhadap covert channels yaitu channel yang tidak termasuk dalam komunikasi formal tetapi masih dapat dieksploitasi untuk menebak informasi. Sebagai contoh: jika sebuah subjek level rendah meminta untuk menggunakan sumber daya yang sedang digunakan oleh subjek level tinggi, maka ia akan Universitas Sumatera Utara mendapat respon negatif sehingga ia akan dapat menebak bahwa sumber daya tersebut sedang digunakan subjek lain yang berlevel tinggi. Keuntungan utama dari implementasi Mandatory Access Control adalah dapat menahan Trojan Horse, sebuah program tersembunyi yang berusaha merusak/memanfaatkan objek tanpa harus mempunyai hak akses terhadap objek. Ada beberapa definisi yang perlu kita ketahui untuk pemahaman MAC ini: • Objek: Entitas pasif, menyimpan informasi • Subjek: Entitas aktif, memanipulasi informasi • Label: Indentifikasi dari kerahasiaan objek • Clearance: Menentukan kelas/bagian yang paling rahasia untuk subjek • Permission: Menentukan operasi apa saja yang dapat dilakukan objek terhadap subjek seperti: read, write, append, dan execute. Untuk dapat mengimplementasikan MAC diperlukan keamanan yang baik dari sistem operasi. Fakta yang ada adalah sistem operasi yang ada sekarang belum cukup untuk implemtasi MAC. Konsekuensinya adalah masih ada kerentanan (vulnerability) dari sistem ini. Sistem keamanan dari sistem operasi yang ada sekarang masih berdasarkan pencocokan password (indentitas pengguna) dan ownership dengan mengabaikan faktor keamanan lainnya. Konsep inilah yang dipakai oleh DAC (Discretory Access Control). DAC tidak memasukkan faktor fungsi dari program, sensitifitas dan integritas dari objek. DAC tidak mempunyai fungsi untuk mengetahui integritas dari program yang memakai objek tersebut. Setiap program yang digunakan oleh subjek yang mempunyai privilege terhadap objek dapat digunakan untuk mengubah objek. Universitas Sumatera Utara MAC dapat menutupi kelemahan yang terdapat dari metode DAC. Keputusan MAC adalah berdasarkan dari label objek yang berisi berbagai informasi kemanan yang relevan. Sistem kebijakan dari MAC ditentukan dari system security policy administrator, dan kebijakan subjek dan objek (files, socket, network interfaces). Metode MAC ini tentu tidak bisa memuaskan semua pihak, maka MAC dikembangkan oleh berbagai pihak untuk memenuhi kebutuhannya masingmasing. Salah satu pihak yang mengembangkan MAC adalah National Security Agency (NSA) dan Secure Computing Coorporation (SCC). Kedua pihak ini melakukan riset dengan tujuan untuk mendapatkan sistem keamanan yang fleksibel. 2.6 Kriptografi 2.6.1 Teori Kriptografi Kriptografi adalah suatu ilmu yang mempelajari bagaimana cara menjaga agar data atau pesan tetap aman. Tujuan dari kriptografi adalah memastikan kerahasiaan data dari pihak yang tidak berwenang. Konsep kriptografi sendiri telah lama digunakan oleh manusia misalnya pada peradaban Mesir dan Romawi walau masih sangat sederhana. Prinsip-prinsip yang mendasari kriptografi yakni: • Kerahasiaan (Confidelity) yaitu layanan agar isi pesan tetap rahasia dan tidak diketahui oleh pihak lain kecuali pihak yang memiliki ijin. Umumnya hal ini Universitas Sumatera Utara dilakukan dengan cara membuat suatu algoritma matematis yang mampu mengubah data hingga menjadi sulit untuk dibaca dan dipahami. • Keutuhan data (Data integrity) yaitu layanan yang mampu mengenali/mendeteksi adanya manipulasi (penghapusan, pengubahan atau penambahan) data yang tidak sah (oleh pihak lain). • Keotentikan (Authentication) yaitu layanan yang berhubungan dengan identifikasi, baik otentikasi pihak-pihak yang terlibat dalam pengiriman data maupun otentikasi keaslian data/informasi. • Anti-penyangkalan (Non-repudiation) yaitu layanan yang dapat mencegah suatu pihak untuk menyangkal aksi yang dilakukan sebelumnya (menyangkal bahwa data tersebut berasal dirinya). Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat digital. Sedangkan keotentikan data transaksi dapat dilakukan dengan tanda tangan digital. Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat digital. Untuk membuat data menjadi aman maka diperlukan kunci (key) supaya mempermudah pemakaian dalam penyimpanan atau pengiriman data. Karena bila menggunakan algoritma rahasia terdapat kesulitan yaitu harus selalu membuat yang baru setiap kali akan menyimpan/mengirim data. Analoginya adalah dalam penggunaan gembok yang menggunakan kode-kode angka untuk membuka atau mengunci gemboknya putar saja kode-kode angkanya ke posisi yang tepat. Jadi kuncinya hanya bisa diputar oleh orang yang tahu urutan kode yang benar. Universitas Sumatera Utara Enkripsi (encryption) adalah suatu proses yang melakukan perubahan sebuah kode dari kode yang dapat dimengerti (plaintext) menjadi sebuah kode yang tidak dimengerti atau maknanya “tersembunyi” (ciphertext). Dekripsi (decryption) adalah proses yang melakukan pengembalian informasi teracak menjadi bentuk orisinilnya (asli). Cipher adalah pengkodean yang menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi kriptogram (cryptogram) yang tidak dimengerti atau dengan kata lain cipher adalah sebuah algortima kriptografik (cryptographic algoritm). Kriptografi digunakan untuk melindungi informasi agar tidak tersingkap oleh pihak yang tidak berwenang. Kriptografi dibentuk dengan berdasarkan suatu algoritma yang akan mengacak suatu informasi menjadi bentuk yang tidak bisa dibaca atau dilihat. Ganbar 2.3 Proses Kriptografi sederhana Metode kriptografi biasanya menggunakan suatu algoritma dan suatu Universitas Sumatera Utara kunci. dimana kunci yang digunakan dan panjangnya kunci merupakan pondasi kekuatan dari enkripsi. Ukuran panjang kunci biasanya dinotasikan dalam bit. Ukuran panjang kunci yang lebih panjang biasanya lebih aman dibandingkan kunci yang lebih pendek. Dengan semakin panjang kunci semakin besar keyspace yang dijalani untuk mencari kunci dengan metode brute force attack karena keyspace yang harus dilihat merupakan pangkat dari bilangan. 2.6.2 Jenis-jenis Kriptografi 2.6.2.1 Kriptografi Simetri (Private Key Encryption) Enkripsi ini bekerja dengan kunci yang sama untuk mengenkripsi dan mendekripsi data. Kategori kriptografi ini mempunyai kelebihan pada kecepatan proses datanya, juga sangat baik digunakan untuk mengamankan enkripsi data berkecepatan tinggi tetapi mempunyai kelemahan pada masalah keamanan pertukaran kuncinya. Terdapat beberapa model algoritma enkripsi dengan menggunakan kunci rahasia antara lain subsitusion cipher, AES, DES, Triple DES, RC (Rivest Code) 2, RC 4, IDEA, Skipjack, Caesar cipher, Ghost Block Cipher, dan Transposition Cipher. Gambar 2.4 Enkripsi dengan kunci rahasia Universitas Sumatera Utara 2.6.2.2 Kriptografi ASimetri (Public Key Encryption) Enkripsi ini bekerja dengan kunci yang berbeda untuk enkripsi dan untuk dekripsi. Cara kerjanya adalah pihak yang menggunakan enkripsi ini harus mempunyai dua buah kunci yaitu satu kunci rahasia yang hanya boleh diketahui oleh dirinya sendiri, yang kedua adalah kunci publik yang akan disebarkan kepada orang lain. Kedua kunci ini dibuat secara acak dengan menggunakan rumus matematika tertentu. Kunci publik disimpan dan didistribusikan oleh pihak yang berwenang yaitu CA (Certified Authorizied), dimana kumpulan dari CA adalah Public Key Infrastruktur (PKI). Maka kategori ini sering disebut PKI cryptographic. Sedangkan kunci rahasia disimpan dan tidak disebarkan. Karena menggunakan algoritma dengan kunci enkripsi dan dekripsi yang berbeda maka cara ini sering disebut kriptografi asimetris (asymmetric cryptographic). Beberapa yang termasuk algoritma yang menggunakan cara enkripsi ini adalah Sistem Diffie Hellman, RSA, dan PGP (Pretty Good Privacy). Gambar 2.5 Enkripsi dengan kunci publik Enkripsi dengan kunci publik mempunyai kelebihan yaitu setiap Universitas Sumatera Utara orang yang menggunakan enkripsi ini hanya memiliki satu set kunci, tanpa peduli banyak orang yang akan diajak berkomunikasi, sehingga jumlah kuncinya lebih sedikit dibanding kunci rahasia, dan tidak membutuhkan saluran khusus untuk pengiriman kunci publiknya. Kekurangannya adalah membutuhkan komputasi yang komplek sehingga membutuhkan waktu yang cukup lama dalam komputasinya. 2.6.3 Enkripsi Fungsi Satu arah (Hash) Fungsi Hash (satu arah) menyingkat data dan merepresentasikan menjadi bit-bit dengan menggunakan fungsi matematika untuk mengambil input panjang variabel dan mengubahnya kedalam urutan biner dengan panjang yang tetap. Fungsi Hash dirancang dengan kompleksitas yang tinggi, sehingga apabila terjadi perubahan satu bit saja, maka dapat mengubah nilai dari Hash yang dihasilkan. Untuk Hash yang modern menghasilkan panjang 128 bit atau lebih. Fungsi Hash ini banyak digunakan pada proses tanda tangan digital untuk integritas data. Salah satu kegunaan Fungsi Hash yaitu untuk Message Authentication Code dan HMAC yaitu kode yang dihasilkan oleh fungsi Hash untuk sebuah pesan atau data pada jaringan komputer. Fungsi Hash digunakan juga untuk sidik jari (fingerprint), message integrity check, atau manipulation detection code untuk integrity-check bila data yang diubah 1 titik saja, sidik jarinya akan sangat berbeda. Contoh Algoritma Hash adalah Message Digest series: MD MD-2, MD-4, MD-5. 128-bit, dan Secure Hash Algorithm (SHA), termasuk SHA-1, 160-bit. Universitas Sumatera Utara 2.7 Manajemen Kunci Manajemen kunci berhubungan dengan keamanan, distribusi, dan penyimpanan kunci. Metode keamanan dari manajemen kunci sangatlah penting. Bahwa sekali kunci secara acak dibangkitkan, maka nilai dari kunci tersebut harus menjadi rahasia untuk mencegah adanya kecelakaan yang tidak diinginkan. Dalam prakteknya, kebanyakan serangan yang terjadi pada sistem kunci publik dapat ditangani dalam level manajemen kunci, daripada oleh algoritma kriptografi itu sendiri. Kekuatan sistem kriptografi secara total bergantung pada keamanan kunci. Kunci perlu dilindungi selama fase daur hidupnya. Daur hidup kunci dimulai dari pembangkitan kunci (generation) sampai kunci tidak diperlukan lagi untuk kemudian dihancurkan (destruction). Secara garis besar, daur hidup kunci digambarkan pada gambar berikut: Generation Destruction Distribution Change Storage Usage Gambar 2.6 Daur hidup kunci Tujuan manajemen kunci adalah menjaga keamanan dan integritas kunci pada semua fase di dalam daur hidupnya. Pada umumnya setiap kunci akhirnya Universitas Sumatera Utara diganti dengan kunci lain. Jadi keseluruhan fase membentuk siklus karena penghancuran kunci biasanya diikuti dengan penggantiannya dengan kunci baru. Manajemen kunci yang dibahas difokuskan pada algoritma kriptografi simetris karena manajemen kunci untuk algoritma kunci publik sangat berbeda dengan algoritma simetris. 2.7.1 Pembangkitan Kunci (Key Generation) Pembangkitan kunci pada algoritma simetris jauh lebih mudah daripada pembangkitan kunci pada algoritma kunci publik. Karena kunci simetris umumnya rangkaian bit atau rangkaian karakter, maka setiap pengguna dapat membangkitkan kuncinya sendiri. Masalah utama yang muncul pada pembangkitan kunci adalah bagaimana membuat kunci yang tidak dapat diprediksi. Metode yang dapat digunakan untuk menjawab hal ini adalah dengan teknik manual (misalnya pelemparan koin/dadu), pembangkitan dari data pribadi (misalnya PIN), atau menggunakan pembangkit bilangan acak. Pada algoritma kunci publik, pembangkitan kunci merupakan masalah tersendiri, karena pembangkitan kunci membutuhkan perhitungan matematis yang rumit. Selain itu, pembangkitan bilangan prima yang besar juga dibutuhkan untuk membentuk kunci. Oleh karena itu, pada algoritma kunci publik dibutuhkan program khusus untuk membangkitkan kunci. Masalah yang timbul di sini adalah kepercayaan pengguna terhadap program tersebut. Pada RSA misalnya, bila program hanya dapat membangkitkan bilangan prima yang terbatas, maka pihak lawan dapat Universitas Sumatera Utara membangkitkan sendiri bilangan-bilangan prima yang terbatas itu dan menggunakannya sebagai faktor dari salah satu parameter RSA. 2.7.2 Penyebaran Kunci (Key Distribution) Jika pengguna menggunakan kunci untuk melindungi informasi yang disimpan di dalam storage, maka tidak ada kebutuhan untuk menyebarkan kunci. Tetapi, untuk kebutuhan komunikasi secara aman, maka diperlukan kebutuhan untuk mengirimkan kunci. Protokol pertukaran kunci dengan menggunakan algoritma kunci publik dapat digunakan untuk mendistribusikan kunci. 2.7.3 Penyimpanan Kunci (Key Storage) Kunci disimpan di tempat yang aman yang tidak memungkinkan pihak lawan mengaksesnya. Oleh karena itu, penyimpanan kunci mungkin memerlukan perlindungan secara fisik (misalnya disimpan di dalam lemari besi). Alternatif lain, kunci dapat disimpan di dalam smart card yang hanya dapat dibaca dengan menggunakan kode rahasia. Kunci sebaiknya disimpan tidak dalam bentuk jelas. Ada dua solusi alternatif untuk masalah ini. • Kunci disimpan dengan mengenkripsinya dengan menggunakan kunci lain. Konsep ini mengarah pada konsep key hierarchy, yang dalam hal ini setiap kunci di dalam hirarkhi digunakan untuk melindungi kunci di bawahnya. • Kunci dipecah menjadi beberapa komponen, setiap komponen disimpan di tempat terpisah. Jika kunci akan digunakan, maka setiap komponen direkonstruksi kembali. Universitas Sumatera Utara Misalkan kunci K dibagi menjadi dua komponen, K1 dan K2. Membagi dua langsung K sedemikian sehingga setengah bagian pertama menjadi K1 dan setengah bagian sisanya menjadi K2 tidak dianjurkan, karena dapat memungkinkan pihak lawan menemukan K jika ia hanya mengetahui salah satu dari K1 dan K2. Misalkan K panjangnya 64 bit, dan lawan mengetahui K1, maka K dapat ditentukan dengan hanya 232 percobaaan untuk menemukan K2 secara exhaustive search (lebih sedikit dibandingkan 264 percobaan). Solusi pemecahan yang lebih baik adalah membentuk kunci K dari K1 dan K2 sedemikian sehingga K = K1 ⊕ K2. Dalam hal ini, ukuran K1 dan K2 sama dengan ukuran K, sehingga jika salah satu dari komponen K1 atau K2 diketahui, maka K relatif lebih sukar ditentukan. 2.7.4 Penggunaan Kunci (Key Usage) Setiap kunci digunakan sesuai tujuannya. Misalnya ada kunci yang digunakan untuk mengenkripsi pesan, dan ada kunci yang digunakan untuk mengenkripsi kunci lainnya. Supaya setiap kunci mempunyai penggunaan yang unik, maka perlu memberi label pada setiap kunci, yang dalam hal ini label menspesifikasikan penggunaan kunci. Misalnya, label tersebut menspesifikasikan ‘kunci untuk mengenkripsi data’, ‘kunci untuk mengenkripsi kunci’, ‘kunci untuk pembangkitan bilangan acak’ dan sebagainya. Untuk algoritma kunci publik, pengguna perlu memberi label untuk dua pasang kunci yang setiap pasang terdiri dari kunci publik dan kunci rahasia. Satu pasang kunci untuk enkripsi dan satu pasang lagi untuk sidik digital. Universitas Sumatera Utara 2.7.5 Perubahan Kunci (Key Change) Kunci sebaiknya diubah secara periodik dan teratur. Sistem kriptografi harus mempunyai kemampuan untuk mengubah kunci. Kunci diubah secara teratur untuk membatasi lama keberadaanya dan mengurangi nilainya dimata penyerang. Pada sistem EFTPOS (Electronic Funds Transfer at Point of Sale), kunci diubah setiap kali setelah selesai satu transaksi. Tidak ada aturan seberapa sering kunci seharusnya diubah. Tetapi cukup jelas dimengerti bahwa setiap kunci seharusnya diubah jauh sebelum ia dapat ditemukan dengan cara exhaustive search. 2.7.6 Penghancuran Kunci (Key Destruction) Kunci yang tidak dibutuhkan lagi seharusnya dihancurkan dengan cara yang aman. Jika kunci dicatat pada media kertas, maka cara penghancurannya misalnya menggunakan alat pemotong kertas (crosscut), membakarnya, atau menguburnya. Jika kunci disimpan di dalam media elektronik (seperti CD), maka cara penghancurannya bisa dengan menghapusnya atau menimpanya (overwritten) sedemikian sehingga tidak meninggalkan jejak yang bisa dilacak oleh penyerang. Kunci yang yang disimpan pada material lain dihancurkan sedemikian rupa sehingga ia tidak mungkin ditemukan kembali secara fisik maupun secara elektronik. 2.7.7 Otoritas Sertifikasi (Certification Authority) Universitas Sumatera Utara Kunci publik perlu diberi sertifikat kepemilikian untuk mencegah pemakaian oleh orang yang tidak berhak. Serangan yang umum terjadi pada kunci publik tanpa identitas adalah penyamaran (impersonation attack). Seseorang yang memiliki kunci publik orang lain dapat menyamar seolah-olah dialah pemilik kunci itu. Pengguna harus mampu untuk menjaga keamanan dari pasangan kunci yang dimilikinya untuk kebutuhan efisiensi dan keamanannya. Bagaimanapun, akan selalu ada cara untuk melihat kunci publik orang lain atau bahkan mempublikasikannya ke khalayak umum. Karena itu pengguna harus mampu untuk melegitimasi kunci publik orang lain, atau seorang pengacau dapat saja mengubah daftar kunci publik yang ada. Sertifikat dibutuhkan untuk menjaga keamanan dari kunci tersebut. Sertifikat tersebut sendiri sebaiknya tidak dapat ditiru atau dipalsukan. Masalah dari sertifikat ini sendiri harus ditangani dengan keamanan yang baik agar tidak dapat diserang. Pengguna harus mengotentikasikan identitas dan kunci publik miliknya masing-masing sebelum memperoleh sertifikat individual tersebut. Jika kunci rahasia seseorang hilang, maka orang lain harus waspada atas hal ini, sehingga mereka tidak lagi mengenkripsi pesan di bawah kunci publik yang tidak valid ataupun menerima pesan yang ditandatangani dengan kunci rahasia yang tidak valid tadi. Pengguna harus mampu untuk menyimpan kunci rahasianya secara aman sehingga tidak ada pengacau yang dapat mengaksesnya, namun kunci tersebut juga harus dapat diakses oleh pihak yang memang berwenang untuk mengetahuinya. Kunci harus terus valid hingga tanggal kadaluarsanya tiba namun Universitas Sumatera Utara tanggal kadaluarsa tersebut juga harus ditentukan dengan tepat dan atau CA) mempublikasikannya pada saluran yang dapat dijamin kebenarannya. Pemegang otoritas sertifikasi (Certification Authority memberikan sertifikat yang ditandatangani secara digital. Sertifikat ini berisi identitas pemilik kunci publik, nilai kunci publik itu sendiri, dan informasi tambahan seperti waktu kadaluarsa (expired time) sertifikasi. Sertifikat ini dapat dianggap sebagai ‘surat pengantar’ dari CA. Misalnya CERTA adalah sertifikat yang dikeluarkan oleh CA yang berisi kunci publik pengguna yang bernama A dan identitas A. Jadi, CERTA mengikat identitas A dengan nilai kunci publiknya. Supaya sertifikasi itu dapat dicek kebenarannya, maka kunci publik pemilik CA harus diketahui secara luas. Seseorang yang memiliki kunci publik CA dapat memverifikasi bahwa tanda tangan di dalam sertifikat itu sah dan karena itu mendapat jaminan bahwa kunci publik di dalam sertifikat itu benar milik A. Penting dicatat bahwa sembarang orang (atau CA) dapat mengeluarkan sertifikat untuk kunci publik A. Misalkan A dan B memiliki sertifikat yang dikeluarkan oleh CA yang berbeda. Jika A memerlukan jaminan tentang sertifikat kunci publik B, maka A perlu memiliki salinan kunci publik CA yang mengeluarkan sertifikat untuk B. Universitas Sumatera Utara