S/MIME Bagian 2: Ditandatangani, Disegel, dan Dikirim melalui SparkPost
·
31 Des 2018

Poin Penting
Pernyataan: Bagian 2 bergerak dari teori S/MIME ke praktik — menunjukkan cara untuk menandatangani dan mengenkripsi email menggunakan SparkPost sebagai platform pengiriman.
Tujuan: Membekali pengembang dengan alur kerja ringan berbasis baris perintah untuk menandatangani pesan keluar, memverifikasi tanda tangan, dan (jika diinginkan) mengenkripsi konten untuk penerima tertentu.
Sorotan:
Pemasangan: Instal alat demo sumber terbuka dari GitHub (dengan pemeriksaan otomatis Travis + pytest). Pipfile menangani semua ketergantungan Python.
Kunci pengirim:
Buat sertifikat tanda tangan sendiri atau sertifikat yang diterbitkan CA (
.p12) untuk identitas email Anda.Pisahkan menjadi file pribadi (
.pem) dan publik (.crt) untuk digunakan oleh alat penandatangan.
Penyandian:
Gunakan skrip
sparkpostSMIME.pyyang disertakan untuk menandatangani pesan uji (misalnya,tests/declaration.eml).Konfirmasi tanda tangan secara visual di klien seperti Thunderbird (ikon titik merah).
Pengenkripsian:
Dapatkan sertifikat publik masing-masing penerima (
.crt).Jalankan alat lagi untuk menghasilkan pesan yang ditandatangani + dienkripsi.
Penerima dapat memverifikasi dan mendekripsi menggunakan kunci pribadi mereka.
Pengiriman melalui SparkPost:
Konfigurasikan domain pengiriman yang valid dan kunci API.
Kirim pesan melalui API SparkPost dengan pelacakan dinonaktifkan untuk menjaga integritas.
Utilitas bonus – mimeshow:
Menampilkan struktur MIME RFC822 yang dapat dibaca manusia untuk debugging atau inspeksi.
Tips praktis:
Jaga nama file agar sesuai dengan alamat Dari:.
Hindari mengubah isi pesan setelah tanda tangan.
Gunakan Bcc hanya untuk salinan arsip — penerima tersebut tidak dapat mendekripsi jika email dienkripsi untuk satu alamat To.
Sorotan Tanya jawab
Mengapa menggunakan tanda tangan S/MIME?
Ini mengautentikasi pengirim dan memastikan integritas pesan — klien seperti Thunderbird menampilkan indikator visual ketika tanda tangan valid.
Bagaimana cara mendapatkan sertifikat pengirim saya?
Baik tanda tangan sendiri menggunakan OpenSSL (untuk pengujian) atau mendapatkan sertifikat terpercaya dari penyedia seperti Comodo (gratis untuk penggunaan non-komersial).
Bisakah saya mengenkripsi pesan untuk beberapa penerima?
Hanya jika Anda memiliki kunci publik setiap penerima. Skrip demo mengenkripsi ke alamat To tunggal secara default.
Apa saja langkah pengamanan yang menjaga tanda tangan agar tidak rusak selama proses pengiriman?
Alat ini mengatur opsi API SparkPost untuk pengiriman transaksional dan menonaktifkan pelacakan buka/klik, sehingga beban data tetap tidak berubah.
Apa peran mimeshow?
Ini menganalisis file email mentah dan mencetak struktur multipart-nya — berguna untuk memeriksa tanda tangan S/MIME, lampiran, dan header.
Apa yang selanjutnya dalam seri ini?
Bagian 3 memperluas kemampuan S/MIME ini ke platform email aman di lokasi seperti PowerMTA dan Momentum.
Pada bagian 1, kami melakukan tur singkat tentang S/MIME, melihat tanda tangan dan enkripsi aliran pesan kami di berbagai klien email. Pesan S/MIME dapat ditandatangani (memberikan bukti identitas pengirim), dienkripsi (menjaga isi pesan tetap rahasia), atau keduanya.

Dalam seri ini, kita akan:
Menginstal beberapa alat baris perintah sederhana untuk menandatangani dan mengenkripsi email
Mendapatkan kunci / sertifikat pengirim Anda untuk menandatangani
Mengirim pesan yang ditandatangani melalui SparkPost, dan melihat pesan yang diterima
Opsional, mendapatkan sertifikat penerima Anda untuk enkripsi
Mengirim pesan yang ditandatangani dan dienkripsi melalui SparkPost, dan melihat pesan yang diterima
Mencoba alat mandiri yang berguna “mimeshow” untuk melihat detail internal file email.
OK – mari kita mulai!
Fitur bonus: menampilkan bagian MIME dengan “mimeshow”
1. Pasang alatnya
2. Dapatkan kunci pengirim / sertifikat Anda untuk menandatangani
3. Kirim pesan yang ditandatangani melalui SparkPost
4. Mengenkripsi pesan
Pikiran lebih lanjut & hal-hal yang perlu diwaspadai
Alat ini mengambil pendekatan yang sangat sederhana untuk menarik kunci yang diperlukan – ia hanya mencari file yang dinamai di direktori saat ini. Pengaturan yang lebih kompleks, seperti menyimpan semua kunci dalam database, dapat dengan mudah ditambahkan, tetapi saya ingin kode tersebut tetap sesederhana mungkin.
Anda dapat menyertakan penerima lain dengan Cc: dan Bcc: dan mereka akan dikirimkan; ini bisa berguna untuk tujuan arsip. Pesan yang ditandatangani diterima dan dapat ditampilkan oleh penerima lain lengkap dengan tanda tangannya. Alat ini menghapus header Bcc: dari pesan yang dikirim (seperti yang dilakukan klien email desktop).
Untuk memastikan bahwa pesan melewati SparkPost tanpa diubah (yang dapat merusak penandatanganan), alat ini mengatur opsi API untuk pengiriman “transaksional”, dengan pelacakan pembukaan dan klik dinonaktifkan.
Jika Anda menggunakan enkripsi, ingatlah bahwa alat ini mengambil alamat To: tunggal untuk itu. Penerima lain hanya dapat mendekode isi pesan jika mereka memiliki kunci pribadi penerima To:. Jika Anda hanya menggunakan penerima sekunder sebagai catatan pengiriman yang dilakukan, misalnya, itu mungkin saja baik-baik saja.
Ditandatangani, disegel, disampaikan…Saya milikmu
Itulah gambaran singkat kami tentang cara menandatangani, menyegel, dan mengirim pesan S/MIME melalui SparkPost. Pengingat cepat: proyek demo tersedia di GitHub, dan saya telah berusaha untuk membuatnya mudah diinstal dan digunakan.










