- parity checking : Konsep umum dari parity check adalah sebuah sistem yang membuat pihak terminal tertuju tahu bahwa data yang iya terima tersebut sama atau tidak dengan data yang dikirim oleh terminal pengirim. Caranya? Pertama tama pihak pengirim akan menambahkan 1 bit tambahan ( Atau yang Lebih dikenal dengan nama Parity Bit ) pada data, untuk menggambarkan karakteristik dari data tersebut. Nilai dari bit parity ( 1 atau 0 ) tidak diperoleh secara sembarangan
- checksum : Checksum adalah sebuah mekanisme untuk mendeteksi apakah sebuah data telah berubah pada saat proses transmisi. Checksum dilakukan dengan cara membagi semua data menjadi angka dengan dua karakter, kemudian semuanya dijumlahkan.
- hash function
Fungsi Hash (hash function) merupakan fungsi yang bersifat satu arah dimana jika kita masukkan data, maka dia akan menghasilkan sebuah “checksum” atau “fingerprint” dari data tersebut. Sebuah pesan yang dilewatkan ke fungsi hash akan menghasilkan keluaran yang disebut Message Authenticated Code (MAC). Dilihat dari sisi matematik, hash function memetakan satu set data ke dalam sebuah set yang lebih kecil dan terbatas ukurannya. Mari kita ambil sebuah contoh sederhana, yaitu fungsi matematik modulus (atau dalam pemrograman menggunakan mod). Hasil dari operasi mod adalah sisa pembagian bilangan bulat (integer). Sebagai contoh, “11 mod 7” menghasilkan nilai 4, karena 11 dibagi 7 menghasilkan nilai 1 dan sisanya adalah 4. Contoh lain “17 mod 7” menghasilkan bilangan 3, karena 17 dibagi 7 menghasilkan 2 dan sisanya adalah 3. Demikian pula “18 mod 7” akan menghasilkan 4. Dalam sehari-hari, operasi modulus kita gunakan dalam penunjukkan jam, yaitu modulus 12. Kalau kita perhatikan contoh di atas. Hasil dari opreasi mod tidak akan lebih besar dari angka pembaginya. Dalam contoh di atas, hasil “mod 7” berkisar dari 0 ke 6. Bilangan berapapun yang akan di-mod-kan akan menghasilkan bilangan dalam rentang itu. Tentu saja angka 7 bisa kita ganti dengan angka lain, misalnya sebuah bilangan prima yang cukup besar sehingga rentang bilangan yang dihasilkan bisa lebih besar. Hal kedua yang perlu mendapat perhatian adalah bahwa diketahui hasil operasi modulus, kita tidak tahu bilangan asalnya. Jadi kalau diberitahu bahwa hasil operasi modulus adalah 4, bilangan awalnya bisa 11, 18, 25, dan seterusnya. Ada banyak sekali. Jadi, dalam aplikasinya nanti agak sukar mengkonstruksi sebuah pesan asli jika kita hanya tahu hasil dari fungsi hashnya saja. Tentu saja operator mod sendirian tidak dapat digunakan sebagai fungsi hash yang baik. Ada beberapa persyaratan agar fungsi hasil baru dapat digunakan secara praktis. Misalnya, rentang dari hasil fungsi hash harus cukup sehingga probabilitas dua pesan yang berbeda akan menghasilkan keluaran fungsi hash yang sama. Perlu ditekankan kata “probabilitas”, karena secara teori pasti akan ada dua buah data yang dapat menghasilkan keluaran fungsi hash yang sama1. Hal ini disebabkan rentang fungsi hash yang sangat jauh lebih kecil dibandingkan space dari inputnya. Tapi hal ini masih tidak terlalu masalah karena untuk membuat dua pesan yang samasama terbaca (intelligible) dan memiliki keluaran fungsi hash yang sama tidaklah mudah. Hal yang terjadi adalah pesan (data) yang sama itu dalam bentuk sampah (garbage). Syarat lain dari bagusnya sebuah fungsi hash adalah perubahan satu karakter (dalam berkas teks) atau satu bit saja dalam data lainnya harus menghasilkan keluaran yang jauh berbeda, tidak hanya berbeda satu bit saja. Sifat ini disebut avalanche effect. Ada beberapa fungsi hash yang umum digunakan saat ini, antara lain:
• MD5
• SHA (Secure Hash Algorithm)
perbedaan satu karakter saja sudah menghasilkan keluaran hash yang sangat berbeda. Hasil yang serupa dapat dilakukan dengan menggunakan SHA atau algoritma dan program lainnya. Fungsi hash ini biasanya digabungkan dengan enkripsi untuk menjaga integritas. Sebagai contoh, dalam pengiriman email yang tidak rahasia (dapat dibaca orang) akan tetapi ingin dijaga integritasnya, isi (body) dari email dapat dilewatkan ke fungsi hash sehingga menghasilkan fingerprint dari isi email tersebut. Keluaran dari hash ini dapat disertakan dalam email. Penggunaan fungsi hash yang menghasilkan fingerprint dari isi email tersebut , Keluran HASH ini dapat disertakan dalam email.Ketika email diterima, penerima juga menjalankan fungsi hash terhadap isi email dan kemudian membandingkannya dengan hash yang dikirim. Jika email diubah di tengah jalan, maka kedua hash tersebut berbeda. Untuk lebih meningkatkan keamanan, hasil dari hash juga dapat dienkripsi sehingga hanya penerima saja yang dapat membuka hasil dari hash tersebut. Atau dapat juga hasil hash dienkripsi dengan kunci privat pengirim sehingga oleh penerima dapat dibuka dengan kunci publik pengirim dan diyakinkan bahwa integritas dari isi terjamin serta pengirim betul-betul berasal dari pemilik kunci publik tersebut. Inilah yang sering disebut digital signature dalam email.
MD5
MD5 (Message-Digest Algorithm 5), sebuah algoritma yang dibuat oleh Ron Rivest di tahun 1991, melakukan fungsi hash dengan menggunakan algoritma yang dijabarkan di RFC1321, “The MD5 Message-Digest Algorithm” [38]. Algoritma MD5 ini merupakan pengganti algoritma MD4 yang juga dibuat oleh Rivest. Hasil keluaran dari MD5 adalah sebuah nilai hash dalam 128-bit. Salah satu aplikasi yang lazim menggunakan MD5 adalah pengamanan berkas password (/etc/passwd atau /etc/shadow) di sistem UNIX. Berkas password menyimpan data password dalam bentuk yang sudah terenkripsi dengan menggunakan DES. Implementasi awal dari sistem UNIX adalah menyimpan data password yang sudah terenkripsi tersebut langsung pada salah satu field di berkas password. Meskipun sudah terenkripsi, penyimpanan data password yang sudah terenkripsi tersebut masih menimbulkan potensi lubang keamanan karena DES merupakan enkripsi yang reversible. Panjang data yang dihasilkan oleh proses enkripsi juga bergantung kepada panjang data yang dimasukkan. Sehingga ada sedikit info tambahan mengenai kemungkinan panjangnya password. Apabila seseorang berhasil mendapatkan berkas password tersebut, dia bisa mencoba proses dekripsi yaitu dengan melakukan brute force attack dengan mencoba melakukan proses dekripsi. MD5 menambahkan satu tingkat keamanan lagi. Kali ini data password yang disimpan bukanlah password yang terenkripsi saja, melainkan data yang terenkripsi yang sudah dilewatkan oleh MD5. Karena sifatnya yang satu arah, sangat sulit untuk mencari data password terenkripsi dengan basis data hasil fungsi MD5. Jadi skema penyimpanan data tersebut kira-kira seperti ini:
password > DES > password terenkripsi > MD5 > hashed encrypted
password
Dengan cara ini, potensi untuk melakukan serangan brute force terhadap encrypted password menjadi lebih sukar. Satu-satunya cara untuk melakukan serangan brute force adalah dengan melakukan enkripsi juga dengan melalui jalan maju seperti di atas dan kemudian membandingkan hasil hashed encrypted passwordnya. Jika sama persis, maka kata yang dipilih sebagai percobaan sama dengan password yang ingin dipecahkan tersebut. MD5 juga digunakan dalam autentikasi dengan menggunakan protokol CHAP (RFC 1994). Masih ada banyak aplikasi lain yang menggunakan MD5 ini. Di tahun 1996 ditemukan kelemahan dari MD5 sehingga disarankan untuk menggantinya dengan menggunakan SHA-1. Di tahun 2004, ditemukan lagi kelemahan yang lebih serius sehingga penggunaan MD5 lebih dipertanyakan lagi. Xiaoyun Wang dan kawan-kawan menemukan kelemahan ini dan membuat makalah yang dipresentasikan di Crypto 2004 [49]. Mereka menunjukkan bahwa ada tabrakan (collions) dimana dua buah data menghasilkan keluaran hash MD5 yang sama. Selain collision di MD5, mereka juga menemukan hal yang sama di MD5, HAVAL-128, dan RIPEMD.
dibawah ini akan di uji hash function sebuah file dengan menggunakan tipe fungsi hash md5, SHA1 dan SHA-256 :
1. create test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
2. rename test.txt > test1.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
3. copy test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
4. move test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
6. open > save test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
7. delete > restore test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
8. upload > download test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
9. open > save as test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
sumber :
2. rename test.txt > test1.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
3. copy test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
4. move test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
5. change properties test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427ESHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
7. delete > restore test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
8. upload > download test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
9. open > save as test.txt
MD5 : D41D8CD98F00B204E9800998ECF8427E
SHA1 : DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
SHA-256 : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855
10. open > modified data > save test.txt
MD5 : 2F8084B65FD36DB1747DB4816B98C6F8
SHA1 : CFA385CC2475AB8F91CD8876856CB174F5A6B309
SHA-256 : BFF51619D42D6D403A44E40CF3A1402C699B2855AC925F4DA4FDCD3D0B0DAD06
dari sejumlah percobaan diatas hanya mengubah isi file yang membuat nilai hash fucntion nya berubah
Tidak ada komentar:
Posting Komentar