a. Nguyên lý tối thiểu quyền ưu tiên (Least Privilege)
Nguyên lý tối thiểu quyền ưu tiên phát biểu rằng chủ thể sử dụng (người sử dụng hoặc chương trình máy tính) chỉ nên được trao những quyền ưu tiên mà họ thật sự cần thiết để hoàn thành tác vụ của mình.
Nếu chủ thể sử dụng không cần đến quyền truy cập thì chủ thể sử dụng sẽ không có quyền đó. Chức năng của chủ thể sử dụng là kiểm soát sự gán quyền. Nếu 1 hành động cụ thể đòi hỏi rằng các quyền truy cập của chủ thể sử dụng cần được tăng thêm thì các quyền phụ trội này nên được gỡ bỏ ngay lập tức sau khi hoàn thành tác vụ.
Tối thiểu quyền ưu tiên cũng tương tự như quy tắc “cần thì biết”: Nếu chủ thể sử dụng không cần truy cập đến đối tượng mà vẫn thực hiện được tác vụ của mình thì không cần có quyền truy cập đến đối tượng đó. Ví dụ như nếu chủ thể sử dụng cần viết thêm vào đối tượng chứ không phải là thay đổi thông tin đã chứa trong đối tượng thì nó nên được trao quyền viết thêm chứ không phải là quyền viết.
Trên thực tế, đa số các hệ thống không có được độ phân chia chi tiết của các quyền ưu tiên và các quyền cho phép được yêu cầu để vận dụng nguyên lý này 1 cách chính xác. Khi đó các nhà thiết kế các hệ thống an toàn sẽ vận dụng nguyên lý này 1 cách tốt nhất có thể được. Trong các hệ thống như vậy, những hậy quả của các vấn đề an toàn sẽ thường trở nên nghiêm trọng hơn so với các các hệ thống áp dụng chặt chẽ nguyên lý tối thiểu quyền ưu tiên
VD: Người dùng thuộc phòng kế hoạch có các quyền đọc, ghi, chỉnh sửa các dữ liệu về tài chính.
Người dùng phòng hành chính chỉ đc quyền đọc các dữ liệu liên quan đến hồ sơ nhân viên.
Người dùng Apache trong hệ thống unix chỉ đc quyền thực thi các tiến trình Apache.
b. Nguyên lý ngầm định đảm bảo hoạt động (fail-safe defaults):
Nguyên lý ngầm định bảo đảm hoạt động phát biểu rằng trừ phi chủ thể sử dụng được trao quyền truy cập (không ngầm định) đến đối tượng còn không thì nó bị từ chối truy cập đến đối tượng đó.
Nguyên lý này yêu cầu không cho phép truy cập ngầm định đến đối tượng. Bất cứ khi nào mà quyền truy cập, quyền ưu tiên hay thuộc tính liên quan đến an toàn nào không được cấp thì chúng nên bị từ chối. Hơn thế nữa, nếu chủ thể sử dụng không thể hoàn thành hoạt động hay tác vụ của mình mà cần trao thêm quyền thì sau khi thực hiện hoạt động hay tác vụ đó, cần phải gỡ bỏ những thay đổi đã được thực hiện để quay lại trạng thái an toàn như trước đó rồi mới kết thúc công việc. Việc đảm bảo cho hệ thống có khả năng thực hiện hoạt động hay tác vụ như vật được gọi là khả năng thất bại an toàn hay Fail-Safe của hệ thống đó. Bằng cách này thì thậm chí chương trình có thất bại, hệ thống vẫn ở trạng thái AT hoạt động.
VD: Một ví dụ trong đời sống thực. Thang máy sẽ “cư xử” thế nào khi bị mất điện đột ngột? Khi thang máy bị mất điện hay những hỏng hóc khác xảy ra thì nó có khả năng tự động nắm và chốt vào dây cáp treo nó để không thể bị rơi tuột. Thiết kế như vậy là để đề phòng đôi khi bất ngờ xảy ra mất điện.
VD: Firewall lọc gói, thường luật mặc định sẽ được cấu hình từ chối tất cả các gói tin.
Firewall được thiết kế để ngăn những luồng thông tin độc hại đi qua. Nếu 1 khi nào đó mà tường lửa không hoạt động thì nó từ chối truy cập một cách ngầm định để không cho luồng thông tin nào đi vào. Điều này có thể sẽ gây ra bất tiện cho người sử dụng nhưng ít nhất hệ thống mạng được bảo vệ bởi tường lửa sẽ không phải là không an toàn. Nếu tường lửa khi không hoạt động mà lại quyết định cho phép tất cả các luồng thông tin đi qua thì những kẻ tấn công sẽ cố gắng làm cho tường lửa ngừng hoạt động và tấn công vào mạng bên trong.
c. Nguyên lý thiết kế tiết kiệm và đơn giản (economy of mechanism):
Nguyên lý thiết kế tiết kiệm và đơn giản phát biểu rằng các cơ chế an toàn nên càng được thiết kế đơn giản càng tốt.
Nếu thiết kế và cài đặt đơn giản thì khả năng có lỗi là ít hơn. Khi đó quá trình thử và kiểm tra sẽ ít phức tạp hơn vì số bộ phận và số trường hợp cần phải thử sẽ ít hơn. Các cơ chế phức tạp thường đặt ra những giả thiết về hệ thống và môi trường mà chúng hoạt động trong đó. Nếu những giả thiết này mà không đúng thì những vấn đề về an toàn có thể xảy ra.
VD: Giao thức finger truyền thông tin về người sử dụng hay hệ thống. Nhiều cài đặt trình khách giả sử rằng trả lời của trình chủ là đúng đắn. Tuy vậy nếu kẻ tấn công tạo ra một trình chủ sinh ra một dòng vô hạn các ký tự và trình khách finger kết nối đến nó thì trình khách phải in ra tất cả các ký tự và hậu quả là các tệp và đĩa ghi nhật ký có thể bị đầy tràn gây ra tấn công từ chối dịch vụ trên máy trạm truy vấn. d. Nguyên lý kiểm soát đầy đủ (complete mediation):
Nguyên lý kiểm soát đầy đủ yêu cầu sao cho tất cả các truy cập đến các đối tượng đều được kiểm tra để đảm bảo rằng chúng là được cho phép.
Chủ thể sử dụng muốn đọc 1 đối tượng hệ điều hành thì cần bị kiểm soát hoạt động. Đầu tiên, xác định xem chủ thể sử dụng có được phép truy cập đối tượng không. Nếu được phép thì cung cấp các tài nguyên cho đọc. Nếu chủ thể sử dụng cố gắng đọc đối tượng 1 lần nữa thì hệ thống nên kiểm tra xem chủ thể có vẫn được phép đọc đối tượng hay không. Đa số các hệ thống thường không kiểm tra lại lần thứ 2. Chúng thường lưu tạm các kết quả của lần kiểm tra đầu và lần truy cập thứ 2 sẽ dựa vào các kết quả lưu trữ tạm này.
Nguyên lý này tránh việc kiểm tra có một lần mà lại đọc nhiều lần
VD: Dịch vụ tên miền DNS lưu trữ tạm thông tin ánh xạ các tên máy trạm thành các địa chỉ IP. Nếu kẻ tấn công có khả năng “hủy hoại” lưu trữ tạm bằng cách cấy các bản ghi kết hợp địa chỉ IP ma với một tên thì một máy trạm sẽ định tuyến các kết nối đến máy trạm ở xa một cách không chính xác.
e. Nguyên lý thiết kế mở (open design):
Nguyên lý thiết kế mở phát biểu rằng an toàn của một cơ chế không nên phụ thuộc vào bí mật của thiết kế hay cài đặt của nó.
Những nhà thiết kế và cài đặt 1 chương trình phải không được phụ thuộc vào bí mật của các chi tiết thiết kế và cài đặt của họ để đảm bảo an toàn. Những kẻ tấn công có có thể khám phá ra các bản mã nguồn. Sức mạnh an toàn không thể dựa vào sự khó hiểu mà phải dựa vào sự khó giải.
Các hệ thống và phần mềm mật mã đảm bảo an toàn dựa trên việc sử dụng các thuật toán mật mã để bảo vệ dữ liệu người dùng và bí mật các thuật toán này. Trên thực tế, bí mật như vậy không làm tăng độ an toàn của hệ thống. Giữ bí mật các mật khẩu và khóa thì không vi phạm nguyên lý thiết kế mở vì đó không phải là thuật toán. Tuy nhiên giữ kín các thuật toán mã hóa và giải mã lại vi phạm nguyên lý này.
VD: So sánh tính an toàn của các hệ thống có thiết kế mở như OpenBSD, FreeBSD và Linux với các hệ thống có thiết kế đóng như Microsoft Windows và Sun Solaris.
f. Nguyên lý tách nhỏ quyền ưu tiên (separation of privilege):
Nguyên lý tách nhỏ quyền ưu tiên phát biểu rằng một hệ thống không nên trao quyền chỉ dựa trên một điều kiện đơn lẻ.
Nguyên lý này tương đương với nguyên lý tách nhỏ nhiệm vụ trong đời sống thực. Một công việc muốn được thống quan thì phải được ký bởi hai cán bộ của công ty. Nếu một trong hai người không ký thì kiểm tra sẽ là không hợp lệ. Hai điều kiện chính là các chữ ký của cả hai cán bộ.
Tương tự như vậy các hệ thống và chương trình cấp quyền truy cập đến các tài nguyên cũng nên làm như vậy tức là chỉ khi có nhiều hơn một điều kiện thỏa mãn thì mới cấp quyền truy cập. Điều này cung cấp sự kiểm soát chi tiết hơn trên tài nguyên và cũng tăng thêm mức đảm bảo cho truy cập có thẩm quyền.
VD: Trên 1 số phiên bản dựa vào Berkeley của hệ điều hành UNIX, người dùng không được phép thay đổi tài khoản của họ thành tài khoản root, trừ khi bắt buộc phải đáp ứng được 2 điều kiện: 1 là người dùng biết mật khẩu của root, và 2 là người dùng thuộc nhóm có GID 0. Nếu chỉ thỏa mãn 1 trong 2 điều kiện thì không được truy cập root.
g. Nguyên lý cơ chế tối thiểu chia sẻ (least common mechanism):
Nguyên lý cơ chế tối thiểu chia sẻ phát biểu rằng các cơ chế được sử dụng để truy cập đến các tài nguyên không nên cho chia sẻ.
Chia sẻ tài nguyên cung cấp 1 kênh mà qua đó thông tin có thể được truyền đi và chính vì thế mà sự chia sẻ như vậy nên được tối thiểu hóa.
Trên thực tế, nếu hệ điều hành cung cấp hỗ trợ đối với các máy ảo hệ điều hành thì sẽ bắt buộc tuân thủ nguyên lý này tự động đến một mức độ nào đó. Trong trường hợp khác nó sẽ cung cấp không gian nhớ ảo mà không hỗ trợ đầy đủ vì hệ thống tệp sẽ bị chia sẻ giữa 1 tiến trình.
VD: Một Web Site cung cấp các dịch vụ thương mại điện tử đối với một công ty lớn. Những kẻ tấn công muốn tước đoạt thu nhập của công ty mà nó có được từ Web Site này.Chúng làm tràn ngập Site bằng các thông báo và làm ngừng các dịch vụ thương mại điện tử. Những khách hàng chính đáng không thể truy cập Web Site và hậu quả là làm cho kinh doanh của họ bị dẫn đi đường khác. Sự chia sẻ Internet với các Site của những kẻ tấn công làm cho tấn công thành công. Biện pháp thích hợp là hạn chế những kẻ tấn công truy cập đến phân đoạn Internet kết nối đếnWeb Site. Các kỹ thuật thực hiện việc này là sử dụng các trình chủ đại diện (Proxy Servers) chẳng hạn như Purdue SYN intermediary hay van điều khiển luợng. Trình chủ đại diện Purdue SYN intermediary hướng đến các kết nối đáng nghi ngờ còn trình chủ đại diện van điều khiển lưu lượng làm giảm tải trên phân đoạn liên quan của mạng một cách không phân biệt.
h. Nguyên lý thuận tiện truy cập (psychological acceptability):
Nguyên lý thuận tiện truy cập phát biểu rằng các cơ chế an toàn không nên làm cho tài nguyên khó truy cập hơn so với trường hợp mà các cơ chế an toàn không có mặt.
Cấu hình và thực hiện chương trình nên càng dễ và càng trực quan càng tốt và mọi đầu ra nên rõ ràng, trực tiếp và có ích. Nếu phần mềm liên quan đến an toàn mà quá phức tạp khi cấu hình thì người quản trị hệ thống có thể vô tình thiết lập phần mềm theo một cách không an toàn. Cũng tương tự như vậy, các chương trình của người dùng liên quan đến an toàn phải dễ sử dụng và phải đưa ra các thông báo dễ hiểu. Ví dụ như nếu mật khẩu bị từ chối thì chương trình thay đổi mật khẩu nên đưa ra các thông báo tại sao nó lại bị từ chối chứ không nên đưa ra 1 thông báo lỗi khó hiểu. Nếu tệp cấu hình có tham số không chính xác thì thông báo lỗi nên diễn tả tham số chính xác.
Trên thực tế, nguyên lý thuận tiện truy cập được diễn giải để nói rằng cơ chế an toàn có thể phải cộng thêm gánh nặng phụ trội nào đó nhưng gánh nặng đó phải tối thiểu và hợp lý.
VD: Khi người sử dụng cung cấp mật khẩu sai trong khi đăng nhập thì hệ thống nên từ chối lần thử đó với thông báo nói rằng đăng nhập thất bại. Nếu nói rằng mật khẩu là không đúng thì người dùng sẽ biết rằng tên tài khoản là phù hợp rồi. Nếu người sử dụng,là kẻ tấn công bất hợp pháp thì anh ta sẽ biết tên của tài khoản, việc còn lại là cố thử đoán mật khẩu nữa mà thôi.
i. Nguyên lý phân tầng bảo vệ (defense in depth):
Nguyên lý phân tầng bảo vệ cho rằng không nên chỉ dựa vào một tầng bảo vệ bất kỳ để đạt được an toàn. Đa cơ chế an toàn có thể giúp cho đạt được an toàn cao hơn là chỉ có đơn cơ chế an toàn.
VD: Trong ModSecurity của Apache có cơ chế bảo vệ 3 lớp: Lớp ngoài, lớp giữa, lớp trong.
j. Nguyên lý kiểm tra mọi giả thiết an toàn (question assumptions):
Nguyên lý kiểm tra hay thẩm tra mọi giả thiết an toàn thường kiểm tra lại tất cả các giả thiết về các tác nhân đe dọa, tài sản máy tính và đặc biệt là môi trường của hệ thống.
Thực hiện nguyên lý này để tránh những giả thiết không chính xác hoặc trở nên không còn chính xác nữa nhưng vẫn được coi là chính xác để dựa trên đó đưa ra những quyết định tiếp theo về thiết kế hệ thống an toàn. Điều này dẫn đến cho dù thiết kế và cài đặt an toàn vẫn có thể dẫn đến việc làm mất an toàn của hệ thống vì một số giả thiết mà nó dựa trên đã không còn chính xác nữa.
Ngoài ra, do công nghệ tiến hóa và phát triền làm phát sinh thêm những mỗi đe dọa mới và làm thay đổi những giả thiết về chúng. Những giả thiết mới cần được cập nhật kịp thời, bổ sung cho quá trình thiết kế hệ thống an toàn.
VD: Các phương tiện máy tính với khả năng tính toán ngày càng tăng lên và hiện đại hơn; hoạt động mạng phức tạp hơn với tốc độ cao hơn cả về phần cứng và phần mềm cũng như môi trường hệ thống cũng tiến hóa theo chiều hướng ngày càng phức tạp, đa dạng là những giả thiết an toàn có sự thay đổi và cần phải xem xét lại mỗi khi tiến hành thiết kế hệ thốn an toàn.
Nguyên lý tối thiểu quyền ưu tiên phát biểu rằng chủ thể sử dụng (người sử dụng hoặc chương trình máy tính) chỉ nên được trao những quyền ưu tiên mà họ thật sự cần thiết để hoàn thành tác vụ của mình.
Nếu chủ thể sử dụng không cần đến quyền truy cập thì chủ thể sử dụng sẽ không có quyền đó. Chức năng của chủ thể sử dụng là kiểm soát sự gán quyền. Nếu 1 hành động cụ thể đòi hỏi rằng các quyền truy cập của chủ thể sử dụng cần được tăng thêm thì các quyền phụ trội này nên được gỡ bỏ ngay lập tức sau khi hoàn thành tác vụ.
Tối thiểu quyền ưu tiên cũng tương tự như quy tắc “cần thì biết”: Nếu chủ thể sử dụng không cần truy cập đến đối tượng mà vẫn thực hiện được tác vụ của mình thì không cần có quyền truy cập đến đối tượng đó. Ví dụ như nếu chủ thể sử dụng cần viết thêm vào đối tượng chứ không phải là thay đổi thông tin đã chứa trong đối tượng thì nó nên được trao quyền viết thêm chứ không phải là quyền viết.
Trên thực tế, đa số các hệ thống không có được độ phân chia chi tiết của các quyền ưu tiên và các quyền cho phép được yêu cầu để vận dụng nguyên lý này 1 cách chính xác. Khi đó các nhà thiết kế các hệ thống an toàn sẽ vận dụng nguyên lý này 1 cách tốt nhất có thể được. Trong các hệ thống như vậy, những hậy quả của các vấn đề an toàn sẽ thường trở nên nghiêm trọng hơn so với các các hệ thống áp dụng chặt chẽ nguyên lý tối thiểu quyền ưu tiên
VD: Người dùng thuộc phòng kế hoạch có các quyền đọc, ghi, chỉnh sửa các dữ liệu về tài chính.
Người dùng phòng hành chính chỉ đc quyền đọc các dữ liệu liên quan đến hồ sơ nhân viên.
Người dùng Apache trong hệ thống unix chỉ đc quyền thực thi các tiến trình Apache.
b. Nguyên lý ngầm định đảm bảo hoạt động (fail-safe defaults):
Nguyên lý ngầm định bảo đảm hoạt động phát biểu rằng trừ phi chủ thể sử dụng được trao quyền truy cập (không ngầm định) đến đối tượng còn không thì nó bị từ chối truy cập đến đối tượng đó.
Nguyên lý này yêu cầu không cho phép truy cập ngầm định đến đối tượng. Bất cứ khi nào mà quyền truy cập, quyền ưu tiên hay thuộc tính liên quan đến an toàn nào không được cấp thì chúng nên bị từ chối. Hơn thế nữa, nếu chủ thể sử dụng không thể hoàn thành hoạt động hay tác vụ của mình mà cần trao thêm quyền thì sau khi thực hiện hoạt động hay tác vụ đó, cần phải gỡ bỏ những thay đổi đã được thực hiện để quay lại trạng thái an toàn như trước đó rồi mới kết thúc công việc. Việc đảm bảo cho hệ thống có khả năng thực hiện hoạt động hay tác vụ như vật được gọi là khả năng thất bại an toàn hay Fail-Safe của hệ thống đó. Bằng cách này thì thậm chí chương trình có thất bại, hệ thống vẫn ở trạng thái AT hoạt động.
VD: Một ví dụ trong đời sống thực. Thang máy sẽ “cư xử” thế nào khi bị mất điện đột ngột? Khi thang máy bị mất điện hay những hỏng hóc khác xảy ra thì nó có khả năng tự động nắm và chốt vào dây cáp treo nó để không thể bị rơi tuột. Thiết kế như vậy là để đề phòng đôi khi bất ngờ xảy ra mất điện.
VD: Firewall lọc gói, thường luật mặc định sẽ được cấu hình từ chối tất cả các gói tin.
Firewall được thiết kế để ngăn những luồng thông tin độc hại đi qua. Nếu 1 khi nào đó mà tường lửa không hoạt động thì nó từ chối truy cập một cách ngầm định để không cho luồng thông tin nào đi vào. Điều này có thể sẽ gây ra bất tiện cho người sử dụng nhưng ít nhất hệ thống mạng được bảo vệ bởi tường lửa sẽ không phải là không an toàn. Nếu tường lửa khi không hoạt động mà lại quyết định cho phép tất cả các luồng thông tin đi qua thì những kẻ tấn công sẽ cố gắng làm cho tường lửa ngừng hoạt động và tấn công vào mạng bên trong.
c. Nguyên lý thiết kế tiết kiệm và đơn giản (economy of mechanism):
Nguyên lý thiết kế tiết kiệm và đơn giản phát biểu rằng các cơ chế an toàn nên càng được thiết kế đơn giản càng tốt.
Nếu thiết kế và cài đặt đơn giản thì khả năng có lỗi là ít hơn. Khi đó quá trình thử và kiểm tra sẽ ít phức tạp hơn vì số bộ phận và số trường hợp cần phải thử sẽ ít hơn. Các cơ chế phức tạp thường đặt ra những giả thiết về hệ thống và môi trường mà chúng hoạt động trong đó. Nếu những giả thiết này mà không đúng thì những vấn đề về an toàn có thể xảy ra.
VD: Giao thức finger truyền thông tin về người sử dụng hay hệ thống. Nhiều cài đặt trình khách giả sử rằng trả lời của trình chủ là đúng đắn. Tuy vậy nếu kẻ tấn công tạo ra một trình chủ sinh ra một dòng vô hạn các ký tự và trình khách finger kết nối đến nó thì trình khách phải in ra tất cả các ký tự và hậu quả là các tệp và đĩa ghi nhật ký có thể bị đầy tràn gây ra tấn công từ chối dịch vụ trên máy trạm truy vấn. d. Nguyên lý kiểm soát đầy đủ (complete mediation):
Nguyên lý kiểm soát đầy đủ yêu cầu sao cho tất cả các truy cập đến các đối tượng đều được kiểm tra để đảm bảo rằng chúng là được cho phép.
Chủ thể sử dụng muốn đọc 1 đối tượng hệ điều hành thì cần bị kiểm soát hoạt động. Đầu tiên, xác định xem chủ thể sử dụng có được phép truy cập đối tượng không. Nếu được phép thì cung cấp các tài nguyên cho đọc. Nếu chủ thể sử dụng cố gắng đọc đối tượng 1 lần nữa thì hệ thống nên kiểm tra xem chủ thể có vẫn được phép đọc đối tượng hay không. Đa số các hệ thống thường không kiểm tra lại lần thứ 2. Chúng thường lưu tạm các kết quả của lần kiểm tra đầu và lần truy cập thứ 2 sẽ dựa vào các kết quả lưu trữ tạm này.
Nguyên lý này tránh việc kiểm tra có một lần mà lại đọc nhiều lần
VD: Dịch vụ tên miền DNS lưu trữ tạm thông tin ánh xạ các tên máy trạm thành các địa chỉ IP. Nếu kẻ tấn công có khả năng “hủy hoại” lưu trữ tạm bằng cách cấy các bản ghi kết hợp địa chỉ IP ma với một tên thì một máy trạm sẽ định tuyến các kết nối đến máy trạm ở xa một cách không chính xác.
e. Nguyên lý thiết kế mở (open design):
Nguyên lý thiết kế mở phát biểu rằng an toàn của một cơ chế không nên phụ thuộc vào bí mật của thiết kế hay cài đặt của nó.
Những nhà thiết kế và cài đặt 1 chương trình phải không được phụ thuộc vào bí mật của các chi tiết thiết kế và cài đặt của họ để đảm bảo an toàn. Những kẻ tấn công có có thể khám phá ra các bản mã nguồn. Sức mạnh an toàn không thể dựa vào sự khó hiểu mà phải dựa vào sự khó giải.
Các hệ thống và phần mềm mật mã đảm bảo an toàn dựa trên việc sử dụng các thuật toán mật mã để bảo vệ dữ liệu người dùng và bí mật các thuật toán này. Trên thực tế, bí mật như vậy không làm tăng độ an toàn của hệ thống. Giữ bí mật các mật khẩu và khóa thì không vi phạm nguyên lý thiết kế mở vì đó không phải là thuật toán. Tuy nhiên giữ kín các thuật toán mã hóa và giải mã lại vi phạm nguyên lý này.
VD: So sánh tính an toàn của các hệ thống có thiết kế mở như OpenBSD, FreeBSD và Linux với các hệ thống có thiết kế đóng như Microsoft Windows và Sun Solaris.
f. Nguyên lý tách nhỏ quyền ưu tiên (separation of privilege):
Nguyên lý tách nhỏ quyền ưu tiên phát biểu rằng một hệ thống không nên trao quyền chỉ dựa trên một điều kiện đơn lẻ.
Nguyên lý này tương đương với nguyên lý tách nhỏ nhiệm vụ trong đời sống thực. Một công việc muốn được thống quan thì phải được ký bởi hai cán bộ của công ty. Nếu một trong hai người không ký thì kiểm tra sẽ là không hợp lệ. Hai điều kiện chính là các chữ ký của cả hai cán bộ.
Tương tự như vậy các hệ thống và chương trình cấp quyền truy cập đến các tài nguyên cũng nên làm như vậy tức là chỉ khi có nhiều hơn một điều kiện thỏa mãn thì mới cấp quyền truy cập. Điều này cung cấp sự kiểm soát chi tiết hơn trên tài nguyên và cũng tăng thêm mức đảm bảo cho truy cập có thẩm quyền.
VD: Trên 1 số phiên bản dựa vào Berkeley của hệ điều hành UNIX, người dùng không được phép thay đổi tài khoản của họ thành tài khoản root, trừ khi bắt buộc phải đáp ứng được 2 điều kiện: 1 là người dùng biết mật khẩu của root, và 2 là người dùng thuộc nhóm có GID 0. Nếu chỉ thỏa mãn 1 trong 2 điều kiện thì không được truy cập root.
g. Nguyên lý cơ chế tối thiểu chia sẻ (least common mechanism):
Nguyên lý cơ chế tối thiểu chia sẻ phát biểu rằng các cơ chế được sử dụng để truy cập đến các tài nguyên không nên cho chia sẻ.
Chia sẻ tài nguyên cung cấp 1 kênh mà qua đó thông tin có thể được truyền đi và chính vì thế mà sự chia sẻ như vậy nên được tối thiểu hóa.
Trên thực tế, nếu hệ điều hành cung cấp hỗ trợ đối với các máy ảo hệ điều hành thì sẽ bắt buộc tuân thủ nguyên lý này tự động đến một mức độ nào đó. Trong trường hợp khác nó sẽ cung cấp không gian nhớ ảo mà không hỗ trợ đầy đủ vì hệ thống tệp sẽ bị chia sẻ giữa 1 tiến trình.
VD: Một Web Site cung cấp các dịch vụ thương mại điện tử đối với một công ty lớn. Những kẻ tấn công muốn tước đoạt thu nhập của công ty mà nó có được từ Web Site này.Chúng làm tràn ngập Site bằng các thông báo và làm ngừng các dịch vụ thương mại điện tử. Những khách hàng chính đáng không thể truy cập Web Site và hậu quả là làm cho kinh doanh của họ bị dẫn đi đường khác. Sự chia sẻ Internet với các Site của những kẻ tấn công làm cho tấn công thành công. Biện pháp thích hợp là hạn chế những kẻ tấn công truy cập đến phân đoạn Internet kết nối đếnWeb Site. Các kỹ thuật thực hiện việc này là sử dụng các trình chủ đại diện (Proxy Servers) chẳng hạn như Purdue SYN intermediary hay van điều khiển luợng. Trình chủ đại diện Purdue SYN intermediary hướng đến các kết nối đáng nghi ngờ còn trình chủ đại diện van điều khiển lưu lượng làm giảm tải trên phân đoạn liên quan của mạng một cách không phân biệt.
h. Nguyên lý thuận tiện truy cập (psychological acceptability):
Nguyên lý thuận tiện truy cập phát biểu rằng các cơ chế an toàn không nên làm cho tài nguyên khó truy cập hơn so với trường hợp mà các cơ chế an toàn không có mặt.
Cấu hình và thực hiện chương trình nên càng dễ và càng trực quan càng tốt và mọi đầu ra nên rõ ràng, trực tiếp và có ích. Nếu phần mềm liên quan đến an toàn mà quá phức tạp khi cấu hình thì người quản trị hệ thống có thể vô tình thiết lập phần mềm theo một cách không an toàn. Cũng tương tự như vậy, các chương trình của người dùng liên quan đến an toàn phải dễ sử dụng và phải đưa ra các thông báo dễ hiểu. Ví dụ như nếu mật khẩu bị từ chối thì chương trình thay đổi mật khẩu nên đưa ra các thông báo tại sao nó lại bị từ chối chứ không nên đưa ra 1 thông báo lỗi khó hiểu. Nếu tệp cấu hình có tham số không chính xác thì thông báo lỗi nên diễn tả tham số chính xác.
Trên thực tế, nguyên lý thuận tiện truy cập được diễn giải để nói rằng cơ chế an toàn có thể phải cộng thêm gánh nặng phụ trội nào đó nhưng gánh nặng đó phải tối thiểu và hợp lý.
VD: Khi người sử dụng cung cấp mật khẩu sai trong khi đăng nhập thì hệ thống nên từ chối lần thử đó với thông báo nói rằng đăng nhập thất bại. Nếu nói rằng mật khẩu là không đúng thì người dùng sẽ biết rằng tên tài khoản là phù hợp rồi. Nếu người sử dụng,là kẻ tấn công bất hợp pháp thì anh ta sẽ biết tên của tài khoản, việc còn lại là cố thử đoán mật khẩu nữa mà thôi.
i. Nguyên lý phân tầng bảo vệ (defense in depth):
Nguyên lý phân tầng bảo vệ cho rằng không nên chỉ dựa vào một tầng bảo vệ bất kỳ để đạt được an toàn. Đa cơ chế an toàn có thể giúp cho đạt được an toàn cao hơn là chỉ có đơn cơ chế an toàn.
VD: Trong ModSecurity của Apache có cơ chế bảo vệ 3 lớp: Lớp ngoài, lớp giữa, lớp trong.
j. Nguyên lý kiểm tra mọi giả thiết an toàn (question assumptions):
Nguyên lý kiểm tra hay thẩm tra mọi giả thiết an toàn thường kiểm tra lại tất cả các giả thiết về các tác nhân đe dọa, tài sản máy tính và đặc biệt là môi trường của hệ thống.
Thực hiện nguyên lý này để tránh những giả thiết không chính xác hoặc trở nên không còn chính xác nữa nhưng vẫn được coi là chính xác để dựa trên đó đưa ra những quyết định tiếp theo về thiết kế hệ thống an toàn. Điều này dẫn đến cho dù thiết kế và cài đặt an toàn vẫn có thể dẫn đến việc làm mất an toàn của hệ thống vì một số giả thiết mà nó dựa trên đã không còn chính xác nữa.
Ngoài ra, do công nghệ tiến hóa và phát triền làm phát sinh thêm những mỗi đe dọa mới và làm thay đổi những giả thiết về chúng. Những giả thiết mới cần được cập nhật kịp thời, bổ sung cho quá trình thiết kế hệ thống an toàn.
VD: Các phương tiện máy tính với khả năng tính toán ngày càng tăng lên và hiện đại hơn; hoạt động mạng phức tạp hơn với tốc độ cao hơn cả về phần cứng và phần mềm cũng như môi trường hệ thống cũng tiến hóa theo chiều hướng ngày càng phức tạp, đa dạng là những giả thiết an toàn có sự thay đổi và cần phải xem xét lại mỗi khi tiến hành thiết kế hệ thốn an toàn.