Cryptography and its Types
Cryptography and its Types
What is Authentication?
o Authentication is the process of identifying someone's identity by assuring that
the person is the same as what he is claiming for.
o It is used by both server and client. The server uses authentication when
someone wants to access the information, and the server needs to know who is
accessing the information. The client uses it when he wants to know that it is
the same server that it claims to be.
o The authentication by the server is done mostly by using the username and
password. Other ways of authentication by the server can also be done
using cards, retina scans, voice recognition, and fingerprints.
o Authentication does not ensure what tasks under a process one person can do,
what files he can view, read, or update. It mostly identifies who the person or
system is actually.
Authentication Factors
As per the security levels and the type of application, there are different types of
Authentication factors:
o Single-Factor Authentication
Single-factor authentication is the simplest way of authentication. It just needs
a username and password to allows a user to access a system.
o Two-factor Authentication
As per the name, it is two-level security; hence it needs two-step verification to
authenticate a user. It does not require only a username and password but also
needs the unique information that only the particular user knows, such as first
school name, a favorite destination. Apart from this, it can also verify the user
by sending the OTP or a unique link on the user's registered number or email
address.
o Multi-factor Authentication
This is the most secure and advanced level of authorization. It requires two or
more than two levels of security from different and independent categories.
This type of authentication is usually used in financial organizations, banks, and
law enforcement agencies. This ensures to eliminate any data exposer from the
third party or hackers.
2. Passwordless authentication
In this technique, the user doesn't need any password; instead, he gets an OTP (One-
time password) or link on his registered mobile number or phone number. It can also
be said OTP-based authentication.
3. 2FA/MFA
4. Single Sign-on
Single Sign-on or SSO is a way to enable access to multiple applications with a single
set of credentials. It allows the user to sign-in once, and it will automatically be signed
in to all other web apps from the same centralized directory.
5. Social Authentication
Social authentication does not require additional security; instead, it verifies the user
with the existing credentials for the available social network.
What is Authorization?
o Authorization is the process of granting someone to do something. It means it
a way to check if the user has permission to use a resource or not.
o It defines that what data and information one user can access. It is also said as
AuthZ.
o The authorization usually works with authentication so that the system could
know who is accessing the information.
o Authorization is not always necessary to access information available over the
internet. Some data available over the internet can be accessed without any
authorization, such as you can read about any technology from here.
Authorization Techniques
o Role-based access control
RBAC or Role-based access control technique is given to users as per their role
or profile in the organization. It can be implemented for system-system or
user-to-system.
o JSON web token
JSON web token or JWT is an open standard used to securely transmit the
data between the parties in the form of the JSON object. The users are verified
and authorized using the private/public key pair.
o SAML
SAML stands for Security Assertion Markup Language. It is an open
standard that provides authorization credentials to service providers. These
credentials are exchanged through digitally signed XML documents.
o OpenID authorization
It helps the clients to verify the identity of end-users on the basis of
authentication.
o OAuth
OAuth is an authorization protocol, which enables the API to authenticate and
access the requested resources.
In this, the user or client and server are In this, it is verified that if the user is
verified. allowed through the defined policies and
rules.
It requires the login details of the user, It requires the user's privilege or security
such as user name & password, etc. level.
Data is provided through the Token Ids. Data is provided through the access
tokens.
Types of Malware
1. Viruses – A Virus is a malicious executable code attached to another
executable file. The virus spreads when an infected file is passed from
system to system. Viruses can be harmless or they can modify or delete
data. Opening a file can trigger a virus. Once a program virus is active, it
will infect other programs on the computer.
2. Worms – Worms replicate themselves on the system, attaching
themselves to different files and looking for pathways between
computers, such as computer network that shares common file storage
areas. Worms usually slow down networks. A virus needs a host
program to run but worms can run by themselves. After a worm affects
a host, it is able to spread very quickly over the network.
3. Trojan horse – A Trojan horse is malware that carries out malicious
operations under the appearance of a desired operation such as playing
an online game. A Trojan horse varies from a virus because the Trojan
binds itself to non-executable files, such as image files, and audio files.
4. Ransomware – Ransomware grasps a computer system or the data it
contains until the victim makes a payment. Ransomware encrypts data
in the computer with a key that is unknown to the user. The user has to
pay a ransom (price) to the criminals to retrieve data. Once the amount
is paid the victim can resume using his/her system
5. Adware – It displays unwanted ads and pop-ups on the computer. It
comes along with software downloads and packages. It generates
revenue for the software distributer by displaying ads.
6. Spyware – Its purpose is to steal private information from a computer
system for a third party. Spyware collects information and sends it to the
hacker.
7. Logic Bombs – A logic bomb is a malicious program that uses a trigger
to activate the malicious code. The logic bomb remains non-functioning
until that trigger event happens. Once triggered, a logic bomb
implements a malicious code that causes harm to a computer.
Cybersecurity specialists recently discovered logic bombs that attack
and destroy the hardware components in a workstation or server
including the cooling fans, hard drives, and power supplies. The logic
bomb overdrives these devices until they overheat or fail.
8. Rootkits – A rootkit modifies the OS to make a backdoor. Attackers
then use the backdoor to access the computer distantly. Most rootkits
take advantage of software vulnerabilities to modify system files.
9. Backdoors – A backdoor bypasses the usual authentication used to
access a system. The purpose of the backdoor is to grant cyber criminals
future access to the system even if the organization fixes the original
vulnerability used to attack the system.
10. Keyloggers – Keylogger records everything the user types on his/her
computer system to obtain passwords and other sensitive information
and send them to the source of the keylogging program.
How To Know If Our Devices Are Infected With
Malware?
The following are the most typical indications that malware has compromised
your computer:
1. Performing poorly on the computer by execution.
2. When your web browser directs you to a website you didn’t intend to
visit, this is known as a browser redirect.
3. Warnings about infections are frequently accompanied by offers to buy
a product to treat them.
4. Having trouble starting or shutting down your computer.
5. Persistent pop-up ads.
How To Protect From Malware?
The good news is that there are just as many ways to protect yourself from
malware as there are different types of malware. Look at these top suggestions:
1. Protect your devices.
2. Update your operating system and software. Install updates as soon as
they become available because cybercriminals search for vulnerabilities
in out-of-date or outdated software.
3. Never click on a popup’s link. Simply click the “X” in the message’s upper
corner to close it and leave the page that generated it.
4. Don’t install too many apps on your devices. Install only the apps you
believe you will regularly use and need.
5. Be cautious when using the internet.
6. Do not click on unidentified links. If a link seems suspicious, avoid
clicking it whether it comes from an email, social networking site, or text
message.
7. Choose the websites you visit wisely. Use a safe search plug-in and try to
stick to well-known and reputable websites to avoid any that might be
malicious without your knowledge.
8. Emails requesting personal information should be avoided. Do not click
a link in an email that appears to be from your bank and asks you to do
so in order to access your account or reset your password. Log in
immediately at your online banking website.
How To Remove Malware?
As was already mentioned, a large number of security software programs are
made to both find and stop malware as well as to eliminate it from infected
systems.
An antimalware tool that handles malware detection and removal is
Malwarebytes. Malware can be eliminated from Windows, macOS, Android, and
iOS operating systems. A user’s registry files, currently running programs, hard
drives, and individual files can all be scanned by Malwarebytes. Malware can then
be quarantined and removed if it is found. Users cannot, however, set automatic
scanning schedules like they can with some other tools.
Benefits of Virtualization
• More flexible and efficient allocation of resources.
• Enhance development productivity.
• It lowers the cost of IT infrastructure.
• Remote access and rapid scalability.
• High availability and disaster recovery.
• Pay peruse of the IT infrastructure on demand.
• Enables running multiple operating systems.
Drawback of Virtualization
• High Initial Investment: Clouds have a very high initial investment,
but it is also true that it will help in reducing the cost of companies.
• Learning New Infrastructure: As the companies shifted from Servers
to Cloud, it requires highly skilled staff who have skills to work with the
cloud easily, and for this, you have to hire new staff or provide training
to current staff.
• Risk of Data: Hosting data on third-party resources can lead to putting
the data at risk, it has the chance of getting attacked by any hacker or
cracker very easily.
For more benefits and drawbacks, you can refer to the Pros and Cons of
Virtualization.
Characteristics of Virtualization
• Increased Security: The ability to control the execution of a guest
program in a completely transparent manner opens new possibilities for
delivering a secure, controlled execution environment. All the
operations of the guest programs are generally performed against the
virtual machine, which then translates and applies them to the host
programs.
• Managed Execution: In particular, sharing, aggregation, emulation,
and isolation are the most relevant features.
• Sharing: Virtualization allows the creation of a separate computing
environment within the same host.
• Aggregation: It is possible to share physical resources among several
guests, but virtualization also allows aggregation, which is the opposite
process.
For more characteristics, you can refer to Characteristics of Virtualization.
Types of Virtualization
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization
This operating system consists of numerous computers, nodes, and sites joined
together via LAN/WAN lines. It enables the distribution of full systems on a couple of
center processors, and it supports many real-time products and different users.
Distributed operating systems can share their computing resources and I/O files while
providing users with virtual machine abstraction.
1. Client-Server Systems
2. Peer-to-Peer Systems
3. Middleware
4. Three-tier
5. N-tier
Client-Server System
This type of system requires the client to request a resource, after which the server
gives the requested resource. When a client connects to a server, the server may serve
multiple clients at the same time.
Client-Server Systems are also referred to as "Tightly Coupled Operating Systems". This
system is primarily intended for multiprocessors and homogenous multicomputer.
Client-Server Systems function as a centralized server since they approve all requests
issued by client systems.
It provides a file system interface for clients, allowing them to execute actions like file
creation, updating, deletion, and more.
Peer-to-Peer System
The nodes play an important role in this system. The task is evenly distributed among
the nodes. Additionally, these nodes can share data and resources as needed. Once
again, they require a network to connect.
The Peer-to-Peer System is known as a "Loosely Couple System". This concept is used
in computer network applications since they contain a large number of processors that
do not share memory or clocks. Each processor has its own local memory, and they
interact with one another via a variety of communication methods like telephone lines
or high-speed buses.
Middleware
Middleware enables the interoperability of all applications running on different
operating systems. Those programs are capable of transferring all data to one other
by using these services.
Three-tier
The information about the client is saved in the intermediate tier rather than in the
client, which simplifies development. This type of architecture is most commonly used
in online applications.
N-tier
When a server or application has to transmit requests to other enterprise services on
the network, n-tier systems are used.
Openness
It means that the system's services are freely displayed through interfaces.
Furthermore, these interfaces only give the service syntax. For example, the type of
function, its return type, parameters, and so on. Interface Definition Languages are
used to create these interfaces (IDL).
Scalability
It refers to the fact that the system's efficiency should not vary as new nodes are added
to the system. Furthermore, the performance of a system with 100 nodes should be
the same as that of a system with 1000 nodes.
Resource Sharing
Its most essential feature is that it allows users to share resources. They can also share
resources in a secure and controlled manner. Printers, files, data, storage, web pages,
etc., are examples of shared resources.
Flexibility
Transparency
It is the most important feature of the distributed operating system. The primary
purpose of a distributed operating system is to hide the fact that resources are shared.
Transparency also implies that the user should be unaware that the resources he is
accessing are shared. Furthermore, the system should be a separate independent unit
for the user.
Heterogeneity
The components of distributed systems may differ and vary in operating systems,
networks, programming languages, computer hardware, and implementations by
different developers.
Fault Tolerance
Fault tolerance is that process in which user may continue their work if the software or
hardware fails.
Solaris
OSF/1
It's compatible with Unix and was designed by the Open Foundation Software
Company.
Micros
The MICROS operating system ensures a balanced data load while allocating jobs to
all nodes in the system.
DYNIX
Locus
It may be accessed local and remote files at the same time without any location
hindrance.
Mach
Network Applications
DOS is used by many network applications, including the Web, peer-to-peer networks,
multiplayer web-based games, and virtual communities.
Telecommunication Networks
DOS is useful in phones and cellular networks. A DOS can be found in networks like
the Internet, wireless sensor networks, and routing algorithms.
Parallel Computation
DOS is the basis of systematic computing, which includes cluster computing and grid
computing, and a variety of volunteer computing projects.
The real-time process control system operates with a deadline, and such examples
include aircraft control systems.
Advantages
There are various advantages of the distributed operating system. Some of them are
as follow:
1. It may share all resources (CPU, disk, network interface, nodes, computers, and
so on) from one site to another, increasing data availability across the entire
system.
2. It reduces the probability of data corruption because all data is replicated across
all sites; if one site fails, the user can access data from another operational site.
3. The entire system operates independently of one another, and as a result, if one
site crashes, the entire system does not halt.
4. It increases the speed of data exchange from one site to another site.
5. It is an open system since it may be accessed from both local and remote
locations.
6. It helps in the reduction of data processing time.
7. Most distributed systems are made up of several nodes that interact to make
them fault-tolerant. If a single machine fails, the system remains operational.
Disadvantages
There are various disadvantages of the distributed operating system. Some of them
are as follows:
1. The system must decide which jobs must be executed when they must be
executed, and where they must be executed. A scheduler has limitations, which
can lead to underutilized hardware and unpredictable runtimes.
2. It is hard to implement adequate security in DOS since the nodes and
connections must be secured.
3. The database connected to a DOS is relatively complicated and hard to manage
in contrast to a single-user system.
4. The underlying software is extremely complex and is not understood very well
compared to other systems.
5. The more widely distributed a system is, the more communication latency can
be expected. As a result, teams and developers must choose between
availability, consistency, and latency.
6. These systems aren't widely available because they're thought to be too
expensive.
7. Gathering, processing, presenting, and monitoring hardware use metrics for big
clusters can be a real issue.