Selasa, 28 September 2010

Kriptografi


Pengantar
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan berita [bruce Schneier - Applied Cryptography]. Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data [A. Menezes, P. van Oorschot and S. Vanstone - Handbook of Applied Cryptography]. Tidak semua aspek keamanan informasi ditangani oleh kriptografi.

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi yaitu :
  • Kerahasiaan, adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.
  • Integritas data, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
  • Autentikasi, adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
  • Non-repudiasi., atau nirpenyangkalan adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat.

Algoritma Sandi
Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Algoritma tersebut harus memiliki kekuatan untuk melakukan (dikemukakan oleh Shannon):
  • konfusi/pembingungan (confusion), dari teks terang sehingga sulit untuk direkonstruksikan secara langsung tanpa menggunakan algoritma dekripsinya
  • difusi/peleburan (difusion), dari teks terang sehingga karakteristik dari teks terang tersebut hilang.
Sehingga dapat digunakan untuk mengamankan informasi. Pada implementasinya sebuah algoritmas sandi harus memperhatikan kualitas layanan/Quality of Service atau QoS dari keseluruhan sistem dimana dia diimplementasikan. Algoritma sandi yang handal adalah algoritma sandi yang kekuatannya terletak pada kunci, bukan pada kerahasiaan algoritma itu sendiri. Teknik dan metode untuk menguji kehandalan algoritma sandi adalah kriptanalisa.

Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen teks terang /plaintext dan yang berisi elemen teks sandi/ciphertext. Enkripsi dan dekripsi merupakan fungsi transformasi antara himpunan-himpunan tersebut. Apabila elemen-elemen teks terang dinotasikan dengan P, elemen-elemen teks sandi dinotasikan dengan C, sedang untuk proses enkripsi dinotasikan dengan E, dekripsi dengan notasi D.

Enkripsi : E(P) = C
Dekripsi : D(C) = P atau D(E(P)) = P

Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi :
  • kunci-simetris/symetric-key, sering disebut juga algoritma sandi konvensional karena umumnya diterapkan pada algoritma sandi klasik
  • kunci-asimetris/asymetric-key
Berdasarkan arah implementasi dan pembabakan jamannya dibedakan menjadi :
  • algoritma sandi klasik classic cryptography
  • algoritma sandi modern modern cryptography
Berdasarkan kerahasiaan kuncinya dibedakan menjadi :
  • algoritma sandi kunci rahasia secret-key
  • algoritma sandi kunci publik publik-key
Pada skema kunci-simetris, digunakan sebuah kunci rahasia yang sama untuk melakukan proses enkripsi dan dekripsinya. Sedangkan pada sistem kunci-asimentris digunakan sepasang kunci yang berbeda, umumnya disebut kunci publik (public key) dan kunci pribadi (private key), digunakan untuk proses enkripsi dan proses dekripsinya. Bila elemen teks terang dienkripsi dengan menggunakan kunci pribadi maka elemen teks sandi yang dihasilkannya hanya bisa didekripsikan dengan menggunakan pasangan kunci pribadinya. Begitu juga sebaliknya, jika kunci pribadi digunakan untuk proses enkripsi maka proses dekripsi harus menggunakan kunci publik pasangannya.

Algoritma Sandi Kunci-Simetris

Skema algoritma sandi akan disebut kunci-simetris apabila untuk setiap proses enkripsi maupun dekripsi data secara keseluruhan digunakan kunci yang sama. Skema ini berdasarkan jumlah data per proses dan alur pengolahan data didalamnya dibedakan menjadi dua kelas, yaitu block-cipher dan stream-cipher.

Block-Cipher

Block-cipher adalah skema algoritma sandi yang akan membagi-bagi teks terang yang akan dikirimkan dengan ukuran tertentu (disebut blok) dengan panjang t, dan setiap blok dienkripsi dengan menggunakan kunci yang sama. Pada umumnya, block-cipher memproses teks terang dengan blok yang relatif panjang lebih dari 64 bit, untuk mempersulit penggunaan pola-pola serangan yang ada untuk membongkar kunci. Untuk menambah kehandalan model algoritma sandi ini, dikembangkan pula beberapa tipe proses enkripsi, yaitu :
  • ECB, Electronic Code Book
  • CBC, Cipher Block Chaining
  • OFB, Output Feed Back
  • CFB, Cipher Feed Back
 

Stream-Cipher

Stream-cipher adalah algoritma sandi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per lima bit(saat data yang di enkripsi berupa data Boudout). Setiap mengenkripsi satu satuan data di gunakan kunci yang merupakan hasil pembangkitan dari kunci sebelum.

Algoritma-algoritma sandi kunci-simetris

Beberapa contoh algoritma yang menggunakan kunci-simetris:
  • DES - Data Encryption Standard
  • blowfish
  • twofish
  • MARS
  • IDEA
  • 3DES - DES diaplikasikan 3 kali
  • AES - Advanced Encryption Standard, yang bernama asli rijndael
  

    Algoritma Sandi Kunci-Asimetris

    Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Skema ini disebut juga sebagai sistem kriptografi kunci publik karena kunci untuk enkripsi dibuat untuk diketahui oleh umum (public-key) atau dapat diketahui siapa saja, tapi untuk proses dekripsinya hanya dapat dilakukan oleh yang berwenang yang memiliki kunci rahasia untuk mendekripsinya, disebut private-key. Dapat dianalogikan seperti kotak pos yang hanya dapat dibuka oleh tukang pos yang memiliki kunci tapi setiap orang dapat memasukkan surat ke dalam kotak tersebut. Keuntungan algoritma model ini, untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci, yaitu kunci publik bagi para korensponden untuk mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan skema kunci-simetris, jumlah kunci yang dibuat adalah sebanyak jumlah pihak yang diajak berkorespondensi.

    Fungsi Enkripsi dan Dekripsi Algoritma Sandi Kunci-Asimetris

    Apabila Ahmad dan Bejo hendak bertukar berkomunikasi, maka:
    1. Ahmad dan Bejo masing-masing membuat 2 buah kunci


      1. Ahmad membuat dua buah kunci, kunci-publik \!K_{publik[Ahmad]} dan kunci-privat \!K_{privat[Ahmad]}
      2. Bejo membuat dua buah kunci, kunci-publik \!K_{publik[Bejo]} dan kunci-privat \!K_{privat[Bejo]}
    2. Mereka berkomunikasi dengan cara:


      1. Ahmad dan Bejo saling bertukar kunci-publik. Bejo mendapatkan \!K_{publik[Ahmad]} dari Ahmad, dan Ahmad mendapatkan \!K_{publik[Bejo]} dari Bejo.
      2. Ahmad mengenkripsi teks-terang \!P ke Bejo dengan fungsi \!C = E(P,K_{publik[Bejo]})
      3. Ahmad mengirim teks-sandi \!C ke Bejo
      4. Bejo menerima \!C dari Ahmad dan membuka teks-terang dengan fungsi \!P = D(C,K_{privat[Bejo]})
    Hal yang sama terjadi apabila Bejo hendak mengirimkan pesan ke Ahmad
    1. Bejo mengenkripsi teks-terang \!P ke Ahmad dengan fungsi \!C = E(P,K_{publik[Ahmad]})
    2. Ahmad menerima \!C dari Bejo dan membuka teks-terang dengan fungsi \!P = D(C,K_{privat[Ahmad]})

     

    Algoritma -Algoritma Sandi Kunci-Asimetris

    • Knapsack
    • RSA - Rivert-Shamir-Adelman
    • Diffie-Hellman
     

    Fungsi Hash Kriptografis

    Fungsi hash Kriptografis adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Umumnya digunakan untuk keperluan autentikasi dan integritas data. Fungsi hash adalah fungsi yang secara efisien mengubah string input dengan panjang berhingga menjadi string output dengan panjang tetap yang disebut nilai hash.

    Sifat-Sifat Fungsi Hash Kriptografi

    • Tahan preimej (Preimage resistant): bila diketahui nilai hash h maka sulit (secara komputasi tidak layak) untuk mendapatkan m dimana h = hash(m).
    • Tahan preimej kedua (Second preimage resistant): bila diketahui input m1 maka sulit mencari input m2 (tidak sama dengan m1) yang menyebabkan hash(m1) = hash(m2).
    • Tahan tumbukan (Collision-resistant): sulit mencari dua input berbeda m1 dan m2 yang menyebabkan hash(m1) = hash(m2)
     

    Algoritma-Algoritma Fungsi Hash Kriptografi

    Beberapa contoh algoritma fungsi hash Kriptografi:
    • MD4
    • MD5
    • SHA-0
    • SHA-1
    • SHA-256
    • SHA-512

    Sumber : http://id.wikipedia.org/wiki/Kriptografi

    Senin, 27 September 2010

    Ringkasan Firewall

    Pengantar
    Ibarat sebuah rumah yang memiliki pagar sebagai pelindungnya, baik dari kayu, tembok beton, kawat berduri ataupun kombinasi beberapa jenis pagar, maka tak pula mengherankan apabila sebuah komputer yang merupakan sebuah tempat vital dalam komunikasi data yang menyimpan semua harta dan benda yang kita miliki juga patut kita lindungi. Tetapi, apa pula jenis pagar yang akan kita pakai untuk membentengi komputer/jaringan pribadi kita terhadap semua ancaman khususnya dari luar terhadap semua properti pribadi kita yang terdapat didalamnya? Pernah dengar istilah Tembok Api? Sedikit terdengar lucu apabila diartikan per suku kata dari kata "firewall". Tetapi apa dan bagaimanakah firewall itulah yang akan kita coba kupas dalam tulisan ini.


    Pengertian
    Firewall atau tembok-api adalah sebuah sistem atau perangkat yang mengizinkan lalu lintas jaringan yang dianggap aman untuk melaluinya dan mencegah lalu lintas jaringan yang tidak aman. Umumnya, sebuah tembok-api diterapkan dalam sebuah mesin terdedikasi, yang berjalan pada pintu gerbang (gateway) antara jaringan lokal dan jaringan lainnya. Tembok-api umumnya juga digunakan untuk mengontrol akses terhadap siapa saja yang memiliki akses terhadap jaringan pribadi dari pihak luar. Saat ini, istilah firewall menjadi istilah lazim yang merujuk pada sistem yang mengatur komunikasi antar dua jaringan yang berbeda. Mengingat saat ini banyak perusahaan yang memiliki akses ke Internet dan juga tentu saja jaringan berbadan hukum di dalamnya, maka perlindungan terhadap modal digital perusahaan tersebut dari serangan para peretas, pemata-mata, ataupun pencuri data lainnya, menjadi hakikat.








    Fungsi Firewall
    Secara fundamental, firewall dapat melakukan hal-hal berikut:
    • Mengatur dan mengontrol lalu lintas jaringan
    • Melakukan autentikasi terhadap akses
    • Melindungi sumber daya dalam jaringan privat
    • Mencatat semua kejadian, dan melaporkan kepada administrator

      Karakteristik Sebuah Firewall
      1. Seluruh hubungan/kegiatan dari dalam ke luar , harus melewati firewall. Hal ini dapat dilakukan dengan cara memblok/membatasi baik secara fisik semua akses terhadap jaringan Lokal, kecuali melewati firewall. Banyak sekali bentuk jaringan yang memungkinkan agar konfigurasi ini terwujud.
      2. Hanya Kegiatan yang terdaftar/dikenal yang dapat melewati/melakukan hubungan, hal ini dapat dilakukan dengan mengatur policy pada konfigurasi keamanan lokal. Banyak sekali jenis firewall yang dapat dipilih sekaligus berbagai jenis policy yang ditawarkan.
      3. Firewall itu sendiri haruslah kebal atau relatif kuat terhadap serangan/kelemahan. hal ini berarti penggunaan sistem yang dapat dipercaya dan dengan system yang relatif aman.

      Teknik yang Digunakan Oleh Firewall
      • Service control (kendali terhadap layanan)
      Berdasarkan tipe-tipe layanan yang digunakan di Internet dan boleh diakses baik untuk kedalam ataupun keluar firewall. Biasanya firewall akan mencek no IP Address dan juga nomor port yang di gunakan baik pada protokol TCP dan UDP, bahkan bisa dilengkapi software untuk proxy yang akan menerima dan menterjemahkan setiap permintaan akan suatu layanan sebelum mengijinkannya. Bahkan bisa jadi software pada server itu sendiri , seperti layanan untuk web ataupun untuk mail.
      • Direction Conrol (kendali terhadap arah)
      Berdasarkan arah dari berbagai permintaan (request) terhadap layanan yang akan dikenali dan diijinkan melewati firewall.
      • User control (kendali terhadap pengguna)
      Berdasarkan pengguna/user untuk dapat menjalankan suatu layanan, artinya ada user yang dapat dan ada yang tidak dapat menjalankan suatu servis,hal ini di karenakan user tersebut tidak di ijinkan untuk melewati firewall. Biasanya digunakan untuk membatasi user dari jaringan lokal untuk mengakses keluar, tetapi bisa juga diterapkan untuk membatasi terhadap pengguna dari luar.
      •  Behavior Control (kendali terhadap perlakuan)
      Berdasarkan seberapa banyak layanan itu telah digunakan. Misal, firewall dapat memfilter email untuk menanggulangi/mencegah spam.


      Langkah-Langkah Membangun Firewall
      • Mengidenftifikasi bentuk jaringan yang dimiliki
      Mengetahui bentuk jaringan yang dimiliki khususnya toplogi yang di gunakan serta protocol jaringan, akan memudahkan dalam mendesain sebuah firewall.
      • Menentukan Policy atau kebijakan
      Penentuan Kebijakan atau Policy merupakan hal yang harus di lakukan, baik atau buruknya sebuah firewall yang di bangun sangat di tentukan oleh policy/kebijakan yang di terapkan. Diantaranya :
      1. Menentukan apa saja yang perlu di layani. Artinya, apa saja yang akan dikenai policy atau kebijakan yang akan kita buat.
      2. Menentukan individu atau kelompok-kelompok yang akan dikenakan policy atau kebijakan tersebut.
      3. Menentukan layanan-layanan yang di butuhkan oleh tiap tiap individu atau kelompok yang menggunakan jaringan.
      4. Berdasarkan setiap layanan yang di gunakan oleh individu atau kelompok tersebut akan ditentukan bagaimana konfigurasi terbaik yang akan membuatnya semakin aman.
      5. Menerapkankan semua policy atau kebijakan tersebut
      • Menyiapkan Software atau Hardware yang akan digunakan
      Baik itu operating system yang mendukung atau software-software khusus pendukung firewall seperti ipchains, atau iptables pada linux, dsb. Serta konfigurasi hardware yang akan mendukung firewall tersebut.
      • Melakukan test konfigurasi
      Pengujian terhadap firewall yang telah selesai di bangun haruslah dilakukan, terutama untuk mengetahui hasil yang akan kita dapatkan, caranya dapat menggunakan tool tool yang biasa dilakukan untuk mengaudit seperti nmap.


      Sumber :
      • http://id.wikipedia.org/wiki/Firewall
      • http://belajarit.um.ac.id/index.php/jaringan/18-pengenalan-jaringan-komputer/65-firewall.html
      • http://ilmukomputer.org/2006/08/25/firewall/