Add the rest of university notes
This commit is contained in:
366 files changed
+9844
-110
No files matched your search
@@ -0,0 +1,157 @@
|
||||
# Security
|
||||
|
||||
#### What is security?
|
||||
|
||||
Security is about the **protection of assets**
|
||||
|
||||
- **Prevention**: Preventing access and damage to assets
|
||||
- **Detection**: Steps to detect the access or damage of assets
|
||||
- **Recovery**: Measures allowing us to recover from asset damage
|
||||
|
||||
Assets could be physical or virtual data
|
||||
|
||||
##### Historic Computer Security
|
||||
|
||||
- Historically systems have been built to serve single users
|
||||
- Often only a few highly trusted users were permitted to access a system
|
||||
- This makes mistakes made by trusted users still a concern
|
||||
- Current multi-user systems have completely different security concerns
|
||||
|
||||
##### Modern Computer Security
|
||||
|
||||
- Possibly thousands of users
|
||||
- Distributed over wide networks
|
||||
- Not all users are inherently trust worthy
|
||||
- More and more things are moving to electronic
|
||||
- Requiring protocols to manage them
|
||||
|
||||
### Attacks
|
||||
|
||||
- Monetary transaction need security
|
||||
|
||||
This is what most interactions look like and therefore attacks are based on this communication
|
||||
|
||||
#### Eavesdropping
|
||||
|
||||
To prevent this we use encryption, using `HTTPS` or `TLS`
|
||||
|
||||
But how do we privately agree on an encryption key
|
||||
|
||||
###### User authentication
|
||||
|
||||
Is the client who they say they are
|
||||
|
||||
What if the server gets hacked, we can use **hash functions**
|
||||
|
||||
###### Digital Certificates
|
||||
|
||||
However, this can be bypassed if the clients machine is hacked
|
||||
|
||||
We have to ensure the client is running anti virus software and practices good avoidance.
|
||||
|
||||
###### Insider attacks
|
||||
|
||||
To stop this the company must practice good security such as:
|
||||
|
||||
- Database security Controls
|
||||
- File access controls
|
||||
- Intruder detection
|
||||
- Security Auditing
|
||||
|
||||
## Definitions
|
||||
|
||||
There is no solid definition for *security*
|
||||
|
||||
- Unbreakable?
|
||||
- Secure enough?
|
||||
|
||||
It is often simply an arms race between developers & researchers and malicious users
|
||||
|
||||
#### Managing Security
|
||||
|
||||
- Within organisations, management are responsible for defining security needs
|
||||
- Developers implement these policies
|
||||
- A concise document explaining the needs is called a *Security Policy*
|
||||
- What should be protected?
|
||||
- How should we protect it?
|
||||
- UoN security policy
|
||||
- https://www.nottingham.ac.uk/dts/security/it-security.aspx
|
||||
|
||||
#### Computer Security
|
||||
|
||||
- Usually defined as three keys areas (**CIA**)
|
||||
|
||||
1. Confidentiality
|
||||
- Prevention of unauthorised *disclosure* of information
|
||||
- This involves unauthorised users reading private or secret information
|
||||
- Medical records or credit card details
|
||||
2. Integrity
|
||||
- Prevention of unauthorised *modification* of information
|
||||
- Also the assurance that data remains *unmodified*
|
||||
- Distributed bank transactions or database records
|
||||
- Just because we have **integrity**, doesn’t mean we have **authenticity**
|
||||
- Can we verify the sender? does it have freshness?
|
||||
- Authenticity = Intercity + Freshness
|
||||
3. Availability
|
||||
- Prevention of unauthorised *withholding* of information or resources
|
||||
- The property of being accessible is an usable upon demand by an authorised entity
|
||||
- In other words prevent DoS attacks
|
||||
- e.g. redundant power supplies, firewall packet filtering
|
||||
|
||||
#### Accountability
|
||||
|
||||
- Users should be held responsible for their actions
|
||||
- The system should identify and authenticate users and ensure compliance
|
||||
- Audit trails must be kept
|
||||
|
||||
#### Non-repudiation
|
||||
|
||||
- Provides unforgeable evidence that someone did something
|
||||
- Mostly a legal concept
|
||||
- Evidence verifiable by a trusted third party
|
||||
- e.g notaries, digital certificates
|
||||
- Applies to physical security as well
|
||||
- Like key cards
|
||||
|
||||
##### The security Dilemma
|
||||
|
||||
> “Security-unaware users have specific security requirements but no security expertise”
|
||||
|
||||
- There is a trade off between security and ease of use
|
||||
- Increased resource demands
|
||||
- Interferes with working patterns
|
||||
|
||||
###### Added complexity
|
||||
|
||||
- Often user experience is place at the forefront of software engineering
|
||||
- This is usually not compatible with security
|
||||
- Security can be seen as controlling access to information
|
||||
- This is hard, we usually control access to data instead
|
||||
- Data - a means to represent information
|
||||
- Information - an interpretation of that data
|
||||
- Focusing on data can still leave information vulnerable
|
||||
- for example: Mikes criminal record not found
|
||||
- vs you do not have permission to access mikes criminal record
|
||||
|
||||
#### Security Design
|
||||
|
||||
- Computer Security is **not** rocket science if:
|
||||
- Approached in a systematic, disciplined and well planned manner
|
||||
- From the inception / design of a system
|
||||
- However, if added as an afterthought, will often lead to disaster
|
||||
- Good security design focuses on these principles
|
||||
1. Focus of control
|
||||
- In a given application, should the focus of protection mechanisms be:
|
||||
- Data - permitted manipulation of data
|
||||
- consistency check
|
||||
- Operations - permitted invocations
|
||||
- Users - permissions for specific users
|
||||
2. Complexity vs assurance
|
||||
- Would we prefer a simple approach with *high assurance*? or a feature rich environment
|
||||
3. Centralised or decentralised controls
|
||||
- Should defining and enforcing security be performed by central entity, or be left to individual components in a system
|
||||
- **Central entity** - possible bottleneck
|
||||
- **Distributed solution** - more efficient, but harder to manage
|
||||
4. Layered security
|
||||
- We can visualise our security model in layers
|
||||
- Each layer protects a boundary, and relies on the security of the layers below
|
||||
Reference in new issue
Block a user