Input and Output Device Security
Input and Output Device Security
All the mechanisms aimed at securing the computer system without the system itself.
intervene in the same is encompassed in what we can call external security.
Physical security. It encompasses those mechanisms that prevent physical agents from
destruction of the existing information in the system; among them we can mention fire,
smoke, flooding, electrical discharges, magnetic fields, physical access of people
with not very good intention, etc.
Physical security
As we have already mentioned, it is about eliminating the possible dangers that originate from the
physical agents or the physical presence of unauthorized persons. To achieve this, we can
consider the following aspects:
Administration Security
Understand those mechanisms whose mission is to provide logical access to the system. This access
it can be done through a system terminal or from another system via
a communication network to which both systems are connected.
Access protection
It is a mechanism for controlling the attempts to enter or access the system,
in a way that allows the connection when a user requests it and hands over control
corresponding and reject the attempt in those cases where the identification of the supposed
user is not satisfactory.
The password, when typed in a terminal, both to access the system and for its
change does not appear on the screen as it does with the rest of the data that is entered, in order to
keep the secret of it. Furthermore, this word is recorded in the files of
system administration encoded or encrypted so that it is not easily recognizable by
the people.
· Cryptography.
· c) Reliability. In addition to the previous measures, other measures are usually taken to ensure the
Correct state of the information upon arrival at its destination. Problems may arise.
due to accidental causes, such as the influence of strong magnetic fields,
electrical disturbances, etc., as well as for reasons of intrusion in communications with
the end of destroying them or modifying them. Errors can also occur due to collisions between
messages on local networks and a countless number of other causes of diverse nature.
· To avoid all types of incidents, a small part is usually added to the information.
that will allow us to know whether the received data matches the sent data or not. The methods
The most commonly used to ensure reliability in data transmission are hardware mechanisms.
software that allows detecting errors occurring in a communication and even recovering
some of them. We will mention the following methods:
· Parity bit. It consists of adding a bit to each octet or word that is transmitted.
to achieve that the sum of ones is even (even parity) or odd (odd parity). With
this method detects errors by varying one bit or an odd number of them without causing
detect variations of an even number of bits. It is known that most errors that occur
They produce under normal conditions only affect one bit.
· 2. Hamming Codes. They add several control bits to the byte or word to be transmitted,
in such a way that they detect errors of one or more bits and correct them.
· 3. Cyclic Redundancy Check (CRC). If it is expected that the expected damages in a
transmission should not be of a single bit in an octet or word, but in a sequence of them, you
you can use an algorithm that allows performing a sum called a checksum
(Checksum) and apply the method called cyclic redundancy during transmission, of
so that when this ends, the same addition algorithm is repeated at the destination,
checking if the final value of the sum is the same.
INTERNAL SECURITY
All the mechanisms aimed at securing the computer system, with the system itself being the
what controls these mechanisms falls under what we can call security
internal.
· Processor security
The processor protection mechanisms are several and have been studied, and we will now proceed to
list:
Memory security
These are mechanisms to prevent a user from accessing another's information without
authorization. Among them, we will mention two:
In addition, methods such as using a parity bit or the are employed for memory.
checksum already mentioned.
· File Security
A file must have the required information and be available at the moment a user
I needed it. One must keep in mind the need to ensure such a circumstance and for that, it is necessary to
they usually carry out the following actions:
· Backups.
It consists of making a copy of the content every once in a while (hour, day, week...)
from the files, so that if they are destroyed, it is possible to recover the data.
starting from the last of the copies. The operation of making backups, as well as the
data recovery from them is usually done through programs for
utility of the operating system.
The reliability of backups will fundamentally depend on the frequency with which
that are carried out and of the activity index of the files, that is, of the pace at which they
update.
· LOG files.
The contents of the files must be protected from possible unauthorized access. Among the
danger of allowing all users access to any file, and the rigidity that each
users can only access their own, the protection system must allow access from
controlled manner, according to predefined rules and with the corresponding authorizations.
Each user, upon starting the session in a system after their identification, is assigned by the
protection system of a domain composed of a series of resources and operations
allowed, for example, a series of files to access, not having permission to
access to the rest of the files. In general, operating systems store the information
relative to the domains in what is called the domain matrix, whose rows indicate the
existing domains and the columns the resources. Each element of the matrix indicates the right
to use the corresponding resource in the domain.
If the previous matrix has little information, another type of storage is resorted to.
information about domains, consisting of associating each resource with a list of domains that
they can use it, being called this access list vector. Another one can also be obtained.
vector where each domain is assigned a list of resources it can access,
called in this case list of capabilities.
In all these cases, the management of checklists is done through user commands.
restricted, being these available only to the system administrator.
Protection domains
A protection domain is a set of pairs (object, operations); each pair identifies
an object and the operations permitted on it.
At every moment, each process runs within a protection domain. The processes
they can change from one domain to another over time; how this happens depends a lot on the system. In
UNIX associates a domain with each user+group; given a user and the group to which
belongs, one can build a list of all the objects that can be accessed and with what
operations. When a user runs a program stored in a file of
property of another user B, the process can execute within the protection domain of A
or B, depending on the domain bit or SETUSERID bit of the file. This mechanism is used
with some utilities. For example, the passwd program must have privileges that a user
common does not have the ability to modify the file where the keys are stored. What is done
the file /bin/passwd that contains the program is owned by the superuser, and has
the SETUSERID is enabled. This scheme is dangerous: a process can transition from one state
in which one has little power to another in which one has absolute power (there are no middle terms).
Any error in a program like passwd can mean a big hole in security
of the system. When a call is made to the system, a change also occurs
domain, since the call is executed in protected mode.
Access matrix
Now, how does the system manage to keep track of who can access what?
objects and with what operations? Conceptually at least, we can see this model of
protection as a large access matrix.
For most users, the file system is the most visible aspect.
The domain changes that a process can make can also be integrated into
the matrix, treating domains as other objects, with an operation: enter.
The problem is how to store this matrix. Since it is a sparse matrix (many
of the elements are empty), it is not practical to represent it as a matrix
properly. We could use a table with triples (domain, object, rights). If a
a process within a domain D attempts to perform an operation M on an object O,
We are looking for (D, O, C), and we verify if M belongs to C. In any case, the table is
large, and the scheme is not very efficient. Additionally, if an object can be, by
example, read by everyone, must have entries for each domain.
Access lists
Alternatively, we can store the matrix by columns (discarding, by the way, the
empty entries). That is, each object is associated with a list of pairs (domain, rights).
It is what is known as an access list or ACL. If we think about Unix files, we can
store this list in the node-i of each file, and it would be something like
Windows NT uses access lists with as much detail as you want: for any
user or group, any subset of rights for a file can be specified, of
between {RWXDPO}. .
AFS also uses ACL, but the granularity is at the directory level, not the file level. The
Permissions that can be assigned to a directory are: Lookup, Insert, Delete, Administer, Read.
Write, Lock. The last three are valid for the files in the directory.
When capabilities are used, it is usual that, in order to carry out an operation
objectO, the process executes the operation specifying a pointer to the capacity
corresponding to the object, instead of a pointer to the object. The overlapping possession of the capacity
on behalf of the process means that it has the rights indicated therein. Therefore,
Obviously, it must be avoided that processes can "forge" capabilities.
One possibility is to keep the capability lists within the operating system, and that the
processes only handle pointers to the capabilities, not the capabilities themselves. Another
possibility is to encrypt the capabilities with a key known by the system, but not by the
user. This approach is particularly suitable for distributed systems, and is used in
Amoeba.
One problem with capacities is that it can be difficult to revoke granted rights.
Amoeba, each object is associated with a large random number, which is also present in
capacity. When a capacity is presented, both numbers must match. In this
In order to revoke the rights already granted, the number associated with the object is changed.
Problem: selective revocation is not possible. Revocations with ACLs are simpler and
more flexible.