Di mana saya menyimpan data sensitif dalam Active Directory?

11

Saya pada dasarnya menyimpan kunci pribadi (Hash) di salah satu atribut OctetString dalam Active Directory.

Pertanyaan saya adalah, atribut apa yang aman secara default dan masuk akal untuk menyimpan data pribadi di sana? Nilai ini harus dianggap mirip dengan kata sandi, di mana bahkan administrator tidak boleh memiliki akses (jika mungkin), sama seperti Kata Sandi AD saat ini.

Berikut ini adalah daftar atribut yang diaktifkan secara default pada domain Windows 2008R2 + Exchange 2010.

teks alternatif

Memperbarui:

Adakah yang tahu atribut Octet String yang tidak mengekspos izin "baca" ke semua pengguna di domain secara default? Saya tidak ingin menyimpan hash saya di depan umum dan mengizinkan seseorang membangun meja pelangi berdasarkan hash.

goodguys_activate
sumber

Jawaban:

11

Masalah yang dihadapi kebanyakan orang saat menyimpan data dalam AD adalah

  • Memperluas Skema (yang sering memiliki implikasi politik-perusahaan)

  • Menggunakan atribut yang ada dan mengedit izin (yang menghasilkan mengasapi AD / ACL yang meningkatkan DIT Anda dan ukuran replikasi berikutnya)

Ada alternatif ... pilihan terbaik dalam pikiran saya adalah menggunakan fitur AD yang kurang dikenal ini untuk mengambil atribut yang ada dan menandai sebagai Rahasia.

Berikut ini detail prosesnya


Izin default di Active Directory adalah sedemikian sehingga Pengguna yang Diotentikasi memiliki akses baca selimut ke semua atribut. Ini membuatnya sulit untuk memperkenalkan atribut baru yang harus dilindungi agar tidak dibaca oleh semua orang.

Untuk mengurangi ini, Windows 2003 SP1 memperkenalkan cara untuk menandai atribut sebagai RAHASIA. Fitur ini dicapai dengan memodifikasi nilai searchFlags pada atribut dalam skema. SearchFlags berisi banyak bit yang mewakili berbagai properti atribut. Misalnya bit 1 berarti atribut diindeks. Bit 128 baru (bit ke-7) menetapkan atribut sebagai rahasia.

Catatan: Anda tidak dapat mengatur bendera ini pada atribut skema-dasar (yang diturunkan dari "atas" seperti nama umum). Anda dapat menentukan apakah suatu objek adalah objek skema dasar dengan menggunakan LDP untuk melihat objek dan memeriksa atribut systemFlags objek. Jika bit ke-10 diatur, itu adalah objek skema dasar.

Ketika Layanan Direktori melakukan pemeriksaan akses baca, ia memeriksa atribut rahasia. Jika ada, maka selain akses READ_PROPERTY, Layanan Direktori juga akan memerlukan akses CONTROL_ACCESS pada atribut atau set propertinya.

Secara default, hanya Administrator yang memiliki akses CONTROL_ACCESS ke semua objek. Dengan demikian, hanya Administrator yang dapat membaca atribut rahasia. Pengguna bebas untuk mendelegasikan hak ini ke grup tertentu yang mereka inginkan. Ini dapat dilakukan dengan alat DSACLs, scripting, atau versi R2 ADAM dari LDP. Sampai tulisan ini dibuat, tidak mungkin untuk menggunakan Editor ACL UI untuk menetapkan izin ini.

Proses menandai atribut Rahasia dan menambahkan pengguna yang perlu melihat atribut memiliki 3 Langkah

  1. Menentukan atribut untuk menandai Rahasia, atau menambahkan atribut untuk menandai Rahasia.

  2. Menandai itu rahasia

  3. Memberi pengguna yang benar Control_Access tepat sehingga mereka dapat melihat atribut.

Untuk detail lebih lanjut dan petunjuk langkah demi langkah, silakan merujuk ke artikel berikut:

922836 Cara menandai atribut sebagai rahasia di Windows Server 2003 Paket Layanan 1

http://support.microsoft.com/default.aspx?scid=kb;EN-US;922836

goodguys_activate
sumber
1
Downvoter: Mengapa ini mendapatkan -1?
goodguys_activate
Saya mendengar bahwa bit rahasia dapat mengenakan penalti kinerja yang signifikan. Apakah Anda tahu ada dokumen yang mendukung atau membantahnya?
Nic
@Nic memposting itu sebagai pertanyaan ... pertama saya mendengarnya
goodguys_activate
2

Anda selalu dapat memperluas Direktori Aktif dengan bidang baru untuk tujuan ini.

Berikut ini adalah dokumen yang menyertakan instruksi untuk menambahkan atribut baru dan membatasi izin pada atribut tersebut.

Sakit kepala
sumber
Terima kasih. Tujuan saya adalah menggunakan atribut yang ada jika memungkinkan karena klien saya tidak paranoid dalam melakukan ini ... mereka memiliki terlalu banyak FUD dalam pendekatan itu ... Saya berharap sesuatu yang asli jika mungkin.
goodguys_activate
Saya dapat memahami keengganan mereka, tetapi saya tidak percaya ada atribut kandidat yang baik yang tidak digunakan dan diamankan sesuai kebutuhan.
Zoredache
1

Nilai ini harus dianggap mirip dengan kata sandi, di mana bahkan administrator tidak boleh memiliki akses (jika mungkin), sama seperti Kata Sandi AD saat ini.

Ini tidak benar, bahkan tidak salah. Kata sandi tidak disimpan. Hash disimpan, dan admin domain dapat mengaksesnya. Bahkan, Anda bahkan dapat mengonfigurasi AD untuk menyimpan kata sandi dalam enkripsi yang dapat dibalik jika Anda menginginkannya.

Tidak ada yang dapat Anda hindari dari admin domain, dalam AD. Jika Anda menghapus hak atau bahkan Menolak, admin domain dapat mengambil kepemilikan dan menambahkan diri kembali. Ini berbeda dengan NDS Novell, di mana seorang admin dari OU dapat secara tidak dapat dibatalkan mengunci admin tingkat yang lebih tinggi.

Yang terbaik yang dapat Anda lakukan adalah menggunakan atribut yang ada atau baru, dan membatasi akses. Anda dapat mencegah admin keluar dari sana, dan Anda dapat mengaktifkan audit pada atribut sehingga setiap akses atau perubahan izin dicatat.

mfinni
sumber
Saya menyimpan hash satu arah kata sandi khusus untuk aplikasi saya.
goodguys_activate
Ini milik sebagai komentar, karena tidak menjawab pertanyaan dengan cara apa pun.
MDMarra
Tandai - dua kalimat terakhir saya adalah jawaban saya untuk pertanyaan "Di mana saya menyimpan data sensitif dalam Active Directory?"
mfinni
@Maker - Itu masuk akal, dan ini adalah skenario yang sangat mirip dengan tautan yang diposting oleh Zoredache di atas. Itu adalah jawaban asli: gunakan atribut yang ada atau baru, dan batasi aksesnya. Saran tambahan saya, jika klien Anda berfokus pada keamanan, adalah juga mengaktifkan audit untuk atribut itu.
mfinni
@Maker - jika itu benar-benar hash satu arah, maka sudah cukup aman, kan?
mfinni