Software Architecture

Slides:



Advertisements
Similar presentations
Cryptography and Network Security 2 nd Edition by William Stallings Note: Lecture slides by Lawrie Brown and Henric Johnson, Modified by Andrew Yang.
Advertisements

Internet and Intranet Protocols and Applications Lecture 9a: Secure Sockets Layer (SSL) March, 2004 Arthur Goldberg Computer Science Department New York.
1 Network Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Lecture III : Communication Security, Services & Mechanisms Internet Security: Principles & Practices John K. Zao, PhD SMIEEE National Chiao-Tung University.
Introduction to PKI Seminar What is PKI? Robert Brentrup July 13, 2004.
Spring 2002CS 4611 Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Wireless Security In wireless networks. Security and Assurance - Goals Integrity Modified only in acceptable ways Modified only by authorized people Modified.
8.1 Learning Objectives To become familiar with the range of security threats faced by networked and distributed systems (DSs); To examine various cryptographic.
Symmetric Key Distribution Protocol with Hybrid Crypto Systems Tony Nguyen.
Introduction to Public Key Infrastructure (PKI) Office of Information Security The University of Texas at Brownsville & Texas Southmost College.
CS5204 – Fall Cryptographic Security Presenter: Hamid Al-Hamadi October 13, 2009.
1 Introduction to Security and Cryptology Enterprise Systems DT211 Denis Manley.
Computer Security Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Cryptography, Authentication and Digital Signatures
4 th lecture.  Message to be encrypted: HELLO  Key: XMCKL H E L L O message 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message + 23 (X) 12 (M) 2 (C) 10 (K) 11.
Chapter 31 Cryptography And Network Security Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Encryption.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
Lecture 16: Security CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9.
Digital Signatures, Message Digest and Authentication Week-9.
Security Many secure IT systems are like a house with a locked front door but with a side window open -somebody.
Group 9 Chapter 8.3 – 8.6. Public Key Algorithms  Symmetric Key Algorithms face an inherent problem  Keys must be distributed to all parties but kept.
Network Security Celia Li Computer Science and Engineering York University.
Cryptographic Security Aveek Chakraborty CS5204 – Operating Systems1.
SECURITY. Security Threats, Policies, and Mechanisms There are four types of security threats to consider 1. Interception 2 Interruption 3. Modification.
1 Network Security. 2 Security Services Confidentiality: protection of any information from being exposed to unintended entities. –Information content.
CS457 Introduction to Information Security Systems
Key management issues in PGP
Web Applications Security Cryptography 1
Cryptography: an overview
Cryptography: an overview
Basics of Cryptography
Security Outline Encryption Algorithms Authentication Protocols
Public-Key Cryptography and Message Authentication
Network Security.
Secure Sockets Layer (SSL)
Cryptographic Hash Function
Public Key Encryption Systems
e-Health Platform End 2 End encryption
Public Key Encryption and Digital Signatures
Basic Network Encryption
Presented by: Dr. Munam Ali Shah
Message Digest Cryptographic checksum One-way function Relevance
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
CDK4: Chapter 7 CDK5: Chapter 11 TvS: Chapter 9
The Secure Sockets Layer (SSL) Protocol
Cryptography: an overview
Protocol ap1.0: Alice says “I am Alice”
How to Mitigate the Consequences What are the Countermeasures?
Chapter 4 Cryptography / Encryption
COMPSCI210 Recitation 5 Oct 2012 Vamsi Thummala
NET 311 Information Security
Network Security - A Lecture 1 - NETW4006 NETW4006-Lecture01 1.
CDK: Chapter 7 TvS: Chapter 9
Secure How do you do it? Need to worry about sniffing, modifying, end-user masquerading, replaying. If sender and receiver have shared secret keys,
Introduction to Cryptography (1)
Chapter 3 - Public-Key Cryptography & Authentication
Chapter 29 Cryptography and Network Security
Basic Network Encryption
Security in SDR & cognitive radio
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Security: Integrity, Authentication, Non-repudiation
Public Key Encryption Systems
Cryptography and Network Security
Chapter 8 roadmap 8.1 What is network security?
Review of Cryptography: Symmetric and Asymmetric Crypto Advanced Network Security Peter Reiher August, 2014.
Presentation transcript:

Software Architecture Security Sam Malek INF 221 Fall 2016

Outline Requirements and concerns Security mechanisms Design principles

Outline Requirements and concerns Security mechanisms Design principles

security requirements confidentiality prevent information disclosures to unauthorized entities integrity protect against unauthorized or malicious modification or destruction of assets availability protect against denial-of-service attacks non-repudiation prevent entities from denying their role in actions or communications

security has tradeoffs suppose you just moved to a new house do you change the locks? do you hire a 24/7 security guard? how much added protection? cost? required infrastructure? do you leave the door unlocked? nothing worth stealing you trust the neighborhood is safe

security is about managing risk security architecture: set of mechanisms and policies incorporated in a system for purposes of mitigating the risks from threats threat: potential event that could compromise a security requirement attack: realization of a threat vulnerability: a characteristic or flaw in system design or implementation, or in the security procedures, that, if exploited, could result in a security compromise

security has costs and benefits deciding how much to protect benefit of security, for all threats: expected losses in case of attack, times chances of attack acquisition engagement cost of security development & maintenance complex software infrastructure product licensing bigger &/or dedicated machines (e.g., firewalls) degraded performance encryption, authentication, authorization… point of view of an attacker benefit of a successful attack cost of initiating the attack potential (civil) penalties

choose security solutions based on cost/benefit analysis deciding how much to protect benefit of security, for all threats: expected losses in case of attack, times chances of attack acquisition engagement mechanism 1 cost effectiveness ex: losses $200k chances 50% benefit $100k ex: cost $30k, 60% effective ex: cost $50k, 90% effective ex: cost $5k, 50% effective ? mechanism 2 mechanism 3 nagging question: can you ever think of all threats?

Outline Requirements and concerns Security mechanisms Design principles

three fundamental tools: symmetric & asymmetric encryption, hashing symmetric encryption, aka shared secret key M = DK (EK (M)) M is the data, D is decrypt, E is encrypt, and k is the key computationally efficient asymmetric encryption, aka public key/private key M=DK- (EK+ (M))=DK+ (EK- (M)) K+ is public key, and k- is private key computationally expensive hashing & MACs S = H(M), or S = MACK (M) S, aka digest, is a unique representation of data such that an accidental or intentional change to the data will change the representation fixed size and independent of size of M

confidential communication with symmetric encryption: key is shared among trusted peers, but kept from others EK(P) plaintext P ABCDE… secret Key K DK(C) cyphertext C K%U@Y… body of message is encrypted with EK, not header (routing) network may have its own encryption with a different key encryption may be supported by hardware or software DES and Triple DES IDEA XOR Advanced Encryption Standard (AES)

confidential communication with asymmetric encryption: each node makes its public key available to all cyphertext C K%U@Y… plaintext P ABCDE… when a node B wants to send a message to node A, it obtains A’s public key and uses K+A to encrypt the message only A can decrypt the message using its private key K-A EK+A(P) K+A K-A plaintext P ABCDE… examples of algorithms RSA (Rivest, Shamir & Adleman) Diffie-Hellman DSS (Digital Signature Standard) Elliptic-Curve DK-A(P) cyphertext C K%U@Y… node A

integrity verification based on shared secret key malicious interceptor changes contents discard message if comparison fails MAC: message “authentication” code, aka digest computed similarly to cryptographic hash functions

authentication and integrity verification cannot be separated the story so far: encryption assures that only the communicating parties understand the contents of a message integrity verification assures the receiver that the message was not modified in transit but, how good is that if the receiver can’t be sure of who sent the message? integrity requires authentication conversely, how good is it if the receiver is sure of who sent the message, but can’t be sure it wasn’t tampered with authentication requires integrity

authentication based on a shared secret key signal intention to communicate each party challenges the other to show it knows the secret shared key assumption: nobody else but A and B could have used KA,B the secure channel protocol seen above assumes a shared secret key is available

secret shared keys can be established over an unsecured channel Diffie-Hellman it is computationally infeasible to lift x out of gx mod n, even given n and g only Alice knows x, only Bob knows y Alice computes the shared key, gxy mod n, given x and Bob’s message, Bob does the same, given y and Alice’s message others can listen to gx mod n and gy mod n, but still can’t assemble the shared key gxy mod n

authentication is much simpler with asymmetric encryption only B can decrypt A’s nonce using B’s private key only A can decrypt B’s reply using A’s private key 2 containing RA authenticates B with A 3 containing RB encrypted with the session key generated by B authenticates A with B K+B is B’s public key assumes peers have each other’s public key available assumes that public keys are not forged

certification authorities distribute certified public keys a CA stores and makes available pairs <public key, peer identifier> these pairs are signed with the CA’s private key K-CA a node that wants to talk to A requests the pair <K+A,A> and verifies the certificate using the CA’s public key K+CA often, an expiration is also associated to the public keys distributed this way public keys of various CAs are built into most web browsers/operating systems and shipped with the binaries how does signing work?

signing is based on the properties of asymmetric encryption Alice encrypts the message digest with its private key Bob also computes the digest (needs to share a key with Alice for that) Bob decrypts the signature with Alice’s public key and compares it to the digest he computed

signing serves two purposes: certification of origin & non-repudiation when a recipient receives a signed message it can be certain of the origin because no one else could have used the private key to produce the signature, the originator cannot deny producing the message because of the properties of encryption (used for signing) a signature supports verifying message integrity

Outline Requirements and concerns Security mechanisms Design principles

Design Principles for Software Security Least Privilege: give each component only the privileges it requires Fail-safe Defaults: deny access if explicit permission is absent (even if that means the system fails) Economy of Mechanism: adopt simple security mechanisms (complexity is enemy of security) Complete Mediation: ensure every access is checked (often violated due to efficiency reasons) Open Design: do not rely on secrecy for security (e.g., Content Scrambling System for DVD movie disks)

Design Principles for Software Security (cont’d) Separation of Privilege: do not grant permission based on a single condition Least Common Mechanism: mechanisms used to access resources should not be shared Psychological Acceptability: make security mechanisms usable Defense in Depth: have multiple layers of countermeasures