Fundamentals of Cybersecurity - Notes (CSCI 3341)
Q1: What are we trying to secure?
The assets, including data, hardware, software, persons (users, developers, administrators, executives, business partners, …)
Q2: Should we figure out the security requirements first before choosing the security mechanisms, or the other way around?
The general system development process:
requirements definition (by the system analysts)
system design
system implementation
system operation
Security Services/Requirements:
Confidentiality
Only those entities (including computing processes, users, devices, …) who are authorized can access the data/asset
NOTE: A computing ‘process’ is a computer program that is being executed (aka ‘task’ in Windows). E.g., When a user is using a web browser, the HTTP client process is executed, while on the web server the HTTP server process is executed; the HTTP protocol governs how a HTTP client process interacts with a HTTP server process.
Integrity
Data integrity means the data/asset is correct. If the data/asset is not correct, the user/retriever/receiver must be able to find that out.
e.g., To allow the user of a file to determine the file’s integrity, the hashing technique is typically used. The retriever hashes the retrieved file to generate a second copy of the hash value and then compares this hash with the previously stored hash (by the original author) to determine whether the file content can be trusted or not.
Q: Can hashing be applied to email messages to provide message integrity?
Ans: Yes. The sender of the message can hash the whole message (header+body) or just the body of the message to generate a hash; the hash must be stored as part of the message (for example, as a trailer/appendix of that message). When the receiver has received the message, the trailer is compared to the newly generated hash (by the retriever) in order to validate the integrity of the received message.
Origin integrity
Origin information is that the origin information of the data is correct.
NOTE 1: Each piece of data has two components, including the data content itself plus the so-called meta-data (including time, date, size, author/sender, type of data, type of algorithms, …)
e.g., a file has file content/bytes plus the file header
e.g., a message has the message body plus the message header
NOTE 2: Origin information is typically stored in the so-called header or meta-data (aka data about data).
e.g., a file = the file header (author/writer = “John Doe”, size of the body, date/time, …) + the body of the file (the data bytes)
e.g., a message = the message header (sender=“Peter”, receiver=“Mary”, date/time of sending, size of the payload, name of the encryption algorithm, …) + the body/payload of the message
c.f., While data integrity can be applied to either the whole message (header+payload) or just the payload of the message, origin integrity is specifically about the origin information in the header.
NOTE: Origin Integrity is also known as Authentication, which is the process of validating an asset’s origin information.
Hardware authentication?
Software authentication?
Data authentication?
User authentication? Via log-in, 2-factor authentication, fingerprint recognition, face recognition, voice authentication, …
Q1: Can hashing be used to ensure origin integrity?
Ans: No, because keyless hashing is subject to man-in-the-middle attack, in which the hacker modifies the origin information to generate a revised hash value and uses the new hash value to replace the originally stored hash value. When the receiver tries to validate the origin information, the result will be that the origin information is correct.
Q2: Then, what mechanism should we use to provide origin integrity or data authentication?
Ans: Message Authentication Codes (aka MAC) or Digital Signatures
NOTE: There are more security requirements like Availability, Non-repudiability, anonymity, etc. To be continued …
Security Mechanisms/Methods:
(Keyless) Hashing: for data integrity
Access control, including authentication, authorization and accounting: for confidentiality and origin integrity
NOTE: File permission control is a more restrictive version of Access Control. e.g., A web browser, on behalf of the user, uses HTTPS (aka HTTP over SSL). SSL: Secure Socket Layer is today called TLS (Transport Layer Security) to authenticate the web server and to ensure the ‘security’ of the transmitted data.
Keyed Hashing (aka Message Authentication Codes, or MAC): for both data integrity and origin integrity
Encryption/Decryption: for confidentiality
Symmetric Encryption/Decryption (The same key is used by the encryptor and the decryptor.)
Page 3:
Aka Classical Cryptography.
Asymmetric Encryption/Decryption (Two keys that are inverse are used; for example, the encryptor uses entityA’s public key to encrypt the data and then entityA, i.e., the decryptor, uses its own private key to decrypt the received ciphertext.)
NOTE: Asymmetric cryptography is also referred to as Public Key Cryptography.
Each participant in a Public Key Crypto System has a keypair, containing the public key, which is public, and the private key, which is known only by the entity itself.
Whatever encrypted by one of the two keys can only be decrypted by the other key (aka the inverse key).
Q3: What is the relationship between security services and security mechanisms?
Q4: How is hashing used to provide data integrity? Ans:
The creator/originator will generate a hash value (aka message digest) from the data.
The hash is saved together with the data.
When the user wants to validate the data integrity of the data, he/she/it uses the same hashing method to generate a new hash value from the data, and then compares the new hash value with the one that accompanies the data. If they are the same, the data is assumed to be correct; otherwise, the data is discarded (not trusted).
Q5: What is the defense-in-depth principle?