WELCOME !

Happy To Share

Selasa, 27 November 2018

CBC - MAC (Cipher Block Chaining Message Authentication Code)



Berikut saya lampirkan tugas kuliah Keamanan Informasi mengenai

CBC-MAC atau Cipher Block Chaining Message Authentication Code

Pada Kriptografi, CBC-MAC adalah teknik untuk membangun kode otentikasi pesan dari block cipher. Pesan dienkripsi dengan beberapa algoritma block cipher dalam mode CBC untuk membuat rantai blok sehingga setiap blok bergantung pada enkripsi yang tepat dari blok sebelumnya. Interpendensi(hubungan yang saling ketergantungan) ini memastikan bahwa perubahan ke salah satu bit plaintext akan menyebabkan blok terenkripsi terakhir berubah dengan cara yang tidak dapat diprediksi atau dilawan tanpa mengetahui kunci ke block cipher (via Wikipedia)

Untuk menghitung CBC-MAC pesan m satu meng enkripsi m dalam mode CBC dengan inisiasi nol vektor. Gambar beikut merupakan sketsa perhitungan blok menggunakan kunci rahasia k dan cipher blok E :



Note : tidak ada yang salah dengan CBC-MAC, ketika diterapkan dengan benar. Dan itu tidak sulit untuk diterapkan dengan benar. Masalahnya adalah bahwa banyak orang yang menggunakan CBC-MAC (daripada HMAC atau mode AEAD yang tepat) tampaknya tidak mampu melakukan hal ini.

Seperti yang saya baca dari blog.cryptographyengineering.com dia menuliskan beberapa contoh penerapan yang salah :

1. Your Implementation doesn't handle variable-length messages

"CBC-MAC sangat mirip dengan mode CBC klasik untuk enkripsi, dengan beberapa perbedaan utama. Pertama, Initialization Vector (IV) adalah nilai tetap, biasanya nol. Kedua, CBC-MAC hanya menghasilkan blok terakhir dari ciphertext - nilai tunggal ini membentuk MAC "

Banyak implementasi yang berakhir seperti penjelasan diatas, dan itu menyebabkan masalah yang besar. Terutama, jika sistem anda memungkinkan untuk pesan dengan panjang variabel (seperti yang seharusnya) ada serangan sederhana yang memungkinkan anda untuk memalsukan pesan baru.

Pertama, dapatkan MAC T pada pesan m1. Sekarang XOR tag T ke block pertama dari beberapa pesan kedua m2 sewenang-wenang. dan dapatkan MAC pada versi modifikasi dari m2. Hasil tag T ternyata menjadi MAC yang valid untuk gabungan (m1 dan m2). Ini adalah pemalsuan yang valid, dan dalam beberapa kasus sebenarnya dapat bermanfaat

Perbaikan standar untuk menambah panjang pesan ke blok pesan yang pertama sebelum di - MAC, Sehingga, sejumlah implementasi besar yang mengejutkan melompati langkah tambahan ini.

2. Your Implementation uses a random Initialization Vector

Jika CBC-MAC dengan IV tetap bagus, pasti CBC-MAC dengan IV acak harus super-hebat. Tapi tidak, itu tidak benar. Menggunakan variabel IV random itu buruk karena alasan sederhana yang memverifikasi CBC-MAC mengharuskan Anda untuk mengetahui IV, dan untuk mengetahui IV Anda mungkin perlu membacanya dari suatu tempat. Biasanya ini berarti tempat yang sama sangat tidak terpercaya dimana anda menyimpan pesan anda.

Jika penyerang dapat mengubah CBC-MAC IV, mereka juga dapat mengubah block pesan pertama yang di MAC dengan cara yang setara. Ini berfungsi karena langkah pertama CBC-MAC adalah XOR IV dengan pesan.

3. You've used the same key for MAC and encryption

Aturan umum dalam kriptografi adalah anda tidak boleh menggunakan kunci yang sama untuk 2 primitif kriptografi yang berbeda (misalnya : enkripsi dan tanda tangan atau enkripsi dan MAC)

beberapa orang beranggapan bahwa peraturan dibuat untuk dilanggar

Perhatikan, bahwa kunci yang dibagikan bisa pas dalam beberapa kasus. Mode gabungan seperti CCM (Kependekan dari CTR + CBC-MAC) sebenarnya menggunakan kunci yang sama untuk kedua operasi. Namun, pada mode ini dilakukan dengan cara yang sangat hati-hati dan bijaksana.

Untuk melakukan ini, untuk mengekripsi serangkaian file kecil yang sesuai dengan nilai counter C, C + 1, dll. Dari ciphertext yang ingin diserang. CBC-MAC dari masing-masing file memungkinkan untuk menciptakan keystream mode-CTR yang perlu didekripsi ciphertext yang asli, sehingga akan didapatkan pesan yang dibobol.

4. You've used CBC-MAC as a hash function

Apabila anda menggunakan CBC-MAC dengan kunci non-rahasia, itu menjadi akibat yang sangat buruk untuk apapun. Tetapi faktanya, Anda dapar dengan mudah menemukan collisions atau tabrakan yang ditemui pada output, sesuatiu yang sangat buruk jika anda menggunakannya untuk mengotentikasi kode.

Memang tidak untuk semua MAC-HMAC. Misalnya harus mempertahankan ketahanan benturan fungsi hash yang mendasari bahkan jika kunci MAC dikompromi. Ini adalah alasan untuk lebih memilih kasus-kasus dimana keahlian kriptografi bukanlah taruhan yang pasti.

5. Kesimpulan

Saya akan mengulangi bahwa tidak ada yang benar-benar bermasalah dengan CBC-MAC, yang merupakan algoritme yang sangat bagus jika diterapkan dan digunakan dengan benar. Masalah-masalah di atas hanya muncul ketika orang mencobanya sendiri, tanpa menggunakan konstruksi standar.

Sekian menurut saya, jika menurutmu ada yang kurang silahkan komen ! :)


Selasa, 28 Oktober 2014

Tugas Admin Server

Soal latihan :

dengan ip address : 88.77.xx.66/27
*catatan : xx adalah nomor absen
Domain : asta-xx.sch.id
Service:
Setting IP
1. DHCP Server
2. DNS Server
3. Web Server
4. Mail Server
5. FTP Server
6. SSH Server
7. Proxy Server
Webmail Server
 Sub Domain : www.asta-xx.sch.id dan surat.asta-xx.sch.id
 dengan proxy memblokir facebook.com

Setting Webmail Server

1. apt-get install squirrelmail
2. mkdir /home/web1 untuk membuat halaman asta.xx.sch.id
3. mkdir /home/web2 untuk membuat halaman facebook.com
4. nano /home/web1/index.php
masukkan tampilan / script web yang ingin ditampilkan di halaman asta.xx.sch.id
5. nano /home/web2/index.php
masukkan tampilan / script web yang ingin ditampilkan di halaman facebook.com

Setting Proxy Server

1. apt-get install squid
2. nano /etc/squid/squid.conf (Ctrl+ W → acl connect)
 lalu tuliskan seperti ini :
3. setelah mengkonfigurasi, tuliskan perintah "iptables -t nat -A PREROUTING -j REDIRECT -p tcp --dport 80 --to-ports 3128
4. lalu buka file "nano /usr/share/squid/errors/English/ERR_ACCESS_DENIED"
5. dan restart konfigurasi "/etc/init.d/squid restart"


Setting SSH Server

1. apt-get install ssh-server
2. nano /etc/ssh/ssh_config
3. /etc/init.d/ssh restart



Setting FTP Server

FTP Server

1. apt-get install vsftpd
2. nano /etc/vsftpd.conf
3. restart konfigurasi "/etc/init.d/vsftpd restart"

Setting Mail Server

Mail Server

1. apt-get install postfix courier.*
2. setelah konfigurasi biasanya keluar permintaan untuk indeks dvd 1 dan 2.
3. pilih local only → OK
4. nano /etc/postfix/main.cf
5. setelah itu lakukan perintah "cd /etc/skel"
6. setelah itu lakukan perintah "maildirmake Maildir"
7. adduser nama contoh : adduser admin masukkan password → y
8. lalu restart konfigurasi dengan "/etc/init.d/postfix restart"
9. apabila ingin mengkonfigurasi mail server "dpkg-reconfigure postfix"



Setting Web Server

WEB SERVER

1. apt-get install apache 2
2. nano /etc/apache2/sites-enabled/000-default
3. tuliskan pada baris terakhir dan simpan (Ctrl+X → Y → enter)
4. lalu restart konfigurasi dengan "/etc/init.d/apache 2 restart"






Setting DNS Server

DNS SERVER

1. "apt-get install bind9" untuk menginstall dns server
2. "nano /etc/bind/named.conf.local" lalu hapus tanda pagar pada "zones.rfc 1918"
3. buka file dengan "nano /etc/bind/zones.rfc1918"
4. copy satu baris terakhir dengan (Ctrl + K → Ctrl + U sebanyak 4 kali)
5. lalu ganti menjadi seperti

6. (Ctrl+X → Y → enter)
7. setelah itu lakukan perintah "cp /etc/bind/db.local  /etc/bind/asta.local" dan "cp /etc/bind/db.local  /etc/bind/fb.local" dan "cp /etc/bind/db.local  /etc/bind/semua.ptr"
8. buka file  "nano /etc/bind/asta.local" dan edit seperti ini

9. "nano /etc/bind/fb.local" dan edit seperti ini
10.  "nano /etc/bind/semua.ptr"dan edit seperti ini
 11. setelah semua dilakukan buka lagi "nano /etc/resolv.conf" hapus semua tulisan dan tuliskan "nameserver 88.77.xx.66  nameserver 88.77.xx.67" (Ctrl+X → Y → enter)
12. restart konfigurasi dengan "/etc/init.d/bind9 restart"


Setting DHCP Server

DHCP SERVER

 1. "apt-get install dhcp3-server" atau "apt-get install isc-dhcp-server" untuk menginstal DHCP Server
2. setelah diinstal tuliskan perintah "nano /etc/dhcp/dhcpd.conf"
3. (Ctrl + W tuliskan a slightly) lalu hapus tanda pagar dalam satu paragraf tersebut kecuali  sebelum a slightly. lalu tuliskan subnet 88.77.xx.64 dan netmask 255.255.255.224, dengan range 88.77.xx.68 - 88.77.xx.94 dengan option router 88.77.xx.64 juga option broadcast 88.77.xx.95 (Ctrl+X → Y → enter)
4. setelah tersimpan lakukan "/etc/init.d/isc-dhcp-server restart" untuk merestart setingan yang tadi,

settingan yang lainnya 

Setting IP Debian

Setting IP

1. Buka Debian, login
2. masukkan perintah "nano /etc/network/interfaces"
3. tuliskan pada bait kedua
"auto eth0
 iface eth0 inet static
 address 88.77.25.66
 netmask 255.255.255.224
 auto eth0:1
 iface eth0:1 inet static
 address 88.77.25.67
 netmask 255.255.255.224"
4. Simpan dengan perintah (Ctrl+X → Y → enter)
5. tuliskan perintah pada debian "/etc/init.d/networking restart" untuk merestart network yang telah disetting tadi.
6. tuliskan lagi "ifconfig" untuk mengecek apakah ip telah didapat
7. lakukan index cd dengan perintah "apt-cdrom add" dan masukan debian 1 dan 2
8. untuk mengganti cd lakukan perintah "eject" lalu "apt-cdrom add" lagi.
9. jika ingin melihat apakah cd/dvd telah dipindai lihat pada "nano /etc/apt/sources.list"