Enkripsi asimetris dalam praktiknya

Saya menyambut Anda, habravchane!

Masalah keamanan adalah titik lemah bagi kebanyakan dari kita. Tidak menyenangkan bagi kita semua untuk bertabrakan, apalagi kehilangan sesuatu yang berharga karena klik mouse yang tidak disengaja. Dan itulah mengapa saya memutuskan untuk membagikan materi yang saya temukan dengan Anda.

Dalam upaya untuk menghilangkan pertanyaan yang paling sering diajukan - mengapa mereka akan menyerang saya? Siapa yang saya butuhkan? - kita akan mulai artikel dengannya.

Ingatlah bahwa tidak hanya manusia yang dapat menyerang Anda. Ini bisa dilakukan, misalnya oleh bot.
Kita masing-masing terhubung dengan penyedia Internet. Dan pada dirinya, kemungkinan besar, serangan terjadi secara harfiah setiap hari. Pernahkah Anda memperhatikan bagian spam di email Anda? Setiap email seperti itu berpotensi memiliki serangan phishing. Serangan ini tidak bersifat pribadi untuk Anda. Ini adalah serangan skala besar yang ditargetkan pada berbagai wajah. Kami adalah korban potensial.

Lebih sering daripada tidak, tujuan mereka adalah uang. Bagaimana mereka bisa mendapatkannya?

Misalnya, gunakan komputer Anda sebagai server web, mencuri konten Anda, melakukan serangan email, aktivitas botnet, pencurian akun, dan serangan pemerasan. Ya, dan akun email adalah hal yang berpotensi penting, karena kita semua sering menggunakan kata sandi yang sama di beberapa layanan.

Waktu mahal dan kami ingin menghabiskan sesedikit mungkin waktu untuk masalah terkait keamanan.

Dan hal pertama yang harus dilakukan adalah menjawab beberapa pertanyaan untuk diri sendiri:

  • File mana yang menyimpan data paling penting?
  • Akun apa di jejaring sosial yang tidak bisa Anda hilangkan?
  • Apa yang paling berbahaya?
  • Dan apa yang bisa mengenai reputasi Anda?

Misalnya, pencurian laptop. Ya, sakit dan sedih. Tetapi bagaimana ini bisa mengancam Anda?
Ini mungkin kehilangan data untuk masuk ke jejaring sosial. Ini mungkin informasi rahasia yang diperoleh selama bekerja. Atau mungkin itu foto pribadi.

Oke, kami memutuskan apa yang perlu kami lindungi. Langkah selanjutnya adalah memilih metode perlindungan.

Ya, tentu saja, ada banyak serangan di dunia dan tidak mungkin untuk membela diri dari semua orang.
Oleh karena itu, kami akan mempertimbangkan salah satu alat paling efektif - enkripsi.

Apa itu enkripsi?


Untuk membuat pilihan yang tepat di bidang keamanan, Anda perlu memahami apa itu enkripsi. Tidak perlu tahu matematika hardcore. Cukup dimengerti di tingkat dasar. Ini adalah salah satu alat terbaik dan tak terpisahkan dalam gudang senjata kami.

Enkripsi adalah metode konversi data yang dapat dibaca oleh seseorang menjadi bentuk yang tidak dapat dibaca oleh seseorang. Karena itu, data tetap rahasia dan pribadi.

Dekripsi adalah operasi terbalik. Konversi data yang tidak dapat dibaca menjadi dapat dibaca.

OKE, di mana ini berlaku? Sebenarnya di banyak tempat. Misalnya, apakah Anda memperhatikan protokol https? Itu karena dia bahwa orang ketiga Anda tidak dapat mencegat data Anda selama pendakian Anda di Internet. Saya akan jelaskan lebih detail. Anda pergi ke situs " www.google.com ", buat permintaan apa pun. Pada saat yang sama, semua data yang diperlukan untuk menampilkan hasil dikirimkan menggunakan protokol https. Jadi, jika ada orang yang memutuskan untuk melihat data tentang lalu lintas Anda (serangan Man In the Middle), maka dia hanya akan melihat bahwa Anda masuk ke Google. Selain itu, ia akan menerima banyak paket terenkripsi. Artinya, kita dapat mengatakan bahwa dia tidak akan menerima apa pun.

Namun kembali ke teori dasar. Proses enkripsi melibatkan 2 komponen utama - algoritma dan kunci.

Algoritme, dalam arti tertentu, adalah kunci yang memungkinkan Anda untuk menjaga kerahasiaan data Anda. Karena itu, teks dikonversi.

Kuncinya adalah, maaf untuk tautologi, kunci untuk penguncian. Sepotong data unik yang mengubah teks

Hm, baiklah. Kita melangkah lebih jauh. Tingkatkan sedikit tegangan.

Jenis Enkripsi


Bagaimana lagi kita dapat menggunakan enkripsi untuk tujuan egois kita sendiri? Untuk memudahkan pemahaman, kami akan mempertimbangkan enkripsi arsip. Saat pengarsipan, banyak pengarsipan memiliki kemampuan untuk mengatur kata sandi. Dalam hal ini, pengarsip menggunakan beberapa jenis algoritma untuk enkripsi. Dan yang paling sering adalah algoritma simetris.

Enkripsi simetris


Algoritma enkripsi simetris - suatu algoritma di mana kunci yang sama digunakan untuk enkripsi dan dekripsi. Contoh yang mencolok dan, pada saat yang sama sederhana, akan menjadi kode Caesar.

Seluruh pekerjaan algoritma ini adalah mengubah karakter ke karakter lain dengan langkah tertentu.

Misalnya, dengan offset 5 karakter, karakter yang berdiri di posisi pertama digantikan oleh karakter di posisi 6 dan seterusnya.

Yang paling kuat saat ini dianggap sebagai algoritma AES (Advanced Encryption Standard).
Poin lain yang layak disebutkan adalah kekuatan kata sandi. Kekuatan kata sandi diukur dalam bit. Salah satu solusi yang paling umum adalah 128 atau 256 bit. Ini adalah jumlah bit yang akan dialokasikan untuk kata sandi. Angka ini juga berarti jumlah kata sandi yang bisa Anda peroleh dengan algoritma enkripsi ini. Namun semakin panjang kunci, semakin lambat proses enkripsi atau dekripsi.

Tetapi enkripsi asimetris paling umum digunakan.


Jadi, kami mengenkripsi surat itu, tetapi bagaimana cara mengirimnya ke teman kami? Kirim ke sosial jaringan atau pesan teks bukan ide yang baik. Seperti berbicara dengannya di telepon.

Dan ini membawa kita ke jenis enkripsi baru.

Dalam enkripsi asimetris, 2 kunci digunakan - publik dan pribadi (rahasia).
Kunci publik untuk enkripsi, kunci pribadi untuk dekripsi.

Algoritma apa yang memungkinkan menggunakan teknologi ini?

Berikut ini daftarnya:

  • Rivest - Shamir - Adleman (RSA) (paling umum)
  • Elliptic curve cryptosystem (ECC)
  • Diffie - Hellman (DH)
  • El gamal

Keuntungan dari algoritma asimetris:

  • Anda dapat dengan bebas membagikan kunci publik dan siapa saja dapat mengirimi Anda pesan rahasia.

Cons:

  • kecepatan enkripsi / dekripsi.

Untuk lanjutan
Karena saya memiliki inti programmer dalam diri saya, dan juga cinta matematika, saya tidak bisa membantu tetapi mengatakan bagaimana semuanya bekerja "di bawah tenda"

Perhatikan contoh algoritma RSA.

Hal pertama yang perlu kita lakukan adalah menghasilkan kunci publik dan pribadi. Urutan tindakan kira-kira sebagai berikut:

1) Kami memilih dua bilangan prima. Dianjurkan agar mereka cukup dekat

p = 19
s = 13

2) Kami menghitung produk mereka, serta fungsi Euler

n = p * s
f = (p - 1) * (s - 1)

3) Sekarang bagian yang paling memakan waktu adalah pilihan eksponen dan koefisien arbitrer.

Faktanya adalah bahwa dengan koefisien yang dipilih nilai "d" harus bilangan bulat. "D" adalah komponen yang diperlukan dari algoritma

e = 5
k = 9
d = (k * f + 1) / e

Sekarang kunci publik kami (untuk mengenkripsi pesan) terdiri dari nilai-nilai variabel "e" dan "n", dan kunci pribadi (untuk mendekripsi) dari nilai-nilai "d" dan "n".
Yaitu, dalam kasus kami ...

Kemudian pesan dienkripsi menggunakan rumus: crypt = m ^ e% n.
Dan dekripsi: dekripsi = crypt ^ d% n.

Nah, dari sudut pandang programmer, kita dapat menggunakan informasi ini sebagai berikut:

  1. Buat array yang cocok dengan karakter dan kodenya (misalnya, kode ASCII)
  2. Terapkan algoritme untuk setiap karakter, buat array nilai yang dikonversi
  3. Konversi array yang dihasilkan kembali ke bentuk string
  4. Untung!

Bagaimana enkripsi asimetris dapat digunakan untuk tujuan saya?

Sekarang, mengetahui teori, pro dan kontra dari algoritma, dan juga mengapa Anda perlu menggunakannya sama sekali, kita dapat berbicara tentang aplikasi praktis.

Di antara semua program yang ditemukan, gpg4usb tampaknya paling nyaman bagi saya.

Program ini menggunakan enkripsi PGP. Mengapa saya merekomendasikan menggunakannya?

Semuanya sederhana. Jenis enkripsi ini belum di-crack. Kepada siapa pun. Jadi, gunakan itu.

Menggunakan program ini cukup sederhana. Anda hanya perlu tahu di mana harus mengklik.
Dan itulah yang akan dibahas sekarang.

Hal pertama yang harus dilakukan adalah mengunduh program. Anda dapat melakukan ini dari tautan:
tautannya .

Saya akan mengatakan langsung - program ini adalah lintas platform. Artinya, Anda bisa menggunakannya di Windows dan Linux.

Yang kedua adalah membuat pasangan kunci enkripsi.

Ini dapat dilakukan dengan mengikuti langkah-langkah ini:

1) Buka bagian "Manajer Utama"

2) Pilih "Kunci" di panel atas, lalu "Buat kunci"

Seharusnya terlihat seperti ini:



3) Isi kolom yang wajib diisi. Saya akan segera memperingatkan Anda - lebih baik menuliskan kata sandi (atau mengingat) di suatu tempat, karena nanti akan diperlukan untuk mendekripsi pesan.

Sekarang kunci dibuat, dan kita dapat melanjutkan langsung ke enkripsi.

Ada bidang teks di layar utama - ini adalah batu loncatan kami untuk membuat pesan. Di bilah sisi kanan, centang dari kunci Anda.



Setelah memasukkan pesan di bidang, klik berani "Enkripsi" di panel atas.

Selamat, Anda dapat mengenkripsi pesan.



Dekripsi dilakukan dengan cara yang sama, kecuali bahwa alih-alih “Enkripsi” Anda menggunakan tombol “Dekripsi”.

Dan sekarang saat otak saya membutuhkan waktu setengah jam: bagaimana cara memberikan kunci kepada teman?
Ya, kami membuat sistem enkripsi, dan itu berfungsi, ya, kami bisa memberikan kunci publik kepada teman dan tidak takut pesan itu akan dibaca. Tapi dari mana mendapatkannya?

Ternyata, semuanya cukup sederhana. Di jendela di mana kami membuat kunci untuk enkripsi, kami menandai tombol yang diinginkan dan pilih "Ekspor ke file" di panel atas. Kami mendapatkan kunci publik dan dapat meneruskannya kepada siapa saja untuk menerima pesan terenkripsi darinya yang hanya dapat kami baca.



Jadi, sekarang saya ingin mendapatkan kunci privat (bagaimana jika saya bekerja dari komputer lain? Lagi pula, kunci-kunci tersebut disimpan secara lokal).

Untuk mengatasi masalah ini, kami kembali ke layar utama, di panel sebelah kanan, klik kanan pada tombol yang diinginkan dan pilih "Tampilkan properti kunci". Dan di jendela yang terbuka, pilih "Ekspor Kunci Pribadi".



Selesai, sekarang Anda memiliki kunci enkripsi "publik" publik dan pribadi, yang dapat Anda gunakan sesuai kebijaksanaan Anda.

Nah, di akhir artikel saya ingin berbagi teknik yang berguna: pemodelan ancaman dan penilaian risiko.

Hal pertama yang harus dipahami adalah bahwa Anda tidak dapat memastikan keamanan 100%, serta mengurangi semua risiko menjadi nol. Anda tidak bisa mendapatkan 100% anonimitas. Anda tidak bisa mendapatkan keamanan 100% (kecuali jika Anda menggunakan telepon dan PC).

Menggunakan Internet, kami entah bagaimana menerima risikonya. Ini memberi kami kesempatan untuk memperluas kemampuan kami, tetapi ada risiko kehilangan data kami. Oleh karena itu, keamanan adalah tindakan penyeimbangan antara kenyamanan, perluasan pengetahuan, kenyamanan dan pelestarian data penting yang telah ditetapkan bagi kami.

Kita harus menggunakan pendekatan berbasis risiko.

Risiko = Kerentanan * Ancaman * Konsekuensi


Misalnya saja pencurian laptop. Apa yang bisa kita lakukan Enkripsi seluruh disk, tambahkan langkah otorisasi tambahan.

Untuk memastikan perlindungan kualitas, Anda harus melalui beberapa tahapan:

  1. Pilih
  2. Sesuaikan
  3. Perkirakan Periksa apakah drive sepenuhnya terenkripsi
  4. Kami mengendalikan. Periksa Pembaruan Keamanan

Source: https://habr.com/ru/post/id449552/


All Articles