CS 550-395 Security Concepts in Distributed Systems By HARISH R. KUMAR INDEX Page no 1. Introduction 2 2. What is Security? 3 3. Distributed System Authentication 4 4. Firewalls 5 5. Firewall components 6 6. Keys 8 7. Hash Algorithms 10 8. SSL 11 9. HMAC 12 10.Conclusion 13 11.References 14 1 Introduction Security is increasingly important in modern networked computer systems. Some organizations have a written security policy – generally a natural language specification containing statements such as workstations require password based login before use; personnel information must be accessible only to authorized users or the security administrator must investigate all occurrences of more than 5 login failures from a single source. In many cases the only specification is the actual implementation of security in terms of access control lists or the procedures followed by administrators. It is therefore very difficult to validate whether the security implementation in an organization conforms to a policy specification, assuming one exists. The situation may be further complicated when multiple different organizations cooperate via networked systems as they may have very different security policies, procedures and implementation platforms. Also the information relating to user permission may be held in different formats on the various systems. The system has to cater for large numbers of objects, distributed across multiple computers and a dynamic object population where object lifetimes can range from milliseconds to years. Most current work on security policy concentrates only on authorization policy that is essentially passive in that it is checked only when an operation is invoked to determine whether the operation should be permitted or forbidden. The active aspects of security policy, which define actions to be performed when events such as security violations are detected, are often specified as procedures to be followed by administrators or are coded into security components. A clear "formal" specification of security policy is needed that covers obligation policy (who is responsible for performing actions related to management and enforcement of security) as well as authorization policy (what operations a subject is permitted to perform on a resource). There is also a need to specify policies about permitted information flow and required information transformation c.f. military style mandatory access control based on labels. Grouping the subjects or target objects into domains, so a policy applies to all members of the domain, and grouping policies into roles helps to cater for large-scale systems. 2 What is Security? Different people mean different things when they talk about security, so it is probably good to start by setting some basic definitions. Some people talk about security in terms of computer viruses or hackers making a denial-of-service attack over the Internet. Others refer to privacy and encryption or authentication and authorization. Securing systems requires addressing all these areas. The elements of security fall under four headings: Authentication Is someone who he or she says he or she is? Is some object (such as a program) what it says it is? Does a message come from where it says it comes from? Can someone deny something he or she did (non-repudiation)? Authorization What is a specific person or group of people allowed to do? What is a specific program allowed to do? Encryption Who is allowed to see what information? System Protection (Confidentiality) This heading groups all protection against system damage. This includes virus protection, firewalls and proxies, protection against denial-of-service attacks, and steps taken to minimize accidental system failures. This protection can be partially addressed by applying authentication, authorization, and encryption techniques. A number of other facilities, such as virus-detection and removal software and virus-resistant systems environments (like Java) help with this. Today, there are point solutions that cover all these areas, but there are few provisions for building complete security architecture. For example, current Secure Socket Layer (SSL) implementations provide Internet server authentication and encryption but not user authentication, although the latest SSL standards (now in version 3.0) address this. 3 Various Kerberos-based private key mechanisms provide all three capabilities, but they are only viable when up to a few thousand user keys need to be administered. Distributed System Authentication 1.Message Content Authentication The ability to verify that the message received is exactly the message that was sent. Message Content Authentication can be achieved by applying a cryptographic checksum called a Message Authentication Code (MAC), or by applying a public-key digital signature. 2. Message Origin Authentication: The ability to verify that the actual sender of a received message is in fact the sender claimed in the message using a symmetric (secret key) cryptosystem, the receiver of a message can be assured of the validity of the sender since only the sender and receiver of the message possess the key used to encrypt the message. 3. General Identity Authentication: the ability to verify that a principal's identity is who is claimed. The other two types of authentication are message content authentication and message origin authentication. Authentication Methods Much discussion on the authentication for distributed computing had been made in the past and its methods are varied. Here below are the several simpler ones : I. Password Authentication This is usually the first line of defense against unauthorized access, using a login name and a password. In fact, further protection on password should be made such as encrypted password, instead of sending password as plain text for login authorization. It is because the protocol of password authentication is easily defeated using eavesdropping. If a hacker has access to the transmission media, the password message can be listened and recorded by him/her for later intrusion into the host system. One-time password (OTP) and smart card authentication are considered as another secure alternatives. II. Address Resolution 4 This kind of authentication relies on the address of the packet at the network level, packet with authorized address is supposed to be routed correctly to the destination. In TCP/IP protocol suite the address of communicating entity is easily forged, with duplicating IP numbers on a subnet with machines masquerading as the other machines. III. Trusted Host Authentication If using Data Encryption Standard (DES) and the public key distribution, certificate hierarchy is the only trusted entity for identifies verification and public key acquisition. This relies very much on a trusted root that everyone (at least the sender and receiver) believes it to be trustworthy. However, the trusted host can have duplicates on the network, thus authentication is still possible. On the other extreme, mutual trust among clients would exists if the clients themselves trusting each other can distribute public keys on their own. IV. Public Key Encrypted Authentication This kind of authentication usually goes with the one-way hash function, used one time. For example Kerberos and SPX systems. V. Biometrics Authentication By using the personal physical features such as human retina or fingerprint, for authentication. However, the weak point is that it relies on a device that converts the physical feature of a person into bits. Moreover, this kind of information cannot be changed for the person, the system will no longer secure if the information is compromised. Consequently, security relies on a secure communication media used for the transfer of the person’s biometric password. Firewalls Logically, a firewall is a separator, a restrictor; an analyzer that is used to protected the internal network against any attack. It mainly serves the following goals: - to restrict people to entering at a carefully controlled point; - to prevent intruders from getting close to your other defenses; - to restrict people to leaving at a carefully controlled point Because of the above purposes, a firewall is often installed at a point where the protected internal network connects to the Internet. All the traffic from the internal network is supposed to pass through the firewall. Basically it is a set of components that restricts access between a protected network and the Internet, or between other sets of network. When in physical implementations, there are many different configurations of firewall. As often as not, a firewall is composed of a set of hardware components such as a router 5 or a computer, or some combination of routers, computers and networks with appropriate software installed. The specific firewall configuration for an internal network will depend a lot on the security policy, budget as well as the overall operations of a site. Simply speaking, a firewall is a system, either software or hardware or both, that enforces access control policy between two networks. It is the manifestation of a company security policy. Firewall Components I. Screening Router A screening router is a basic component of most firewalls and it can be a commercial router or a host-based router with some kind of packet filtering capability. Typical screening routers have the ability to block traffic between networks or specific hosts, on an IP port level. Some firewalls consist of NOTHING more than a screen router between a private network and the Internet.. II. Bastion host It usually is a computer running proxy software that is exposed to the world outside the internal network to be protected. A bastion can be used in all the firewall configurations except the ‘screened network’ in which a proxy server is not used . Another kind of bastion host is called a victim machine A victim machine is the victim as all the communication or attacks are supposed to directed to it because it is the first machine for the internal network exposed to the outside world. Only the information that is supposed to share freely with anyone and only minimal service should be placed in the victim machine. A bastion host is a system identified by the administrator of firewall as a critical strong point in the network’s security, to keep intruders out of the internal network. Also the security of a bastion host is a matter of concern, it may undergo regular audits and have modified software. III. Dual Homed Gateway It is a system or host bastion placing between the private network and the Internet, and disabling TCP/IP forwarding. This kind firewall is implemented without a screening router. This system or host called a dual homed gateway, is, by definition a bastion host. The hosts on the private network, as well as the host on the Internet, can communicate with the gateway, but there is no direct traffic between the two networks. IV. Screened Host Gateway Screened Host Gateway is the most common type of firewall configuration. This is implemented by using a screening router and a bastion host. As often as not, the bastion host is on the private network and the screening router is configured such that the bastion 6 host is the only system on the private network that is reachable from the Internet. The screening router is configured to block traffic to the bastion host on specific ports, allowing the authorized services to communicate with the LAN. V. Screened Subnet This is an isolated subnet is created and it is situated between the Internet and the private network. Typically a screening router that implements varying levels of filtering, is used to block the traffic across the screened subnet. A screened subnet is configured such that both the Internet and the private network can access to the hosts on the screened subnet, provided that the traffic from the networks can go through a screening router. In some firewall configurations, a bastion host will be added to the screened subnet to support interactive terminal sessions or application level gateway. VI. Proxy Gateway Much of the software on the Internet works in a stored-and-forward mode such as mailers and USENET. Application level gateways are the service-specific forwarders or reflectors, which usually operate in user mode rather than at a protocol level. In fact, running this kind of forwarding service is important to the security of the whole. For example, the sendmail hole that was exploited by the Morris Internet worm is one of the security problems an application level gateway can present. Some kinds of applications gateway are interactive, such as the FTP and Telnet gateways, which run on the Digital Equipment Corporation firewalls. In general, the crucial applications level gateways are run on bastion hosts. VII. Hybrid Gateways This kind of gateway is somehow different from that mentioned above. For instance, the hosts connected to the Internet, but accessible only through serial lines connected to an ethernet terminal server on the private network. Such kinds of gateways may take advantage of multiple protocols, or tunneling one protocol over another. Routers might maintain and monitor the complete state of all TCP/IP connections, or examine traffic to try to detect and prevent an attack. 7 KEYS The Key - The encryption key is the component that binds everything together. When used in tandem with the algorithm it provides a unique method for the data to be encrypted or decrypted. Consider a key to be similar to a password on a computer; when a piece of information is encrypted you need to specify the correct key in order to decrypt it. The Key Length - Encryption keys usually have a predetermined length. Much like how longer passwords are harder to crack, longer keys make it more difficult for an attacker to guess as it takes many more iterations in a brute-force attack to break them. SYMMETRIC KEY ENCRYPTION Data Encryption Standard (DES) DES is one of the most popular private key algorithms. It is developed by IBM and became an official U.S. government standard in 1976. The U.S. government forbids export of hardware and software product that contains DES implementations even though the implementations of DES are widely available outside U.S. DES is very fast, at least 100 times faster than RSA algorithm when implemented in software, and even 1000 times faster when implemented in hardware where DES uses S-boxes and simple table look-up functions, while RSA depends much on very-large-integer arithmetic. 8 Fig. Symmetric key is analogous to lock box Symmetric key is analogous to a lock box. The key of DES can be just about any 64-bit number. The effective length is regarded as 56 bits. There is only way to break DES, through an exhaustive search of the key space with 2^56 total possible keys which have to take 2000 years if one millions keys are tried for every second. ASYMMETRIC KEY ENCRYPTION This key encryption helps to eliminate the problems of distributing key to users. However, the keys used for the algorithm are usually large, with 100 or more digits. As a result it incurs key management and computing overhead problems. RSA Three scientists, Ron Rivest, Adi Shamir and Leonard Adleman in 1977, developed it. It is well known as widely used in public key cryptosystem. The keys of RSA are devised as follows - Choose 2 large primes say p and q, and then find their product n = pq. - Choose another number e, which is < n , but relatively prime to (p-1)(q-1), then find it inverse, d, mod(p-1)(q-1). That is ed = 1. - e is the public exponent and d is called the private exponent. - The public key pair is (n, e). The private key is d. The factor p and q must be kept secret. Fig. Asymmetric key is analogous to mail box Asymmetric key is analogous to a public mailbox: anyone can add something, only the holder of the secret key can remove it. 9 HASH ALGORITHMS A step beyond CRCs is one-way hash algorithms that produce "hash" values. "One way" means it's easy to input A and get B, but it's impossible--or nearly impossible--to work backward from B to A. A good hash algorithm has one very important property: The values that it generates are so unique and so difficult to duplicate that not even someone with a bank of supercomputers and a few centuries to kill could find two sets of input data that produce the same hash value. Typically, hash values are at least 128 bits in length. The greater the length, the more difficult it is to reproduce the input or to find another set of input data that produces a matching result. Two of the most widely known one-way hash algorithms are the MD5 message digest algorithm developed by MIT professor Ron Rivest (one of the developers of the highly regarded RSA public-key cryptosystem) and the Secure Hash Algorithm (SHA) developed by the National Institute of Standards and Technology (NIST) and the National Security Agency (NSA). MD5 produces a 128-bit digital fingerprint from a set of input data, and SHA produces a 160-bit value. Assuming no one discovers a heretofore-unknown "trap door" to either algorithm, it is computationally unfeasible to take a hash value produced by SHA or a "message digest" produced by MD5 and work backward to find the input data. Thus, if someone sends you a file and an MD5 or SHA fingerprint generated from the file, and if you run the same hash algorithm on the file you receive and get the same result, you can be virtually certain the file was received intact. Message Authentication Codes (MAC) A message authentication code is basically a message digest, which includes a password or secret key. The hash value consists of both the variable length input and the secret key. As the message digest includes the key, only someone knowing the key can recreate the MAC and verify the authenticity. Digital Signatures With asymmetrical encryption the public key of the recipient is used to encrypt the message and his or her private key is then used to decrypt it. Using a digital signature is a similar process ran in reverse. The sender encrypts data with his or her private key thus creating a personal digital signature. The data is then associated with the key. Recipients 10 are then able to decrypt the data by using the sender's public key. As only one key pair of private and public keys exists, the authentication of the sender is guaranteed. Due to the complexity of public key encryption, the sender does not usually encrypt the entire data, but rather creates a message digest or message authentication code. The hash value generated is then encrypted with the sender's private key effectively signing the message and providing sender authentication. When the recipient receives the data, he or she can then verify the authenticity of the message by decrypting the message digest with the sender's public key and comparing that hash value against the data to ensure its integrity. In one fell swoop, a message can be signed, encrypted, and verified by both parties. SSL Design Goals • Secure transmission between client and server at the lowest level – socket level. The Protocol sits on top of TCP • Peer Authentication – Server is automatically authenticated, client is optionally authenticated. • Efficiency- Session caching is available • Extensible – Can use numerous cipher algorithms SSL-Features 1. SSL is a layered protocol 2. SSL takes messages to be transmitted, fragments the data into manageable blocks, optionally compresses the data, applies a MAC, encrypts, and transmits the result 3. Received data is decrypted, verified, decompressed, and reassembled, then delivered to higher-level clients. 4. Connects on port 443 by default 5. Session-identifier cache timeout value of 100 seconds 11 SSL Problems • People have been able to crack SSL encryption to find the key • Many users currently use SSL 2.0 instead of the version 3.0 and Version 2.0 does not authenticate the handshake • Firewalls can’t regulate data • Proxies can’t cache information HMAC HMAC is a secret key authentication algorithm. Data integrity and data origin authentication as provided by HMAC are dependent upon the scope of the distribution of the secret key. If only the source and destination know the HMAC key, this provides both data origin authentication and data integrity for packets sent between the two parties; if the HMAC is correct, this proves that it must have been added by the source. HMAC is a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. 12 Conclusion The various security aspects in Distributed systems have been reviewed in this report. The main application area for encryption is transmission of sensitive information on the Internet, such as information related to credit card transactions. Trusted techniques will be increasingly required if the global Internet market is ever to get off the ground. With the rapid growth of networking and Internet dependent activities in our daily life, security of data communication has become an important issue. The main concern here is that almost all these communications take place over public networks, and these networks are accessible to anyone. 13 References 1. RSA Laboratories2. http://www.rsasecurity.com/rsalabs/pkcs/ 3. SSL-http://www.ietf.org/SSL-v3 http://www.netscape.com/eng/ssl3/draft302.txt 4. openSSL- http://www.openssl.org/ 5. www.zdnet.com 14