Dalam protokol ini, pengguna diharuskan untuk diautentikasi. Mereka dapat melakukannya dengan kata sandi, file yang berisi kunci RSA pribadi, perangkat keras seperti Ledger Nano S dan Ledger Nano X, dll.
Beberapa cara otentikasi lebih aman daripada yang lain: menggunakan perangkat keras yang dirancang untuk menyimpan kunci pribadi tanpa memungkinkan untuk mengekstraknya lebih aman daripada menyimpan kunci pribadi dalam file. Sayangnya yang paling aman juga lebih menyakitkan untuk digunakan. Pengguna yang memiliki kunci pada perangkat perlu membawa perangkat, perlu mengetikkan kode PIN setiap kali mereka memulai sesi SSH, dll. Hal ini membuat cukup sulit untuk menganjurkan cara yang lebih aman daripada kata sandi dan file untuk kasus penggunaan di mana keamanan akses bukanlah prioritas.
Jadi pertanyaannya adalah: apakah mungkin menyimpan materi autentikasi lebih aman daripada di file (yang dapat dicuri oleh beberapa malware), tanpa mengubah pengalaman pengguna?
Dan jawabannya adalah: ya, menggunakan TPM!
Beberapa sejarah
Selama beberapa waktu, komputer dapat langsung menyematkan security chip. Chip ini, bernama Trusted Platform Module (TPM), menyediakan banyak fitur termasuk kemampuan untuk melindungi kunci privat yang digunakan dalam kriptografi kunci publik.
Karena tertanam di komputer, tidak perlu menyambungkan perangkat ke komputer untuk menggunakannya. Oleh karena itu, ini dianggap kurang aman daripada perangkat keras yang dapat disimpan di tempat yang berbeda dari komputer (ini memungkinkan penerapan prinsip bahwa meskipun perangkat tidak terhubung ke komputer, tidak ada malware yang dapat menggunakan rahasia yang tersimpan di dalamnya).
Jadi TPM bukanlah "keamanan terbaik", tetapi masih jauh lebih aman daripada menggunakan file seperti $HOME/.ssh/id_rsa
untuk menyimpan kunci pribadi.
Bagaimana TPM dapat digunakan dengan OpenSSH di Linux? Dengan nama proyek tpm2-pkcs11
, mengikuti petunjuk yang tersedia di banyak situs web selama bertahun-tahun, termasuk di dokumentasi resmi dari repositori kodenya.
Sekarang, apa kabar? Perangkat lunak ini akhirnya dikemas dalam Ubuntu dan Debian, yang akhirnya tersedia untuk sebagian besar pengguna Linux!
Lebih tepatnya di sini adalah timeline:
- Pada tahun 2014, spesifikasi utama TPM 2.0 dipublikasikan. Untuk berinteraksi dengan TPM dari perangkat lunak, ada upaya standardisasi, dan dua tumpukan perangkat lunak yang tidak kompatibel dibuat: satu dari Trusted Computing Group (TCG), disebut Tumpukan Perangkat Lunak TPM (TSS), dan yang dari IBM, disebut juga Tumpukan Perangkat Lunak TPM.
- Pada tahun 2018, proyek tersebut
tpm2-pkcs11
dibuat untuk menyediakan antarmuka PKCS#11 ke TPM 2.0, menggunakan TSS TCG. PKCS # 11 adalah standar yang mendefinisikan Application Programming Interface (API) bernama Kriptoki untuk menggunakan token yang menyimpan kunci kriptografi. Karena OpenSSH didukung menggunakan antarmuka PKCS#11 untuk melakukan autentikasi pengguna, ini diaktifkan menggunakan TPM untuk menyimpan kunci yang digunakan untuk autentikasi SSH. - Pada bulan Februari 2019,
tpm2-pkcs11
telah ditambahkan ke Fedora 29. - Pada September 2019, CentOS 8 dirilis dengan paket ini.
- Pada bulan April 2020,
tpm2-pkcs11
telah ditambahkan ke Sid Debian. Sayangnya itu tidak berisi programtpm2_ptool
yang diperlukan untuk membuat kunci dengan mudah. Masalah ini dilaporkan di Bug Debian #968310. - Pada Januari 2021, paket Debian adalah tetap (dan pengelola mengakui bantuan saya!).
- Pada April 2021, Ubuntu 21.04 Kuda nil berbulu dirilis dengan paket tetap.
- Pada Agustus 2021, Debian 11 Bullseye dirilis dengan paket tetap
Sekarang tpm2-pkcs11
tersedia di Debian, Ubuntu dan beberapa distribusi Linux lainnya yang terdaftar di Repologi.
Menggunakan tpm2-pkcs11
Di Debian 11, berikut adalah langkah-langkah untuk membuat dan menggunakan kunci SSH baru yang disimpan dengan aman oleh TPM:
- Instal perintah
tpm2_ptool
dan perpustakaanlibtpm2_pkcs11.so.1
, yang disediakan oleh dua paket:
2. Periksa apakah sistem dapat menggunakan TPM 2.0. Jika salah satu dari pemeriksaan berikut gagal, ini bisa berarti sistem tidak memiliki TPM, atau memiliki TPM 1.2, atau memiliki TPM 2.0 yang dinonaktifkan di pengaturan BIOS:
3. Tambahkan pengguna saat ini ke grup yang dapat mengakses perangkat TPM /dev/tpmrm0
. Di Debian dan Ubuntu, pengguna harus menjadi anggota grup bernama tss
(berkat konfigurasi yang disediakan oleh tpm-udev
paket). Perintah berikut menambahkan pengguna saat ini ke grup ini:
Inisialisasi penyimpanan pengguna, dilindungi oleh kata sandi dan a SOPIN dan buat kunci, misalnya kunci Elliptic Curve pada kurva bernama "NIST P-256" (juga dikenal sebagai "secp256r1"):
4. Akronim SOPIN cara Nomor Identifikasi Pribadi Petugas Keamanan dan merupakan konsep dari spesifikasi PKCS#11. Dalam kasus penggunaan yang sederhana, ini dapat dilihat sebagai "kata sandi pemulihan" yang memungkinkan pengubahan kata sandi ketika, misalnya, telah hilang.
5. Tampilkan kunci publik dari kunci baru ini:
6. Konfigurasikan kunci publik baru di server, misalnya dengan menuliskannya $HOME/.ssh/authorized_keys
atau di pengaturan akun GitHub atau di lokasi lain tempat kunci publik SSH digunakan.
7. Konfigurasi klien SSH yang akan digunakan tpm2-pkcs11
untuk terhubung ke server, misalnya dengan menulis ini $HOME/.ssh/config
(sisi klien):
Sambungkan ke server (NB langkah sebelumnya bisa dilewati:
Pekerjaan masa depan
Bagian sebelumnya menyajikan cara membuat kunci baru di TPM. Meskipun ini memungkinkan penggunaan TPM untuk melindungi autentikasi SSH, ada dua fitur yang diperlukan untuk menjadikan ini sebagai alternatif nyata untuk menggunakan file guna menyimpan kunci pribadi:
- Fitur #1: mengimpor kunci SSH yang ada ke TPM alih-alih membuat yang baru (yang memungkinkan kelancaran transisi ke penyimpanan TPM, mencadangkan kunci, seandainya komputer rusak atau hilang, dll.).
- Fitur #2: menggunakan kunci SSH tanpa kata sandi, seperti file kunci pribadi yang tidak dilindungi (fitur ini lebih aman daripada file kunci karena kunci yang dilindungi tidak dapat diekstrak dari TPM).
Saya menerapkan kedua fitur di tpm2-pkcs11
dan mengirimkannya dalam Permintaan Tarik #681 dan #695. Fitur #1 juga disajikan pada bulan Mei selama panggilan online mingguan komunitas tpm.dev dan rekaman tersedia di https://developers.tpm.dev/posts/14389750.
Jadi kedua fitur tersebut kemungkinan besar akan tersedia di rilis mendatang tpm2-pkcs11
.
Ngomong-ngomong, bagi pembaca yang ingin tahu yang ingin memahami bagian dalam tpm2-pkcs11
, saya menerbitkan artikel tentang mereka di konferensi SSTIC 2021, bernama Melindungi autentikasi SSH dengan TPM 2.0 (artikel dalam bahasa Inggris, presentasi dalam bahasa Prancis). Selain itu, pembaca yang ingin mencoba berbagai hal tanpa menyentuh TPM asli dapat tertarik dengan bagian “Meniru TPM 2.0” di artikel ini.
(Ilustrasi: Rainer Knäpper, Lisensi Seni Gratis)
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoAiStream. Kecerdasan Data Web3. Pengetahuan Diperkuat. Akses Di Sini.
- Mencetak Masa Depan bersama Adryenn Ashley. Akses Di Sini.
- Beli dan Jual Saham di Perusahaan PRE-IPO dengan PREIPO®. Akses Di Sini.
- Sumber: https://www.ledger.com/blog/ssh-with-tpm
- :memiliki
- :adalah
- :bukan
- :Di mana
- $NAIK
- 1
- 11
- 13
- 14
- 15%
- 2014
- 2018
- 2019
- 2020
- 2021
- 30
- 8
- 80
- a
- kemampuan
- Sanggup
- Tentang Kami
- mengakses
- Akun
- diakui
- menambahkan
- menambahkan
- Menambahkan
- pengacara
- juga
- alternatif
- an
- dan
- menjawab
- Apa pun
- api
- Aplikasi
- April
- ADALAH
- Seni
- artikel
- AS
- At
- Agustus
- dikonfirmasi
- Otentikasi
- tersedia
- beking
- BE
- menjadi
- menjadi
- kedua
- Rusak
- Bug
- tapi
- by
- panggilan
- CAN
- tidak bisa
- membawa
- kasus
- kasus
- CGI
- mengubah
- memeriksa
- Cek
- keping
- klien
- kode
- komputer
- komputer
- komputasi
- konsep
- Konferensi
- konfigurasi
- Terhubung
- terhubung
- dianggap
- bisa
- membuat
- dibuat
- membuat
- kriptografi
- kriptografi
- ingin tahu
- terbaru
- melengkung
- Mendefinisikan
- dirancang
- dev
- alat
- Devices
- MELAKUKAN
- berbeda
- sulit
- langsung
- cacat
- Display
- distribusi
- do
- dokumentasi
- tidak
- selama
- mudah
- usaha
- Eliptik
- menanamkan
- tertanam
- diaktifkan
- memungkinkan
- Menegakkan
- Inggris
- dll
- pERNAH
- Setiap
- contoh
- ada
- pengalaman
- ekstrak
- gagal
- Fitur
- Fitur
- Februari
- File
- File
- Akhirnya
- tetap
- berikut
- Untuk
- Gratis
- Perancis
- dari
- masa depan
- menghasilkan
- GitHub
- Kelompok
- Perangkat keras
- perangkat perangkat keras
- perangkat keras
- Memiliki
- di sini
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- HTML
- http
- HTTPS
- i
- IBM
- Identifikasi
- if
- diimplementasikan
- pengimporan
- in
- Termasuk
- tidak kompatibel
- memulai
- sebagai gantinya
- instruksi
- berinteraksi
- tertarik
- Antarmuka
- ke
- isu
- IT
- NYA
- Januari
- Januari 2021
- jpg
- kunci
- kunci-kunci
- dikenal
- Buku besar
- Ledger Nano
- Ledger Nano S
- Buku Besar Nano X
- kurang
- 'like'
- Mungkin
- linux
- Daftar
- tempat
- kalah
- Utama
- membuat
- MEMBUAT
- Membuat
- malware
- banyak
- bahan
- max-width
- Mungkin..
- berarti
- cara
- modul
- lebih
- Selain itu
- paling
- banyak
- my
- Bernama
- nano
- perlu
- Perlu
- dibutuhkan
- New
- berita
- tidak
- sekarang
- of
- Petugas
- on
- ONE
- yang
- secara online
- or
- urutan
- Lainnya
- Lainnya
- paket
- dikemas
- paket
- menyakitkan
- Kata Sandi
- password
- melakukan
- pribadi
- Tempat
- Platform
- plato
- Kecerdasan Data Plato
- Data Plato
- steker
- mungkin
- tepat
- presentasi
- disajikan
- sebelumnya
- prinsip
- prioritas
- swasta
- Key pribadi
- Kunci Pribadi
- Pemrograman
- proyek
- melindungi
- terlindung
- melindungi
- protokol
- memberikan
- disediakan
- menyediakan
- publik
- Key publik
- kunci publik
- diterbitkan
- pertanyaan
- pembaca
- nyata
- rekaman
- melepaskan
- dirilis
- Dilaporkan
- wajib
- RSA
- s
- Bagian
- aman
- aman
- keamanan
- terlihat
- September
- Sidang
- pengaturan
- beberapa
- sisi
- Sederhana
- So
- Perangkat lunak
- beberapa
- spesifikasi
- spesifikasi
- Tumpukan
- standar
- Langkah
- Tangga
- Masih
- dicuri
- penyimpanan
- menyimpan
- tersimpan
- disampaikan
- seperti itu
- Didukung
- sistem
- dari
- Terima kasih
- bahwa
- Grafik
- Mingguan
- mereka
- Mereka
- Sana.
- karena itu
- mereka
- hal
- ini
- waktu
- waktu
- untuk
- Token
- sentuhan
- transisi
- Terpercaya
- mencoba
- dua
- mengetik
- Ubuntu
- memahami
- sayangnya
- menggunakan
- bekas
- Pengguna
- Pengguna Pengalaman
- Pengguna
- menggunakan
- ingin
- adalah
- Cara..
- cara
- situs web
- mingguan
- adalah
- ketika
- yang
- sementara
- SIAPA
- dengan
- tanpa
- penulisan
- X
- tahun
- iya nih
- zephyrnet.dll