/** \page security Security Considerations for Libsmbios \section OS Authentication and Access Controls The basic design of the libsmbios library is that it reads the SMBIOS table from memory. The library is runs completely in userspace (eg. no Kernel driver is required.) On the basis of this, it is safe to say that the current design for libsmbios is already much safer and secure than some of the existing Dell code for SMBIOS that currently runs as a driver in the Kernel. As all of the facilities used for access to the SMBIOS tables are base-OS features, the security and availability of the tables are based upon OS privlege levels. For example, on Linux, access to the tables is through /dev/mem, and the OS security associated with this file is in effect. By default, on Linux access to /dev/mem is limited to the root superuser. On Windows, access is through the "\\Device\PhysicalMemory" file. Access to this file is limited to the Administrator superuser. \section smbios_a_s SMBIOS Access and Security. The SMBIOS tables are, on all currently shipping and planned Dell servers, a <b>read-only</b> table that is used by BIOS to pass information to the OS, Applications, and System Management utilities. In general, the SMBIOS tables provide access to no significantly privleged information, nor to any sensitive information. Because of this, access to SMBIOS presents no special security concerns. The information in the SMBIOS tables would not allow an attacker to disable the system nor do anything malicious that would not otherwise be possible. It is also important to note that the Libsmbios code does not significantly enable anything that is not already otherwise possible to do on Dell systems. There already exist other utilities that read and parse SMBIOS tables on both Linux and Windows. Libsmbios simply provides a unified library of code that can be used by different project that will help control code duplication and wasted effort by diverse teams working with this data. \section cmos_a_s_main CMOS Token Access and Security. \subsection what_cmos What are CMOS Tokens CMOS Tokens are a special type of item in the SMBIOS table. They have an SMBIOS structure number of 0xD4, which is a vendor-proprietary reserved number for vendors to use for special vendor data. CMOS Tokens provide a way for BIOS to notify management applications about the mapping between specific features and bits in CMOS that can be controlled to enable or disable that feature. For example, one specific bit in CMOS may control the BIOS "Numlock at boot" feature. If this bit is on, the Numlock key is on during boot, if this bit is off, numlock is off. CMOS Tokens provide a "pointer" to find which bits to modify. CMOS Tokens also control other features such as enable/disable PXE, boot order, enable NICs, etc. This method allows BIOS to move the physical location of these bits around in CMOS to best fit BIOS needs, while still allowing management applications to "find" where the bits are that need to be manipulated. \subsection cmos_a_s Access and Security CMOS Tokens are manipulated through a special IO-Port range. All IO operations are under access control of the OS. The OS will generally only allow access to these IO ports by the superuser account. It is important to note that restricting this information does not protect the user, as a malicious attacker that has administrative access can completely wipe CMOS or manipulate CMOS without any special knowledge or access that Libsmbios may add. */