Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis...

11
Layanan Certification Authority (CA) dan Document Signing and Verification berbasis Web Service Agung Nugraha [email protected] 1. Pendahuluan Sejak diluncurkannnya Root CA Indonesia oleh Kemenkominfo, mulai banyak layanan yang menyediakan penerbitan sertifikat digital atau yang berfungsi sebagai Certification Authority (CA) seperti Otoritas Sertifikat Digital (OSD) milik Lemsaneg, iOtentik milik BPPT dan Serel milik LHKT Fakultas Hukum Universitas Indonesia. CA merupakan badan yang memiliki kewenangan dalam melakukan pengelolaan sertifikat digital seperti penerbitan, pencabutan dan pembaharuan. Sertifikat digital dalam implementasinya digunakan untuk meningkatkan keamanan karena dapat menyediakan jaminan kepercayaan (authentication), keaslian data (integrity), kerahasiaan (confidentiality) dan anti sangkal (non – repudiation). Salah satu implementasi dari sertifikat digital yang populer adalah tanda tangan elektronik atau digital signature. Digital signature merupakan teknik kriptografi yang digunakan pada suatu data elektronik untuk menjamin bahwa data tersebut adalah asli dan tidak mengalami perubahan oleh pihak yang tidak berhak. Digital signature pada dokumen elektronik dapat dibangkitkan dengan pendekatan client maupun server sesuai dengan kebutuhan. Masing – masing pendekatan memiliki kelebihan dan kekurangan berdasarkan keamanan dan kenyamanan pengguna. Pada paper ini, saya membuat sebuah arsitektur dan layanan berbasis web service yang dapat digunakan oleh pengguna dalam membuat digital signature dan memperoleh sertifikat digital. 2. Konsep Tanda Tangan Digital 2.1 Digital Certificate Sertifikat digital memiliki peranan penting dalam pembangkitan digital signature. Dalam sertifikat digital terdapat info publik key dan info pemilik publik key. Info – info tersebut di masukkan kepada informasi siganture pada dokumen. Adapun info yang terdapat pada sertifikat digital ditunjukkan pada gambar 1.

Transcript of Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis...

Page 1: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Layanan Certification Authority (CA) dan Document Signing andVerification berbasis Web Service

Agung [email protected]

1. Pendahuluan

Sejak diluncurkannnya Root CA Indonesia oleh Kemenkominfo, mulai banyak layanan yang

menyediakan penerbitan sertifikat digital atau yang berfungsi sebagai Certification Authority (CA)

seperti Otoritas Sertifikat Digital (OSD) milik Lemsaneg, iOtentik milik BPPT dan Serel milik LHKT

Fakultas Hukum Universitas Indonesia. CA merupakan badan yang memiliki kewenangan dalam

melakukan pengelolaan sertifikat digital seperti penerbitan, pencabutan dan pembaharuan. Sertifikat

digital dalam implementasinya digunakan untuk meningkatkan keamanan karena dapat menyediakan

jaminan kepercayaan (authentication), keaslian data (integrity), kerahasiaan (confidentiality) dan anti

sangkal (non – repudiation). Salah satu implementasi dari sertifikat digital yang populer adalah tanda

tangan elektronik atau digital signature. Digital signature merupakan teknik kriptografi yang

digunakan pada suatu data elektronik untuk menjamin bahwa data tersebut adalah asli dan tidak

mengalami perubahan oleh pihak yang tidak berhak. Digital signature pada dokumen elektronik dapat

dibangkitkan dengan pendekatan client maupun server sesuai dengan kebutuhan. Masing – masing

pendekatan memiliki kelebihan dan kekurangan berdasarkan keamanan dan kenyamanan pengguna.

Pada paper ini, saya membuat sebuah arsitektur dan layanan berbasis web service yang dapat

digunakan oleh pengguna dalam membuat digital signature dan memperoleh sertifikat digital.

2. Konsep Tanda Tangan Digital

2.1 Digital Certificate

Sertifikat digital memiliki peranan penting dalam pembangkitan digital signature. Dalam

sertifikat digital terdapat info publik key dan info pemilik publik key. Info – info tersebut di masukkan

kepada informasi siganture pada dokumen. Adapun info yang terdapat pada sertifikat digital

ditunjukkan pada gambar 1.

Page 2: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Gambar 1. Sertifikat digital milik pengguna

Setiap publik key yang terdapat pada sertifikat digital berkesesuaian dengan private key sehingga jika

signature berhasil di decrypt menggunakan publik key yang berasal dari sertifikat digital, maka

penerima dokumen dapat memastikan bahwa siganture benar – benar dibangkitkan oleh pembuat

dokumen.

2.2 Digital Signature

Digital signature merupakan kombinasi dari fungsi hash dan enkripsi dengan metode asimetrik.

Untuk membangkitan sebuah digital signature, dokumen elektronik akan dimasukkan ke fungsi hash

dan akan menghasilkan nilai hash yang unik. Fungsi hash merupakan fungsi satu arah dan akan

menghasilkan nilai unik untuk setiap data yang dimasukkan. Oleh karena itu, jika ada perubahan satu

bit saja pada konten dokumen maka nilai hash yang dihasilkan akan berbeda. Nilai hash tersebut

kemudian di enkripsi menggunakan private key untuk selanjutnya nilai dari hasil enkripsi tersebut

adalah nilai signature dari suatu dokumen. Signature tersebut kemudian ditambahkan dengan dokumen.

Proses verifikasi dilakukan dengan melakukan dekripsi signature dokumen. Hasil dekripsi tersebut

akan menghasilkan nilai hash untuk selanjutnya dibandingkan dengan nilai hash dari dokumen yang

dibangkitkan oleh penerima dokumen. Jika nilai hash sama, maka dokumen yang diterima adalah asli.

Sebaliknya jika nilai hash yang dibandingkan tidak sama, maka dapat dipastikan bahwa dokumen

Page 3: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

mengalami perubahan oleh pihak yang tidak berhak. Gambar 2 menunjukkan proses pembangkitan

digital signature dan proses verifikasi.

Gambar 2. Proses pembangkitan digital signature dan verifikasi

3. Arsitektur Sistem

Pada umumnya, sistem yang berkaitan dengan pengelolaan sertifkat digital dan pembangkitan

digital signature harus dipisahkan. Hal ini karena terkait dengan jaminan service, hukum dan

kepercayaan yang diberikan oleh pemilik layanan. Oleh karena itu, sistem yang dibangun pada paper

ini terdiri dari dua bagian yaitu sistem untuk penerbitan sertifikat digital dan sistem untuk

pembangkitan digital signature. Sistem yang dibangun menggunakan EJBCA CA, SignServer, Ubuntu,

Spring Framework dan library iText. Gambar 3 menunjukkan gambaran umum sistem yang dibangun.

Gambar 3. Gambaran umum sistem

Page 4: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Pada penerbitan digital certificate, dikenal dengan adanya Certification Authority (CA). CA

merupakan entitas yang berhak melakukan penerbitan sertikat untuk setiap pengguna. Arsitektur CA

pada sistem ini ditunjukkan pada gambar 4.

Gambar 4. Arsitektur CA

Terdapat Root CA yang mendelegasikan penerbitan sertifikat pengguna kepada Intermediate CA.

Arsitektur ini umum diimplementasikan oleh banyak layanan CA untuk mengamankan dan

menghindari Root CA terhadap serangan dari pihak luar yang dapat mengakibatkan Root CA menjadi

compromised.

4. Layanan Sertifikat Digital dan Digital Signature

4.1 Pembangkitan Sertifikat Digital

Setiap pengguna dapat dengan bebas untuk mendapatkan serfikat elektronik dari sistem dengan

melakukan pendaftaran terlebih dahulu. Flow pembangkitan sertifikat digital ditunjukkan pada gambar

5.

Gambar 5. Flow Pembangkitan Sertifikat Digital

Page 5: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Permintaan registrasi dapat dilakukan dengan menggunakan beberapa tools seperti CURL atau

Postman. Pada paper ini, digunakan tools CURL dan perintah yang digunakan adalah sebagai berikut :

c u r l - i - H " A c c e p t : a p p l i c a t i o n / j s o n " - X P O S T - d"[email protected]&password=testing123&confirm_password=testing123"http://localhost:8080/registration/

Setelah melakukan registrasi, sistem akan mengirimkan email konfirmasi kepada pengguna. Pengguna

akan diminta untuk melakukan aktivasi dengan melakukan klik pada link yang dikirimkan. Setelah

pengguna teraktivasi, maka pengguna dapat mengirimkan permintaan penerbitan sertifikat digital.

Untuk permintaan penerbitan sertifikat digital, pengguna harus mengirimkan Certificate Signing

Request (CSR) beserta dengan user credential yang telag didaftarkan pada tahap sebelumnya. Untuk

pembangkitan kunci private dan CSR, pengguna dapat memanfaatkan beberapa tools seperti openssl,

keytool maupun tools lainnya. Perintah yang dilakukan untuk permintaan sertifikat digital adalah

sebagai berikut :

c u r l - X P O S T - H " A u t h o r i z a t i o n : B a s i cY3J5cHRvZGV2LmlkQGdtYWlsLmNvbTp0ZXN0aW5nMTIz" -H "Accept: application/json" -d'-----BEGIN CERTIFICATE REQUEST-----MIIChDCCAWwCAQAwPzEWMBQGA1UEAxMNYWd1bmcgbnVncmFoYTElMCMGCSqGSIb3DQEJARYWY3J5cHRvZGV2LmlkQGdtYWlsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOAEh62wf8EFWtMI5lGHr1Mr20HEE3DkuLH3cEMAUFUH7Cpn9+skpF4gNj2ibe9G+/g0r2g5mU6ekPToDd/GQIVKYLshXs9QIiMrb/lsh/vf+3XtSFxU9L4cwTxDc+Dz6Chs/lMI1LvrxDm91LcoQue3q6ab+mayIrbovhTbVa9jlS+dWJpVPzn1vDjItynO5B2kMMkf/qQoNRlMfp7J4xr8hlFYyhNWOkrrFSsv71ndoIrXwXmZOtkQEz4BcPX3nXwvJjPXp0+M1hhITFce3SqlP2EZ6db9dtmJn9hN9qWD6SprJoAVdQG1JsDUkkPLiH57gSX+0Sxkpc1HZsLHL+cCAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4IBAQAQMfnuW1iJTh9yjW1O18P3yepIVKpdIeUaP8ggllGPE1Wkfve85+Oe9QyChN/AgJq94LpnA6wldoF3VmCxvXMGQ4MdBmr9hYhd9QHF4RdGkMnDkrTH8nzk+LtnBtatJoAIdDptthommulskDDHI4CUkFX4cVw6dOz7nG/PQPg7GchvupbGNzuAWnssUYZPhg9iyrzJnAo0EGayBV+Oc1mkVD6tucaxClo/015IoKOWmcMfPzkOndqRspg6VisRqtzmr7GEasduBvHqTm5WR1GctmbmSTIIPuZntr0tKqomO2i6h77q7m2nP1QDiQVd20xIFRWPyN1MFHIbc8LLuD8L-----END CERTIFICATE REQUEST-----' "http://localhost:8080/api/enroll/"

Jika permintaan sertifikat digital berhasil, maka CA akan memproses dan mengirimkan ticket_id.

Pengguna dapat memeriksa apakah permintaan tersebut telah diproses atau tidak dengan mengirimkan

ticket_id tersebut melalui perintah sebagai berikut :

c u r l - X G E T - H " A u t h o r i z a t i o n : B a s i cY3J5cHRvZGV2LmlkQGdtYWlsLmNvbTp0ZXN0aW5nMTIz" -H "Accept: application/json""http://localhost:8080/api/enroll/check/1d839d397a0448fa8e429b395c085b5c"

Page 6: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Adapun tampilan sertifikat digital yang telah diterbitkan diperlihatkan pada gambar 6.

Gambar 6. Sertifikat digital yang telah dibangkitkan

4.2 Pembangkitan Digital Signature

4.2.1 Signing

Setelah memiliki sertifikat digital dan private key, maka pengguna dapat melakukan tanda

tangan elektronik pada suatu dokumen. Terdapat dua pendekatan yaitu client dan server yang dapat

digunakan untuk proses pembangkitan tanda tangan elektronik. Pada pendekatan berbasis client,

pengguna melakukan melakukan pembangkitan tanda tangan elektronik dengan menggunakan private

key pada device client. Device client akan melakukan proses signing di lokal dan kemudian akan

meminta trusted timestamp kepada sign server. Salah satu implementasi tanda tangan elektronik

berbasis client yang berhasil diimpelementasikan di Indonesia saat ini adalah Faktur Pajak PKP oleh

Ditjen Pajak. Gambar 7 menunjukkan proses tanda tangan elektronik berbasis client.

Page 7: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Gambar 7. Tanda tangan elektronik berbasis client

Untuk implementasi tanda tangan elektronik, saya batasi pada dokumen PDF karena dokumen PDF

saat ini sudah banyak dijadikan sebagai acuan dokumen akhiran dari sistem elektronik. Proses tanda

tangan elektronik berbasis client pada dokumen PDF dilakukan menggunakan aplikasi yang saya

bangun dengan memanfaatkan library iText dan ICEpdf versi open source. Gambar 8 menunjukkan

tampilan ketika melakukan signing pada dokumen PDF.

Page 8: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Gambar 8. Proses tanda tangan elektronik pada dokumen PDF

Pada proses tanda tangan, parameter yang harus dimasukkan adalah keystore (pasangan private key dan

sertifikat digital) dan url dari Timestamp Authority (TSA). TSA digunakan sebagai acuan waktu yang

dapat dipercaya. Pada paper ini, saya bangun SignServer yang dapat menyediakan service TSA dan

beberapa service lainnya seperti Document Signing. Pada service Document Signing, implementasi

tanda tangan elektronik yang diterapkan adalah berbasis server tanda tangan elektronik dihasilkan oleh

server dengan menggunakan private key server sehingga pengguna hanya melakukan upload dokumen

elektronik. Pada umumnya, pendekatan berbasis server dilakukan untuk kebutuhan jaminan keaslian

dokumen oleh suatu instansi pemerintah atau swasta. Adapun hasil tanda tangan elektronik pada

dokumen ditunjukkan pada gambar 9.

Page 9: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Gambar 9. Dokumen elektronik yang telah ditandatagani

4.2.2 Verification

Pada setiap dokumen PDF yang telah ditandatangani secara elektronik terdapat informasi

signature, timestamp dan sertifikat digital. Melalui informasi tersebut, aplikasi dapat menampilkan info

verifikasi untuk pengguna. Adapun struktur tanda tangan elektronik yang terdapat pada dokumen

elektronik diperlihatkan pada gambar 10.

Gambar 10. Struktur signature pada Dokumen

Proses verifikasi dapat dilakukan melalui aplikasi – aplikasi viewer untuk dokumen pdf seperti Adobe

Reader, Foxit Reader ataupun aplikasi yang dibuat secara mandiri menggunakan library iText. Hasil

dari proses verifikasi dokumen yang telah ditandatangani ditunjukkan pada gambar 11.

Page 10: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

Gambar 11. Hasil verifikasi dokumen

Terdapat 3 informasi verifikasi dokumen, yaitu keaslian data, identitas penandatangan dan waktu

penandatanganan.

● Keaslian data. Keaslian data diperoleh dari perbandingan nilai hash. Jika nilai hash tidak sama

maka dokumen tidak asli

● Identitas penandatanganan. Informasi ini diperoleh dari informasi sertifikat digital yang berada

pada signature. Dari sisi aplikasi, untuk memastikan bahwa sertifikat tersebut masih valid maka

dapat dilakukan proses tambahan dengan memanfaatkan protokol OCSP ataupun cek validitas

menggunakan Certificate Revocation List (CRL)

● Waktu penandatangan. Info waktu penandatangan menandakan bahwa dokumen valid di

tandatangani pada waktu tersebut. Waktu yang berasal dari lokal device penandatangan tidak

dapat dijadikan sebagai acuan waktu. Hal tersebut karena waktu lokal device dapat diubah oleh

siapapun dan tidak ada jaminan waktu tersebut sesuai. Oleh karena itu, perlu digunakan

Timestamp Authority (TSA) yang dapat menghasilkan waktu terpercaya untuk diberikan pada

informasi signature.

5. Kesimpulan

Pada makalah ini telah dijabarkan mengenai desain, implementasi dan testing layanan CA dan

Document Signing and Verification. Detail dari hasil signing pada dokumen elektronik juga telah

dijabarkan baik dari struktur maupun hasil verifikasi yang bertujuan untuk mempermudah

implementasi layanan penerbitan sertifikat elektronik dan document signing. Point penting yang perlu

dikembangkan untuk penelitian selanjutnya adalah identifikasi mengenai kendala dan tantangan serta

strategi untuk implementasi layanan tanda tangan elektronik. Hal ini dikarenakan tanda tangan

Page 11: Agung Nugraha - “Layanan Certification Authority (CA), Document Signing and Verification berbasis Web Service”

elektronik di Indonesia masih belum dimanfaatkan secara signifikan walaupun dalam regulasi nasional,

tanda tangan elektronik telah diakui.

6. Daftar Pustaka

[1] Hook, David. Beginnning Cryptography with Java. Canada : Wiley Publishing. 2005.

[2] Digital Signature in a PDF. Adobe Acrobat. Sumber : https://www.adobe.com/devnet-

docs/acrobatetk/tools/DigSig/Acrobat_DigitalSignatures_in_PDF.pdf. Akses Terakhir pada 10

Juli 2016.

[3] Lowagie, Bruno. Digital Signature for PDF Documents. 2013.

[4] Internet X.509 Public Key Infrastructure – Certificate and CRL Profile. IETF Request for

Comments (RFC) 2459. Sumber : http://www.ietf.org/rfc/rfc2459.txt .Akses Terakhir pada 10

Juli 2016.