Bab VI
RANCANGAN PROTOKOL
CEK BILYET DIGITAL
Transaksi di Internet yang mengoptimalkan penggunaan sertifikat digital, sementara ini barulah SET, meskipun sudah banyak pula pengembang-pengembang yang mengumumkan akan menggunakan sertifikat digital dalam produk mereka. Penggunaan sertifikat digital memang membuat transaksi di Internet lebih aman.
Salah satu jenis pembayaran yang tidak dimaktub dalam spesifikasi SET adalah penggunaan cek bilyet digital. Berasarkan hal tersebut, dibawah ini diusulkan rancangan protokol cek bilyet digital.
Tujuan yang ingin dicapai dengan adanya cek bilyet digital ini adalah:
- Menjamin kerahasiaan data dari pihak yang tidak berkepentingan
- Menjamin keutuhan data yang ditransmisikan
- Menyediakan proses otentikasi antarpihak yang bertransaksi
- Menyediakan suatu pencatatan yang dapat dijadikan barang bukti
Rancangan protokol cek bilyet digital dalam tugas akhir ini mencakup:
Rancangan protokol cek bilyet digital dalam tugas akhir ini tidak mencakup:
Analisis Awal
Untuk memudahkan penjelasan, pihak pemberi cek disebut nasabah 1 dan pihak penerima cek disebut nasabah 2, karena sudah jelas bahwa sistem cek bilyet digital ini menggunakan institusi perbankan sebagai basisnya.
Analisis Sistem Cek Bilyet Biasa
Sebelum merancang sistem yang baru, terlebih dahulu perlu diketahui bagaimana alur transaksi cek bilyet:
Gambar 6.1. Diagram alur transaksi cek bilyet
Pendebitan dan pengkreditan pada proses di atas dilakukan setelah proses kliring berhasil dilakukan di rumah kliring. Namun, dengan makin tersedianya jaringan perbankan yang menghubungkan banyak bank secara on-line, seperti Cirrus dan Alto, maka mungkin sekali proses otorisasi yang disertai pendebitan dan pengkreditan dilakukan sebelum kliring di rumah kliring selesai. Tentunya, dalam proses transfer elektronik dari satu rekening ke rekening lain antarbank, nasabah 1 sebagai pihak yang mentransfer dana keluar dari rekeningnya harus memberikan persetujuan secara elektronik pula. Jadi, tidak menggunakan cek dalam bentuk kertas fisik. Saat ini, hal tersebut dilakukan dengan menggunakan kartu magnetik atau kartu chip yang dipegang oleh nasabah 1, disertai pula dengan PIN yang perlu diketikkan.
Sekali lagi patut dicatat, meskipun transfer antarrekening antarbank yang dilakukan di sebuah ATM dapat langsung saat itu juga mendebit rekening nasabah 1 dan mengkredit rekening nasabah 2 sebagai penerima dana, proses kliring tetap dilakukan antara bank-bank nasabah-nasabah tadi di rumah kliring. Sebagai ganti cek untuk dikirim ke rumah kliring, bank nasabah 2 yang baru saja mengkredit rekening nasabah 2, mengirimkan sebuah nota transfer yang berisi detail transaksi yang terjadi antara nasabah 1 dan nasabah 2 ke rumah kliring.
Cek yang datang di rumah kliring, tidak harus selalu dalam bentuk kertas. Perusahaan besar seperti Pertamina yang setiap bulan harus mentransfer gaji ke rekening bank karyawannya yang berjumlah ribuan, tidak mengirim cek dalam bentuk kertas, melainkan mengirimkan pita magnetik langsung ke Bank Indonesia sebagai pusat rumah kliring. Pita magnetik yang berisi informasi gaji dan informasi rekening bank setiap karyawan itu akan diproses oleh komputer yang mengatur kliring.
Dalam merancang protokol cek bilyet digital ini ada beberapa hal yang patut menjadi bahan pertimbangan:
- Nasabah 1 menerima bukti dari nasabah 2 bahwa nasabah 2 sudah menerima cek bilyet digital dari nasabah 1.
- Nasabah 2 menerima bukti dari gerbang pembayaran bahwa gerbang pembayaran sudah menerima cek bilyet digital dari nasabah 2 untuk ditransfer ke rekeningnya.
- Nasabah 2 tidak bisa menggunakan cek yang sama dua kali.
- Nasabah 1 tidak bisa membuat dua buah cek dengan identitas yang sama kepada dua orang penerima yang berbeda.
Guna memenuhi analisis kebutuhan dan memudahkan perencanaan, maka beberapa pemecahan awal untuk rancangan cek bilyet digital dijabarkan di bawah ini:
- Yang dimaksud dengan informasi rekening bank dapat meliputi nama bank, cabang, nomor rekening, dan mungkin pula nama nasabah seperti yang tercatat oleh bank.
- Sedangkan informasi jati diri nasabah dapat mencakup nama lengkap, tanggal lahir, alamat dan nomor identitas unik warga negara seperti nomor KTP atau SSN (Social Security Number). Informasi jati diri ini berguna untuk identifikasi saat berkomunikasi di Internet.
- Cara pertama, nasabah mengirim informasi rekeningnya secara terenkripsi kepada pihak yang akan memeriksa. Pihak yang memeriksa itu kemudian akan mendekripsikan informasi rekening dari nasabah tadi, lalu segera membuat hash (sidik jari) dari informasi rekening itu. Jika hash informasi rekening itu sama dengan hash informasi rekening yang ada pada sertifikat, maka dapat dipastikan bahwa nasabah itu mengirimkan informasi rekening yang benar. Perlu diingat bahwa dalam informasi rekening juga tercatat nama bank nasabah itu. Nama bank nasabah tidak perlu tertera dalam sertifikat digital nasabah. Namun saat pembuatan sertifikat, otoritas sertifikat (OS) perlu melakukan pemeriksaan ke bank yang diakui oleh nasabah sebagai bank yang mengelola rekeningnya, apakah benar bahwa orang yang meminta sertifikat itu benar-benar nasabah bank tersebut.
- Cara kedua, pemeriksa dapat mengotentikasi nasabah dengan cara menelusuri sertifikat digital milik nasabah. Jika yang menjadi OS bagi sertifikat digital nasabah adalah bank nasabah yang bersangkutan, tentulah nama bank itu akan ada dalam sertifikat digital nasabah. Saat siapapun memeriksa sertifikat digital nasabah, orang itu dapat mengetahui di mana nasabah tadi menyimpan rekening banknya. Dalam situasi tertentu, hal ini tidak diinginkan.
- Berdasarkan kedua cara tersebut, mungkin cara pertama yang lebih baik karena dengan melihat sertifikat, orang belum bisa mengetahui di bank mana pemiliki sertifikat digital itu menyimpan rekeningnya.
- Nasabah 2, maka pada setiap cek bilyet digital dapat diberikan nomor identitas cek yang unik, sehingga gerbang pembayaran dapat mendeteksinya.
- Nasabah 1 yang membuat dua buah cek dengan nomor identitas cek yang sama kepada dua orang penerima yang berbeda, maka selain nomor identitas cek, sidik jari dari cek itu juga dicatat oleh gerbang pembayaran.
Berdasarkan analisis dari sistem yang sudah ada, analisis kebutuhan, dan solusi awal, maka dirancanglah alur data transaksi protokol cek bilyet digital. Pertama-tama akan digambarkan alur transaksi pada lapisan atas secara umum. Setelah itu barulah digambarkan lebih detail lagi.
Gambar 6.2. Diagram topologi protokol cek bilyet digital
Saat penyerahan cek bilyet digital dari nasabah 1 kepada nasabah 2, sebenarnya terjadi pertukaran-pertukaran pesan di antara para nasabah itu. Tujuannya agar nasabah 1 bisa mendapatkan informasi rekening bank nasabah 2 dengan aman.
Gambar 6.3. Diagram alur data protokol cek bilyet digital
Mengingat kerumitan diagram ini, sebelumnya akan dijelaskan dahulu arti dari elemen-elemen dalam diagram. Berikut ini adalah singkatan-singkatan yang dipergunakan dalam diagram detail alur data.
Singkatan |
Pihak Yang Bertransaksi |
N1 |
Nasabah 1 (pemberi cek bilyet digital) |
N2 |
Nasabah 2 (penerima cek bilyet digital) |
GP, GERBANG |
Gerbang pembayaran yang akan meneruskan informasi cek bilyet digital kepada rumah kliring |
Tabel 6.1. Penjelasan singkatan entitas-entitas dalam protokol cek bilyet digital.
Berikut ini dijelaskan pula simbol-simbol yang dipergunakan dalam diagram:
Simbol |
Deskripsi |
Ini adalah
kunci-kunci kriptografi.
|
|
Ini adalah simbol dari tanda tangan digital. Inisial yang ada dalam simbol intan itu menunjukkan siapa yang membuat tanda tangan itu. | |
Ini adalah
contoh-contoh simbol dari sertifikat digital.
|
|
Di samping ini adalah simbol dari kunci simetris. Kunci ini selalu dienkripsi dengan kunci asimetris sebelum dikirim melalui Internet. Pemberian nomor pada kunci tersebut dimaksudkan untuk memudahkan membedakan satu kunci simetris dengan kunci simetris lainnya, karena dalam protokol cek bilyet digital ini kunci simetris dibuat dan dipergunakan beberapa kali. | |
Ini adalah contoh dari sebuah amplop digital yang lengkap. Data penting ditandatangani secara digital oleh nasabah 2 (N2). Sebuah kunci simetris (#1) dibuat secara acak, kemudian dipergunakan untuk mengenkripsi data penting yang telah ditandatangani tadi. Kunci simetris tersebut lalu dienkripsi dengan kunci publik milik gerbang pembayaran. Pengiriman amplop digital itu disertai pengiriman sertifikat digital milik nasabah 2 agar gerbang pembayaran dapat memeriksa keabsahan data penting. |
Tabel 6.2. Penjelasan simbol-simbol dalam protokol cek bilyet digital.
Sedangkan berikut ini dijelaskan mengenai data-data penting apa yang ada dalam protokol cek bilyet digital yang diusulkan.
Informasi |
Penjelasan |
Inisiasi pembayaran |
String inisiasi pembayaran |
Jawaban |
String jawaban, apakah nasabah 2 bersedia menerima cek atau tidak |
Permintaan rekening |
String permintaan informasi rekening bank |
Info rekening |
Dapat berisi
mengenai:
|
Perintah pembayaran |
Dapat berisi
informasi mengenai:
|
Informasi yang dapat dibaca pada sertifikat digital |
Dapat berisi:
|
Pesan kliring |
Dapat berisi:
|
Pesan otorisasi & transfer |
Dapat berisi:
|
Dapat berisi: |
Tabel 6.3. Penjelasan data-data dipertukaran dalam protokol cek bilyet digital.
Rancangan protokol cek bilyet digital dapat dilihat dengan membuka dokumen Adobe Acrobat ini, atau dapat Anda download cek_digital.pdf (164k).
Perbandingan dengan SPI yang lain
Cek bilyet digital dalam tugas akhir ini adalah alat pembayaran peer-to-peer. Jika nasabah 2 (penerima cek) mempercayai benar keabsahan cek bilyet digital yang diterimanya dan yakin pula bahwa nasabah 1 (pemberi cek) tidak menyerahkan cek kosong, maka nasabah 2 tidak perlu seketika mengirimkan cek bilyet digital itu ke gerbang pembayaran. Dalam kasus ini, transaksi dapat dikategorikan dalam transaksi off-line. Bahkan patut diingat kalaupun nasabah 2 langsung seketika menyerahkan cek bilyet digital itu kepada gerbang pembayaran, cek itu pun belum tentu dapat dikliring seketika, karena proses kliring di rumah kliring memakan waktu minimal satu hari. Namun jika gerbang pembayaran memiliki hubungan ke dalam jaringan antarbank, maka gerbang pembayaran dapat secara on-line melakukan otorisasi dan transfer dana antarrekening antarbank yang terhubung. Cek bilyet digital ini merupakan alat pembayaran peer-to-peer, karena dalam implementasinya nanti perangkat lunak dan sertifikat yang digunakan oleh klien tidak perlu berbeda. Dalam skenario ini transaksi yang dilakukan para nasabah bank dapat diidentifikasi dan dilacak, namun tetap menjaga kerahasiaan nomor rekening para nasabah. Seperti halnya cek biasa, cek bilyet digital ini kurang cocok untuk pembayaran transaksi yang nilainya kecil.
Kerahasiaan data transaksi pada protokol cek bilyet digital ini dijamin dengan menggunakan enkripsi-enkripsi. Integritas data transaksi dijamin dengan menggunakan fungsi hash satu arah. Sama seperti pada protokol SET, keabsahan pihak-pihak yang melakukan transaksi dan data transaksi dijamin dengan menggunakan tanda tangan digital dan sertifikat digital. Jadi protokol cek bilyet digital ini sebenarnya amat mengandalkan keabsahan tanda tangan OS utama (otoritas sertifikat yang memiliki hirarki paling tinggi). Jika nasabah tidak mendapatkan sertifikat digital OS utama yang benar, maka seluruh sistem dapat gagal total.
Tidak seperti bahasan sistem-sistem perdagangan di Internet sebelumnya, pembahasan mengenai serangan terhadap protokol cek bilyet digital ini akan dilakukan lebih detail. Serangan dapat bertujuan untuk:
Untuk mendapatkan penjelasan mengenai nomor-nomor proses, pada penjelasan penyerangan terhadap protokol cek digital, silahkan lihat protokol cek bilyet digital.
Pada skenario penyerangan pertama, nasabah 1 yang hendak menyerahkan cek kepada nasabah 2, tidak tahu bahwa sebenarnya dia sedang berkomunikasi dengan penyerang, bukan nasabah 2. Nasabah 2 sama sekali tidak tahu bahwa nasabah 1 hendak memberikan cek kepadanya. Penyerang amat sulit untuk mengubah tujuan pembayaran, karena pada proses 5 nasabah 1 memeriksa sertifikat digital milik penyerang. Nasabah 1 langsung tahu bahwa lawan bicaranya bukanlah nasabah 2. Nasabah 1 dapat langsung membatalkan transaksi. Penyerang dengan begitu secara otomatis tidak bisa menerima apapun lagi dari nasabah 1.
Pada skenario penyerangan kedua, penyerang seolah-oleh hendak memberikan cek bilyet digital kepada nasabah 2. Nasabah 2 baru sadar bahwa terjadi spoofing setelah proses 9, karena sertifikat digital yang diterimanya bukan milik nasabah 1.
Analisis terhadap serangan jenis ini akan dilakukan untuk setiap data yang dikirimkan melalui Internet.
- Jika penyerang menandatangani ulang [jawaban], memang tanda tangan pada [jawaban] itu otentik sesuai sertifikat digital yang menyertainya. Namun nasabah 1 dapat memeriksa bahwa sertifikat digital itu bukan milik nasabah 2. Pada langkah ini nasabah 1 dapat membatalkan seluruh transaksi.
- Jika penyerang menandatangani ulang [jawaban] tetapi tidak mengganti sertifikat digital nasabah 2, maka nasabah 1 akan melihat bahwa sertifikat digital itu benar milik nasabah 2. Saat nasabah 1 menggunakan kunci publik dari sertifikat digital itu untuk memeriksa tanda tangan [jawaban], nasabah 1 akan menemukan bahwa hash dari jawaban tidak sama dengan hash dari hasil dekripsi tanda tangan. Nasabah 1 akan tahu bahwa pesan itu tidak ditandatangani dengan menggunakan kunci privat yang berkorelasi dengan kunci publik yang dipakai untuk memeriksa. Nasabah dapat memutuskan untuk membatalkan transaksi.
Penyerang tentunya dapat merekam seluruh pertukaran pesan. Kini timbul pertanyaan, apakah penyerang dapat memainkan ulang rekaman tersebut sehingga penyerang dapat memperoleh informasi rekening nasabah atau membuat agar cek bilyet digital itu ditujukan bagi dirinya?
Untuk mendapatkan informasi rekening tanpa perlu brute-force attack tentunya penyerang harus meyakinkan salah satu pihak agar membuat amplop digital berisi informasi rekening sang nasabah (baik nasabah 1 maupun nasabah 2) yang hanya bisa dibuka oleh penyerang. Tapi untuk membuat amplop digital itu, sang nasabah membutuhkan sertifikat digital pihak yang membuka amplop digital itu. Jika penyerang hanya memainkan ulang (replay) pesan-pesan yang sudah dipertukarkan sebelumnya, maka tetap saja penyerang tidak bisa berbuat apa-apa karena sertifikat digital yang dipertukarkan berkorelasi dengan siapa yang bisa membuka amplop digital tersebut.
Penyerang dengan replay attack juga tidak bisa membuat tujuan cek berubah, karena penyerang tidak mengubah apapun dalam replay attack ini. Kalaupun penyerang mendapatkan cek bilyet digital, penyerang tetap tidak bisa menguangkannya karena tujuan pembayaran dalam cek bilyet digital itu tidak bisa diubah.
Brute-force attack tidak dijelaskan lebih lanjut karena berhubungan erat dengan algoritma dan panjang kunci yang dipergunakan, padahal kedua masalah tersebut tidak dispesifikasi dalam protokol ini.
Penyerang yang mendapatkan sertifikat digital dan kunci privat nasabah 2 juga belum bisa menerima cek bilyet digital. Gerbang pembayaran akan memeriksa apakah informasi rekening yang dikirimkan oleh penyerang, jika di-hash, akan sama dengan sidik jari yang ada dalam sertifikat digital yang dikirimkan. Karena yang dikirimkan adalah sertifikat digital nasabah 2, maka tentu kedua sidik jari tersebut berbeda. Gerbang pembayaran dapat memberikan peringatan kepada nasabah 1 dan nasabah 2 bahwa telah terjadi serangan.
Para nasabah harus mempercayai otoritas sertifikat yang memberikan sertifikat digital kepada para nasabah lainnya. Para nasabah juga harus percaya bahwa otoritas sertifikat tidak akan menyalahgunakan informasi rekening banknya yang diberikan kepada otoritas sertifikat untuk diperiksa terlebih dahulu keabsahannya. Persekongkolan antara otoritas sertifikat dengan nasabah dapat jelas-jelas merugikan nasabah lain, karena otoritas sertifikat dapat saja mensahkan sertifikat digital yang seharusnya sudah dibatalkan.
Karena nasabah mempercayai otoritas sertifikat, maka nasabah otomatis mempercayai pihak-pihak lain yang memiliki sertifikat digital yang disahkan otoritas sertifikat. Nasabah percaya bahwa gerbang pembayaran tidak akan menyalahgunakan informasi rekeningnya, karena gerbang pembayaran itu dijamin oleh otoritas sertifikat.
Masalah pembelanjaan ganda oleh nasabah 2 dapat segera dicegah dengan pencatatan nomor identitas cek yang dilakukan oleh gerbang pembayaran.
Untuk mencegah nasabah 1 menuliskan cek dengan identitas yang sama kepada dua orang penerima yang berbeda, maka gerbang pembayaran selain mencatat nomor identitas cek juga mencatat sidik jari dari cek yang bersangkutan.
Jadi jika gerbang pembayaran menerima cek yang nomor identitasnya sudah tercatat, maka gerbang pembayaran kemudian membandingkan sidik jari cek yang diterimanya dengan sidik jari cek yang sudah pernah dicatatnya. Jika ternyata sidik jarinya sama, maka nasabah 2 (penerima cek) dipastikan melakukan pembelanjaaan ganda. Sedangkan jika sidik jarinya berbeda, maka nasabah 1 (pemberi cek) ketahuan membuat beberapa cek dengan nomor identitas yang sama.
Meskipun tidak dispesifikasi dalam protokol cek bilyet digital ini, pencatatan transaksi dapat dilakukan di perangkat lunak masing-masing nasabah, baik pemberi maupun penerima cek. Dengan menyimpan cek bilyet digital itu, nasabah memiliki catatan untuk pembuktian di masa depan. Gerbang pembayaran juga dapat menyimpan cek sebagai barang bukti untuk mencegah pembelanjaan ganda.
Penerimaan Pembayaran dan Biaya Transaksi
Nasabah 2 akan dikredit rekening banknya setelah bank nasabah 2 mendapatkan kepastian kliring dari rumah kliring. Namun jika jaringan antarbank tersedia, rekening bank nasabah 2 akan dikredit segera setelah rekening nasabah 1 didebit. Dalam protokol ini siapa yang akan membayar jasa yang disediakan gerbang pembayaran.
Pengamanan kunci privat dan sertifikat digital dapat dilakukan dengan memasukkannya ke dalam kartu chip. Di masa depan, dengan terminal-terminal Internet di tempat umum yang dilengkapi kartu chip, bahkan dapat dikembangkan transfer dana sistem debit antarbank, sehingga penggunaan protokol ini tidak hanya dapat diimplementasikan pada PC biasa.
Protokol cek bilyet digital ini dapat pula dikembangkan sehingga penerima cek tidak harus memiliki sertifikat digital. Namun tentunya pemberi cek akan melihat nomor rekening sang penerima cek. Salah satu langkah pengamanan lain yang tidak mengharuskan penerima cek menggunakan sertifikat digital adalah dengan menggunakan shadow account penerima cek yang datanya tercatat di gerbang pembayaran. Tentunya dengan cara ini penerima cek harus mendaftarkan diri terlebih dahulu kepada gerbang pembayaran.