Pages

Selasa, 09 Oktober 2012

Network Address Translation (NAT)


Network Address Translation atau NAT adalah suatu metode untuk menghubungkan lebih dari satu komputer ke jaringan internet dengan menggunakan satu alamat IP. Banyaknya penggunaan metode ini disebabkan karena ketersediaan alamat IP yang terbatas, kebutuhan akan keamanan (security), dan kemudahan sertafleksibilitas dalam administrasi jaringan.
 Keterbatasan alamat IPv.4 merupakan masalah pada jaringan global atau Internet. Untuk memaksimalkan penggunakan alamat IP yang diberikan oleh Internet ServiceProvider (ISP) dapat digunakan Network Address Translation atau NAT.
NAT membuat jaringan yang menggunakan alamat lokal (private), alamat yang tidak boleh ada dalam tabel routing internet dan untuk jaringan lokal/intranet, dapat berkomunikasi ke Internet dengan jalan ‘meminjam’ alamat IP Internet yang dialokasikan oleh ISP. Atau dapat juga digunakan untuk koneksi jaringan antar organisasi yang berbeda yang tidak ingin alamat jaringannya diketahui oleh organisasi lain.
 Dengan NAT, jaringan internal/lokal, tidak akan terlihat oleh dunia luar/internet. IP lokal yang cukup banyak dapat dilewatkan ke intenet hanya dengan melalui translasi ke satu IP publik/global.
Di dalam Windows, ada sebuah tool yang digunakan untuk memanajemen network seperti mensetting IP address, menyiapkan routing, dsb. Tool ini namanya netsh (singkatan dari network shell). Untuk menggunakan netsh ini dalam membuat router, kita akan membutuhkan 2 NIC (Network Interface Card). NIC yang pertama adalah untuk terhubung ke network publik (misal: Internet) dan yang lainnya adalah untuk terhubung ke LAN (Local Area Network). Untuk NIC LAN, bisa dihubungkan ke switch atau ke satu komputer (diperlukan kabel crossover).
 Cara berikut adalah untuk membuat Windows XP bekerja sebagai NAT, tetapi tanpa batasan dari ICS (Internet Connection Sharing).
Kebutuhan :
1.      Dua buah kartu jaringan (NIC) :
a.       NIC1: terhubung ke jaringan internal (LAN).  (Network apa saja, tidak terbatas pada 192.168.1.0).
b.      NIC2 : ke jaringan internet (atau jaringan lain yang ingin d ihubungkan).

2.      Mempunyai hak akses administrasi untuk menghentikan/memulai services.

Langkah-langkah membuat Router dengan NAT pada Windows XP :
1.      Nonaktifkan ICS pada kedua NIC.
Klik kanan pada NIC > Properties > Advanced. Pastikan Allow other network users to connect through this computer’s Internet connection tidak dicont(r)eng.

2.      Menonaktifkan Firewall/ICS Service (boleh lebih dulu dari langkah 1)
Buka Control Panel > Administrative Tools > Services > Windows Firewall / Internet Connection Sharing (ICS) > Klik 2x dan ubah Startup type menjadi “Disabled” dan klik OK.

3.      Mengaktifkan layanan Routing and Remote Access.
a)      Jika menggunakan Category View :Buka Control Panel > Performance and Maintenance > Administrative Tools >  Services > Routing and Remote Access > klik 2x dan ubah Startup type menjadi “Automatic” dan klik OK.
b)      Jika tidak : Control Panel > Administrative Tools > Services > Routing and Remote Access > klik 2x dan ubah Startup type menjadi “Automatic” dan klik OK.

4.      Mengaktifkan “IPEnableRouter” pada registry.
a)      Buka Start > Run… dan ketik “regedit”, tanpa tanda petik “ ”, Klik OK.
b)      Pada window Registry Editor : buka HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > Tcpip > Parameters. Cari “IPEnableRouter”. Klik 2x dan ubah value dari 0 menjadi 1
c)      Restart komputer.
5.      Melakukan konfigurasi NIC :
a)      Cukup satu saja yang memiliki gateway (Misal: NIC2). Hapus gateway pada NIC yang satunya. (NIC1)
b)      (Opsional) Lakukan perubahan nama pada NIC1 (Namanya mungkin “LocalArea Connection”) menjadi “LAN” dan NIC2 (Namanya mungkin “Local Area Connection 2”) menjadi “Internet”. Tujuannya disini untuk memudahkan mengenali tiap NIC.

6.      Mengaktifkan dan mengkonfigurasi NAT.
a)      Klik tombol Start > Run.
b)      Ketik cmd pada Open dan klik OK.
c)      Ketik netsh routing ip nat uninstall (untuk menjamin services tidak aktif).
d)     Instalasi NAT : Ketik netsh routing ip nat install.
e)      Menambahkan interface publik : Ketik netsh routing ip nat add interface name = “Internet” mode = FULL.
f)       Menambahkan interface private : Ketik netsh routing ip nat add interface name = “LAN” mode = PRIVATE.

Konfigurasi pada PC Client :
PC Client harus dikonfigurasi menggunakan subnet yang sama dengan router. Ubahdefault gateway dan DNS server menjadi IP address pada router

Firewall Filter


Firewall jaringan menjaga semua ancaman dari luar terhadap data-data yang berada didalam jaringan. Ketika suatu jaringan yang berbeda saling berkomunikasi, maka ada kemungkinan seseorang dari jaringan yang satu mencoba membobol jaringan lainnya. Sehingga mengakibatkan adanya pencurian data, menghapus data-data penting, atau bahkan seluruh hardisk di delete. Firewall dibuat untuk mencegah dan memperkecil kemungkinan ini.
Konfigurasi yang tepat menjadi kunci penting dalam efisiensi dan keamanan infrastruktur jaringan. Mikrotik router mempunyai firewall yang sudah diimplementasikan dengan bagus dengan fitur-fitur antara lain:
-          Memfilter paket data
-          Memfilter protokol p2p
-          Mengklasifikasi trafik berdasarkan:
-          sumber MAC
-          IP address
-          rentang port
-          protokol ip
-          opsi protokol (tipe ICMP, TCP Flags, Opsi IP, MSS)
-          interface dimana paket tersebut masuk atau keluar
-          Flow internal dan mark koneksi
-          ToS (DSCP)
-          konten paket
-          ukuran paket
-          waktu paket datang
-          dan banyak lagi yang lainnya

Prinsip Firewall
Firewall berjalan sesuai dengan perintah/rules firewall. Setiap rule terdiri dari 2 bagian yaitu matcher yang mencocokkan trafik dan action yang akan mendifinisikan respon terhadap paket yang cocok tersebut. Untuk lebih mudah dimanajemen rule diletakkan pada bagian chain. Fasilitas filter mempunyai 3 jenis chains : input, forward, output yang bertanggung jawab untuk setiap trafik yang datang, melewati dan menuju router.
Filter Chains
Seperti yang sudah disebutkan sebelumnya, rule filter firewall berada dalam satu group dalam chains. sehingga bisa saja suatu paket memenuhi kriteria di dalam salah satu chain dan tidak terhadap chain yang lainnya. Contohnya paket harus cocok antara ip dan portnya, maka kita bisa meletakkan sebanyak mungkin rule dengan IP address : port kedalam forward chain, tetapi sebaiknya kita cukup menggunakan satu rule yang mencakup rentang ip address sebagai berikut : /ip firewall filter add src-address=192.168.10.0/32 jump-target=”xchain”
-          input :  digunakan untuk memproses paket yang memasuki router melalui salah satu interface dimana ip tujuannya adalah salah satu dari address router. Paket yang hanya melewati router tidak akan diproses oleh input chain.
-          forward :  digunakan untuk memproses paket yang melewati router
-          output : digunakan untuk memproses paket yang berasal dari router dan meninggalkan router lewat salah satu interfacenya. Paket yang hanya melewati router tidak akan diproses oleh output chain.

Kamis, 04 Oktober 2012

Algoritma RSA

Konsep fundamental dari Public-Key Cryptography ditemukan oleh Whitfield Diffie dan Martin Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Public-Key Cryptography terletak pada pemahaman bahwa keys selalu berpasangan: encryption key dan decryption key. Juga perlu diingat bahwa sebuah key tidak dapat digenerate dari key lainnya. Pemahaman encryption dan decryption key sering disebut sebagai public dan private key. Seseorang harus memberikan public key-nya agar pihak lain dapat meng-encrypt sebuah pesan. Decryption hanya terjadi jika seseorang mempunyai private key. 
Bagian ini menjelaskan skenario bagaimana public-key cryptosystem bekerja. Saya akan menggunakan partisipan klasik Alice dan Bob sebagai orang-orang yang melakukan pertukaran informasi.

1. Alice dan Bob setuju untuk menggunakan public-key cryptosystem.
2. Bob mengirimkan public key-nya kepada Alice.
3. Alice meng-encrypt pesan yang dibuatkan dengan menggunakan public key milik Bob dan mengirimkan pesan yang sudah di-encrypt kepada Bob.
4. Bob men-decrypt pesan dari Alice menggunakan private key miliknya.

Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. RSA adalah sebuah algoritma berdasarkan skema public-key cryptography. Diberi nama RSA sebagai inisial para penemunya: Ron Rivest, Adi Shamir, dan Leonard Adleman. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh MIT pada tahun 1983. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas. Lebih jauh, RSA adalah algoritma yang mudah untuk diimplementasikan dan dimengerti. Algoritma RSA adalah sebuah aplikasi dari sekian banyak teori seperti extended euclid algorithm, euler’s function sampai fermat theorem. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor  prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi  faktor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Masuk ke penggunaannya nih,, 

Misalkan Bob ingin mengirim sebuah pesan ‘H’ kepada Alice.
a. Alice harus membuat keynya; sehingga ia memiliki private dan public keys.
private key = (M,d)
public key = (M,e)

b. Mengubah ‘H’ menjadi sebuah bilangan yang menggunakan alphabet yang valid dengan tabel bilangan. Sebuah contoh mudah adalah
mapping A = 1, B = 2 … Z = 26.
sehingga H = 8

c. C = 8^e (mod M)
C adalah sebuah bilangan ter-encrypt. 

d. Bob mengirimkan bilangan tersebut kepada Alice sehingga Alice dapat melakukan decode ulang menggunakan private keynya.
Misalkan Alice menerima sebuah pesan ter-encrypt, ia akan men-decrypt-nya menggunakan tahapan-tahapan berikut:
a. Alice mempunyai private key dari langkah-langkah di atas (M,d)
b. N = C^d (mod M)
c. N adalah bilangan. Gunakan konversi table alphabet untuk mengubah N menjadi karakter yang direpresentasikannya. Secara singkat, ini nih algoritma pembangkitan kuncinya:
1. Hasilkan dua buah integer prima besar, p dan q Untuk memperoleh tingkat keamanan yang tinggi pilih p dan q yang berukuran besar, misalnya 1024 bit.
2. Hitung m = (p-1)*(q-1)
3. Hitung n = p*q
4. Pilih d yg relatively prime terhadap m
e relatively prime thd m artinya faktor pembagi terbesar keduanya adalah 1, secara matematis disebut gcd(e,m) = 1. Untuk mencarinya
dapat digunakan algoritma Euclid.
5. Cari d, sehingga e*d = 1 mod (m), atau d = (1+nm)/e Untuk bilangan besar, dapat digunakan algoritma extended Euclid.
6. Kunci publik : e, n
Kunci private : d, n

Metode Pengembangan Sistem

Metodologi Pengembangan Sistem merupakan proses-proses standard yang digunakan untuk membangun suatu sistem informasi yang secara umum meliputi langkah-langkah berikut ini:
·         Analisa,
·         Desain,
·         Implementasi,
·         Maintenance.
Pada perkembangannya, proses-proses standar tadi dituangkan dalam beberapa metodologi pengembangan sistem, antara lain :
A.  SYSTEMS DEVELOPMENT LIFE CYCLE (SDLC)
Merupakan proses evolusioner yang diikuti dalam menerapkan sistem atau subsistem informasi berbasis komputer. SDLC sering disebut sebagai pendekatan air terjun (Waterfall approach) bagi pengembangan dan penggunaan sistem.
Tahapan SDLC :
1.  Identifikasi dan seleksi proyek
Langkah pertama dalam SDLC, keseluruhan informasi yang dibutuhkan oleh sistem diidentifikasi, dianalisa, diprioritaskan dan disusun ulang. Dalam langkah ini dilakukan beberapa hal, diantaranya :
·      Mengidentifikasi proyek-proyek yang potensial
·      Melakukan klasifikasi dan me-rangking proyek
·      Memilih proyek untuk dikembangkan
2.  Inisiasi dan perencanaan proyek
Dalam tahapan ini proyek Sistem Informasi yang potensial dijelaskan dan argumentasi untuk melanjutkan proyek dikemukakan. Rencana kerja yang matang juga disusun untuk menjalankan tahapan-tahapan lainnya.
3.  Analisa
Meliputi 6 aktifitas utama dalam fase ini, yakni :
·   Pengumpulan informasi
·   Mendefinisikan sistem requirement
·   Membangun prototype untuk menemukan requirement
·   Memprioritaskan requitement
·   Menyusun dan mengevaluasi alternatif
·   Mereview requiremen dengan pihak manajemen
4.  Desain
Pada tahapan ini deskripsi dari requirement yang telah direkomendasikan diubah ke dalam spesifikasi desain logical dan fisikal.
·  Desain logical :
Bagian dari fase desain dalam SDLC dimana semua fitur-fitur fungsional dari sistem dipilih dari tahapan analisis dideskripsikan terpisah dari platform komputer yang nanti digunakan.
·  Desain Fisikal :
Pada bagian ini spesifikasi logical diubah ke dalam detail teknologi dimana pemrograman dan pengembangan sistem bisa diselesaikan.
5.  Implementasi
Tahapan kelima pada SDLC, dimana pada tahapan ini dilakukan beberapa hal yaitu:
·   Coding
·   Testing
·   Instalasi
6.  Maintenance
Langkah terakhir dari SDLC dimana pada tahapan ini sistem secara sistematis diperbaiki dan ditingkatkan.

Kelebihan dari SDLC antara lain :
  • Merupakan model pengembangan sistem paling handal dan paling lama digunakan
  • Cocok untuk sistem berskala besar dan bersifat generic
  • Pengerjaan pengembangan akan terjadwal dengan baik dan mudah dikontrol.
Sedangkan kelemahan dari SDLC antara lain :
  • Terlalu mahal (biaya dan waktu) ketika terjadi perubahan ketika sistem sudah dikembangkan.
  • SDLC merupakan metode dengan pendekatan terstruktur yang mensyaratkan mengikuti semua langkah yang ada.
  • Biaya maintenace cukup besar.

B.  PROTOTYPING
Prototyping merupakan proses iterative dalam pengembangan sistem dimana requirement diubah ke dalam sistem yang bekerja (working system) yang secara terus-menerus diperbaiki melalui kerjasama antara user dan analis.
Tahapan Prototyping :
1.  Pengumpulan kebutuhan
Pelanggan dan  pengembang bersama-sama mendefinisikan  format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan  dibuat.
2.  Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output)
3.  Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan apakah prototyping yang sudah dibangun sudah  sesuai dengan keinginann pelanggan. Jika sudah sesuai maka langkah 4 akan diambil. Jika tidak prototyping direvisi dengan mengulangi langkah 1, 2 , dan 3.
4.  Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa  pemrograman yang sesuai
5.  Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, harus dites dahulu sebelum digunakan.  Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain
6.  Evaluasi Sistem
Pelanggan mengevaluasi apakah sistem yang sudah jadi sudah sesuai dengan yang  diharapkan. Jika ya, langkah 7 dilakukan; jika tidak, ulangi langkah 4 dan 5.
7.  Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Kelebihan dari Prototyping antara lain :
  • Pendefinisian kebutuhan pemakai menjadi lebih baik karena keterlibatan pemakai yang lebih intensif.
  • Meningkatkan kepuasan pemakai dan mengurangi risiko pemakai tidak menggunakan sistem mengingat keterlibatan mereka yang sangat tinggi sehingga sistem memenuhi kebutuhan mereka dengan lebih baik.
  • Mempersingkat waktu pengembangan.
  • Memperkecil kesalahan disebabkan pada setiap versi prototipe, kesalahan segera terdeteksi oleh pemakai.
  • Pemakai memiliki kesempatan yang lebih banyak dalam meminta perubahan-perubahan.
  • Menghemat biaya (menurut penelitian, biaya pengembangan dapat mencapai 10% hingga 20% dibandingkan kalau menggunakan SDLC tradisional).
Sedangkan kelemahan dari Prototyping antara lain :
  • Prototipe hanya bisa berhasil jika pemakai bersungguh-sungguh dalam menyediakan waktu dan pikiran untuk menggarap prototype.
  • Kemungkinan dokumentasi terabaikan karena pengembang lebih berkonsentrasi pada pengujian dan pembuatan prototype.
  • Mengingat target waktu yang pendek, ada kemungkinan sistem yang dibuat tidak lengkap dan bahkan sistem kurang teruji.
  • Jika terlalu banyak proses pengulangan dalam membuat prototipe, ada kemungkinan pemakai menjadi jenuh dan memberikan reaksi yang negatif.
  • Apabila tidak terkelola dengan baik, prototipe menjadi tak pernah berakhir. Hal ini disebabkan permintaan terhadap perubahan terlalu mudah untuk dipenuhi.
C.  RAD (Rapid Application Development)
Merupakan model proses pembangunan perangkat lunak yang tergolong dalam teknik incremental (bertingkat) dan menekankan pada siklus pembangunan pendek, singkat, dan cepat.
Tahapan RAD :
1. Business Modeling
2. Data modeling
3. Process Modeling
4. Application Generation
5. Testing dan Turnover

Kelebihan dari RAD antara lain :
  • Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehinnga waktunya lebih efesien.
  • RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada  (reusable object) sehingga pengembang pengembang tidak perlu membuat dari awal lagi dan waktu lebih singkat .
Sedangkan kelemahan dari RAD antara lain :
  • Proyek yang besar dan berskala, RAD memerlukan sumer daya manusia yang memadai untuk menciptakan jumlah tim yang baik.
  • RAD menuntut pengembang dan pelanggan memiliki komitmen dalam aktivitas rapid fire yang diperlukan untuk melengkapi sebuah sistem dlam waktu yang singkat. Jika komitmen tersebut tidak ada maka proyek RAD akan gagal.