DIGITAL CERTIFICATE & DIGITAL SIGNATURE
OLEH : ARNANDO MAHARRIZKI
(09091002016)
NOVA RISKA ARIANTI
(09091002034)
MAYA ANDARI
(09091002052)
TYA NOVITASARI
(09091002056)
EDRINE DAMA KHARISNA
(09091002070)
JURUSAN TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2011-2012
A. DIGITAL CERTIFICATE 1. Pengertian Digital Certificate Source : http://agussale.com/penjelasan-tentang-apa-itu-digital-certificates Digital Certificates atau sertifikat digital setara dengan izin mengemudi, surat nikah, atau bentuk lain dari identitas. Satu-satunya perbedaan adalah bahwa sertifikat digital digunakan bersama dengan sistem enkripsi public key. Digital Certificates adalah file elektronik yang hanya bekerja sebagai paspor online. Digital Certificates dikeluarkan oleh pihak ketiga yang dikenal sebagai Certification Authority seperti VeriSign atau Thawte. Otoritas sertifikasi pihak ketiga ini memiliki tanggung jawab untuk mengkonfirmasi identitas pemegang sertifikat serta memberikan jaminan kepada para pengunjung situs bahwa situs web tersebut adalah salah satu yang dapat dipercaya dan mampu melayani mereka dengan cara yang dapat dipercaya. Sertifikat digital adalah dokumen digital yang berisi informasi sebagai berikut:
nama subjek (perusahaan/individu yang disertifikasi)
kunci publik si subjek
waktu kadaluarsa sertifikat (expired time)
informasi relevan lain seperti nomor seri sertifikat, dll
2. Fungsi Digital Certificate Sertifikat digital memiliki dua fungsi dasar. Yang pertama adalah untuk menyatakan bahwa orang-orang, website, dan sumber daya jaringan seperti server dan router merupakan sumber terpercaya, dengan kata lain sesuai dengan siapa atau apa yang menjadi tuntutan mereka. Fungsi kedua adalah untuk memberikan perlindungan bagi pertukaran data dari pengunjung dan website dari gangguan atau bahkan pencurian, seperti informasi kartu kredit. 3. Bentuk Digital Certificate Sebuah sertifikat digital berisi nama organisasi atau individu, alamat bisnis, tanda tangan digital, public key, nomor seri, dan tanggal kedaluwarsa. Ketika Anda sedang online dan
browser web Anda mencoba untuk mengamankan sambungan, maka sertifikat digital yang diterbitkan untuk website yang akan diperiksa oleh browser web untuk memastikan bahwa semuanya baik-baik saja dan dapat Anda telusuri dengan aman. Web browser pada dasarnya telah dibangun dengan memiliki daftar semua otoritas sertifikasi utama dan public key mereka dan menggunakan informasi tersebut untuk mendekripsi tanda tangan digital. Hal ini memungkinkan browser untuk segera memeriksa masalah, kelainan, dan jika semua pemeriksaan tidak menemukan masalah maka peringatan aman akan diaktifkan. Ketika browser menemukan sebuah informasi sertifikat atau tidak cocok atau kadaluarsa, kotak dialog akan muncul memberi peringatan. Ada dua jenis utama sertifikat digital yang penting untuk membangun situs Web aman dan ini adalah server certificates dan personal certificates. a. Server certificates Sertifikat server hanya memungkinkan pengunjung website untuk aman mentransfer informasi pribadi mereka seperti kartu kredit dan informasi rekening bank tanpa khawatir tentang pencurian atau gangguan. Sertifikat server juga bertanggung jawab untuk memvalidasi identitas pemilik website sehingga pengunjung dapat merasa seolah-olah mereka berhadapan dengan sumber yang sah saat membuat atau memasukkan password, rincian rekening bank, atau nomor kartu kredit ke dalam situs web. Untuk setiap bisnis atau situs web yang akan membutuhkan informasi tersebut, sertifikat server merupakan bagian penting dari proses membangun website, salah satu yang tidak bisa dilewati atau diabaikan dengan alasan apapun. Memiliki sertifikat server dapat memberi keuntungan pemilik website karena merupakan usaha professional bisnis e-commerce di mana pelanggan memiliki jaminan sebagai legitimasi atau profesionalisme dari orang-orang partner bisnis. b. Personal Certificates Personal Certificates sedikit berbeda dari Server Certificates karena memungkinkan Anda untuk memvalidasi identitas pengunjung situs Web dan bahkan membatasi akses mereka kepada bagian-bagian tertentu dari website. Anda mungkin ingin mengatur website Anda
sehingga halaman web hanya tersedia bagi orang-orang tertentu, dan sertifikat pribadi dapat membantu Anda melakukan hal ini. Personal Certificates dapat digunakan untuk hal-hal seperti mengirim dan menerima email untuk informasi rekening pribadi seperti password terlupakan atau informasi nama pengguna. Keamanan Standar Sebagian besar protokol standar yang banyak digunakan untuk komunikasi elektronik mengandalkan digital certificates: a. SSL (Secure Socket Layer), yang dirancang oleh Netscape Communication Corporation, diterima secara luas sebagai browser forweb dasar standar dan otentikasi server, dan aman untuk pertukaran data di Internet. Hampir semua server utama dan web browser termasuk Netscape Communicator dioptimalkan untuk mengaktifkan enkripsi SSL, dan merupakan jenis keamanan yang paling umum dilihat di Internet. b. S/MIME (Secure Multipurpose Internet Mail Extensions Protocol) dianggap sebagai standar dasar untuk email yang aman dan EDI (Electronic Data Interchange). c. SET (Secure Transaksi Elektronik protokol) melindungi pembayaran elektronik dari pengunjung web untuk operator situs. d. Internet Protocol Secure Standard (IPSec) memverifikasi perangkat jaringan seperti server dan router.
4. Cara Kerja Digital Certificate
Source : http://rezanovian.wordpress.com/2010/05/26/cara-kerja-digital-certificate-ca-danpki-certificate-authority/
a. Proses Registrasi Langkah pembentukan sertifikat digital:
Sertifikat digital/digital sign diperlukan sebagai identifikasi sebelum seorang pelanggan dapat melakukan akses/transaksi pada suatu aktifitas kegiatan berbasis WEB (B2B, B2C, G2C) yang menggunakan pengamanan dan enkripsi dengan metoda Public Key Infrastructure (PKI).
Setiap orang/pelanggan yang akan berkomunikasi/bertransaksi harus terlebih dahulu mendaftar (registrasi) untuk memperoleh Identifikasi dalam bentuk Elektronik Identification Number.
Setelah Elektronik Identification Number (E-ID) diterbitkan dan diterima oleh pelanggan, selanjutnya Elektronik Identification Number (E-ID) tersebut oleh provider yang bersangkutan akan dikirimkan ke Certificate Authority Server untuk di registrasikan.
Selanjutnya pelanggan melalui komputer yang dimiliki (personal) akan melakukan koneksi secara on line menggunakan komunikasi yang khusus/secure (menuju address WEB site yang telah ditentukan) untuk melalukan verifikasi dengan cara mengirimkan Elektronik Identification Number (E-ID) yang telah diperoleh sebelumnya, dalam rangka memperoleh Digital Certificate.
Selanjutnya Certificate Authority Server akan melakukan verifikasi terhadap kebenaran dan keabsahan Elektronik Identification Number (E-ID) yang telah dikirimkan oleh pelanggan.
Jika Elektronik Identification Number (E-ID) tersebut benar dan absah, maka selanjutnya Certificate Authority Server akan menerbitkan Digital Certificate, dengan disertai Public Key dan Private Key. Digital Certificate tersebut akan dikirimkan ke pelanggan dengan menggunakan komunikasi yang khusus/secure untuk selanjutnya Digital Certificate tersebut diinstall di komputer pelanggan.
b. Proses pengiriman
Sertifikat digital/digital sign diperlukan sebagai identifikasi sebelum seorang pelanggan dapat melakukan akses/transaksi pada suatu aktifitas kegiatan berbasis WEB (B2B, B2C, G2C) yang menggunakan pengamanan dan enkripsi dengan metoda Public Key Infrastructure (PKI).
Setiap orang/pelanggan yang akan berkomunikasi/bertransaksi harus terlebih dahulu mendaftar (registrasi) untuk memperoleh Identifikasi dalam bentuk Elektronik Identification Number.
Setelah Elektronik Identification Number (E-ID) diterbitkan dan diterima oleh pelanggan, selanjutnya Elektronik Identification Number (E-ID) tersebut oleh provider yang bersangkutan akan dikirimkan ke Certificate Authority Server untuk di registrasikan.
Selanjutnya pelanggan melalui komputer yang dimiliki (personal) akan melakukan koneksi secara on line menggunakan komunikasi yang khusus/secure (menuju address WEB site yang telah ditentukan) untuk melalukan verifikasi dengan cara mengirimkan Elektronik Identification Number (E-ID) yang telah diperoleh sebelumnya, dalam rangka memperoleh Digital Certificate.
Selanjutnya Certificate Authority Server akan melakukan verifikasi terhadap kebenaran dan keabsahan Elektronik Identification Number (E-ID) yang telah dikirimkan oleh pelanggan.
Jika Elektronik Identification Number (E-ID) tersebut benar dan absah, maka selanjutnya Certificate Authority Server akan menerbitkan Digital Certificate, dengan disertai Public Key dan Private Key.
Digital Certificate tersebut akan dikirimkan ke pelanggan dengan menggunakan komunikasi yang khusus/secure untuk selanjutnya Digital Certificate tersebut diinstall di komputer pelanggan.
B. DIGITAL SIGNATURE
1. Pengertian Digital Signature
Source : http://cenxos.blogspot.com/2008/06/digital-signature.html Digital
signature
merupakan
sistem
keamanan
kriptografi
simetris
(symetric
crypthography/secret key crypthography) atau public key cryptography system yang dikenal sebagai kriptografi simetris, menggunakan kunci yang sama dalam melakukan enkripsi dan dekripsi terhadap suatu pesan (message), disini pengirim dan penerima menggunakan kunci yang sama sehingga mereka harus menjaga kerahasian (secret) terhadap kuci tersebut. Salah satu algoritma yang terkenal dalam kriptografi simetris ini adalah Data Encryption Stkitard (DES) yang bertujuan untuk memastikan otentisitas dari dokumen tersebut. Suatu digital signature sebenarnya bukan tanda tangan biasa, tapi tanda tangan dengan menggunakan cara yang berbeda untuk menandai suatu dokumen sehingga dokumen atau data tidak mengidentifikasi dari pengirim, namun juga memastikan keutuhan dari dokumen tersebut tidak berubah selama proses transmisi, digital signature didasarkan dari isi dari pesan itu sendiri. Kriptografi simetris menggunakan dua kunci yaitu satu kunci untuk melakukan enkripsi terhadap suatu pesan (messages) dan kunci yang lain digunakan untuk melakukan dekripsi
terhadap pesan tersebut. Antara kedua kinci tersebut brhubungan secara matematis sehingga suatu pesan yang dienkripsi dengan suatu kunci hanya dapat didekripsi dengan kunci pasangannya. Pada digital signature suatu data/pesan akan dienkripsi dengan kunci simetris yang diciptakan secara acak (randomly generated symmetric key) yang kemudian akan dienkripsi dengan menggunakan kunci publik dari penerima. Hasil dari enkripsi ini kemudian dikenal/disebut sebagai "digital envelope" yang akan dikirimkan bersama pesan/data yang telah dienkripsi. Tanda tangan kita secara digital adalah memberikan suatu ciri khas terhadap suatu pesan. Message digest adalah suatu besaran (value) yang berasal dari suatu data/pesan yang memiliki sifat yang unik yang menkitai bahwa pesan tersebut mempunyai suatu besaran tertentu yang diciptakan dengan melakukan enkripsi terhadap suatu data dengan menggunakan kriptografi satu arah (one way crypthography), yaitu suatu tehnik kriptografi yang terhadapnya tidak dapat dilakukan proses pembalikan (reversed). Pada saat message digests dienkripsi dengan menggunakan kunci privat dari pengirim dan "ditambahkan" kepada data/pesan yang asli maka hasil yang didapat adalah digital signature dari pesan tersebut. a. Authenticity (Ensured) Dengan memberikan digital signature pada data elektronik yang dikirimkan maka akan dapat ditunjukkan darimana data elektronis tersebut sesungguhnya berasal. Integritas pesan tersebut akan terjamin karena keberadaan dari Digital Certificate yang diperoleh atas dasar aplikasi kepada Cerfication Authority oleh user/subscriber. digital certificate berisi informasi mengenai pengguna yaitu identitas, kewenangan, kedudukan hokum serta status dari user. Digital certificate ini memiliki berbagai tingkatan/level yang menentukan berapa besar kewenangan yang dimiliki oleh pengguna. b. Integrity Integritas/integrity yaitu jika seorang penerima pesan/data merasa yakin bahwa pesan/data tersebut pernah dimodifikasi atau diubah selama proses pengiriman atau penyimpanan.
Penggunaan digital signature yang diaplikasikan pada pesan/data elektronik yang dikirimkan dapat menjamin bahwa pesan/data elektronik tersebut tidak mengalami suatu perubahan atau modifikasi oleh pihak yang tidak berwenang. Jaminan authenticity ini dapat dilihat dari adanya hash function dalam sistem digital signature dimana penerima data (recipient) dapat melakukan pembandingan hash value. Apabila hash value-nya sama dan sesuai, maka data tersebut benarbenar otentik, tidak pernah terjadi suatu tindakan yang sifatnya merubah (modify) dari data tersebut pada saat proses pengiriman, sehingga terjamin authenticity-nya. Sebaliknya apabila hash value-nya berbeda, maka patut dicurigai dan langsung dapat disimpulkan bahwa recipient menerima data yang telah dimodifikasi. c. Non-Repudiation (Tidak dapat disangkal keberadaannya) Non repudiation timbul dari keberadaan digital signature yang menggunakan enkripsi asimetris (asymmetric encryption) yang melibatkan keberadaan dari kunci prifat dan kunci public. Pengirim pesan tidak dapat menyangkal bahwa ia telah mengirimkan suatu pesan apabila ia sudah mengirimkan suatu pesan. Non repudiation adalah hal yang sangat penting bagi ecommerce apabila suatu transaksi dilakukan melalui suatu jaringan internet, kontrak elektronik (electronic contracts), ataupun transaksi pembayaran. Pesan yang telah dienkripsi dengan menggunakan kunci prifat maka ia hanya dapat dibuka/dekripsi dengan menggunakan kunci publik dari pengirim. d. Confidentiality Pesan dalam bentuk data elektronik yang dikirimkan bersifat rahasia/confidential, sehingga tidak semua orang dapat mengetahui isi data elektronik yang telah di-sign dan dimasukkan dalam digital envelope. Keberadaan digital envelope yang termasuk bagian yang integral dari digital signature menyebabkan suatu pesan yang telah dienkripsi hanya dapat dibuka oleh orang yang berhak. Tingkat kerahasiaan dari suatu pesan yang telah dienkripsi ini, tergantung dari panjang kunci/key yang dipakai untuk melakukan enkripsi. Pada saat ini stkitar panjang kunci yang digunakan adalah sebesar 128 bit. Pengamanan data dalam e-commerce dengan metode kriptografi melalui skema digital signature tersebut secara teknis sudah dapat diterima dan diterapkan, namun apabila kita bahas dari sudut
pandang ilmu hukum ternyata masih kurang mendapatkan perhatian. Kurangnya perhatian dari ilmu hukum dapat dimengerti karena, khususnya di Indonesia, penggunaan komputer sebagai alat komunikasi melalui jaringan internet baru dikenal semenjak tahun 1994. Dengan demikian pengamanan jaringan internet dengan metode digital signature di Indonesia tentu masih merupakan hal yang baru bagi kalangan pengguna komputer.
Contoh software Digital Signature
Source : http://jsignpdf.sourceforge.net/ Contoh software digital signature adalah JSignPdf
JSignPdf adalah aplikasi Java yang menambahkan tanda tangan digital untuk dokumen PDF. Hal ini dapat digunakan sebagai aplikasi standalone atau sebagai Add-On pada OpenOffice.org. JSignPdf adalah perangkat lunak open source dan dapat digunakan secara bebas baik di sektor swasta dan bisnis. Fitur utama adalah, * Beberapa keystore jenis yang berbeda (seperti yang disediakan oleh Java) * Menambahkan tanda tangan digital untuk PDF * Menetapkan tingkat sertifikasi * PDF enkripsi dan pengaturan hak * Menambahkan ikon tanda tangan ke PDF (terlihat tanda tangan) * Komprehensif swing GUI * Dukungan untuk pemrosesan batch (dikontrol oleh argumen baris perintah, tanpa GUI)
Author Penulis JSignPdf adalah pengembang berkebangsaan Ceko, Josef Cacek. Dia bekerja di Java dari tahun 2000. Dia adalah anggota komunitas pengembang OpenOffice.org dan ia membuat rilisan pertama Windows OpenOffice.org dalam bahasa Ceko.
2. Digital Signature Algorithm (DSA)
Source : ewinarko.staff.ugm.ac.id/kripto/DSA.pdf
Pada bulan Agustus 1991, NIST (The National Institute of Standard and Technology) mengumumkan algoritma sidik dijital yang disebut Digital Signature Algorithm (DSA). DSA dijadikan sebagai bakuan (standard) dari Digital Signature Standard (DSS).
DSS adalah standard, sedangkan DSA adalah algoritma. Standard tersebut menggunakan algoritma ini, sedangkan algoritma adalah bagian dari standard (selain DSA, DSS menggunakan Secure Hash Algorithm atau SHA sebagai fungsi hash)
DSA termasuk ke dalam sistem kriptografi kunci-publik. Meskipun demikian, DSA tidak dapat digunakan untuk enkripsi. DSA mempunyai dua fungsi utama: 1. Pembentukan sidik dijital (signature generation), dan 2. Pemeriksaan keabsahan sidik dijital (signature verivication).
Sebagaimana halnya pada algoritma kriptografi kunci-publik, DSA menggunakan dua buah kunci, yaitu kunci publik dan kunci rahasia. Pembentukan sidik digital menggunakan kunci rahasia pengirim, sedangkan verifikasi sidik digital menggunakan kunci publik pengirim.
DSA menggunakan fungsi hash SHA (Secure Hash Algorithm) untuk mengubah pesan menjadi message digest yang berukuran 160 bit (SHA akan dijelaskan pada kuliah selanjutnya).
a. Parameter DSA
DSA dikembangkan dari algoritma Elgamal. DSA menggunakan beberapa parameter sebagai berikut: 1. p, adalah bilangan prima dengan panjang L bit, yang dalam hal ini 512 L 1024 dan L harus kelipatan 64. Parameter p bersifat publik dan dapat digunakan bersama-sama oleh orang di dalam kelompok. 2. q, bilangan prima 160 bit, merupakan faktor dari p – 1. Dengan kata lain, (p – 1) mod q = 0. Parameter q berisfat publik.
3. g = h(p – 1)/q mod p, yang dalam hal ini h < p – 1 sedemikian sehingga h(p – 1)/q mod p > 1. Parameter g bersifat publik.
4. x, adalah bilangan bulat kurang dari q. Parameter x adalah kunci rahasia.
5. y = gx mod p, adalah kunci publik.
6. m, pesan yang akan diberi sidik dijital.
b. Pembentukan Sepasang Kunci
1. Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0. 2. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p – 1)/q mod p > 1. 3. Tentukan kunci rahasia x, yang dalam hal ini x < q. 4. Hitung kunci publik y = gx mod p.
c. Pembentukan Sidik Dijital (Signing) 1. Ubah pesan m menjadi message digest dengan fungsi hash SHA, H. 2. Tentukan bilangan acak k < q. 3. Sidik dijital dari pesan m adalah bilangan r dan s. Hitung r dan s sebagai berikut: r = (gk mod p) mod q s = (k– 1 (H(m) + x * r)) mod q 4. Kirim pesan m dan sidik dijital r dan s.
d. Verifikasi Keabsahan Sidik Dijital (Verifying) 1. Hitung
w = s– 1 mod q u1 = (H(m) * w) mod q u2 = (r * w) mod q v = ((gu1 * yu2) mod p) mod q) 2. Jika v = r, maka sidik dijital sah, yang berarti bahwa pesan masih asli dan dikirim oleh pengirim yang benar. e. Contoh Perhitungan DSA a. Pembentukan Sepasang Kunci 1. Pilih bilangan prima p dan q, yang dalam hal ini (p – 1) mod q = 0. p = 59419 q = 3301 (memenuhi 3301 * 18 = 59419 – 1)
2. Hitung g = h(p – 1)/q mod p, yang dalam hal ini 1 < h < p – 1 dan h(p – 1)/q mod p > 1. g = 18870
(dengan h = 100)
3. Tentukan kunci rahasia x, yang dalam hal ini x < q. x = 3223 4. Hitung kunci publik y = gx mod p.
y = 29245
b. Pembentukan Sidik Dijital (Signing) 1. Hitung nilai hash dari pesan, misalkan H(m) = 4321 2. Tentukan bilangan acak k < q. k = 997 k– 1 = 2907 (mod 3301) 3. Hitung r dan s sebagai berikut: r = (gk mod p) mod q = 848 s = (k– 1 (H(m) + x * r)) mod q = 7957694475 mod 3301 = 183 4. Kirim pesan m dan sidik dijital r dan s.
c. Verifikasi Keabsahan Sidik Dijital 1. Hitung s– 1 = 469 (mod 3301)
w = s– 1 mod q = 469 u1 = (H(m) * w) mod q 2026549 mod 3301 = 3036 u2 = (r * w) mod q = 397712 mod 3301 = 1592 v = ((gu1 * yu2) mod p) mod q) = 848 mod 3301 = 848 2. Karena v = r, maka sidik digital sah. f. Implementasi DSA
Adanya batasan bahwa nilai p mempunyai panjang 512 sampai 1024 bit dan q 160-bit, menyebabkan DSA hampir tidak mungkin diimplementasikan dalam perangkat lunak. Panjang bit yang besar ini dimaksudkan agar upaya untuk memecahkan parameter yang lain sangat sulit dilakukan
3. Compiler C hanya sanggup menyatakan bilangan bulat hingga 232. Oleh karena itu, bila DSA diimplementasikan dalam perangkat lunak, batasan panjang bit p dan q diubah hingga maksimum nilai p dan q adalah 232.