Haloooo. Pada kesempatan kali ini saya ingin menulis sedikit mengenai beberapa konsep umum & spesifik dari EJBCA, serta beberapa terminologi yang mungkin akan kamu temukan selama menggunakannya. Memang sedikit telat sih karena pada beberapa postingan sebelumnya, saya justru sudah terlebih dahulu membahas bagaimana cara melakukan instalasi, menerbitkan sertifikat dan beberapa tips lainnya.
Tapi orang tua dulu berkata “lebih baik terlambat dari pada tidak sama sekali” dan berpegang pada hal tersebut, akhirnya keluarlah tulisan ini.
*Tulisan ini diambil dari website EJBCA dan ditambah sedikit informasi yang berdasar pada pengetahuan saya.
TERMINOLOGI
| Terms | Means |
|---|---|
| CA | Certificate Authority |
| RA | Registration Authority |
| VA | Validation Authority |
| DN | Distinguished Name |
| HSM | Hardware Security Modul |
| CRL | Certificate Revocation List |
| OCSP | Online Certificate Status Protocol, RFC2560 |
| CMP | Certificate Management Protocol, RFC4210 |
| SCEP | Simple Certificate Enrollment Protocol |
KONSEP UMUM
CERTIFICATION AUTHORITY (CA)
CA merupakan sebuah entitas terpercaya yang mengeluarkan sertifikat untuk entitas lain dan menjamin keaslian identitas dari entitas tersebut.
ROOTCA
ROOTCA merupakan sebuah CA dengan tingkatan paling atas atau disebut juga Trusted Root. Jadi ketika ada sebuah sertifikat digital yang berusaha untuk diverifikasi, pastilah berakhir pada tingkatan ROOT CA ini (Sertifikat Digital Entitas Akhir→SUBCA (yang mengeluarkan sertifikat bagi Entitas Akhir)→ROOTCA (yang mengeluarkan sertifikat untuk CA)).
Lalu siapa yang mengeluarkan sertifikat untuk ROOTCA? Jawabannya adalah ROOTCA itu sendiri atau biasa dikenal dengan istilah self-signed certificate.
SUBCA
SUBCA atau yang dikenal juga dengan Subordinate CA merupakan sebuah CA yang sertifikatnya ditandatangani oleh CA lainnya, bisa oleh ROOTCA atau SUBCA lainnya. Karena sertifikat SUBCA ditandatangangai oleh CA lainnya, maka SUBCA ini menjadi bagian dari sebuah rantai sertifikat (chain of certificates) yang disebut certification path.

REGISTRATION AUTHORITY (RA)
RA merupakan fungsi administratif yang berguna untuk mendaftarkan sebuah entitas dalam PKI (Public Key Infrastructure). Bahasa gampangnya sih Tempat Pendaftaran. RA-lah yang dipercaya untuk mengidentifikasi dan mengautentikasi entitas sesuai dengan kebijakan yang berlaku pada CA tersebut (CA Policy). Dalam sebuah CA, boleh ada lebih dari 1 RA.
VALIDATION AUTHORITY (VA)
VA merupakan sebuah layanan yang berfungsi untuk menyediakan informasi mengenai sebuah sertifikat, apakah sertifikat ini masih valid atau tidak. Dalam sebuah CA, boleh ada lebih dari 1 VA yang terhubung pada sebuah CA.
baca juga: Cara menambahkan Calidation Authority pada EJBCA 6.2.0
END-ENTITY
End Entity merupakan pengguna dari sertifikat digital yang dikeluarkan oleh sebuah CA, dalam hal ini bisa sebuah mail client, web server, web browser, VPN Gateway dan lainnya. Sebuah End-Entity tidak berhak mengeluarkan sertifikat bagi entitas lainnya. Mereka adalah bagian paling bawah dari Hierarki yang ada pada sistem PKI.
KONSEP SPESIFIK
Dalam software EJBCA, kalian akan menemukan beberapa kata/istilah yang mungkin terdengar asing, atau bahkan tidak akan kalian temukan dalam Software CA lainnya. Kata/istilah tersebut diantaranya adalah:
CERTIFICATE PROFILE


Certificate Profile merupakan profil dari sebuah sertifikat yang berisi konten spesifik dari sebuah sertifikat. Misalnya kita merupakan sebuah CA dan memiliki 2 klien berupa 2 perusahaan yang berbeda. Masing-masing perusahaan ingin mengeluarkan sertifikat digital untuk pegawai-pegawainya. Tiap perusahaan pasti memiliki policy yang berbeda bagi pegawainya kan?
Nah, di Certificate Profile inilah kita bisa mengatur hal-hal yang esensial dan penting. Kita bisa memisahkan agar policy bagi perusahaan A tidak bercampur dengan perusahaan B.
Beberapa hal yang bisa diatur pada Certificate Profile:
- Penggunakan kunci (Apakah untuk tanda tangan, untuk enkripsi, untuk tanda tangan dan enkripsi, atau untuk apa)
- Publisher (tempat menyimpan sertifikat)
- SubjectAlternativeName
- Tipe (apakah profile ini untuk orang, untuk CA, atau untuk ROOTCA)
- Panjang kunci yang akan diterbitkan (2048,3072,4096 bits dan seterusnya).
- Algoritma yang digunakan.
- Masa berlaku dari sertifikat yang akan diterbitkan.
- Permission (Apakah validitas, serialnumber, subject DN bisa di-override).
Jadi ketika nanti ingin mengisi informasi dari user pada bagian Endentity Profile, Certificate Profile ini akan dipilih untuk menentukan profil dari perusahaan yang mana.
END ENTITY PROFILE

Ketika ingin menambahkan user ke dalam PKI, user harus terhubung dengan profil ini. End Entity Profile merupakan sebuah profil untuk menentukan data apa yang boleh atau harus ada bagi user yang terkoneksi pada profil ini (Template). Profil berisi semua informasi yang spesifik dari sebuah end entity untuk diterbitkan sertifikatnya (Nama, Organisasi, Serial Number, dll).
Kalau dikaitkan dengan kasus perusahaan yang ada pada Certificate Profile di atas, pasti setiap perusahaan memiliki field yang berbeda untuk sertifikat pegawainya kan? Perusahaan A mengharuskan adanya OU (Organization Unit) pada sertifikatnya, namun perusahaan B belum tentu. Pada End Entity Profile inilah kita akan memisahkan user untuk perusahaan A dan user untuk perusahaan B.
Bisa dibilang Certificate Profile berada di atas End Entity Profile. 1 Certificate Profile bisa digunakan oleh 2 End Entity Profile yang berbeda. Sedangkan 1 End Entity Profile hanya bisa memilih 1 Certificate Profile sebagai profil untuk menerbitkan sertifikatnya.
CRYPTO TOKEN

Crypto Token adalah token yang digunakan oleh CA untuk menyimpan kunci yang telah diterbitkan. Key yang paling penting dari Crypto Token adalah CA Signature Keys. Crypto Token juga bisa berisi key lain yang digunakan untuk mengenkrip data sensitif yang ada pada database. Satu Crypto Token bisa didevelop untuk 1 CA atau banyak CA bisa berbagi sebuah Crypto Token.
Yang disimpan pada database adalah:
- Soft Token PKCS#12 yang dilindungi oleh password.
- Konfigurasi Hard Token, yang biasanya merujuk pada HSM untuk mengaksesnya.
PUBLISHERS
Sebuah publisher menyimpan sertifikat yang sudah keluar pada lokasi yang terpusat. EJBCA sudah support penggunaan LDAP dan Active Directory tetapi EJBCA juga memungkinkan untuk membuat custom plugin.
INTERNAL KEY BINDING
Internal Key Binding bisa digunakan untuk membuat keys yang ada pada sebuah Crypto Token tersedia untuk penggunaan lain pada sebuah CA. Bisa dibilang ini adalah key store dalam bentuk yang lebih simple dengan tujuan yang lebih spesifik.
Sebagai contoh: OCSPKeyBinding bisa digunakan untuk menandatangani respon OCSP atas nama sebuah CA. KeyBinding ini memiliki sebuah key dalam sebuah HSM yang bisa diakses dari EJBCA (via Crypto Token) dan sebuah sertifikat untuk menandatangani respon OCSP.
PEER CONNECTOR
A Peer Connector adalah representasi dari sebuah remote peer system (Bisa berupa EJBCA atau sistem yang kompatibel dengan EJBCA) dan bisa digunakan untuk pengelolaan otomatis dari sebuah remote system.
Sebuah protokol propietary digunakan pada channel HTTPS yang menggunakan dual autentikasi (dimana keys dari klien bisa disimpan dalam sebuah HSM).
Contoh: Jika sebuah EJBCA diberi otoritas atas EJBCA lainnya yang berfungsi sebagai VA, EJBCA yang pertama bisa mengeluarkan informasi sertifikat yang telah di revoke ke EJBCA yang kedua (yang bertindak sebagai VA) atau menjalankan pembaruan otomatis dari sertifikat melalui secure channel.
EXTERNAL RA (ENTERPRISE EDITION)
Dalam beberapa kasus, untuk alasan keamanan, disarankan untuk menolak semua in-bound traffic yang masuk ke CA dan membiarkan CA untuk mengambil & memproses informasi secara berkala dari sumber eksternal yang terpercaya.
Jadi dalam EJBCA versi gratisan, RA itu menyatu dengan CA sehingga trafficnya pun menjadi satu. Nah, untuk memisahkannya, maka dibuatlah External RA jadi permintaan terlebih dahulu masuk ke RA baru diteruskan ke CA.
Namun sayangnya fitur External RA ini hanya ada dalam EJBCA versi Enterprise alias berbayar.
******
Ya itu tadi beberapa konsep dan istilah yang ada pada EJBCA. Semoga informasi di atas bisa berguna untuk kalian. Mohon maaf kalau bahasanya agak belepotan ya *membahasakan sebuah istilah ternyata tidak mudah*
Kalau ada yang belum mengerti atau ingin ditanyakan, jangan ragu untuk menuliskannya di kolom komen ya.
Terima kasih 🙂

Comments are closed.