10 poin oleh GN⁺ 2025-03-27 | 1 komentar | Bagikan ke WhatsApp
  • Cloudflare merilis OPKSSH (OpenPubkey SSH) sebagai open source
  • OPKSSH memungkinkan login SSO berbasis OpenID Connect untuk secara otomatis membuat dan menggunakan kunci SSH
  • Pengguna tidak lagi perlu mengelola sendiri kunci publik/pribadi SSH atau mendistribusikannya ke server
  • Pendekatan akses berbasis identitas dapat diterapkan pada autentikasi SSH tanpa memodifikasi protokol SSH

Penjelasan latar belakang SSO dan OpenID Connect

  • SSO (Single Sign-On) adalah metode autentikasi yang memungkinkan pengguna mengakses beberapa sistem setelah login satu kali
  • OpenID Connect adalah protokol yang umum digunakan untuk SSO dan menerbitkan token ID yang berisi informasi pengguna
  • Token ID memuat informasi seperti email pengguna, tetapi tidak menyertakan kunci publik → sehingga tidak bisa langsung digunakan untuk protokol keamanan seperti SSH

Pengenalan OpenPubkey

  • OpenPubkey menyisipkan kunci publik pengguna ke dalam token ID untuk membuat PK Token
  • Dengan ini, dapat dibuktikan bahwa “Google mengautentikasi bahwa pengguna alice@example.com sedang menggunakan kunci publik 0x123”
  • Dapat diterapkan tanpa perubahan pada protokol OpenID Connect yang sudah ada

Peran dan keunggulan OPKSSH

  • OPKSSH mengintegrasikan OpenPubkey ke SSH untuk membuat kunci SSH sekali pakai melalui login SSO
  • Bekerja tanpa perubahan pada protokol SSH yang ada, dan cukup menambahkan dua baris pada file konfigurasi untuk menerapkannya
  • Peningkatan keamanan

    • Menggunakan kunci SSH sekali pakai alih-alih kunci jangka panjang → mengurangi dampak jika kunci bocor dan memungkinkan pembatasan masa berlaku kunci
    • Secara default kedaluwarsa dalam 24 jam, dan dapat diubah lewat konfigurasi
  • Peningkatan kenyamanan pengguna

    • Cukup jalankan perintah opkssh login untuk membuat kunci SSH dan login
    • Tidak perlu menyalin kunci privat SSH ke banyak komputer
  • Peningkatan visibilitas pengelolaan

    • Berbasis alamat email alih-alih akses berbasis kunci → lebih mudah melacak siapa pengguna yang mengakses
    • Jika email seperti bob@example.com ditambahkan ke file izin akses, akses bisa langsung diberikan

Cara kerja OPKSSH

  • Saat pengguna menjalankan opkssh login:
    • Membuat kunci publik/pribadi SSH sementara
    • Login melalui browser ke OpenID Provider (seperti Google)
    • Jika berhasil, membuat PK Token yang memuat kunci publik dan identitas pengguna melalui protokol OpenPubkey
    • Menyimpan file kunci publik yang berisi PK Token dan file kunci pribadi di direktori .ssh
  • Saat koneksi SSH dilakukan:
    • Klien SSH mengirimkan kunci publik yang berisi PK Token ke server SSH
    • Server memverifikasi validitas kunci publik melalui OpenPubkey verifier yang dikonfigurasi dengan AuthorizedKeysCommand
    • Jika PK Token valid dan email ada dalam daftar izin akses, koneksi disetujui

Penyelesaian masalah teknis

  • Pengiriman PK Token: menggunakan field ekstensi sertifikat SSH untuk menyisipkan PK Token ke dalam kunci publik SSH
  • Validasi di server: menggunakan AuthorizedKeysCommand untuk mendelegasikan validasi kunci publik ke program kustom (OpenPubkey verifier)
  • Verifikasi kecocokan kunci publik: memastikan bahwa kunci publik yang melindungi sesi SSH cocok dengan kunci di dalam PK Token

Open source dan maknanya

  • OPKSSH dipublikasikan di GitHub dengan lisensi Apache 2.0
  • Sebelumnya masih berada pada tingkat prototipe, tetapi kini tersedia sebagai rilis stabil dengan fungsi SSH yang lengkap
  • Cloudflare tidak memelihara atau menjaminnya, tetapi menyumbangkan kodenya ke komunitas OpenPubkey

Peningkatan utama

  • Penambahan fungsi SSH yang siap digunakan di dunia nyata
  • Menyediakan skrip instalasi otomatis
  • Termasuk alat konfigurasi yang ditingkatkan

1 komentar

 
GN⁺ 2025-03-27
Opini Hacker News
  • Sertifikat SSH sudah ada sejak lama, dan kita bisa membuat SSH CA sendiri untuk menerbitkan sertifikat jangka pendek
    • Ada berbagai opsi untuk mendapatkan sertifikat secara otomatis, salah satunya adalah proyek step-ca
    • step-ca dapat berkomunikasi dengan sistem OAUTH/OIDC dan penyedia cloud
    • Solusi komersial juga tersedia
  • Lebih menyukai pendekatan menggunakan SSH CA dan perangkat keras
    • Tidak perlu memanggil kode pihak ketiga dari SSHD, sehingga permukaan dan vektor serangan bisa diminimalkan
    • Dapat sepenuhnya mencegah kebocoran kunci atau serangan reuse
    • Semuanya bisa dilakukan dengan perintah bawaan ssh-keygen, sehingga menguntungkan dari sudut pandang admin
  • Meragukan klaim bahwa token ID tidak menyertakan kunci publik pengguna sehingga tidak dapat langsung mengamankan protokol SSH
    • Autentikasi SSH tidak harus selalu berbasis kunci
    • Bertanya-tanya apakah ini bisa diimplementasikan melalui GSSAPI
  • Menggunakan Teleport untuk melakukan autentikasi SSH berbasis sertifikat, dan menerbitkan sertifikat jangka pendek dengan autentikasi SSO
    • Ada manfaat dari kontrol akses dan log audit
  • Sedang mengembangkan alternatif SSH bernama Terminalwire
    • Cocok untuk eksekusi perintah sekali pakai terhadap SaaS dari workstation developer
    • Mirip SSH yang melakukan streaming stdio dari server ke klien, tetapi menyediakan perintah tambahan
  • Membandingkannya dengan teknologi kunci SSH milik Userify
    • Userify menggunakan kunci biasa yang terdistribusi, dan hanya control plane yang dipusatkan
    • Tetap bisa login ke server bahkan saat server autentikasi offline
    • Memiliki fitur untuk mengakhiri sesi pengguna dan menghapus akun
  • Sebagai penulis posting blog tersebut sekaligus kontributor utama opkssh, siap menjawab pertanyaan
  • Sulit melihat perbedaannya dengan menjalankan SSH CA yang mendukung OIDC
    • Server hanya perlu mempercayai kunci milik CA
  • Ada fork OpenSSH yang mendukung X.509 certificate CA
    • Menurutnya menarik bahwa standar yang mengembalikan kunci publik sebagai token dan binary autentikasi sisi server untuk login ke SSH dengan token tersebut dipresentasikan sebagai sesuatu yang inovatif