Abstrak: Artikel ini terutama memperkenalkan jenis model keamanan untuk aplikasi ASP.NET WEB, membandingkan kelebihan dan kekurangannya, dan mengusulkan mekanisme pemilihan.
Kata kunci: model keamanan simulasi submodel terpercaya/submodel delegasi aplikasi ASP.NET WEB
1. Kata Pengantar
Aplikasi ASP.NET WEB biasanya milik arsitektur multi-layer. Umumnya, struktur logis dapat dibagi menjadi lapisan presentasi, lapisan logika bisnis dan lapisan akses data. Untuk mengakses sumber daya aplikasi, otentikasi dan otorisasi identitas klien harus mencakup beberapa lapisan. tingkat. Artikel ini terutama membahas model keamanan akses sumber daya aplikasi SP.NET
2. Identifikasi akses sumber daya
Sumber daya umum yang disediakan secara eksternal oleh aplikasi WEB kepada klien meliputi:
Sumber daya server web, seperti halaman Web, layanan Web, dan sumber daya statis (halaman HTML dan gambar).
Sumber daya basis data, seperti data per pengguna atau data tingkat aplikasi.
Sumber daya jaringan, seperti sumber daya sistem file jarak jauh, dll.
Sumber daya sistem, seperti registri, log peristiwa, dan file konfigurasi, dll.
Klien mengakses sumber daya ini di seluruh lapisan aplikasi, dengan identitas yang mengalir melalui setiap lapisan. Identitas yang digunakan untuk akses sumber daya ini terdiri dari:
Identitas pemanggil asli Identitas pemanggil asli diperoleh dan selanjutnya mengalir melalui setiap lapisan sistem.
ID Proses Akses sumber daya lokal dan panggilan hilir dilakukan menggunakan ID proses saat ini. Kelayakan pendekatan ini bergantung pada batasan yang akan dilintasi, karena identitas proses harus dikenali oleh sistem target. Ini perlu dilakukan dengan salah satu dari dua cara berikut:
Lintas domain keamanan Windows dalam domain keamanan Windows yang sama - gunakan kepercayaan dan akun domain, atau gunakan nama pengguna dan kata sandi duplikat jika tidak ada hubungan kepercayaan.
Akun Layanan Pendekatan ini menggunakan akun layanan (tetap). Misalnya, untuk akses database, akun layanan mungkin diwakili oleh nama pengguna dan kata sandi SQL tetap oleh komponen yang tersambung ke database.
Ketika identitas Windows tetap diperlukan, aplikasi server Layanan Perusahaan harus digunakan.
Identitas Kustom Ketika akun Windows tidak tersedia, Anda dapat menggunakan Iprincipal dan Iidentity untuk membuat identitas Anda sendiri, yang dapat mencakup detail tentang konteks keamanan.
3. Model akses sumber daya
3.1 Model subsistem tepercaya
Seperti yang ditunjukkan pada Gambar 1, dalam model ini, konteks keamanan pemanggil asli tidak mengalir melalui layanan di tingkat sistem operasi, namun identitas tetap digunakan di lapisan layanan perantara untuk mengakses layanan dan sumber daya hilir. Model subsistem tepercaya mendapatkan namanya dari fakta bahwa layanan hilir (mungkin database) memercayai layanan hulu untuk mengotorisasi pemanggilnya. Pada contoh di Gambar 1, database memercayai otorisasi pemanggil oleh lapisan tengah, dan hanya mengizinkan penelepon yang berwenang untuk mengakses database menggunakan identitas tepercaya.
3.1.1 Mode akses sumber daya
Dalam model subsistem tepercaya, model akses sumber daya adalah sebagai berikut:
Mengautentikasi pengguna Memetakan pengguna ke peran Otorisasi berdasarkan keanggotaan peran Menggunakan identitas tepercaya tetap untuk mengakses sumber daya hilir
3.1.2 Identifikasi tetap
Identitas tetap yang digunakan untuk mengakses sistem hilir dan pengelola sumber daya, yang dapat diberikan menggunakan identitas proses atau akun layanan akun Windows yang telah ditetapkan sebelumnya. Untuk SQL Server Explorer, ini berarti Otentikasi Windows ke SQL Server.
Saat menggunakan identitas proses, Anda biasanya menggunakan identitas proses ASP.NET (defaultnya adalah akun ASPNET). Dalam aplikasi praktis, sering kali perlu mengubah akun ASPNET ke kata sandi yang lebih aman dan membuat akun Windows di komputer SQL Server yang cocok dengan akun proses ASP.NET. Metode spesifiknya adalah sebagai berikut:
Edit file Machine.config yang terletak di direktori %windr%Microsoft.NETFrameworkv1.1.4322CONFIG dan konfigurasi ulang atribut password pada elemen <processModel> ke nilai defaultnya <!-UserName="machine" password = "AutoGenerate" -->Ubah menjadi <!-UserName="machine" password="NewPassword" -->; atau gunakan alat ASPNET_setreg.exe untuk menyimpan nama pengguna dan kata sandi ke registri, dan ubah konfigurasi menjadi: < !- aktifkan="true" UserName="Registry:HKLMSOFTWAREYourAPPprocesssModelASPNET_SETREG,userName" password=" Registry:HKLMSOFTWAREYourAPPprocesssModelASPNET_SETREG,password " -->
Aplikasi lain menggunakan akun SQL yang ditunjuk (ditentukan oleh nama pengguna dan kata sandi dalam string koneksi) untuk mengakses SQL Server. Dalam hal ini, database harus dikonfigurasi untuk otentikasi SQL. String koneksi yang disimpan dalam file konfigurasi perlu dilindungi dengan enkripsi.
3.2 Model Simulasi/Delegasi
Seperti yang ditunjukkan pada Gambar 2, saat menggunakan model peniruan identitas/penghapusan, layanan atau komponen (biasanya terletak di lapisan layanan bisnis logis) menggunakan kemampuan peniruan identitas sistem operasi untuk meniru identitas klien sebelum mengakses layanan hilir berikutnya. Jika layanan berada di mesin yang sama, cukup menggunakan peniruan identitas, jika layanan hilir berada di mesin jarak jauh Anda juga perlu menggunakan delegasi, konteks keamanan akses sumber daya hilir adalah konteks klien.
3.3 Pilih model akses sumber daya
Perbandingan kedua model akses sumber daya ditunjukkan pada Tabel 1.
Bagian belakang simulasi model subsistem tepercaya/fungsi audit model yang didelegasikan memercayai layanan lapisan atas. Jika lapisan tengah disusupi, sumber daya bagian belakang rentan terhadap serangan. Layanan back-end dapat mengautentikasi dan mengotorisasi setiap penelepon dengan keamanan yang baik.
Skalabilitas mendukung pengumpulan koneksi dan memiliki skalabilitas yang baik. Tidak mendukung pengumpulan koneksi dan memiliki skalabilitas yang buruk.
Manajemen ACL back-end ACL dikonfigurasi untuk satu entitas, sehingga memerlukan lebih sedikit pekerjaan manajemen. Setiap pengguna harus diberikan tingkat akses yang sesuai. Ketika jumlah sumber daya back-end dan pengguna meningkat, pekerjaan manajemen menjadi rumit.
Tidak perlu mendelegasikan masalah teknis. Diperlukan delegasi. Kebanyakan penyedia layanan keamanan tidak mendukung delegasi.
Model subsistem tepercaya digunakan di sebagian besar aplikasi Internet serta aplikasi intranet besar, terutama karena model ini dapat mendukung skalabilitas dengan baik. Model simulasi/delegasi cenderung digunakan dalam sistem yang lebih kecil. Untuk aplikasi ini, skalabilitas bukanlah pertimbangan utama; pertimbangan utama adalah audit.