Mekanizma ve politikanın ayrılması - Separation of mechanism and policy

mekanizma ve politika ayrımı[1] bir tasarım ilke bilgisayar Bilimi. Mekanizmaların (bir sistem uygulamasının yetki operasyonların ve kaynakların tahsisi ) hangi operasyonların yetkilendirileceği ve hangi kaynakların tahsis edileceği konusunda kararların hangi politikalara göre yapılacağını dikte etmemeli (veya aşırı derecede kısıtlamamalıdır).

Bu, en yaygın olarak güvenlik mekanizmaları (kimlik doğrulama ve yetkilendirme) bağlamında tartışılır, ancak aslında çok daha geniş bir yelpazedeki kaynak tahsisi problemlerine (örn. CPU planlama, bellek ayırma, hizmet kalitesi ) ve iyi nesne soyutlaması genel sorusu.

Brinch Hansen için işletim sistemlerinde politika ve mekanizma ayrımı kavramını, RC 4000 çoklu programlama sistemi.[2] Artsy ve Livny, 1987 tarihli bir makalede, "mekanizma ve politika arasında aşırı bir ayrıma" sahip bir işletim sistemi tasarımı için bir yaklaşımı tartıştı.[3][4] 2000 tarihli bir makalede, Chervenak ve ark. ilkelerini tarif etti mekanizma tarafsızlığı ve politika tarafsızlığı.[5]

Gerekçe ve çıkarımlar

Mekanizma ve politikanın ayrılması, bir sistemin temel yaklaşımıdır. mikro çekirdek onu bir monolitik bir. Bir mikro çekirdekte, işletim sistemi hizmetlerinin çoğu, kullanıcı düzeyinde sunucu işlemleri tarafından sağlanır.[6] Bir için önemlidir işletim sistemi gerçek dünya güvenlik politikalarının mümkün olan en geniş yelpazesini desteklemek için yeterli mekanizmaları sağlama esnekliğine sahip olmak.[7]

Ürünün ömrü boyunca bir sistemin farklı türdeki kullanıcılar tarafından kullanılabileceği tüm farklı yolları öngörmek neredeyse imkansızdır. Bu, sabit kodlanmış herhangi bir politikanın, potansiyel kullanıcılar için muhtemelen yetersiz veya uygun olmadığı anlamına gelir. Mekanizma uygulamalarını politika özelliklerinden ayırmak, farklı uygulamaların aynı mekanizma uygulamalarını farklı politikalarla kullanmasını mümkün kılar. Bu, bu mekanizmaların daha geniş bir kullanıcı yelpazesinin ihtiyaçlarını daha uzun bir süre için daha iyi karşılayacağı anlamına gelir.

Uygulama mekanizmalarını değiştirmeden yeni politikaların etkinleştirilmesi mümkünse, bu tür politika değişikliklerinin maliyetleri ve riskleri büyük ölçüde azaltılabilir. İlk durumda, bu, yalnızca mekanizmaları ve politikalarını ayrı modüllere ayırarak gerçekleştirilebilir: bu politikayı yürüten modülü (örn. Programlama mekanizması) değiştirmeden bir politikayı (örn. CPU planlama politikası) belirleyen modülü değiştirerek, sistemin davranışını değiştirebilir. Ayrıca, uygulamaların ihtiyaçlarına bağlı olarak geniş veya değişken bir politika yelpazesinin öngörüldüğü durumlarda, politikaları belirlemek için bazı kod dışı araçlar oluşturmak mantıklıdır, yani politikalar yürütülebilir koda gömülmez ancak bağımsız bir açıklama olarak belirtilebilir. . Örneğin, dosya koruma politikaları (ör. Unix'ler kullanıcı / grup / diğer okuma / yazma / yürütme ) parametrize edilebilir. Alternatif olarak bir uygulama mekanizması, yeni bir politika belirtim dili için bir yorumlayıcı içerecek şekilde tasarlanabilir. Her iki durumda da, sistemlere genellikle ertelenmiş bir bağlanma mekanizması eşlik eder (ör. geç bağlama üzerinden yapılandırma seçenekleri yapılandırma dosyaları veya aracılığıyla çalışma zamanı programlanabilirliği API'ler ) ilke özelliklerinin sisteme dahil edilmesine veya müşteriye teslim edildikten sonra başka biriyle değiştirilmesine izin veren.

Mekanizma / politika ayrımının günlük bir örneği, kart anahtarları kilitli kapılara erişmek için. Mekanizmalar (manyetik kart okuyucular, uzaktan kumandalı kilitler, bir güvenlik sunucusuna bağlantılar) giriş politikasına herhangi bir sınırlama getirmez (hangi kişilerin hangi kapılara, hangi zamanlarda girmesine izin verilmelidir). Bu kararlar, (sırayla) muhtemelen oda erişim kuralları veritabanına başvurarak kararlarını veren merkezi bir güvenlik sunucusu tarafından alınır. Bir oda erişim veri tabanı güncellenerek belirli yetkilendirme kararları değiştirilebilir. Bu veritabanının kural şemasının çok sınırlayıcı olduğu kanıtlanırsa, temel mekanizmalar (okuyucular, kilitler ve bağlantılar) değiştirilmeden bırakılarak tüm güvenlik sunucusu değiştirilebilir.

Bunu fiziksel anahtarlar vermekle karşılaştırın: bir kapıyı kimin açabileceğini değiştirmek istiyorsanız, yeni anahtarlar vermeniz ve kilidi değiştirmeniz gerekir. Bu, kilit açma mekanizmalarını erişim politikalarıyla iç içe geçirir. Bir otel için bu, anahtar kartları kullanmaktan çok daha az etkilidir.

Ayrıca bakınız

Notlar

  1. ^ Butler W. Lampson ve Howard E. Sturgis. İşletim Sistemi Tasarımına İlişkin Düşünceler [1] ACM 19 (5) İletişimi: 251-265 (Mayıs 1976)
  2. ^ "Per Brinch Hansen • IEEE Bilgisayar Topluluğu". www.computer.org. Alındı 2016-02-05.
  3. ^ Miller, M. S. ve Drexler, K. E. (1988). "Pazarlar ve hesaplama: Agoric açık sistemler". Huberman, B.A. (Ed.). (1988), s. 133–176. Hesaplamanın Ekolojisi. Kuzey-Hollanda.
  4. ^ İddialı, Yeshayahu et al., 1987.
  5. ^ Chervenak 2000 s. 2
  6. ^ Raphael Finkel, Michael L. Scott, Artsy Y. ve Chang, H. [www.cs.rochester.edu/u/scott/papers/1989_IEEETSE_Charlotte.pdf Charlotte ile Deneyim: dağıtılmış bir işletim sisteminde basitlik ve işlev]. IEEE Trans. Yazılım Engng 15: 676-685; 1989. Purdue Üniversitesi, Deneysel Dağıtılmış Sistemler için Tasarım İlkeleri üzerine IEEE Çalıştayı'nda sunulan genişletilmiş özet; 1986.
  7. ^ R. Spencer, S. Smalley, P. Loscocco, M. Hibler, D. Andersen ve J. Lepreau Flask Güvenlik Mimarisi: Çeşitli Güvenlik Politikaları için Sistem Desteği Sekizinci USENIX Güvenlik Sempozyumu Bildirilerinde, sayfalar 123–139, Ağustos 1999.

Referanslar

Dış bağlantılar