Kerberos: Memisahkan AS dan TGS

9

Di Kerberos, Server Otentikasi (AS) dan Server Pemberian Tiket (TGS) umumnya diterapkan pada server yang sama. Mesin ini disebut Key Distribution Center (KDC).

Tentunya, masuk akal untuk mengimplementasikan layanan ini pada mesin fisik yang sama, karena pada jaringan kecil dan menengah akan sulit untuk memisahkan kedua layanan ini. Selain itu, saya memiliki sumber yang relatif dapat diandalkan, yang mengatakan (diterjemahkan):

TGS dan AS harus mengakses DB yang sama => tidak masuk akal untuk mengimplementasikan TGS dan AS pada mesin yang berbeda

Namun saya tidak melihat database mana yang harus dibagikan di antara keduanya.

Ini adalah ide saya, bagaimana saya akan memisahkan AS dan TGS, tidak ada database bersama:

  • Karena AS dan TGS terpisah, mereka memiliki Rahasia Master yang berbeda
  • AS memiliki database dengan semua pengguna dengan rahasia utama masing-masing (digunakan saat Pengguna masuk, untuk mengenkripsi kunci sesi), serta rahasia utama TGS (untuk mengenkripsi TGT yang diminta).
  • TGS memiliki basis data, yang memungkinkannya menentukan pengguna mana yang diizinkan untuk menggunakan layanan mana (ACL, daftar pencabutan, ...), serta basis data dengan semua layanan dengan rahasia utama masing-masing (untuk mengenkripsi Tiket).

Saat pengguna ingin menggunakan layanan (disederhanakan):

  • Otentikasi di AS
  • Dapatkan Tiket Pemberian Tiket (TGT), dienkripsi dengan Rahasia Utama TGS, serta kunci sesi, dienkripsi dengan rahasia utama pengguna.
  • Hubungi TGS dengan TGT
  • Dapatkan Tiket, dienkripsi dengan Rahasia Utama Layanan
  • Hubungi Layanan dengan Tiket

Apakah saya kehilangan sesuatu, atau benar-benar tidak ada masalah sama sekali memisahkan AS dan TGS?

Misch
sumber
1
Sepertinya Anda terlalu jauh ke dalam Kerberos. Cara biasa untuk menskalakan adalah dengan menambahkan lebih banyak KDC, jadi saya tidak begitu yakin apa yang ingin Anda capai.
Michael Hampton
1
Benar - masalah apa yang sebenarnya Anda hadapi, yang coba Anda selesaikan?
mfinni
1
Saya tidak mencoba memecahkan masalah konkret. Saya hanya mencoba memahami internal Kerberos (untuk ujian) tanpa benar-benar ingin menggunakannya saat ini. Pertanyaannya adalah murni teoretis, saya hanya ingin tahu apakah saya memahami sesuatu yang salah atau jika kutipan dalam pertanyaan saya tidak sepenuhnya benar.
Misch

Jawaban:

4

Semua pertanyaan Anda adalah teori. Jadi saya akan menjawab dengan baik. AS dan TGS adalah server logis, dan karena itu mereka bisa secara teoritis dipisahkan. Tetapi dalam praktiknya belum ada alasan yang baik untuk menerapkannya pada mesin yang berbeda, sehingga tidak ada yang melakukannya dalam kehidupan nyata. Bahkan jaringan terbesar, tersibuk di dunia dalam hal otentikasi Kerberos tidak perlu memisahkan komponen logis dari KDC. Dalam implementasi Kerberos di kehidupan nyata, semua data yang dibutuhkan AS dan semua data yang dibutuhkan TGS disimpan dalam database yang sama. Ini bisa secara teoritis dipisahkan tetapi ada alasan hanya tidak baik untuk melakukannya dan akan melakukan apa pun kecuali sia-sia menyulitkan pelaksanaannya.

Ryan Ries
sumber
1
Saya baru saja menemukan masalah lain ketika memisahkan AS dan TGS: Tidak hanya dimungkinkan untuk mendapatkan TGT dari AS, tetapi Anda juga dapat meminta tiket untuk layanan lain (mis. Jika Anda tahu bahwa Anda hanya akan membutuhkan satu tiket ini, maka tidak perlu jalan memutar melalui TGT). Ini berarti bahwa AS juga membutuhkan semua data yang saya asumsikan hanya kebutuhan TGS.
Misch