Minggu Pertama Perkuliahan

Minggu lalu adalah minggu pertama perkuliahan semester ini di ITB. Sebagaimana sudah saya antisipasi, jadwal saya kacau balau. hi hi hi. Berikut ini adalah daftar kuliah yang saya ajar semester ini.

BR kuliah 2018

Terlalu banyak bukan? Biasanya dalam satu semester saya hanya mengajar dua mata kuliah. Jadwal di atas belum pasti karena ada dua mata kuliah yang hanya dua orang pesertanya. Kuliah tersebut juga sebenarnya harusnya diberikan semester depan. Ada kemungkinan kedua kuliah tersebut saya batalkan.

Untuk kuliah yang bisnis, itu dijalankan oleh tiga orang dosen beserta beberapa mentor. (Mentornya hebat-hebat.) Jadi saya tidak harus selalu berada di kelas pada hari itu. (Biasanya ada pertemuan – mentoring – di luar jam kelas tersebut,)

Mudah-mudahan minggu ini sudah lebih jelas lagi jadwal perkuliahannya.

Iklan

a day in the life …

Ini bukan tentang lagunya the Beatles, meskipun judulnya sama. Ini adalah tentang keseharian saya. Untuk apa diceritakan ya? Kepo? Ha ha ha. Namanya juga “blog”. Jadi sekali-sekali mencatatan (log) kegiatan sehari-hari. Seperti kegiatan sehari-harinya di pesawat ruang angkasa. Ciyeh.

Okay. Kemarin saya melakukan banyak hal. Catat dulu.

  1. Mewawancarai calon mahasiswa untuk CCE MBA SBM ITB. (Iya, singkatan semua.)
  2. Memberi mentoring entrepreneurship (selama 1 jam saja)
  3. Futsal (1 jam saja juga)
  4. Latihan band bersama BANDOS (Band Dosen ITB)

Itu garis besarnya. Tentu saja ada hal-hal lain. Ternyata sibuk juga saya untuk hari yang tidak saya ramalkan sebagai sibuk. Hmm…

interview CCE MBA SBM ITB

28619378_10155353991686526_2245848601284629566_o
Latihan BANDOS

Berburu Hash

Ini cerita tentang tugas atau pekerjaan rumah mahasiswa saya. Ceritanya saya mengajar kuliah keamanan informasi (information security). Salah satu bagian dari materinya adalah tentang kriptografi dan minggu lalu kami membahas fungsih hash.

Apa itu fungsi hash? Bisa panjang lagi ceritanya. (Nambah daftar topik yang perlu diceritakan.) Singkatnya fungsi hash adalah fungsi satu arah yang dapat memberikan ciri atau tanda-tanda (signature) dari data digital (stream of data, files, dan-lain-lain). Contoh fungsi hash yang terkenal adalah MD5 dan SHA256.

Misal ada sebuah berkas (bernama “pesan1.txt”) yang berisi “beli 10000”. Maka hasil SHA 256 (algoritma SHA dengan panjang bit 256) dari teks tersebut dapat dilihat pada contoh di bawah ini.

unix$ echo "beli 10000" | shasum -a 256
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 -

unix$ cat pesan1.txt
beli 10000
unix$ shasum -a 256 pesan1.txt
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 pesan1.txt

unix$ cat pesan2.txt
beli 1000
unix$ shasum -a 256 pesan2.txt
5901bccc6a0556fac2b4a164ef831a7ed4ceddeb60c6ddde1162f5a40b9d2917 pesan2.txt

Pada contoh di atas ditunjukkan jika kita memiliki data yang berbeda – dicontohkan dengan berkas “pesan2.txt” yang berisi “beli 1000” (hilang satu angka nolnya) – maka hasil hash-nya pun berbeda. Bahkan, sangat jauh berbeda.

Hal lain dari fungsi hash adalah, jika kita diberikan sebuah hasil hash, maka akan sangat sulit bagi kita untuk merekonstruksi ulang berkas aslinya.

Kebetulan saat ini yang sedang ngetop adalah blockchain. Atau lebih ngetopnya adalah Bitcoin-nya. Salah satu dasar dari blockchain adalah fungsi hash. Maka salah satu tugas mahasiswa di kelas saya adalah berburu (hasil) hash.

Skenarionya adalah kita memiliki sebuah pesan “A>B,5000” (tanpa tanda kutip). Pesan ini ditambahkan nonce, sebuah angka (data, string) yang diambil “dari langit”, dan kemudian keduanya di-hash-kan dengan SHA256.

A>B,5000
NONCE

Ada sedikit “perlombaan” di kelas, yaitu siapa yang berhasil menghasilkan hash terkecil adalah pemenangnya. Cara menguji angka hash yang kecil adalah dengan melihat jumlah “0” di depannya. Yang perlu dicari adalah nonce-nya tersebut. Jadi carilah nonce yang menghasilkan nilai hash paling kecil. Silahkan diperlombakan. Kalau di kelas diberi waktu satu minggu. Pemenangnya akan saya beri hadiah buku.

[Catatan: konsep ini mirip dengan konsep “miner” di bitcoin.]

Memulai Perkuliahan Lagi

Hari ini sebetulnya sudah merupakan minggu kedua dari perkuliahan di ITB. Semester ini saya mengajar tiga (3) mata kuliah. Semuanya di bidang information security:

  • II3230 – Keamanan Informasi (Information Security)
  • EL5215 – Keamanan Perangkat Lunak (Software Security)
  • EL6115 – Secure Operation and Incident Handling

Ini potret yang saya ambil di kelas Keamanan Informasi minggu lalu.

ITB information security class 2018

Kelasnya dimulai pagi sekali, pukul 7 pagi. Ayo semangat! Semoga tetap bersemangat sampai akhir semester.

(PGP) Key-Signing Party

Salah satu aktivitas dalam rangka menjalankan sistem teknologi informasi yang aman (secure IT operation) adalah proses pertukaran kunci publik. Sistem kunci publik yang digunakan biasanya berbasis kepada PGP (Pretty Good Privacy) atau Gnu Privacy Guard (GPG). Maka di kelas saya, dilakukan key-signing party.

P_20170214_134309-01 keysigning

Para mahasiswa diminta membuat kunci publiknya, mengunggah kuncinya ke sebuah keyserver, dan kemudian menunjukkan identitasnya (KTP, kartu mahasiswa). Saya unduh kunci mereka dan saya tandatangani (signed) kunci mereka itu setelah melihat dan memastikan bahwa identitas mereka itu benar. Inilah kegiatan key-signing party yang sesungguhnya.

P_20170214_134545_BF keysigning

Di atas beberapa foto proses tersebut. Seru. Untuk memproses seluruh kunci di kelas ini dibutuhkan lebih dari 1 jam.

Semester Baru

 

Semester baru sudah dimulai di ITB hari-hari kemarin. Kelas sudah mulai. Saya mengajar tiga kelas semester ini. Semuanya berhubungan dengan keamanan informasi (information security). Ini foto kelas Keamanan Informasi (7:00 s/d 9:00), dipotret di akhir kelas. Masih pada segar.

P_20170118_083618_BF-01 kelas

Selain mengajar, saya juga membimbing S2 dan S3. Lupa jumlah mahasiswa bimbingannya. ha ha ha. Ini foto ketika bimbingan dengan sebagian mahasiswa.

P_20170118_111302_BF bimb

Waktunya memperbaharui halaman web juga. (Belum sempat euy.) Demikian pula masih ada setumpuk makalah (perbaikan) mahasiswa yang harus saya koreksi lagi. Ballpoint sudah disiapkan.

p_20170117_114824-01-ballpoint

Ayo semangat!

Mengajarkan Debugging?

Bagaimana ya cara mengajarkan “debugging” (mencari sumber masalah dalam koding, sistem)?

Seringkali kita memberikan tutorial atau tugas tentang satu hal (kode pemrograman misalnya). Kemudian siswa mengikuti tutorial tersebut. Ketika ada masalah, tidak jalan, maka siswa kesulitan mencari sumber masalahnya. Ketika melapor, yang dilaporkan juga tugas tidak jalan. Nah ini membingungkan karena ada banyak hal yang membuat sebuah kode / sistem tidak jalan.

Hal yang sama juga terjadi dalam pengembangan sebuah sistem. Ketika ada masalah maka kita harus mencari sumber masalahnya dan memperbaikinya. Debugging.

Kemampuan debugging ini ternyata tidak dimiliki oleh semua orang. Namun semestinya bisa diajarkan. Bagaimana ya cara mengajarkannya yang baik?

Salah satu ide adalah dengan membuat soal yang memiliki kesalahan, kemudian siswa diminta untuk mencari kesalahan tersebut dan memperbaikinya. Semakin sering melakukan hal ini (mencari kesalahan dan memperbaikinya), mudah-mudahan meningkatkan kemampuan untuk debuggingnya.

Hal lain juga yang perlu diajarkan adalah bagaimana membagi-bagi sistem. Divide and conqueror. Ini bisa jadi topik terpisah.