Professional Documents
Culture Documents
Password
Security & Risk Report
1. Executive Summary 2
1.1 Introduction 2
1.2 Purpose 2
1.3 Scope of Security & Risk 2
1.4 Execution of Security & Risk Report 2
2. Risk Profile 3
2.1 Risk Assessment 3
2.2 Source Code Check 4
2.3 Recommended Security Algorithms 5
2.4 Recommended Security Protocols 6
2.5 Risk Maturity Assessment 7
2.6 High Level Security Solutions Proposal 8
1.2 Purpose
The purpose of this report is to support the project by investigating and assessing the security and
risks involved as part of the design phase to ensure that implementation and operation of the
application complies with all security requirements in addressing key risk factors.
The report also ensures valuable communication of information to key stakeholders in order to
establish trust with Team 5 and the ongoing development of the project.
Noisy Environment
2
Background noise could affect the accuracy of recognising users voices
when attempting to log in, it could falsely deny them access. If a user
first sets their "voice password" in a noisy environment, they may not be
able to get in later as the recording may have picked up that
background noise. In order to prevent this the application needs to filter
out background noise.
Data Disclosure
2
Data access should be limited to those who absolutely need it and are
trusted to not disclose sensitive data.
One of the key security fundamentals to developing an application is ensuring that the source code
used to develop is secure and contains no vulnerabilities. This will need to be reviewed at each
phase of the project.
Resources.Designer.cs 63 3.633 32 22 8 0 0
Settings.Designer.cs 26 1.499 12 8 5 0 0
XMLFunctions.cs 11 0.634 7 0 4 0 0
UserRecord.cs 19 1.096 14 1 4 0 0
speechRecognition.cs 49 2.826 41 3 5 0 0
sentenceGenerator.cs 52 2.999 43 4 5 0 0
Program.cs 22 1.269 18 3 1 0 0
projectOxford.cs 12 0.692 11 0 1 0 0
MD5:
The MD5 algorithm is a widely used hash function producing a 128-bit hash value. Although MD5
was initially designed to be used as a cryptographic hash function, it has been found to suffer from
extensive vulnerabilities.
Relation: MD5 use hash function, so it is easier to implement in C#, which is what the program
uses. MD5 is extremely vulnerable, but we can still use MD5 to checksum data integrity.
RSA:
RSA is one of the first practical public-key cryptosystems and is widely used for secure data
transmission. In such a cryptosystem, the encryption key is public and differs from the decryption
key which is kept secret. In RSA, this asymmetry is based on the practical difficulty of factoring the
product of two large prime numbers, the factoring problem.
Relation: Compared with other algorithm, RSA is a slow way for encryption, but very safe. For
voice data of bulk encryption-decryption operations, it is a higher speed to ensure voice data is
safe for transmission and using. It is recommended to use RSA for safe key exchange.
AES:
The Advanced Encryption Standard (AES), also known by its original name Rijndael is a
specification for the encryption of electronic data established by the U.S. National Institute of
Standards and Technology (NIST) in 2001. For AES, NIST selected three members of the Rijndael
family, each with a block size of 128 bits, but three different key lengths: 128, 192 and 256 bits.
AES has been adopted by the U.S. government and is now used worldwide. It supersedes the Data
Encryption Standard (DES), which was published in 1977. The algorithm described by AES is a
symmetric-key algorithm, meaning the same key is used for both encrypting and decrypting the
data. AES is available in many different encryption packages, and is the first (and only) publicly
accessible cipher approved by the National Security Agency (NSA) for top-secret information when
used in an NSA approved cryptographic module.
Relation: This is a global and safe way for encryption, it can encrypt many kinds of data, such as
message, video and voice. It is recommended to use AES to encrypt the actual data.
Recommendation:
AES should be used alongside RSA to ensure secure data transmission. Since AES is symmetric
encryption (only uses one key for encrypting and decrypting), it is vulnerable during key exchange.
RSA uses two different keys for encryption and decryption, one public and one private. Using RSA
for key exchange and AES to encrypt the actual data will enable data to stay secure. MD5 can be
used to check whether the data is what it is supposed to be, ensuring data integrity.
VoIP:
Voice over Internet Protocol (Voice over IP, VoIP and IP telephony) is a methodology and group of
technologies for the delivery of voice communications and multimedia sessions over Internet
Protocol (IP) networks, such as the Internet. The terms Internet telephony, broadband telephony,
and broadband phone service specifically refer to the provisioning of communications services
(voice, fax, SMS, voice messaging) over the public Internet, rather than via the public switched
telephone network (PSTN).
Relation: VoIP is available on many smartphones, personal computers, and on Internet access
devices. Voice password needs VoIP to transmit information and based on the VoIP is easier to
achieve voice service.
SRTP:
The Secure Real-time Transport Protocol (or SRTP) defines a profile of RTP (Real-time Transport
Protocol), intended to provide encryption, message authentication and integrity, and replay
protection to the RTP data in both unicast and multicast applications.
ZRTP:
ZRTP (composed of Z and Real-time Transport Protocol) is a cryptographic key-agreement
protocol to negotiate the keys for encryption between two end points in a Voice over Internet
Protocol (VoIP) phone telephony call based on the Real-time Transport Protocol. It uses Diffie
Hellman key exchange and the Secure Real-time Transport Protocol (SRTP) for encryption.
Relation: The VoIP needs encryption to transmit and SRTP is used in real-time transport for
encryption and ensure the message authentication and integrity. ZRTP, can be uses for encryption
between user login and reply.
LEGEND
1: Unmanaged - indicates that the team is either unaware of the risk/issue or has taken no steps to address
this risk or issue.
2: Aware - indicates that the team has an awareness of the risk/issue but there is little practical evidence of
action.
3: Formative - indicates that the team is actively addressing a particular risk or issue. There is evidence of a
planned approach, even if it is not fully implemented.
4: Operational - indicates that the team has completed implementation of planned initiatives in regard to the
risk issue and that those initiatives are operation to a reasonable standard.
5: Proactive - our ultimate goal where the team has a plan, is operating to address the risk/issue and is future
proofing risks by having maintenance, patching and review schedules in place.
Data Storage Failure Backup of source code is on github. The program was 2
deleted and successfully restored from the backup. No
database backup plans.
Data Disclosure It has not been decided who has access to the data and if 1
they are trusted.
Source Code Vulnerabilities The code has been tested using VisualCodeGrepper. The 3
program is being tested for errors as development
progresses.
The following security deliverables are required for the next phase of the project with priority levels,
duration of work and prerequisites:
1 Security Plan A plan which details the highest critical risks and HIGH 2 weeks
the method to address it with a structured
approach
3 Security Controls A document which lists all the controls required MEDIUM 2 weeks 1
and mentioned in the Security Plan to protect
and prevent the system from threats or failure
5 Risk Maturity Review how the projects risks have been LOW 1 week 1, 2, 3, 4
Assessment addressed and their maturity levels.
Phase 2
6 ISMS audit An audit and report to review the performance of LOW 1 week 2, 3, 4
deliverables 2, 3 and 4. A metric system should
be established and periodical auditing set out in
a future security policy.
7 Security Policy (If required) This should detail all the policies LOW 1 week All above
that the developing and support team should
comply with regarding security.