Google telah menemukan perkembangan terkait protokol jaringan aman PSP

Google telah mengumumkan pembukaan spesifikasi dan implementasi referensi PSP (PSP Security Protocol), yang digunakan untuk mengenkripsi lalu lintas antar pusat data. Protokol ini menggunakan arsitektur enkapsulasi lalu lintas yang mirip dengan IPsec ESP (Encapsulate Security Payloads) melalui IP, menyediakan enkripsi, kontrol integritas kriptografi, dan otentikasi sumber. Kode implementasi PSP ditulis dalam C dan didistribusikan di bawah lisensi Apache 2.0.

Fitur PSP adalah optimalisasi protokol untuk mempercepat perhitungan dan mengurangi beban pada prosesor pusat dengan memindahkan operasi enkripsi dan dekripsi ke sisi kartu jaringan (offload). Akselerasi perangkat keras memerlukan kartu jaringan khusus yang kompatibel dengan PSP. Untuk sistem dengan kartu jaringan yang tidak mendukung PSP, diusulkan implementasi perangkat lunak SoftPSP.

Protokol UDP digunakan sebagai transportasi untuk transfer data. Paket PSP dimulai dengan header IP, diikuti oleh header UDP, dan kemudian header PSP-nya sendiri dengan informasi enkripsi dan otentikasi. Selanjutnya, isi paket TCP/UDP asli ditambahkan, diakhiri dengan blok PSP terakhir dengan checksum untuk mengonfirmasi integritas. Header PSP, serta header dan data paket yang dienkapsulasi, selalu diautentikasi untuk mengonfirmasi identitas paket. Data dari paket yang dienkapsulasi dapat dienkripsi, sementara dimungkinkan untuk menerapkan enkripsi secara selektif sambil membiarkan sebagian header TCP tetap bersih (sambil mempertahankan kontrol keaslian), misalnya, untuk menyediakan kemampuan untuk memeriksa paket pada peralatan jaringan transit.

Google telah menemukan perkembangan terkait protokol jaringan aman PSP

PSP tidak terikat pada protokol pertukaran kunci tertentu, menawarkan beberapa opsi format paket dan mendukung penggunaan algoritma kriptografi yang berbeda. Misalnya, dukungan diberikan untuk algoritma AES-GCM untuk enkripsi dan otentikasi (autentikasi) dan AES-GMAC untuk otentikasi tanpa enkripsi data sebenarnya, misalnya ketika data tidak berharga, tetapi Anda perlu memastikan bahwa data tersebut tidak berharga. telah dirusak selama transmisi dan itu adalah pesan asli yang dikirimkan.

Tidak seperti protokol VPN pada umumnya, PSP menggunakan enkripsi pada tingkat koneksi jaringan individu, dan bukan seluruh saluran komunikasi, mis. PSP menggunakan kunci enkripsi terpisah untuk koneksi UDP dan TCP terowongan yang berbeda. Pendekatan ini memungkinkan untuk mencapai isolasi lalu lintas yang lebih ketat dari aplikasi dan prosesor yang berbeda, yang penting ketika aplikasi dan layanan dari pengguna yang berbeda berjalan di server yang sama.

Google menggunakan protokol PSP untuk melindungi komunikasi internalnya sendiri dan untuk melindungi lalu lintas klien Google Cloud. Protokol ini awalnya dirancang untuk bekerja secara efektif di infrastruktur tingkat Google dan harus memberikan akselerasi enkripsi perangkat keras dengan adanya jutaan koneksi jaringan aktif dan pembentukan ratusan ribu koneksi baru per detik.

Dua mode pengoperasian didukung: β€œstateful” dan β€œstateless”. Dalam mode "stateless", kunci enkripsi ditransmisikan ke kartu jaringan dalam deskriptor paket, dan untuk dekripsi, kunci tersebut diekstraksi dari bidang SPI (Indeks Parameter Keamanan) yang ada dalam paket menggunakan kunci master (AES 256-bit, disimpan dalam memori kartu jaringan dan diganti setiap 24 jam), yang memungkinkan Anda menghemat memori kartu jaringan dan meminimalkan informasi tentang status koneksi terenkripsi yang disimpan di sisi peralatan. Dalam mode β€œstateful”, kunci untuk setiap koneksi disimpan pada kartu jaringan dalam tabel khusus, mirip dengan bagaimana akselerasi perangkat keras diterapkan di IPsec.

Google telah menemukan perkembangan terkait protokol jaringan aman PSP

PSP menyediakan kombinasi unik kemampuan protokol TLS dan IPsec/VPN. TLS cocok dengan Google dalam hal keamanan per koneksi, namun tidak cocok karena kurangnya fleksibilitas untuk akselerasi perangkat keras dan kurangnya dukungan UDP. IPsec memberikan independensi protokol dan mendukung akselerasi perangkat keras dengan baik, tetapi tidak mendukung pengikatan kunci ke koneksi individual, dirancang hanya untuk sejumlah kecil terowongan yang dibuat, dan mengalami masalah dalam menskalakan akselerasi perangkat keras karena menyimpan status enkripsi penuh dalam tabel yang terletak di memori kartu jaringan (misalnya, memori 10 GB diperlukan untuk menangani 5 juta koneksi).

Dalam kasus PSP, informasi tentang status enkripsi (kunci, vektor inisialisasi, nomor urut, dll.) dapat dikirimkan dalam deskriptor paket TX atau dalam bentuk penunjuk ke memori sistem host, tanpa menempati memori kartu jaringan. Menurut Google, sekitar 0.7% daya komputasi dan sejumlah besar memori sebelumnya dihabiskan untuk mengenkripsi lalu lintas RPC di infrastruktur perusahaan. Pengenalan PSP melalui penggunaan akselerasi perangkat keras memungkinkan penurunan angka ini menjadi 0.2%.

Sumber: opennet.ru

Tambah komentar