Iot Security Unit 2
Iot Security Unit 2
• Security Controls are the most important factor used to develop the actions taken to prevent the
• Security controls are parameters implemented to protect the organization’s data and assets.
• IoT authentication is a model for building trust in the identity of IoT machines
• Machines can be trusted to protect against control commands from unauthorized users or devices.
• Authentication also helps prevent attackers from claiming to be IoT devices in the hope of accessing
data on servers
• Access control is a set of permissions for a connected camera (or any IoT Device) that
specify which users are granted access and the operations they are permitted to perform.
• Each entry in an Access Control List (ACL) specifies a camera, a user, and an associated
access level.
Mandatory Access Control (MAC): A control model in which access rights are regulated by a central
authority based on multiple levels of security. Security Enhanced Linux is implemented using MAC on the
Linux operating system.
Organization-Based Access control (OrBAC): This model allows the policy designer to define a security
policy independently of the implementation.
Role-Based Access Control (RBAC): RBAC allows access based on the job title. RBAC eliminates
discretion on a large scale when providing access to objects. For example, there should not be permissions
for human resources specialist to create network accounts.
Rule-Based Access Control (RAC): RAC method is largely context based. Example of this would be only
allowing students to use the labs during a certain time of day.
Key Management
Key Management
Key Management
Key Management
Key Management
Key Management
Key Management
Key Management
Key Management
Key Management
Attacks – Dictionary and Brute force Attacks
How is it done?
• It is trying every single word that is already prepared.
• It is done using automated tools that try all the possible words in the
dictionary.
A hash is a way of encoding some data to a prefixed amount of bytes via formula
in such a way that IT CAN NOT BE REVERSED
the possibility for two hashes to contain the same value is extremely slim.
What is Password Hashing?
Hash algorithms are one way functions. They turn any amount of data into a fixed-length “fingerprint” that
cannot be reversed. They also have the property that if the input changes by even a tiny bit, the resulting
hash is completely different.
This is great for protecting passwords, because we want to store passwords in a form that protects them even
if the password file itself is compromised, but at the same time, we need to be able to verify that a user’s
password is correct.
It should be noted that the hash functions used to protect passwords are not the same as the hash functions
you may have seen in a data structures course. The hash functions used to implement data structures such as
hash tables are designed to be fast, not secure. Only cryptographic hash functions may be used to
implement password hashing.
Lookup Tables
• Lookup tables are an extremely effective method for cracking many hashes
of the same type very quickly.
• The general idea is to pre-compute the hashes of the passwords in a
password dictionary and store them, and their corresponding password, in a
lookup table data structure.
• A good implementation of a lookup table can process hundreds of hash
lookups per second, even when they contain many billions of hashes.
Reverse Lookup Tables
This attack allows an attacker to apply a dictionary or brute-force attack to many hashes at the same time,
without having to pre-compute a lookup table.
First, the attacker creates a lookup table that maps each password hash from the compromised user account
database to a list of users who had that hash.
The attacker then hashes each password guess
Uses the lookup table to get a list of users whose password was the attacker’s guess.
This attack is especially effective because it is common for many users to have the same password.
Rainbow Tables
Rainbow tables are a time-memory trade-off technique.
They are like lookup tables, except that they sacrifice hash cracking speed to make the lookup
tables smaller.
Because they are smaller
the solutions to more hashes can be stored in the same amount of space
making them more effective.
Rainbow tables that can crack any md5 hash of a password up to 8 characters long exist.
MD5
MD5
MD5
MD5
1. Append Padding Bits: In the first step, we add padding bits in the original message in such a way that the total length of the
message is 64 bits less than the exact multiple of 512.
Suppose we are given a message of 1000 bits. Now we have to add padding bits to the original message. Here we will add 472
padding bits to the original message. After adding the padding bits the size of the original message/output of the first step
will be 1472 i.e. 64 bits less than an exact multiple of 512 (i.e. 512*3 = 1536).
Length(original message + padding bits) = 512 * i – 64 where i = 1,2,3 . . .
2. Append Length Bits: In this step, we add the length bit in the output of the first step in such a way that the total number of
the bits is the perfect multiple of 512. Simply, here we add the 64-bit as a length bit in the output of the first step.
i.e. output of first step = 512 * n – 64
length bits = 64.
After adding both we will get 512 * n i.e. the exact multiple of 512.
3. Initialize MD buffer: Here, we use the 4 buffers i.e. J, K, L, and M. The size of each buffer is 32 bits.
- J = 0x67425301 - K = 0xEDFCBA45 - L = 0x98CBADFE - M = 0x13DCE476
MD5
4. Process Each 512-bit Block: This is the most important step of the MD5 algorithm. Here, a total of 64 operations are
performed in 4 rounds. In the 1st round, 16 operations will be performed, 2nd round 16 operations will be performed, 3rd
round 16 operations will be performed, and in the 4th round, 16 operations will be performed. We apply a different function
on each round i.e. for the 1st round we apply the F function, for the 2nd G function, 3rd for the H function, and 4th for the I
function.
We perform OR, AND, XOR, and NOT (basically these are logic gates) for calculating functions. We use 3 buffers for each
function i.e. K, L, M.
- F(K,L,M) = (K AND L) OR (NOT K AND M) - G(K,L,M) = (K AND L) OR (L AND NOT M) - H(K,L,M) = K XOR L XOR
M - I(K,L,M) = L XOR (K OR NOT M)
MD5
After applying the function now we perform an operation on each block. For performing operations we need
add modulo 232
M[i] – 32 bit message.
K[i] – 32-bit constant.
<<<n – Left shift by n bits.
• Now take input as initialize MD buffer i.e. J, K, L, M. Output of K will be fed in L, L will be fed into M, and M will be fed into J. After
doing this now we perform some operations to find the output for J.
• In the first step, Outputs of K, L, and M are taken and then the function F is applied to them. We will add modulo 2 32 bits for the output of this
with J.
• In the second step, we add the M[i] bit message with the output of the first step.
• Then add 32 bits constant i.e. K[i] to the output of the second step.
• At last, we do left shift operation by n (can be any value of n) and addition modulo by 2 32.
• After all steps, the result of J will be fed into K. Now same steps will be used for all functions G, H, and I. After performing all 64 operations
we will get our message digest.
Data Mining