Network Time Security (NTS) menambahkan lapisan keamanan penting pada layanan Network Time Protocol (NTP). Setelah melakukan implementasi perangkat lunak NTS pada tahun 2019, Netnod kini telah mengimplementasikan NTS di tingkat perangkat keras.

Di Netnod, kami sibuk dengan Network Time Security (NTS) selama beberapa tahun sekarang. Kami mengerjakan standar yang diusulkan IETF yang diterbitkan pada tahun 2020 sebagai RFC8915 dan memperkenalkan layanan waktu berkemampuan NTS pada tahun 2019 dengan NTS yang diterapkan dalam perangkat lunak. Langkah selanjutnya adalah mengimplementasikan NTS pada tingkat perangkat keras. Artikel ini akan membahas beberapa tantangan yang terlibat dalam penerapan perangkat keras ini dan bagaimana hal itu membantu menyediakan layanan waktu yang lebih aman.

Apa itu NTS?

Banyak perangkat yang terhubung ke Internet mengandalkan Network Time Protocol (NTP). Namun, NTP memaparkan jaringan pada masalah keamanan. Karena protokol ini dibuat pada tahun 1985, dan tidak dirancang dengan mempertimbangkan keamanan, maka protokol ini rentan terhadap serangan. Hal ini menjadi masalah mengingat waktu yang akurat dan aman sangat penting untuk beberapa teknologi keamanan utama yang menjadi andalan jaringan dan masyarakat secara keseluruhan. NTS telah dirancang untuk memperbaikinya.

Bagaimana cara kerja NTS?

NTS menggunakan kriptografi modern untuk menambahkan lapisan keamanan penting pada layanan NTP. Ini mencegah spoofing dan serangan MITM dengan menggunakan paket yang diautentikasi. Serangan amplifikasi dicegah dengan memastikan bahwa paket permintaan dan respons selalu berukuran sama.

NTS sebenarnya terdiri dari dua protokol: protokol pembentukan kunci, dan NTP dengan beberapa Bidang Ekstensi baru. Alasan penggunaan dua protokol adalah pemisahan kekhawatiran:

  1. Pembentukan kunci yang jarang digunakan di atas standar Transport Layer Security (TLS), dan;
  2. Jalur sinkronisasi waktu berbasis UDP latensi rendah (yang sudah ada).

Artinya fungsionalitas NTP yang ada sama dengan sebelumnya, namun data waktunya kini dapat diautentikasi.

Proses otentikasi terdiri dari pembuatan kunci dan permintaan stempel waktu. Server pembentukan kunci biasanya berjalan pada komputer biasa, tetapi server NTP berkemampuan NTS yang ramping berbasis UDP dan tidak memiliki kewarganegaraan. Ini dapat dilayani dari alamat mana pun dan dapat diimplementasikan pada tingkat perangkat keras. Status server NTP tentang setiap klien disimpan dalam cookie yang disediakan oleh klien itu sendiri pada setiap permintaan. Karena potensi terdapat ratusan juta klien, hal ini sangat penting untuk kelancaran pengoperasian layanan NTS skala besar. Jika Anda ingin mengetahui lebih lanjut tentang cara kerja pembuatan kunci NTS dan proses stempel waktu, lihat Buku putih NTS Netnod mulai tahun 2020.

Karena operasi kriptografi di jalur NTS bersifat simetris, maka lebih mudah untuk mengimplementasikannya di perangkat keras dan memungkinkan untuk membuatnya menggunakan waktu yang konstan. Hal ini meningkatkan akurasi sinkronisasi waktu dan menjaga pembentukan kunci yang lebih lambat di luar jalur sinkronisasi waktu.

NTS menggunakan Enkripsi Otentikasi menggunakan Advanced Encryption Standard (AES), lebih khusus lagi yang dikenal dengan Synthetic Initialization Vector (RFC5297). Ini adalah mode operasi cipher blok yang menyediakan enkripsi terautentikasi berbasis nonce dan tahan penyalahgunaan. Menggunakan AES-SIV memungkinkan proses enkripsi untuk menambahkan integritas dan otentikasi asal. Konsekuensinya pada tingkat perangkat keras akan dibahas di bawah.

Menerapkan NTS pada tingkat perangkat keras

Manfaatnya

Netnod melihat tiga manfaat utama dalam mengimplementasikan NTS pada tingkat perangkat keras.

  • Pertama, ini memungkinkan waktu pemrosesan yang lebih deterministik. Hal ini meningkatkan kualitas sinkronisasi waktu yang disediakan dan keamanan layanan dengan mengurangi kemampuan serangan saluran samping pada kunci. Serangan saluran samping mengeksploitasi efek fisik yang disebabkan oleh pemrosesan: misalnya perbedaan dalam konsumsi daya atau perbedaan dalam berapa lama waktu yang diperlukan untuk melakukan operasi tertentu.
  • Kedua, ini membuat layanan menjadi lebih kuat dan aman. Seorang penyerang yang dapat menyuntikkan atau memodifikasi kode (misalnya dengan paket jaringan yang dibuat khusus) di komputer tempat implementasi perangkat lunak berjalan dapat mengubah perilaku implementasi. Implementasi perangkat keras secara signifikan mengurangi kemungkinan serangan tersebut.
  • Terakhir, ini memberikan peningkatan efisiensi dan skalabilitas. Pemrosesan NTS sangat bergantung pada operasi kriptografi yang lebih cocok untuk implementasi perangkat keras daripada perangkat lunak. Yang pertama memungkinkan implementasi fungsionalitas inti NTS yang efisien dan ringkas sekaligus memungkinkan skalabilitas. Dibandingkan dengan memiliki banyak server dengan penyeimbang beban, implementasi perangkat keras memungkinkan segala sesuatunya dilakukan secara internal menggunakan jumlah peralatan yang lebih sedikit dan mengonsumsi daya yang lebih sedikit. Efisiensi ini menghasilkan biaya operasional yang jauh lebih rendah dibandingkan dengan menggunakan sekelompok server.

Tantangannya

Karena sifat kompleks dari permintaan stempel waktu NTS, paket harus dibaca dan dimodifikasi dalam beberapa lintasan. Selanjutnya, mekanisme keamanan yang dipilih untuk NTS (AES-SIV, lihat RFC5297) tidak memungkinkan streaming tanpa duplikasi sumber daya FPGA yang signifikan. Sebaliknya, beberapa lintasan pada bagian paket yang berbeda diperlukan untuk melakukan operasi enkripsi atau dekripsi seperti mendekripsi cookie atau memverifikasi paket. Setiap lintasan memerlukan beberapa operasi AES.

Ini berarti paket NTS perlu disimpan. Ini juga berarti bahwa puluhan hingga ratusan operasi kriptografi diperlukan untuk satu paket NTS. Operasi ini tidak dapat dilakukan secara paralel tanpa banyak kerumitan dan duplikasi sumber daya yang tidak perlu.

Hasil akhirnya adalah pada 10 Gbps waktu pemrosesan yang dibutuhkan suatu paket lebih lama dari waktu minimum antar paket masuk. Kami menyadari bahwa satu mesin NTS tidak akan mampu menangani semua lalu lintas untuk satu port dan kami memerlukan beberapa mesin yang bekerja secara paralel.

Ini berarti arsitektur desain NTP FPGA harus diubah. Untuk detail selengkapnya tentang cara kami mendesain ulang arsitektur, lihat Buku putih NTS Netnod mulai Januari 2022.

Penyebaran

Versi pertama implementasi FPGA Netnod telah tersedia untuk umum untuk pengujian sejak Agustus 2020.

Kami telah mem-porting implementasi FPGA kami dari server NTP/NTS ke switch FPGA Arista 7130-48LB. Kode sumber tersedia di github di sini: https://github.com/Netnod/FPGA_NTP_SERVER/tree/arista

Sejak Februari 2022, implementasi Arista FPGA telah mulai diproduksi sth1.nts.netnod.se Dan sth2.nts.netnod.se. Di sinilah Anda harus terhubung jika Anda membutuhkan layanan produksi. Anda juga dapat menggunakan nts.netnod.se yang akan menyelesaikan semua server NTS produksi Netnod.

Kami juga menjalankan server pengujian kami lab1.nts.netnod.se Dan lab2.nts.netnod.se di situlah kami akan menguji perbaikan di masa depan. Mesin laboratorium dapat rusak dengan cara yang menarik tanpa peringatan apa pun, jadi mohon jangan menggunakannya untuk hal penting. Namun kami menghargai jika Anda menguji klien Anda dengan mesin lab dan melaporkan masalah apa pun pada mesin tersebut kepada kami.

Jika Anda memiliki pertanyaan atau saran tentang pekerjaan NTS Netnod, jangan ragu untuk menghubungi saya.


Informasi lebih lanjut

  • Untuk rincian lebih lanjut tentang latar belakang NTS dan cara kerja pembuatan kunci NTS serta proses stempel waktu, lihat Buku putih NTS Netnod mulai tahun 2020.
  • Jika Anda tertarik dengan latar belakang penerapan FPGA kami di NTS, Anda dapat menemukan detail lebih lanjut di Whitepaper NTS Netnod mulai Januari 2022.
  • Layanan NTP/NTS Netnod tersedia gratis untuk siapa saja. Untuk praktik terbaik kami dalam menghubungkan ke server NTP, lihat artikel RIPE Labs saya sebelumnya. Saran yang sama juga relevan untuk NTS karena merupakan perpanjangan dari NTP.
  • Meskipun NTS membantu mengamankan distribusi waktu melalui internet publik, jaringan yang memerlukan tingkat akurasi dan keandalan tertinggi sering kali menggunakan layanan Precision Time Protocol (PTP). Ketika digunakan melalui koneksi khusus, PTP dapat memberikan akurasi dan keandalan yang lebih baik dibandingkan layanan NTS. Untuk informasi lebih lanjut tentang PTP dan kasus penggunaannya, lihat postingan blog Netnod Di Sini dan sesi tanya jawab berfokus pada sektor energi Di Sini.

Sumber

Krystian Wiśniewski
Krystian Wiśniewski is a dedicated Sports Reporter and Editor with a degree in Sports Journalism from He graduated with a degree in Journalism from the University of Warsaw. Bringing over 14 years of international reporting experience, Krystian has covered major sports events across Europe, Asia, and the United States of America. Known for his dynamic storytelling and in-depth analysis, he is passionate about capturing the excitement of sports for global audiences and currently leads sports coverage and editorial projects at Agen BRILink dan BRI.