Minggu, 23 Juni 2013

PENGERTIAN SISTEM APLIKASI CORBA

SISTEM TERDISTRIBUSI
SISTEM APLIKASI CORBA

1. Pendahuluan

CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server. Dalam terminologi OO, sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message passing). Konteks komunikasi ini kemudian dipetakan ke dalam model client-server: satu obyek berperan sebagai client (si pengirim pesan) dan yang lain bertindak sebagai server (yang menerima pesan dan memroses pesan yang bersangkutan).

2. Arsitekur CORBA

CORBA (Common Object Request Broker Architecture) merupakan suatu spesifikasi yang dikembangkan oleh OMG (Object Management Group), sebuah konsorsium yang terdiri lebih dari 800 perusahaan. Tujuan CORBA adalah untuk pengembangan pemrograman objek terdistribusi. CORBA bukanlah bahasa pemrograman, tapi merupakan spesifikasi untuk mengembangkan objek-objek terdistribusi. Beberapa software yang mengimplementasikan COBA misalnya ORBIX (oleh IONA Technologies), VisiBroker (oleh Insprise), dan JavaIDL (oleh JavaSoft).
CORBA memiliki arsitektur yang berbasiskan model objek. Model ini diturunkan dari abstrak Core Object Model yang didefiniskan OMG di dalam OMA (Object Management Architecture). Model ini merupakan gambaran abstrak yang tidak dapat diimplementasikan tanpa menggunakan teknologi tertentu. Dengan model tersebut, suatu aplikasi dibangun dengan standard yang telah ditentukan. Sistem CORBA terdiri dari objek-objek yang mengisolasi suatu client dari suatuserver dengan menggunakan interface enkapsulasi yang didefinisikan secara ketat. Objekobjek CORBA dapat berjalan di atas berbagai platform, dapat terletak dimana saja dalamsuatu network, dan dapat dikodekan dengan bahasa pemrograman apapun asal memiliki IDL mapping.
Object Management Architecture (OMA) mendefinisikan berbagai fasilitas highlevel yang diperlukan untuk komputasi berorientasi objek. Bagian utama dari OMA adalah Object Request Broker (ORB). ORB merupakan suatu mekanime yang memberikan transparansi lokasi, komunikasi, dan aktivasi. Suatu objek. ORB adalah semacam software bus untuk objek-objek dalam CORBA. Berdasarkan OMA, spesifikasi CORBA harus dipatuhi oleh ORB.
CORBA disusun oleh komponen-komponen utama :
1. ORB (Object Request Broker)
2. IDL (Interface Definition Language)
3. DII (Dynamic Invocation Interface)
4. IR (Interface Repositories)
5. OA (Object Adapter)

3. Tujuan

Meng-automatisasi tugas-tugas yang umum dalam pemrograman jaringan, seperti object registration, location dan activation; framing dan error-handling; parameter marshaling dan un-marshaling; dan operation dispatching. Automatisasi ini biasa dihandle oleh sebuah software perantara yang disebut ORB (Object Request Broker). Posisinya berada di antara layer Data dan aplikasi.

4. Kelebihan memakai CORBA :

• Programmer dapat dengan mudah menulis aplikasi yang mampu bekerja secara independent antar platform dan jaringan.
• Memberikan kemampuan untuk mengintegrasi software aplikasi yang berbeda, tanpa harus tergantung pada fasilitas komunikasi tingkat bawah.
• Bekerja secara baik dengan beberapa middleware-middleware yang ada, termasuk Microsoft distributed system(DCOM).
• Memberikan extensi opsional untuk area yang tidak bisa dijamah oleh core aplikasi.
• Support penggunaan secara statis maupun dinamis.
• Punya protocol yang menjadi kesepakatan – IIOP, yang memfasilitasi komunikasi antar ORB

5. Contoh Corba

Sebuah sistem terdistribusi, tidak hanya melakukan komunikasi antara satu proses pada satu komputer dengan proses pada komputer yang lain, namun juga perlu mempertimbangkan ketersediaan infrastruktur jaringan yang memadai dan juga dukungan standarisasi sistem yang terbuka.
Sistem terdistribusi ini diperlukan karena beberapa hal, yaitu :
Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi daripada komputer yang terpusat
Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam mesin yang berbeda. (contoh: aplikasi perbankan, komersial)
 Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi kinerja system secara keseluruhan
 Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat
Sharing Data/Resource
- Resource adalah: Segala hal yang dapat digunakan bersama dalam jaringan komputer
- Meliputi hardware (e.g. disk, printer, scanner), juga software (berkas, basis data, obyek data).
Communication
Menyediakan fasilitas komunikasi antar manusia.

PEMBANGUNAN SISTEM

Deskripsi Sistem
Location Service merupakan suatu ekstensi untuk spesifikasi CORBA yang menyediakan fasilitas untuk keperluan umum yang mengalokasikan instance objek. Location Service berkomunikasi langsung dengan Smart Agent yangb memelihara sebuah catalog. Catalog tersebut mengandung daftar dari instance yang diketahuinya. Ketika query dilakukan oleh Location Service, sebuah Smart Agent akan meneruskan query tersebut ke Smart Agent yang lain dan menjumlah pengembaliannya dalam suatu hasil dan mengembalikan ke Location Service. Berikut adalah gambar yang menunjukkan penggunaan Smart Agent untuk menemukan instance dari suatu objek.

a. Location Service
Location Service adalah sekumpulan metode yang membuat aplikasi mampu menjelajah objek yang terdapat dalam jaringan dengan menggunakan Smart Agent
dari Visibroker. Aplikasi dapat melakukan query berdasarkan Interface Repository ID atau kombinasi antara Interface Repository ID dengan nama instance. Hasil dari query dapat dikembalikan sebagai referensi objek yang lain atau deskripsi instance yang lebih lengkap. Sebuah referensi objek biasanya menangani sebuah instance khusus dari sebuah objek yang dialokasikan oleh Smart Agent. Deskripsi instance mengandung referensi objek, seperti instance nama interface, nama instance, nama host, nomor port yang digunakan dan informasi mengenai ketetapan.

b. Interface Repository
Interface Repository (IR) adalah sebuah database yang menyimpan informasi antarmuka objek CORBA, berbeda dengan Visibroker Location Service yang menahan data pendeskripsian instance objek, sedangkan IR menyimpan data deskripsi antarmuka (tipe). Informasi yang berada di Interface Repository sama dengan informasi yang berada di file IDL, tetapi informasi yang berada di IR dipresentasikan agar client lebih mudah menggunakan. Client yang menggunakan Interface Repository dapat juga memanggil dengan menggunakan Dynamic Invocation Interface (DII). Biasanya client mengakses Interface Repository untuk mempelajari mengenai objek yang tidak diketahui dan Dynamic Invocation Interface digunakan untuk memanggil metode yang terdapat dalam objek. Bagaimanapun juga antara DII dengan IR tidak terdapat kebutuhan untuk saling berkomunikasi.

c. Smart Agent
Dalam Aplikasi Pencari IDL dan Objek Pada Sistem Terdistribusi Berbasis CORBA dibutuhkan suatu kemampuan yang mampu menjelajah sistem terdistribusi untuk mendapatkan informasi IDL dan objek aktif yang bersifat public (umum), kemampuan ini dimiliki oleh Smart Agent milik Visibroker. Visibroker Smart Agent (osagent) adalah dinamis, layanan petunjuk terdistribusi yang menyediakan fasilitas yang digunakan program client dan implementasi objek. Sebuah Smart Agent dapat berjalan minimal pada satu host termasuk dengan jaringan lokal. Ketika program client memanggil bind{} pada suatu objek, Smart Agent secara otomatis akan mencari informasi. Smart Agent mengalokasikan implementasi khusus sehingga sebuah koneksi dapat dibentuk antara client dengan implementasi. Komunikasi dengan Smart Agent sangatlah transparan bagi program client.

Minggu, 02 Juni 2013

RSA Security (Rivest, Shamir, Adleman)




Apakah RSA Itu?? RSA security merupakan algoritma kriptografi asimetri yang digunakan untuk mengenkripsi dan mendekripsi data dengan kunci yang berbeda . Kunci yang digunakan untuk mengenkripsi disebut dengan kunci public sedangkan yang digunakan untuk mendekripsi disebut dengan kunci privat. RSA juga alghoritma pertama yang mengimplementasikan Digital Signature dan berhasil dengan baik dalam implementasi public serta private key. RSA membutuhkan tiga langkah dalam prosesnya, yaitu pembangkitan kunci, enkripsi, dan dekripsi. Proses enkripsi dan dekripsi merupakan proses yang hampir sama. Jika bilangan acak yang dibangkitkan kuat, maka akan lebih sulit untuk melakukan cracking terhadap pesan. Parameter kuat tidaknya suatu kunci terdapat pada besarnya bilangan acak yang digunakan.

Algortima RSA dijabarkan pada tahun 1976 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf '''RSA''' itu sendiri berasal dari inisial nama mereka (‘R’ivest - ‘S’hamir – ‘A’dleman). Clifford Cocks, seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan ''top-secret classification''. Algoritma RSA dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai US patent 4405829. Paten tersebut berlaku hingga 21 September 2000. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas.
Konsep fundamental dari Kriptografi Kunci Publik ditemukan oleh Whitfield Diffie dan Martin Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Kriptografi Kunci Publik terletak pada pemahaman bahwa kunci selalu berpasangan: kunci enkripsi dan kunci dekripsi tetapi juga perlu diingat bahwa sebuah kunci tidak dapat dibangkitkan dari kunci lainnya. Seseorang harus memberikan kunci publiknya agar pihak lain dapat mengenkripsi sebuah pesan dan dekripsi hanya terjadi jika seseorang mempunyai kunci privat.
Alghoritma ini biasanya digunakan untuk melakukan enkripsi data pada protokol-protokol aman seperti TLS dan SSL. Salah satu service/layanan paling populer yang menggunakan TLS atau SSL diantaranya HTTPS atau protokol HTTP yang aman. Telah terdapat banyak software yang dapat digunakan untuk memanfaatkan fasilitas TLS dan SSL ini, diantaranya yang paling populer adalah OpenSSL dan GnuTLS. Aplikasi server juga sudah banyak yang mendukung layanannya agar dapat berjalan dalam protokol ini seperti Apache HTTPD, Sendmail, dan sebagainya.
Alur Operasi RSA
Alghoritma RSA terbagi kedalam tiga bagian utama yaitu :
  1. Proses Pembuatan Kunci (Private dan Public Keys)
Alghoritma RSA melibatkan dua kunci yaitu Private Key dan Public Key. Dimana Public Key dapat secara aman diketahui oleh semua pihak untuk digunakan sebagai kunci untuk melakukan enkripsi, sedangkan Private Key harus selalu di simpan secara rahasia untuk melakukan Dekripsi (Decrypt) data yang telah di enkripsi dengan menggunakan Public Key.
Data yang telah di enkripsi oleh Public Key hanya dapat di dekripsi oleh Private Key, hal ini lah yang membuat data yang dienkripsi dengan alghoritma RSA aman walaupun Alghoritma RSA-nya diketahui selama Private Key nya tidak diketahui oleh pihak lain.
Pembuatan Private dan Public key terdiri dari 5 tahap, diantaranya:
a.       Cari 2 Bilangan Prima secara acak dan simpan dalam variabel p dan q, dengan catatan jumlah bit untuk bilangan ini sama. Nilai p harus lebih besar dari q dan direkomendasikan minimal untuk menggunakan bilangan di atas 128bit/2 = 64bit bila akan membuat kunci dengan bit-length sebesar 128bit ( min 64bit hex = 0x8000000000000000; min 64bit desimal=9223372036854775808 ).
b.      Hitung n = p*q;
Dimana nilai n ini akan digunakan untuk modulus pada private dan public key.
c.       Hitung pq = (p-1) * (q-1);
Untuk digunakan sebagai pencarian nilai private key.
d.      Pilih nilai e untuk public key dengan syarat (1< e < pq) dan (gcd(e,pq)=1);
Nilai e ini biasanya merupakan nilai yang relatif kecil, yang paling sering
v digunakan adalah 0x10001 = 65537. Bila kriteria e tidak cocok dengan syarat di atas, maka harus dicari nilai e lain yang sesuai, atau bila e sudah ditentukan dengan 0x10001, maka yang harus dicari kembali adalah nilai p, q, n dan pq seperti pada tahap awal.
e.       Pilih nilai d, dengan syarat nilai d memenuhi: (d*e) mod pq = 1
  1. Proses Enkripsi
Berikut adalah ilustrasi enkripsi dengan menggunakan RSA:
Ahmad mengirimkan public key (n,e) nya untuk Idik, dan menyimpan secara rahasia private key-nya. Idik ingin mengirimkan pesan "M" pada Ahmad. Idik kemudian merubah M menjadi kode ascii (berupa integer) dan menghitung ciphertext "c" (nilai yang telah terenkripsi) dengan menggunakan public key yang dikirimkan oleh Ahmad kepadanya, kemudian Idik mengirimkan nilai c kepada Ahmad untuk di-decrypt dengan menggunakan private-key miliknya.
Ada beberapa syarat dalam enkripsi di RSA, dimana nilai M harus lebih besar dari 0, dan harus lebih kecil dari nilai n (dari public key). Kode Ascii untuk M adalah 77. Bila Public Key adalah (n=3233 dan e=17) maka nilai M ini memenuhi syarat 0 < 77 < 3233; dan dapat langsung dilakukan kalkulasi.
Proses enkripsi sangat mudah, hanya dengan melakukan kalkulasi
1.                   c = (M pangkat e) mod n 
Bila M=77, dan public Key adalah n=3233 dan e=17 maka:
1.                   c = (77 pangkat 17) mod 3233 
2.                   c = 117582402033097174749136828787597 mod 3233 
3.                   c = 3123 
  1. Proses Dekripsi
Operasi Dekripsi/decrypt tidak berbeda jauh dengan operasi encrypt, yang berbeda adalah nilai yang dimasukkan kedalam fungsi powmod itu. Dalam operasi decrypt, nilai M diganti dengan nilai c dari ciphertext (hasil enkripsi) dan nilai e dari public key diganti dengan nilai d dari private key, sedangkan nilai n dari public key selalu sama dengan nilai n dari private key.
Dari penjelasan sebelumnya Kita sudah mendapatkan data-data sebagai berikut:
1.                   Private Key = (n=3233 dan d=2753) 
2.                   c = 3123 
Dengan menggunakan private key, Kita ingin melakukan decrypt dari c menjadi M kembali, caranya adalah:
1.                   M2 = (c pangkat d) mod n 
2.                   M2 = (3123 pangkat 2753) mod 3233 
3.                   M2 = 7+E8301 mod 3233 
4.                   M2 = 77 

Kita coba menghitungnya dengan fungsi bcpowmod, gmp_powm atau AmarullzPowMod di atas:
1.                   M2 = AmarullzPowMod(3123,2753,3233); 
2.                   M2 akan bernilai 77 

Dengan perhitungan tersebut, kita sudah dapat mengimplementasikan Private dan Public Key sebagai sarana untuk melakukan enkripsi dengan menggunakan alghoritma RSA, dimana Idik melakukan enkripsi data M=77 dengan public key dan mendapatkan nilai c=3123, kemudian mengirimkannya kepada Ahmad untuk di dekripsi dengan menggunakan private key dan mendapatkan data yang sama dengan yang dimaksudkan oleh Idik, yaitu M2=77.
KELEBIHAN DAN KELEMAHAN RSA
Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya, dalam hal ini memfaktorkan n menjadi p dan q. Karena sekali n berhasil difaktorkan, maka menghitung nilai m adalah perkara mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah mudah pula karena nilai m yang tidak diketahui. Kelebihan lain algoritma RSA terletak pada ketahanannya terhadap berbagai bentuk serangan, terutama serangan brute force. Hal ini dikarenakan kompleksitas dekripsinya yang dapat ditentukan secara dinamis dengan cara menentukan nilai p dan q yang besar pada saat proses pembangitkan pasangan kunci, sehingga dihasilakan sebuah key space yang cukup besar, sehingga tahan terhadap serangan.
Namun demikian, kelebihan tersebut sekaligus menjadi kelemahan dari sistem ini. Ukuran kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk ukuran pesan yang besar. Oleh karena itu, RSA umumnya digunakan untuk meng-enkripsi pesan berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian kunci tersebut dikirim secara bersamaan dengan pesan utama.
Kelompok 3 Sistem Terdistribusi (A1)
  • Ahmad Quzwaini 1001.53.0032
  • Atiek Puji Rahayu (10.01.53.0049)
  • Siti Rachmawati (10.01.53.0058)
  • Marischa W.F (10.01.53.0052)