Senin, 27 April 2015

(Security) Keamanan Pada Sistem Terdistribusi

Ada empat bidang keamanan dalam sistem terdistribusi yaitu:

1. Ancaman Keamanan.

Beberapa ancama yang dapat mengancam suatu sistem adalah leakcage(pengambilan informasi oleh penerima yang tidak berhak), Tampering(pengubahan informasi yang tidak legal), Vandalism(gangguan operasi sistem tertentu, dimana pelaku tidak mengharapkan keuntungan apapun)
Ada beberapa kemungkinan serangan yang dapat dilakukan oleh pihak lain diantaranya adalah :

Intrusion : penyerangan jenis ini seseorang penyerang akan dapat menggunakan sistem komputer yang kita miliki.

Denail of services : penyerangan ini mengakibatkan pengguna yang sah tidak dapat mengakses sistem.
Joyrider : penyerangan jenis ini disebabkan oleh orang yang merasa iseng dan ingin memperoleh kesenangan dengan cara menyerang suatu sistem.
Vandal : jenis serangan ini bertujuan untuk merusak sistem yang sering dituju untuk site-site besar.
Scorekeeper: jenis serangan ini hanyalah bertujuan untuk mendapatkan reputasi dengan cara mengacak-acak system sebanyak mungkin.
Mata-mata : jenis serangan ini bertujuan untuk memperoleh data atau informsi rahasia dari pihak pesaing. Tujuan utama adanya sistem keamanan adalah untuk membatasi akses informasi dan resources hanya untuk pemakai yang memiliki hak.

2. Akses Control. 

Aspek ini berhubungan dengan cara pengaturan akses kepada informasi. Dalam interaksi sederhana client-server ,server membatasi akses ke sumber daya. Teknik-teknik standar untuk melakukan hal ini adalah Access Control Matrix, Capabilities, dan Labels

3. Otentikasi.

Otentikasi berhubungan dengan metode untuk menyatakan bahwa informasi betul-betul asli, orang yang mengakses atau memberikan informasi adalah betul-betul orang yang dimaksud, atau server yang kita hubungi adalah betul-betul server yang asli.


Otentikasi server penting tidak hanya karena ancaman terhadap penyadapan aktif atau lebih dikenal dengan trojan horse tetapi juga karena banyak pengikat RPC hanya menawarkan petunjuk dimana layanan ini berada. Jika crash dapat digantikan oleh yang lain,server yang sama sekali berbeda, tetapi client perlu mengetahui ketidaksesuaian ini sehingga pengikat RPC bisa memeriksa kembali.

4. Non repudiation.
Aspek ini menjaga agar seseorang tidak dapat menyangkal telah melakukan sebuah transaksi. Sebagai contoh, seseorang yang mengirimkan e-mail untuk memesan barang tidak dapat menyangkal bahwa dia telah mengirimkan e-mail tersebut. Aspek ini sangat penting dalam hal electronic commerce Penggunaan digital signature, certifiates, dan teknologi kriptografi secara umum dapat menjaga aspek ini.

Karena kemungkinan serangan-serangan yang dapat terjadi seperti pada penjelasan diatas ada baiknya untuk mengetahui bentuk perancangan sistem yang aman untuk mencegah dari serangan-serangan yang mungkin terjadi

Adapun bentuk perancangan sistem yang aman adalah :
·                     Rancangan harus mengikuti standard yang ada
·                     Mendemokan validasi melawan ancaman yang diketahui
·                     Melakukan audit terhadap kegagalan yang terdeteksi
·                     Adanya keseimbangan antara biaya terhadap serangan yang ada



Tiga dasar mekanisme keamanan yang dibangun :
·                     Enkripsi : digunakan untuk menyediakan kerahasiaan, dapat menyediakan authentication dan perlindungan integritas
·                     Digital signature : digunakan untuk menyediakan authentication, perlindungan integritas
·                     Algoritma checksum/hash : digunakan untuk menyediakan perlindungan integritas dan dapat menyediakan authentication.
·                     Teknik keamanan adalah hal penting dalam menjaga kerahasiaan data. Proses enkripsi di dalam teknik keamanan merupakan proses pengkodean pesan untuk menyembunyikan isi file. Sedangkan algoritma enkripsi modern menggunakan kunci kriptografi dimana hasil enkripsi tidak dapat di dekripsi tanpa kunci yang sesuai.


Kriptografi adalah suatu ilmu yang mempelajari bagaimana membuat suatu pesan menjadi aman selama pengiriman dari pengirim sampai ke penerima. Pesan yang akan di enkripsi disebut plaintext sedngkan pesan yang telah di enkripsi disebut chipertext.

Serangan pada sistem terdistribusi tergantung pada pengaksesan saluran komunikasi yang ada atau membuat saluran baru yang menyamarkan sebagai koneksi legal. Penyerangan yang ada yaitu penyerangan pasif dan aktif.

Sumber : Telusur

Parallel Processing Sistem Terdistribusi

Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan.
Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. 

TUJUAN PARALLEL PROCESSING

Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. 

PARALLEL PROCESSING

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak.

Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi. 

Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).

Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.


Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:


1.                  SIMD
2.                  SIMD
3.                  MISD
4.                  MIMD


·                     SISD

Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.


Share Data & Transaction

Dalam sistem terdistribusi, shared data dapat di artikan sebagai beberapa komputer yang berbeda saling terhubung satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber daya yang terdapat dalam situs lain.

Pengaksesan resource pada sistem terdistribusi yang memerlukan:
1.            Nama resource (untuk pemanggilan)
2.            Alamat (lokasi resource tersebut)
3.            Rute (bagaimana mencapai lokasi tersebut)


Keuntungan Shared Data :
1.            Mengurangi biaya duplikasi usaha pengumpulan data
2.            Aman-menjaga data dalam lingkungan yang aman
3.            Back-up data
4.            Transaksi (Transaction)

Tujuan Shared Data
Sharing resources bertujuan agar seluruh program, peralatan atau peripheral lainnya dapat dimanfaatkan oleh setiap orang yang ada pada jaringan komputer tanpa terpengaruh oleh lokasi maupun pengaruh dari pemakai.


Merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.

Jenis –Jenis Transaksi :
·                     Flat Transaction.
·                     Nasted Transaction.


Share data
Merupakan pemakaian file data tunggal oleh ebih dari satu orang atau komputer, atau suatu akses yang diberikan kepada orang lain untuk mengkases data tersebut, mempunyai tujuan untuk berbagi akses kepada user lain pada suatu folder atau drive yang diinginkan, dimana kita bisa memilih kepada user mana saja yang bisa atau boleh mengakses folder kita dan juga bisa memberikan akses kepada semua orang yang ada pada jaringan/network.

Transaksi terdistribusi
merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian perubahan data.

Fault Tolerance
Salah satu tujuan dalam membangun sebuah system terdistribusi adalah memungkinkan untuk melakukan improvisasi terhadap kehandalan sistem. Ini dilakukan karena setiap system pasti akan menemukan kesalahan atau gangguan. Sehingga perlu untuk dibuat pencegahan atau solusi untuk mengatasi masalah tersebut. Availability: kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa. Dalam suatu sistem terdistribusi komponen dalam system yang sangat vital terutama pada resources (critical resources) berjumlah seminimal mungkin. Yang dimaksud dengan critical resources adalah komponen dalam system yang harus ada untuk menjalankan sistem terdistribusi. 
Secara umum, ada dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara software. Untuk itu, masing - masing Software dan Hardware harus di replikasi. Sehingga kalau terjadi kegagalan / error maka yang lain akan menangani. Data dalam sistem terdistribusi tidak boleh hilang, oleh karena itu copy dari data atau resource lainnya tersebut disimpan secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya. Hal ini memang berkaitan dengan replikasi. Dengan membuat system terdistribusi yang fault tolerance maka Sistem harus bisa mendeteksi kegagalan dan melakukan tindakan dasar sebagai berikut:
1. Mask the fault (menutupi kegagalan): tugas harus dapat dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
2. Fail Gracefully: membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan  informasi atau data.

Sumber : Telusur

Distribute Database

Basis data terdistribusi (distributed database) merupakan suatu basis data yang di bawah sistem manajemen basis data atau (DBMS) yang terpusat dengan peranti penyimpanan (storage devices) dan terpisah-pisah satu dari yang lainnya. Dan tempat penyimpanan dapat berada di satu lokasi yang secara fisik berdekatan contohnya: dalam satu bangunan atau terpisah oleh jarak yang jauh walaupun banyak bangunannya dan terhubung melalui jaringan internet. Dalam penggunaan basis data terdistribusi bisa dilakukan di server internet, ekstranet kantor atau intranet, maupun di jaringan perusahaan.

Pengguna atau disebut (user) dalam sebuah basis data terdistribusi bisa mengakses basis data melalui dua jenis aplikasi yaitu :

• Aplikasi lokal adalah aplikasi yang tidak memerlukan data dari tempat lain
• Aplikasi global adalah aplikasi dengan kebutuhan akan data dari tempat lain

Pada proses perancangan basis data terdistribusi memiliki aspek transparansi yaitu interaksi user terhadap basis data yang merupakan interaksi dengan satu sistem secara utuh maupun lengkap. Transparansi itu dua hal yaitu :


1. Distribusi merupakan para pengguna harus bisa berinteraksi atau berhubungan dengan sistem secara keseluruhan sebagai satu sistem yang utuh. Dan kesatuan ini ada pada kinerja sistem dan metode pengaksesan.

2. Perubahan (transaksi) yaitu Setiap transaksi baik itu penghapusan, penambahan, atau peng-update-an selain itu mempertahankan integritas antara basis data yang berbeda-beda dalam satu sistem. Pada setiap transaksi dapat dibagi ke dalam sejumlah subtransaksi pada tiap-tiap transaksi dapat memberikan pengaruh pada keseluruhan sistem basis data.


Pada semua perusahaan atau organisasi yang menggunakan relational database management system atau yang disebut (RDBMS) biasanya memiliki database yang banyak ataupun tidak hanya satu. Dan kenapa mereka biasanya menggunakan konsep sistem terdistribusi dalam implementasinya. Beberapa faktor penyebabnya diantaranya :
1. Perbedaan database biasanya didasarkan pada fungsionalitas dalam database itu sendiri, contohnya dalam bagian keuangan, baik pemasaran atau sumberdaya manusia.
2. Perbedaan database didasarkan pada letak geografis yang ada contohnya dalam satu kota.
3. Perbedaan database dapat didasarkan pada cara mengaksesnya contoh untuk database transaksi ataupun untuk penggudangan data atau (data warehouse).
4. Database pada internet Commerce diduplikasi sebagai dalam cadangan dengan skala kemampuan yang sama.
5. Database juga dibedakan untuk sistem yang sedang berjalan dan untuk yang sedang dikembangkan.

Dalam mengakomodasi kebutuhan maka oracle membentuk suatu skema yang dapat memungkinkan semuanya dapat terjadi dengan konsep atau cara sistem terdisribusi.
Teknologi sistem database terdistribusi merupakan kuncinya yaitu integrasi bukan sentralisasi serta teknologi ini untuk mencoba dalam mencapai integrasi tanpa sentralisasi.

Dalam Database terdistribusi sangat berbeda dengan database terdesentralisasi karena database terdistribusi adalah suatu database tunggal atau satu logik yang secara fisik disebarkan atau terhubung secara menyeluruh kepada komputer-komputer pada banyak lokasi yang kemudian saling dikoneksikan oleh link data komunikasi. Dan sedangkan database terdesentralisasi yaitu koleksi database independen dalam komputer yang tidak terhubung dalam suatu jaringan. Sistem database terdistribusi terdiri atas situs-situs yang saling berpasangan yang tidak saling membagi komponen fisik ataupun Sistem database akan berjalan pada situs yang independen.

Untuk menyusun suatu data terdistribusi dapat diperhatikan sebagai berikut :
1. Replikasi datay : data-data harus tetap up-to-date tanpa kompromisasi pada performansi
2. Akses yang terjadi secara bersamaan harus dapat menghindari terjadinya kesalahan           pada suatu data.

3. Masalah dalam keamanan
4. Masalah dalam reliabilitas 

Dalam Sistem database terdistribusi pada Oracle membolehkan aplikasi-aplikasi tersebut untuk mengakses data dari database yang jauh. Pada sebuah sistem database terdistribusi homogen dalam setiap database adalah Oracle Database dan sedangkan pada sistem database terdistribusi heterogeneous paling sedikit satu dibeberapa sekumpulan database bukan merupakan Oracle Database. Selain itu Distribusi basis data menggunakan arsitektur client (server ) untuk memproses dalam permintaan informasi.

Sumber : Telusur


Time and Coordination Sistem Terdistribusi

1. Time And Coordinaton
Time and Coordination adalah mengkordinasikan waktu dalam transfer data,  agar tidak terjadi ketimpangan pada proses transfer data.  Selain itu juga, berguna untuk mengukur penundaan antara komponen terdistribusi, menyinkronkan aliran data misalnya: suara dan video,  dan sebagai penanda keakuratan waktu untuk mengidentifikasi atau  mengotentikasi transaksi bisnis dan serializability dalam database terdistribusi dan keamanan protocol.

1.1 Time
Time adalah pengembangan dari sistem multiprogram.Beberapa job yang berada pada memory utama dieksekusi oleh CPU secara bergantian.CPU hanya bisa menjalankan program yang berada pada memory utama. Perpindahanantar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap programpada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya.
Time juga disebut dengan sistem komputasi interaktif, dimanasistem komputer menyediakan komunikasi on-line antara user dengan sistem. Usermemberikan instruksi pada sistem operasi atau program secara langsung dan menerimarespon segera. Perangkat input berupa keyboard dan perangkat output berupa displayscreen, seperti cathode-ray tube (CRT) atau monitor. Bila sistem operasi selesaimengeksekusi satu perintah, makan sistem akan mencari pernyataan berikutnya dariuser melalui keyboard. Sistem menyediakan editor interaktif untuk menulis programdan sistem debug untuk membantu melakukan debugging program.

1.2 Coordination
Coordnaion Sekumpulan algoritma yang tujuannya bermacam-macam namun men-share tujuannya, sebagai dasar dalam sistem terdistribusi : berupa sekumpulan proses untuk mengkoordinasikan tindakan atau menyetujui satu atau beberapa nilai. Contohnya pada kasus mesin seperti pesawat ruang angkasa. Hal itu perlu dilakukan, komputer mengendalikannya agar setuju pada kondisi tertentu seperti apakah misi dari pesawat luar angkasa dilanjutkan atau telah selesai.
Komputer tersebut harus mengkoordinasikan tindakannya secara tepat untuk berbagi hal yang penting dalam Coordination and Agreement adalah apakah system terdistribusi asinkron atau sinkron. Algoritma –algoritma yang digunakan juga harus mempertimbangkan kegagalan yang terjadi, dan bagaimana caranya untuk berhubungan satu sama lain ketika sedang mendesaian algoritma. Selanjutnya di makalah ini juga akan dijelaskan mengenai masalah dalam mendistribusikan mutual exclusion, election, multicast communication, dan mengenai masalah dalam persetujuan(agreement).

1.3 Contoh Time And Coordination Protokol Waktu Jaringan (Network Time Protocol)
Metode Cristian dan algoritma Berkeley pada dasarnya digunakan untuk komunikasi intranet. Protokol Waktu Jaringan (NTP) mendefinisikan arsitektur untuk pelayanan waktu dan protocol untuk distribusi informasi waktu lewat internet. 
Tujuan dan fitur NTP, antara lain:
•       To provide a service enabling clients across the Internet to be synchronized accurately to UTC: NTP menyediakan layanan agar klien di internet dapat bersinkronisasi dengan UTC.
•      To provide a reliable service that can survive lengthy losses of connectivity: NTP menyediakan layanan yang bisa bertahan di jaringan mengalami loss karena jarak.
•      To enable clients to resynchronize sufficiently frequently to offset the rates of drift found in most computers: NTP memungkinkan klien untuk sinkronisasi ulang secara berkala.
•      To provide protection against interference with the time service, whether malicious or accidental: NTP menyediakan perlindungan terhadap interferensi dari layanan waktu, baik galat maupun ketidaksengajaan.


Gambar 1 Contoh sinkronisasi subnet di NTP