CBS
CBS
CBS
-
- 1 / 491
-
Cartes-fiches
What is RSA public-key encryption?
RSA public-key encryption is an asymmetric encryption scheme.
A sender encrypts a message with the receiver's public key.
Only the receiver can decrypt it using their private key.
It provides confidentiality.
What is the Security behind RSA ?
factoring n into two prime numbers p and q should be hard
On what Vast majority of products and standards that use public-key crypto
for encryption and digital signatures rely on
RSA
How many bits RSA to be secure ?
• But key size between 1024 and 2048 bits to be secure
→ high computational burden
How to reduce high computationnal need with RSA ?
ELLIPTIC-CURVE CRYPTOGRAPHY (ECC)
what are ASYMMETRIC CRYPTOGRAPHY LIMITATIONS? Give solutions for practical implemenatation
• Computationally costly compared to most symmetric key algorithms of equivalent security
• Signing and encrypting is slow
• No good « cipher modes »
• Not suitable to encrypt large amounts of data
• Solutions for practical implementation:
• Signing hash of messages instead of long messages
• Use hybrid encryption instead of asymmetric encryption
What is a hash function?
A hash function takes an input of any length and produces a fixed-length output called a hash or digest.
It is mainly used to verify integrity: if the input changes, the hash changes.
Hashing is not encryption because it is not reversible.
Where we use a hash function ?
Digital signatures, HMAC, password storage, file integrity, secure commitments, blockchains, etc
What are the three security properties that a Hash functions must respect?
• Pre-image resistance: given H(m), difficult to get m
• Second pre-image resistance: Given m, difficult to get m’ != m such that H(m) = H(m’)
• Collision resistance: difficult to find any m, m’ such that H(m) = H (m’)
What are the Existing hash function algorithms ?
• MD5 (128 bits): insecure (published in 1991)
• SHA-1 (160 bits): insecure
• SHA-2 (256, 384, 512 bits): Good security but slow
• New NIST standard: SHA-3, published in 2015
Why do we use DIGITAL SIGNATURES ON HASH FUNCTIONS ?
In practice, digital signatures sign the hash of the message, not the whole message.
The sender computes H(m) and signs it with their private key.
The recipient hashes the received message again and verifies the signature using the signer's public key.
This provides integrity and authentication, as long as the hash function is collision-resistant and second pre-image resistant.
What is the process with DIGITAL SIGNATURES ON HASH FUNCTIONS from sender and reciver perspective ?
Recipient first hashes the message m to get H(m), then verifies that
the signature is valid with the public key kp of the signer and H(m)
What security properties do we need for this hash function?
• Second pre-image resistance: prevents recipient from modifying m
• Collision resistance: prevents sender from modifying m
Why do we use HYBRID ENCRYPTION ? and how dows it work ?
Asymmetric encryption is slow, but symmetric encryption is fast
• Solution: use both and get the best of both worlds!
• First, establish a shared symmetric (secret) key k using asymmetric encryption
• Second, use the shared secret key k to encrypt the rest of the communication with symmetric encryption
Exanple: Diffie-Hellman key exchange
Why is basic Diffie-Hellman vulnerable to a man-in-the-middle attack?
Basic Diffie-Hellman allows Alice and Bob to create a shared secret key, but it does not authenticate who they are talking to.
An attacker can intercept the exchanged public values and replace them with their own.
Result:
Alice shares a key with the attacker.
Bob shares another key with the attacker.
Solution:
Use authentication, such as digital signatures or certificates.
WHAT IS AUTHENTICATION?
Authentication is the process of verifying a claimed identity
WHAT IS AUTHENTICATION? (Nist definition?
Definition by the NIST:
“The process of establishing confidence in user identities that are presented
electronically to an information system.”
With what auhentificarion must Not be confused with?
message authentication
• Ensuring that the message comes from the designated sender, and has not been modified
hat are the 2 Basic security requirements for SECURITY REQUIREMENTS FOR IDENTIFICATION AND AUTHENTICATION ?
• Basic security requirements:
1. Identify information system users, processes acting on behalf of users, or devices.
2. Authenticate (or verify) the identities of those users, processes, or devices, as a prerequisite to allowing access to the information systems
hat are the 2 Derived security requirements for SECURITY REQUIREMENTS FOR IDENTIFICATION AND AUTHENTICATION ?
3. Use multifactor authentication
• for local and network access to privileged accounts;
• for network access to non-privileged accounts.
4. Use replay-resistant authentication mechanisms for network access to privileged and non-privileged accounts.
5. Enforce a minimum password complexity and change of characters when new passwords are created.
6. Prohibit password reuse for a specified number of generations.
7. Store and transmit only cryptographically-protected passwords.
8. Obscure feedback of authentication information.
What are the 3 Traditional means of authentication: ? an give more recent
Traditional means of authentication:
• What you know
• Password, PIN, set of questions, …
• What you are
• Biometrics such as fingerprint, retina, face, …
• What you have
• Tokens such as smart cards, physical keys, …
More recent means:
• Where you are: • Location, IP address
• How you act: Behavioral authentication: How you type, how you move your mouse, …
• Who you know: E.g., social ties
• Multifactor authentication:Combining multiple means of authentication
Traditional means of authentication:
• What you know
• Password, PIN, set of questions, …
• What you are
• Biometrics such as fingerprint, retina, face, …
• What you have
• Tokens such as smart cards, physical keys, …
More recent means:
• Where you are: • Location, IP address
• How you act: Behavioral authentication: How you type, how you move your mouse, …
• Who you know: E.g., social ties
• Multifactor authentication:Combining multiple means of authentication
What are the Four security aspects to consider with PASSWORD-BASED AUTHENTICATION?
Four security aspects to consider:
• Secure transfer: password may be eavesdropped when communicated
• Secure storage: if stolen, the full system is compromised
• Secure password selection: avoid short or easy-to-guess passwords
• Secure check: naive checks may leak information about the password
What is problem with PASSWORD TRANSFER?
Adversary can eavesdrop the communication and read the password and then replay the ID and password
What is problem with encrypted channel PASSWORD TRANSFER?
Adversary cannot read but he can copy the full message and then replay the encrypted message
(One of the most difficult aspects in authentication)
how to protect against steal file Leak file Shared resource ? Are you safe ?
store password encrypted
No, if attacker has the key, he can compute
e’ = Enc(k, eaflkqerjwe)
e’ = e?
(Alice, e=Enc(k, eaflkqerjwe))
(Bob, e=Enc(k, adfwqeirj))
(Carl, e=Enc(k, wrkewék))
…
Encryption key = k
store a hash of the password is enough ?
No, it protects not against pre-image resistance,
h’ = H(eaflkqerjwe)
h’ = h
(Alice, h=H(eaflkqerjwe))
(Bob, h=H(adfwqeirj))
(Carl, h=H(wrkewék))
Give the problem of store a hash of the password
offline dictionary attack
• A hash does not require a key → anyone can compute a hash
• Passwords are not truly random
• 52 upper- and lower-case letters, 10 digits and 32 punctuation symbols
• 948 eight-character passwords (around 252) possibilities
• Users use a limited set of passwords, e.g., words from the dictionary
→ reduced search space
• Adversary can compute H(word) for every word in the dictionary and see if the results is in the password file
• Parallel cracking with GPU accelerates search
• Other approaches: rainbow tables, pre-computation, …
How to secure stored password ?
store a hash of the password & salt
what is the advantage of storing a hash of the password & salt?
Advantages of using a salt:
• Prevents duplicate passwords from being visible in the password file
• Greatly increases the difficulty of offline dictionary attacks
• Nearly impossible to find out whether a person has used the same password on multiple systems
What is the Complementary defenses of storing a hash of the password & salt?
• Use hash functions designed to be slow (bcrypt, scrypt, argon2)
• Repeat them several times (e.g., 1000)
• Require specific elements in passwords
• Increase entropy
• Strict access control on the password database!
• E.g., make the password file only accessible by the root user
What is the problem with passwords and what could be a solution ?passwords are very often too short or easy to guess
• Solution: pick x random printable characters
• Problem: impossible to remember for most users
• Objective:
• Eliminating guessable passwords
• Allowing users to select passwords that can be memorized
What are the 4 SECURE PASSWORD SELECTION STRATEGIES ?
• User education
• Users can be told the importance of using hard to guess passwords and can be provided with guidelines for selecting strong passwords
• Computer-generated passwords
• Users have trouble remembering them
• Poor acceptance by the users, tempted to write them down
• Reactive password checking
• System periodically runs its own password cracker to find guessable passwords
• Resource intensive if we want to mimic a determined opponent
• Complex password policy (or proactive password checking)
• User is allowed to select their own password; however, the system checks to see if the password is allowable, and if not, rejects it
• Goal is to eliminate guessable passwords while allowing the user to select a password that is memorable
• Important to strike a balance between user acceptability and password strength
What are the 3 PROACTIVE PASSWORD CHECKING ?
• Rule enforcement
• NIST SP 800-63-2 suggests the following alternative rules:
• Password must have at least 16 characters.
• Password must have at least 8 characters including an uppercase and lowercase letter, a symbol, and a digit
+ it may not contain a dictionary word.
• Update in 2024 (NIST): reducing the complexity of passwords
• At least 8 characters and ideally 15 characters
• Password checker
• Compile a large dictionary of passwords not to use
• Two problems with this approach:
• Space: The dictionary must be very large to be effective
• Time: The time required to search a large dictionary may itself be large. In addition, to check for likely permutations of dictionary words, either those words must be included in the dictionary, making it truly huge, or each search must also involve considerable processing.
• Bloom filter
• Allowing for effective and efficient password checker that is based on rejecting words on a list
• Reducing the search space at the cost of some false positives
• Implemented on a number of systems, including Linux
Is check letter by letter secure ?
No, Timing channel leaks information about the password
always check everything, Hashing will take care of equal operations;
Requires the same operations for accept and reject
What are the problems with Strong passwords ?
hard to remember
• Written passwords
• Reuse across systems
How password can be stolen or inferred ?
• Keylogger
• Shoulder surfing
• Phishing
• Social engineering
• Side channels