Cryptology Academy · Pelajaran

Google Tink: Kripto Tingkat Tinggi yang Aman

Gunakan API berbasis keyset milik Tink untuk menjalankan operasi kriptografi umum tanpa keahlian kriptografi khusus.

Pelajaran 3 dari 413 langkah

Google Tink: Kripto Tingkat Tinggi yang Aman adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Gambaran Umum dan Motivasi Tink

Tink adalah pustaka kriptografi sumber terbuka yang dikembangkan oleh tim kriptografi Google, serta dirancang untuk menyediakan kriptografi yang aman dan mudah digunakan. Motivasi utamanya adalah mencegah pola penyalahgunaan kriptografi yang umum terjadi, bahkan di kalangan pengembang berpengalaman yang menggunakan pustaka tingkat rendah. API Tink dirancang agar operasi yang benar menjadi pilihan yang paling mudah, sehingga sulit untuk secara tidak sengaja membuat konfigurasi yang tidak aman.

Abstraksi Berbasis Kumpulan Kunci

Tink mengatur kunci ke dalam kumpulan kunci, bukan mengekspos objek kunci satu per satu. Aplikasi bekerja dengan pegangan kumpulan kunci, bukan byte kunci mentah. Abstraksi ini mencegah kunci terekspos secara tidak sengaja, memungkinkan rotasi kunci yang lancar, dan memungkinkan kunci disimpan dalam Sistem Manajemen Kunci jarak jauh tanpa aplikasi pernah melihat materi kunci secara langsung. Konsep kumpulan kunci merupakan inti dari desain Tink yang aman.

Antarmuka AEAD

Antarmuka AEAD (Authenticated Encryption with Associated Data) dalam Tink menyediakan operasi enkripsi dan dekripsi. AeadFactory.getPrimitive(keyset) mengembalikan objek Aead; pemanggilan aead.encrypt(plaintext, associatedData) mengembalikan ciphertext. Tink secara otomatis memilih algoritma enkripsi berdasarkan kumpulan kunci (misalnya, AES-256-GCM) dan menghasilkan nilai sekali pakai secara acak. Antarmuka ini menyembunyikan semua detail algoritma, pengelolaan nilai sekali pakai, dan pengodean format.

Antarmuka MAC

Antarmuka MAC Tink menyediakan operasi penghitungan dan verifikasi untuk kode autentikasi pesan. MacFactory.getPrimitive(keyset) mengembalikan objek Mac. mac.computeMac(data) mengembalikan tag autentikasi; mac.verifyMac(tag, data) memverifikasinya dan melemparkan pengecualian keamanan jika verifikasi gagal. Algoritma bawaannya adalah HMAC-SHA256. Antarmuka ini mencegah kesalahan umum, seperti membandingkan MAC dengan kesetaraan string biasa, bukan menggunakan perbandingan waktu-konstan.

Antarmuka Tanda Tangan Digital

Tink menyediakan antarmuka PublicKeySign dan PublicKeyVerify yang terpisah untuk tanda tangan digital. Objek penandatanganan dan verifikasi diturunkan dari pengelola kumpulan kunci yang berbeda, masing-masing privat dan publik, sehingga mencegah penggunaan kunci privat secara tidak sengaja untuk verifikasi atau sebaliknya. Implementasi Ed25519 dan ECDSA P-256 Tink merupakan bawaan, sedangkan ECDSA deterministik tersedia untuk menghindari kerentanan akibat keacakan.

Antarmuka Enkripsi Hibrida

Antarmuka HybridEncrypt dan HybridDecrypt Tink mengimplementasikan ECIES (Skema Enkripsi Terintegrasi Kurva Eliptik). Enkripsi hibrida menggabungkan pertukaran kunci asimetris dengan enkripsi simetris: pengirim membuat kunci sementara, melakukan ECDH dengan kunci publik penerima, menurunkan kunci simetris, lalu mengenkripsi menggunakan AEAD. Dengan demikian, pesan berukuran besar dapat dienkripsi menggunakan kunci asimetris tanpa beban tambahan enkripsi asimetris murni.

Proses Rotasi Kumpulan Kunci

Rotasi kunci di Tink aman dan kompatibel dengan versi sebelumnya. Untuk melakukan rotasi: buat kunci baru dan tambahkan ke kumpulan kunci, tandai kunci baru sebagai kunci utama agar enkripsi berikutnya menggunakannya, lalu pertahankan kunci lama dalam kumpulan kunci untuk mendekripsi teks tersandi yang sudah ada. Teks tersandi lama tetap dapat didekripsi karena kunci yang bukan utama tetap tersedia untuk dekripsi. Setelah semua teks tersandi lama dienkripsi ulang atau kedaluwarsa, hapus kunci lama dari kumpulan kunci.

Serialisasi Kumpulan Kunci

Kumpulan kunci Tink diserialisasi dalam format JSON atau Protocol Buffer biner. Format JSON dapat dibaca manusia dan berguna untuk penelusuran kesalahan. Format biner lebih ringkas untuk produksi. Kumpulan kunci yang diserialisasi dan berisi kunci privat harus dienkripsi sebelum disimpan. Tink mendukung penyimpanan kumpulan kunci terenkripsi menggunakan enkripsi simetris AEAD standar atau dengan mendelegasikan penyimpanannya ke KMS.

Integrasi KMS untuk Enkripsi Kumpulan Kunci

Tink terintegrasi dengan penyedia KMS utama: AWS KMS, Google Cloud KMS, dan HashiCorp Vault. Alih-alih mengenkripsi kumpulan kunci dengan kunci AEAD lokal, Tink membungkus kunci enkripsi kumpulan kunci menggunakan KMS. Enkripsi kumpulan kunci sebenarnya menggunakan Data Encryption Key (DEK) yang dibuat secara lokal, lalu DEK dienkripsi oleh Key Encryption Key (KEK) milik KMS. Hal ini mengikuti pola enkripsi amplop yang digunakan oleh penyedia komputasi awan.

AEAD Aliran untuk Berkas Besar

AEAD standar mengharuskan seluruh pesan dimuat ke memori untuk enkripsi dan dekripsi. Antarmuka AEAD aliran Tink mengenkripsi berkas besar dalam beberapa segmen, sehingga enkripsi dan dekripsi dapat dilakukan tanpa menyangga seluruh teks biasa. Setiap segmen diautentikasi secara independen, sedangkan urutan dan kelengkapan segmen diverifikasi selama dekripsi. Hal ini penting untuk mengenkripsi cadangan, video, dan berkas besar lainnya.

Dukungan Bahasa dan Ekosistem

Tink tersedia untuk Java, Python, Go, dan C++ dengan API idiomatis untuk setiap bahasa. Interoperabilitas lintas bahasa dijamin: berkas yang dienkripsi dengan Tink dalam Python dapat didekripsi dengan Tink dalam Java. Hal ini menjadikan Tink sesuai untuk sistem dengan beberapa layanan dalam bahasa yang berbeda yang perlu bertukar data terenkripsi. Tink juga terintegrasi dengan buffer protokol untuk konfigurasi kumpulan kunci yang aman tipe.

Rotasi Kumpulan Kunci Tink

Selama rotasi kunci Tink, apa yang terjadi pada teks tersandi yang dienkripsi dengan kunci lama, yaitu kunci yang bukan utama?

Ringkasan Google Tink

Ringkasan Tink: abstraksi berbasis kumpulan kunci mencegah paparan kunci mentah, antarmuka AEAD menyembunyikan pengelolaan nonce dan pemilihan algoritma, antarmuka MAC menggunakan verifikasi waktu-konstan secara internal, antarmuka tanda tangan digital dan enkripsi hibrida mencegah penyalahgunaan antarmuka, rotasi kunci kompatibel dengan versi sebelumnya karena kunci lama dapat mendekripsi teks tersandi hingga dihapus, integrasi KMS mengikuti pola enkripsi amplop, AEAD aliran menangani berkas besar, dan interoperabilitas lintas bahasa dijamin.

Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Google Tink: Kripto Tingkat Tinggi yang Aman” gratis?

Ya — teks lengkap “Google Tink: Kripto Tingkat Tinggi yang Aman” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Google Tink: Kripto Tingkat Tinggi yang Aman”?

Gunakan API berbasis keyset milik Tink untuk menjalankan operasi kriptografi umum tanpa keahlian kriptografi khusus. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Google Tink: Kripto Tingkat Tinggi yang Aman” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. libsodium: Pustaka Kripto yang Tahan terhadap Penyalahgunaan
  2. API OpenSSL: Struktur Inti dan Jebakan
  3. Google Tink: Kripto Tingkat Tinggi yang Aman
  4. Mengaudit dan Memilih Dependensi Kriptografi
← Kembali ke Cryptology Academy