NIST 800-53 REV 5 • SYSTEM AND SERVICES ACQUISITION
SA-8(13) — Minimized Security Elements
Implement the security design principle of minimized security elements in {{ insert: param, sa-08.13_odp }}.
CMMC Practice Mapping
No direct CMMC mapping
NIST 800-171 Mapping
No direct NIST 800-171 mapping
Related Controls
No related controls listed
Supplemental Guidance
The principle of minimized security elements states that the system does not have extraneous trusted components. The principle of minimized security elements has two aspects: the overall cost of security analysis and the complexity of security analysis. Trusted components are generally costlier to construct and implement, owing to the increased rigor of development processes. Trusted components require greater security analysis to qualify their trustworthiness. Thus, to reduce the cost and decrease the complexity of the security analysis, a system contains as few trustworthy components as possible. The analysis of the interaction of trusted components with other components of the system is one of the most important aspects of system security verification. If the interactions between components are unnecessarily complex, the security of the system will also be more difficult to ascertain than one whose internal trust relationships are simple and elegantly constructed. In general, fewer trusted components result in fewer internal trust relationships and a simpler system.
Practitioner Notes
Minimized security elements means keeping the security mechanisms themselves as small and focused as possible. The less code in your security-critical components, the less there is to audit, test, and potentially fail.
Example 1: When developing custom security modules (authentication, encryption wrappers), keep them focused on a single responsibility. An authentication module should only handle authentication — do not bundle logging, reporting, and configuration management into the same module.
Example 2: Prefer well-established, focused security libraries over rolling your own. Use proven cryptography libraries (libsodium, BouncyCastle) instead of implementing custom encryption. Use established authentication frameworks (ASP.NET Identity, Spring Security) instead of building your own token system.