Kunci TOTP perangkat keras yang dapat diprogram dengan kemampuan untuk menyinkronkan waktu

Kami sangat senang mengumumkan baris baru kunci TOTP perangkat keras yang dapat diprogram dari TOKEN2. Inovasi utama adalah kemampuan untuk menyinkronkan jam sistem kunci perangkat keras melalui NFC API menggunakan aplikasi khusus - rilis untuk Android dan Windows 10 saat ini sedang dipersiapkan.

Belum ada aplikasi untuk iOS: terlepas dari kenyataan bahwa chip NFC hadir secara fisik pada model iPhone terbaru, Apple belum menyediakan API publik untuk penggunaannya.


Untuk apa ini?


Tidak seperti aplikasi TOTP seluler, dalam kunci perangkat keras tidak ada cara untuk menyinkronkan waktu melalui NTP, melalui jaringan seluler atau sinyal radio: kunci perangkat keras perangkat sepenuhnya terisolasi dan berdiri sendiri, dan menggunakan jam di papan mereka sebagai sumber waktu yang akurat. Pada tahun 1933-1934. fisikawan Scheibe dan Adelsberger dari Institut Fisika dan Teknologi Imperial di Berlin mengambil kemungkinan menggunakan efek piezoelektrik untuk mengukur waktu. Efek inilah yang mendasari jam sistem kunci perangkat keras. Keakuratan jam tangan tersebut berkisar dari ± 0,3 hingga ± 1,1 s / hari, tergantung kualitasnya. Jika akurasi ini cukup untuk arloji biasa, pada kunci perangkat keras perbedaan waktu yang lebih besar dari batas tertentu dapat menyebabkan penolakan untuk mengaktifkan dan / atau otentikasi. Batas ini tergantung pada sistem tertentu (misalnya, Microsoft Azure MFA memungkinkan hingga 600 detik bias di kedua arah) ketika datang ke pendaftaran pertama kunci perangkat keras. Selanjutnya, proses sinkronisasi offset selama penggunaan kunci untuk masuk sudah dijelaskan dengan jelas dalam RFC 6238

RFC 6238 / 6. Sinkronisasi ulang
Karena kemungkinan jam melayang antara klien dan validasi
server, kami MENYARANKAN bahwa validator diatur dengan batas tertentu
untuk jumlah langkah waktu prover bisa "tidak selaras" sebelumnya
ditolak.

Batas ini dapat diatur maju dan mundur dari yang dihitung
langkah waktu pada penerimaan nilai OTP. Jika langkah waktunya adalah
30 detik sesuai anjuran, dan validator ditetapkan hanya menerima
dua langkah waktu mundur, maka penyimpangan waktu berlalu maksimum akan
sekitar 89 detik, yaitu, 29 detik pada langkah waktu yang dihitung dan
60 detik untuk dua langkah waktu mundur.

Ini berarti validator dapat melakukan validasi terhadap
waktu saat ini dan kemudian dua validasi lebih lanjut untuk setiap langkah mundur
(untuk total 3 validasi). Setelah validasi berhasil, the
server validasi dapat merekam penyimpangan jam yang terdeteksi untuk token
dalam hal jumlah langkah waktu. Ketika OTP baru diterima
setelah langkah ini, validator dapat memvalidasi OTP dengan arus
stempel waktu disesuaikan dengan jumlah yang dicatat dari drift clock langkah-waktu
untuk token.

Juga, penting untuk dicatat bahwa semakin lama prover tidak terkirim
OTP ke sistem validasi, semakin lama (berpotensi)
akumulasi jam melayang di antara prover dan verifier. Sedemikian
kasus, sinkronisasi ulang otomatis yang dijelaskan di atas mungkin tidak berfungsi
jika pergeseran melebihi ambang batas yang diizinkan. Tambahan
tindakan otentikasi harus digunakan untuk mengotentikasi
prover dan secara tersinkronisasi ulang sinkronisasi jam antara
prover dan validator.

Yaitu, jika server otentikasi mematuhi semua persyaratan RFC, dan jika kunci tidak digunakan sangat jarang untuk otentikasi, misalnya, setidaknya beberapa kali setahun (angka yang tepat dapat dihitung dengan memperhitungkan keakuratan osilator dan waktu offset yang diizinkan oleh server), maka waktu offset akan diperhitungkan. di sisi server dan masalah tidak boleh muncul. Saat menggunakan kunci hanya dalam kondisi seperti itu, fungsi sinkronisasi waktu, pada prinsipnya, tidak diperlukan.

Namun, fungsi sinkronisasi waktu mungkin berguna dalam kasus-kasus berikut:

  • Jika implementasi server TOTP tidak mengikuti Rekomendasi RFC6238 # 6. Salah satu contoh implementasi tersebut adalah DUO :
    Penyimpangan token TOTP dan sinkronisasi ulang tidak didukung. Akibatnya, token TOTP yang diimpor mungkin tidak berfungsi untuk otentikasi dengan Duo Security, atau mungkin gagal berfungsi untuk otentikasi setelah periode waktu variabel ...

  • Jika sejumlah kunci perangkat keras dibeli untuk waktu yang lama, tetapi mereka harus diaktifkan hanya setelah beberapa waktu - dalam hal ini tidak ada mekanisme sinkronisasi di banyak sistem.
  • Jika dongle digunakan untuk login lebih jarang dari yang diperlukan untuk sinkronisasi. Misalnya, jika pengguna ingin "menyalin" profil TOTP yang sama (lebih tepatnya, rahasia bersama) ke dua perangkat: a) pada aplikasi seluler di telepon untuk penggunaan sehari-hari dan b) pada kunci perangkat keras yang dapat diprogram sebagai cadangan, untuk hari hujan. . Jadi, jika hari hujan ini datang dalam 3-4 tahun, token perangkat keras tidak dapat lagi digunakan secara tepat karena perbedaan waktu. Apalagi baterai pada token, yang tidak menyala untuk waktu yang lama, hampir tidak kehilangan kapasitas. Karenanya, dalam hal ini, cukup mudah untuk "membawa" jam pada mereka untuk mengembalikannya ke operasi.

Analisis keamanan
Seperti biasa, inovasi semacam ini selalu didasarkan pada keseimbangan antara kenyamanan / kemudahan dan tingkat keamanan. Kunci yang dapat diprogram dengan kemampuan untuk menyinkronkan waktu dari serangan jaringan (phishing, orang-orang di tengah, dll. - tidak terkecuali; dalam kebanyakan kasus, klien kami menggunakan token TOTP secara tepat untuk melindungi dari serangan jenis ini) mereka pasti akan sepenuhnya melindungi, tetapi kemungkinan ini menyiratkan probabilitas teoritis yang dapat diabaikan dan murni dari serangan melalui serangan replay (serangan replay) dengan kondisi bahwa penyerang dapat:

  1. Dapatkan faktor pertama (kata sandi).
  2. Memiliki akses fisik ke kunci perangkat keras tanpa sepengetahuan pemilik untuk waktu yang cukup lama (lihat langkah 3.).
  3. Menggunakan aplikasi, melalui NFC, menerjemahkan waktu pada tombol maju ke tanggal tertentu, dan merekam sejumlah kode yang dihasilkan. Ini tidak akan berfungsi dengan skrip, karena untuk menghasilkan kode Anda perlu mengklik tombol fisik, dan kode saat ini hanya dapat dilihat di layar (tidak dikirimkan melalui NFC).
  4. Kembalikan waktu kembali ( sehingga pemilik tidak menebak apa pun ).
  5. Dan akhirnya, masuk menggunakan kata sandi (langkah 1) dan salah satu kode yang diterima di langkah 3.

Risiko ini, seperti yang kita lihat, dapat timbul hanya di bawah kondisi akses fisik ke perangkat, misalnya, serangan dapat dilakukan oleh seorang rekan yang duduk di dekatnya dan, untuk beberapa alasan, juga mengetahui kata sandi. Tetapi dalam kondisi seperti itu, penggunaan token TOTP klasik akan menimbulkan risiko yang sama. Omong-omong, risiko token yang dikompromikan dengan fungsi sinkronisasi waktu sebanding dengan risiko perangkat fido u2f - jika penyerang memperoleh akses sementara ke kunci u2f sementara memiliki kata sandi, ia dapat masuk ke sistem dengan kunci ini dan menambahkan kunci (nya) dan lalu dengan tenang mengembalikan kunci asli ke pemilik - sesuai dengan spesifikasi, satu akun dapat memiliki lebih dari satu kunci u2f, dan siapa pun dapat digunakan untuk masuk paralel. Faktor-faktor seperti kata sandi kertas Sempurna memiliki risiko yang sama.
Seperti yang Anda lihat, serangannya cukup kompleks dan tidak mungkin, dan secara umum, tingkat risiko menggunakan token tersebut dapat dibandingkan dengan menggunakan aplikasi seperti Google Authenticator pada ponsel cerdas tanpa kode PIN, tanpa akses ke jaringan dan yang selalu dibawa oleh pengguna.
Untuk pelanggan yang masih menganggap bahkan risiko ini cukup besar, rekomendasi kami tentang hal ini adalah sebagai berikut:
  1. Batasan akses fisik ke jenis kunci ini kira-kira sama dengan kartu bank (ngomong-ngomong, kunci kami ada dalam format kartu bank).
  2. Gunakan tombol yang dapat diprogram tanpa fungsi sinkronisasi waktu ( miniOTP-1 )
  3. Gunakan kunci yang dapat diprogram dengan fungsi sinkronisasi waktu, dikombinasikan dengan penghapusan kunci rahasia. Yaitu, ketika waktu token berubah, seed akan diatur ulang dan perlu memasukkannya kembali (miniOTP-3, tanggal rilis model akan diumumkan tambahan)


Dimana beli?
Pemesanan di muka terbuka di situs web kami. Gunakan kode promosi HABR2019 untuk diskon 10% (jumlah kupon terbatas). Pengiriman melalui pos biasa (SwissPost atau La Poste France). Dengan pengiriman ke negara-negara CIS masih tidak ada masalah.

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


All Articles