Membuat aplikasi klien surel sederhana pada perangkat mobile yang dilengkapi dengan fitur enkripsi/dekripsi dan fitur tanda tangan digital. Surel dienkripsi dengan algoritma block-cipher yang sudah anda buat sebelumnya, sedangkan tanda tangan digital dibangkitkan dengan kolaborasi algoritma ECDSA (Elliptic Curve Digital Signature Algorithm) dan fungsi hash Keccak (SHA-3).
Tanda tangan digital bergantung pada isi surel dan kunci. Tanda-tangan digital direpresentasikan sebagai karakter-karakter heksadesimal dan ditaruh pada akhir surel. Untuk membedakan tanda-tangan digital dengan isi dokumen, maka tanda-tangan digital diawali dan diakhiri dengan tag dan , atau tag lain (diserahkan kepada anda).
Contoh:
<ds>4EFA7B223CF901BAA58B991DEE5B7A</ds>
atau
*** Begin of digital signature ****
4EFA7B223CF901BAA58B991DEE5B7A
*** End of digital signature ****
Contoh surel dan tanda tangan digital yang diberi tanda-tangan dengan aplikasi PGP:
Kepada Yth.
Bapak Dekan
Di Tempat
Dengan hormat.
Bersama surat ini saya ingin mengabarkan bahwa nilai skripsi mahasiswa yang bernama Faisal Saleh dengan NIM 13902021 adalah 86,5 atau dalam nilai indeks A. Sidang skripsi sudah dilakukan pada Hari Rabu Tanggal 21 Januari 20 Juli 2005.
Atas perhatian Bapak saya ucapkan terima kasih.
Bandung, 25 Juli 2005
Dosen Pembimbing Skripsi
Ir. Ahmad Agus
-----BEGIN_PGP_SIGNATURE-----
iQA/AwUAQnibsbPbxejK4Bb3EQJXvQCg8zN6UL0xnwBTPR5
FfWNt4uxh3AEAn2NC/G2VTUrLpcSyo2l/S/D/+rUl=pZeh
-----END_PGP_SIGNATURE-----
Program memiliki spesifikasi sebagai berikut:
- Klien surel dilengkapi dengan menu untuk membangkitkan kunci publik dan kunci privat berdasarkan Elliptic Curve Cryptography
- Klien surel memiliki editor untuk mengetikkan isi surel, memasukkan alamat surel penerima, mengetikkan subyek surel, dll
- Klien surel dapat menampilkan inbox, sent email, dan fitur-fitur umum yang terdapat di dalam klien surel
- Klien surel boleh menyediakan attachment, tetapi file yang di-attach tidak perlu dienkripsi
- Pengguna dapat memilih apakah surel dienkripsi atau tidak (ada toggle icon untuk memilihnya)
- Pengguna dapat memilih apakah surel ditandatangani atau tidak (ada toggle icon untuk memilihnya)
- Jika pengguna memilih mengenkripsi/dekripsi surel, maka klien surel meminta pengguna memasukkan kunci
- Isi surel dienkripsi/dekripsi dengan block cipher yang sudah dibuat pada tugas pengganti UTS
- Program Keccak (SHA-3) harus dibuat sendiri (tidak menggunakan library atau fungsi built-in)
- Jika pengguna memilih menandatangani surel (baik surel terenkripsi atau tidak), maka klien meminta kunci privat, Untuk memverifikasi tanda tangan digital, klien surel meminta kunci public, Kunci public/privat dapat dibaca dari file atau diketikkan oleh pengguna
- Dapat digunakan pada sistem operasi mana saja (WindowsPhone, Android, iOS, dll)
No | Feature | Success (✔) | Fail (❌) | Details |
---|---|---|---|---|
1 | Email Encryption | ✔ | ||
2 | Email Signature | ✔ | ||
3 | Send Email | ✔ | ||
4 | Inbox | ✔ | ||
5 | Sent Email | ✔ | ||
6 | Spam | ✔ | ||
7 | Trash | ✔ | ||
8 | Send Email Attachment | ✔ | ||
9 | Download Attachment | ✔ |
- Create project pada Google Cloud Platform dan aktifkan Gmail API.
- Create credentials API untuk oAuth client ID dan API Key
- Instalasi prerequisite libary dan package :
$ pip install numpy
$ npm install
- Configurasi file
.env
dari templateexample.env
kemudian isikan setiap variablenya dengan informasi yang sesuai - Jalankan server
$ node server.js
atau
$ nodemon server.js
- Server akan berjalan pada port 8000
- Buka http://54.205.116.219.xip.io:8000 pada browser
- Pilih sign-in dengan akun google
- Accept permission untuk akses pada email
- Email client siap digunakan
- Pilih
New E-mail
pada navigation bar - Isi form sesuai dengan informasi yang dibutuhkan untuk mengirimkan email (target email, subjek email, isi teks email)
- Memilih checkbox
encrypted
- Isi bagian
newCipherKey
denga nilai kunci dengan panjang 8 karakter untuk algoritma enkripsi - Jika ingin melampirkan file, file terlampir tidak akan dilakukan enkripsi, hanya isi teks email yang akan dilakukan proses enkripsi
- Pilih email yang ingin dilihat (dari inbox / sent / spam / trash)
- Isi bagian
key
dengan nilai kunci dengan panjang 8 karakter untuk algoritma dekripsi - Klik button
Decrypt
untuk dekripsi - Hasil dekripsi akan muncul sebagai alert
- Pilih email yang ingin dilihat (dari inbox / sent / spam / trash)
- Isi bagian
key
dengan nilai kunci publik untuk algoritma ECDSA - Klik button
Verify
untuk dekripsi - Hasil verifikasi akan muncul sebagai alert
About
IF4020-Kriptografi - 2020
Teknik Informatika 2017
13517020 - T. Antra Oksidian Tafly
13517066 - Willy Santoso
13517131 - Jan Meyer Saragih
13517137 - Vincent Budianto