pdf viewer winforms c# : How to cut and paste image from pdf Library software component asp.net winforms windows mvc protecting-personal-data-in-online-services-learning-from-the-mistakes-of-others2-part194

20 
Protecting personal data in online services 
May 2014 v1 
Example  
A company wants to copy some large files from one computer 
to another, over the internet. The destination machine is 
intended to serve up a new corporate intranet website, which 
is not intended to be accessible from outside the organisation. 
Eventually, this intranet site will be used to process some 
personal data, but during development and setup no personal 
data is involved. 
The transfer is a non-routine task so there is no established 
method to perform the transfer with. A system administrator 
therefore arranges for the transfer to take place by setting up 
an anonymous FTP service temporarily on the destination 
machine, which can be accessed via the internet. The files are 
transferred to the destination machine using this FTP service, 
with the FTP root being the same location as the files will be 
needed for the intranet site. 
After the file transfer is complete, the system administrator 
continues setting up the new intranet site, but forgets about 
the temporary FTP server and leaves it running. 
The intranet site is put into use and begins to process personal 
data. This personal data is now potentially at risk because of 
the anonymous FTP access which is still available. If an 
internet search engine were to index the FTP server, the 
personal data could be easily discovered through the use of 
that search engine.  
How to cut and paste image from pdf - copy, paste, cut PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed tutorial for copying, pasting, and cutting image in PDF page using C# class code
how to copy and paste an image from a pdf; paste jpeg into pdf
How to cut and paste image from pdf - VB.NET PDF copy, paste image library: copy, paste, cut PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Tutorial for How to Cut or Copy an Image from One Page and Paste to Another
how to paste a picture into a pdf; paste image in pdf preview
21 
Protecting personal data in online services 
May 2014 v1 
Example  
A company has historically used a webmail application to allow 
staff to gain remote access to their email. Because of a lack of 
available externally-facing IP addresses, the perimeter firewall 
is set up to use network address translation (NAT), port-
forwarding requests on TCP port 443 directly to the webmail 
server. 
The company decides that this external webmail service is no 
longer necessary and so the server is decommissioned by 
simply switching it off. However the NAT setup and firewall 
rules are not changed. 
Later, an internal web application is set up to allow staff to 
access their personnel records. The old webmail server 
hardware is re-used to install a new operating system and set 
up the personnel web application on TCP port 443. The 
network DHCP server assigns this re-installed system the same 
IP address as the old webmail server had. 
Although the company is not aware of it, the personnel 
application, which was intended only as an internal resource, is 
now accessible externally via the NAT and port-forwarding 
rules which are still in place.  
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
how to cut image from pdf file; how to copy pdf image to word
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
VB.NET DLLs: Extract, Copy and Paste PDF Page. you can use it to extract all images from PDF document Dim page As PDFPage = doc.GetPage(3) ' Select image by the
how to copy pdf image into powerpoint; paste picture into pdf preview
22 
Protecting personal data in online services 
May 2014 v1 
Decommissioning – good practice summary: 
Be aware of all the components of a service so that you can 
make sure they are all decommissioned. 
Make a record of any temporary services which you will 
eventually need to disable. 
Thoroughly check that the decommissioning procedure has 
actually succeeded. Use systematic tools such as port 
scanners to do this where possible. Do not forget to arrange 
for proper disposal of any hardware, as appropriate (see the 
ICO guidance on IT disposal). 
Password storage 
55.
Users’ access credentials (eg a username and password or 
passphrase) are particularly valuable to attackers, for a number 
of different reasons: 
An attacker who knows a user's credentials for a particular 
service can gain unauthorised access by impersonating that 
user. 
A user may have re-used exactly the same username and 
password for other accounts relating to different services. 
This is especially likely if the username is an email address. 
In the worst case scenario, the user has re-used exactly the 
same password to access that email account.  
A user’s password may suggest a pattern which can be used 
by an attacker to guess other passwords. For instance, if an 
attacker discovers the password 'romeo1', in January, then 
this would suggest that the same user might use 'romeo2' 
when their password expires in February. Similar passwords 
might also be used for other services, such as 'romeo99' or 
perhaps something more loosely related such as 'juliet22'. 
56.
For these reasons, it is important that you manage credentials 
appropriately. In many contexts, you will already have 
appropriate password procedures in place (an example might be 
the authentication used by an already-installed operating 
system). However in some cases, you will have full 
responsibility for deciding how you handle passwords, for 
C# PDF remove image library: remove, delete images from PDF in C#.
document page. Able to cut and paste image into another PDF file. Export high quality image from PDF document in .NET program. Remove
copy image from pdf to powerpoint; paste image into preview pdf
C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Converter control easy to create thumbnails from PDF pages. Selection for compressing to multiple image formats. Cut and paste any areas in PDF pages to images.
how to copy pictures from a pdf; how to copy pdf image to powerpoint
23 
Protecting personal data in online services 
May 2014 v1 
example, where a bespoke web application uses a back-end 
database. 
57.
Secure handling of passwords is a final measure which 
reduces the adverse consequences of an otherwise successful 
attack which has defeated other security measures. However, it 
is important that password handling is considered before a 
serious attack occurs. Unfortunately the ICO's experience shows 
that poor password procedures often only come to light after a 
data breach. 
58.
If you do not have password security expertise available, you 
may want to consider using established third-party 
authentication services. Whether this is appropriate will depend 
on the sensitivity of the personal data in question, together with 
the level of trust placed in the third-party authentication 
provider. 
The necessity of hashing 
59.
An important principle is that passwords should not be 
recoverable directly, in order to reduce the harm done if 
someone gains unauthorised access to the password 
information. This rules out the storage of passwords in plain 
text because these are immediately readable by a system 
administrator or a casual observer. It also means that 
encryption is not generally appropriate, since an encrypted 
value needs to be decrypted to retrieve the original password. 
This action of decryption requires access to a key, which must 
be securely managed. It also means that authorised staff (eg 
system or other administrators) who have access to the key 
may also be able to decrypt and access users’ passwords. You 
should not underestimate the considerable compliance 
measures required for the safe and secure storage of such a 
key. 
60.
It is poor practice for an online service to be able to remind a 
user of their current password directly in plain text (eg by 
including it in an email). This would be a clear indication that 
the passwords are either stored in plain text or, at best, 
passwords are being encrypted but then decrypted. Either of 
these approaches would be insecure. 
61.
In practice, a procedure called 'hashing' should be used. A 
hash function is a one-way method which converts a password 
into a hashed value, often simply called the 'hash'. When a user 
first registers with a service and provides a password this is 
hashed and only this hash value is stored. When a user returns 
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
How to C#: Extract Image from PDF Document. List<PDFImage> allImages = PDFImageHandler. ExtractImages(page); C#: Select An Image from PDF Page by Position.
how to copy image from pdf to word; paste image on pdf preview
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
VB.NET PDF - Extract Image from PDF Document in VB.NET. Support PDF VB.NET : Select An Image from PDF Page by Position. Sample for
copy images from pdf to word; how to copy image from pdf to word document
24 
Protecting personal data in online services 
May 2014 v1 
and enters their password, the hash is freshly calculated then 
compared with the stored hash. If the two hashes match, then 
the user can be authenticated.  
62.
The one-way nature of hashes is key: if an attacker somehow 
obtains a list of hashes, they cannot directly work out what the 
passwords are, even if they know the particular hash function 
that was used. 
63.
An attacker can, however, guess passwords one after another, 
calculating the hash every time and checking for a match in the 
list of hashes (this can be referred to as an 'offline', 'hash 
cracking' or 'password cracking' attack). While hashing does not 
eliminate all probability that an attacker can discover the 
original password, if done appropriately, hashing makes 
password cracking attacks extremely time-consuming and 
therefore impractical. 
64.
The ultimate goal of hashing is that you will have adequate 
time to detect any password breach and take appropriate action 
(such as forcing a reset of compromised passwords) before the 
attacker has a realistic chance of correctly guessing any 
passwords. 
The necessity of salting 
65.
It is important to use a technique called 'salting' to further 
guard against password cracking attacks. 
66.
A 'salt' in this context is a string of random data unique to 
each user. The salt is used by combining it with the user's 
password, then hashing the result. The salt is then generally 
stored alongside the hash in a database. When a user logs in to 
the service the stored salt and the supplied password are 
freshly combined and hashed. As in the unsalted method, the 
new hash and the stored hash are compared to determine if the 
user should be authenticated. 
67.
Even though salts will generally be available to any attacker 
who already has the related list of password hashes, using salts 
further increases the time and effort involved in mounting a 
password cracking attack. When brute-forcing more than one 
password, having a unique salt for each user prevents an 
attacker from successfully checking for matches across all the 
hashes, in turn slowing the overall attack down. To benefit from 
this, the only requirement of the salts is that they are unique 
for each user. 
VB.NET PDF url edit library: insert, remove PDF links in vb.net
Copy, cut and paste PDF link to another PDF Link access to variety of objects, including website, image, document, bookmark, PDF page number, flash, etc.
how to copy a pdf image into a word document; copy image from pdf
How to C#: Basic SDK Concept of XDoc.PDF for .NET
file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and Image Process. If you want to process images contained in PDF document, the
copying images from pdf files; copy pdf picture
25 
Protecting personal data in online services 
May 2014 v1 
68.
Salting also effectively increases the length and complexity of 
the value to be hashed, meaning that calculating all possible 
hashes in advance (in what's called a 'rainbow table') becomes 
much less feasible. The longer the salt, the less feasible it 
becomes to compute a rainbow table. A typical salt-length 
would be 128-bits, and this length is given as a minimum in 
NIST's "Recommendation for Password-Based Key Derivation". 
69.
A related benefit of unique salts is that it is not obvious from 
the list of hashes when two or more users have chosen exactly 
the same password. 
The requirements of a password hash function 
70.
An important requirement of an appropriate hash function 
when used for passwords is that it is sufficiently time-
consuming to compute. A hash function that takes a long time 
to compute can be quick enough for legitimate day-to-day use 
(ie a user performing a login will not notice a fraction of a 
second delay while the hash is calculated), yet it can severely 
slow down a password cracking attack. The key point to 
remember is that as computer hardware continually improves, 
the calculation of hashes becomes correspondingly faster. This 
means that, over time, some hash methods will become 
inappropriate for use with passwords because advances in 
computing hardware have made 'brute-force' attacks feasible. 
An offline brute-force attack simply involves computing the 
hashes of all possible passwords within a given scope. 
71.
An example of a hashing method that has been overtaken by 
advances in computing hardware is MD5. Since 1991, when 
MD5 was first developed, great improvements have been made 
which enable much faster calculation of hashes. This means 
that MD5 should not be used for hashing passwords. Appendix 
B contains the results of the ICO's own research into MD5 hash 
cracking, which shows how fast passwords can be obtained 
from MD5 hashes using even modest desktop computer 
hardware. 
72.
The SHA-1 hashing method, first introduced in 1995, is also 
widely regarded as inappropriate for password use, for example 
by NIST in the USA. 
73.
Password cracking has also become much faster in recent 
years through the use of Graphical Processing Units (GPUs) and 
even dedicated hardware. Cloud computing services can also be 
used on demand without any need for the attacker to buy 
26 
Protecting personal data in online services 
May 2014 v1 
physical hardware. Skilled attackers would be likely to employ 
such resources when attempting an offline brute-force attack. 
74.
The time necessary to successfully guess users' passwords 
needs to be made significantly long since, according to Verizon's 
"2014 Data Breach Investigations Report", the majority of 
compromises are achieved in a matter of days (or less) while 
only a minority of data breaches are discovered in a similar 
timeframe. Combined with other data from the report, this 
indicates that the password hashing method should be strong 
enough to delay an offline brute-force attack for at least a 
matter of months. 
75.
Where you are responsible for choosing how to hash 
passwords, you should aim to use a password hashing scheme 
(technically known as a "key derivation function") that can 
arbitrarily increase the amount of computation required, in 
order to keep pace with future technological advances. This 
feature is often referred to as a "variable work factor". 
Examples include: 
PBKDF2 
bcrypt 
scrypt 
76.
Development in this field continues, so be aware that the list 
of available key derivation functions is open to change. The 
most important thing to remember is that you should review 
current good practice in key derivation functions during the 
design phase of the project so that you can choose a suitable 
option. 
77.
If using one of these key derivation functions is for some 
reason not currently possible or practical, then a simpler 
hashing algorithm might be acceptable. However, you should 
carefully consider the future risk of designing and using your 
own hashing scheme that will at some point become outdated. 
78.
A detailed assessment of cryptographic measures has been 
published by the European Union Agency for Network and 
Information Security (ENISA), part of which refers to password 
hashing. The report is entitled Algorithms, Key Sizes and 
Parameters Report - 2013 Recommendations. In section 3.3 it 
supports the above analysis, namely that: 
MD5 is not appropriate; and 
SHA-1 is acceptable for legacy systems but should not 
be designed into new systems. 
27 
Protecting personal data in online services 
May 2014 v1 
Good password choice 
79.
Even with robust, salted hashing in place, there is still the 
threat of an attacker using a 'dictionary attack' to guess 
passwords that are known to be common. A good password 
hashing scheme can still be defeated if a weak password (ie a 
common one) is chosen by the user. 
80.
You should permit your users to choose a strong password, 
and where possible, actively encourage them to do so. Ways to 
increase the strength of a password include: 
creating a long password or passphrase; 
using a wide range of characters, such as: 
o
uppercase letters; 
o
lowercase letters; 
o
numbers; 
o
punctuation marks; and 
o
other symbols. 
avoiding the use of dictionary words where possible; 
avoiding simple substitutions such as 'p4$$w0rd'; and 
avoiding the use of patterns derived from the physical 
keyboard layout (e.g. 'qwerty' or '1qaz2wsx'), since these are 
extremely common among users who do not use a latin 
alphabet in their mother tongue. 
81.
You should advise your users to use techniques such as those 
listed above. If well designed, a 'strength meter' can be used 
when setting passwords, to give the user immediate feedback. 
You may also wish to consider blacklisting the most common 
passwords. 
82.
In some cases, if a common password has been chosen, an 
attacker may not even need to mount their own password 
cracking attack: instead they could simply search the web for 
the hashed value to try and find the corresponding password. 
83.
Do not unnecessarily limit the permissible character set or the 
maximum length since this would simply reduce the time an 
attacker would need to mount a successful brute force attack. 
In any case, there is often no obvious benefit of limiting 
password length when password hashing is correctly 
28 
Protecting personal data in online services 
May 2014 v1 
implemented, since the hashed values will all be the same, 
known length, requiring the same storage space. 
Password hashing – good practice summary: 
Don’t store passwords in plain text, nor in decryptable form. 
Use a hash function. Only store the hashed values. 
The hash function should have appropriate strength to make 
offline brute-force attacks extremely impractical. 
Use salting to make offline brute-force attacks less effective. 
Periodically review the strength of the hash function and 
keep up to date with advances in computing power. The best 
way of achieving this is to use a password hashing scheme 
with a configurable work factor. 
Use a combination of password strength requirements and 
user-education to ensure that attackers can't simply guess 
common passwords. 
Have a plan of action in case of a password breach. This 
should include how to reset users' passwords in bulk and 
how to notify them of what has happened and what they 
need to do about it. 
Configuration of SSL or TLS 
84.
Secure Sockets Layer (SSL) and Transport Layer Security 
(TLS) are closely related encryption schemes used for ensuring 
secure communications across the internet. For example, 
visiting an https:// website means the site is using either SSL 
or TLS. In practice, the single term 'SSL' is often used loosely to 
signify either or both of SSL and TLS, even though TLS has 
been in existence since 1999 and is now widely used and 
supported. 
85.
A connection between two systems using SSL or TLS is 
designed to provide two assurances: 
The communication is encrypted. 
The identity of one or both of the endpoints can be 
trusted. 
29 
Protecting personal data in online services 
May 2014 v1 
86.
Misconfiguring an SSL or TLS service will cause one or both of 
these assurances not to be guaranteed. However, both 
assurances are required to create a trusted connection so that 
personal data or other sensitive information can be securely 
transferred. 
Assurance of encryption 
87.
Failure to provide the first assurance (encryption) means that 
any sensitive information transmitted will be viewable via any 
computer system on the route between the two systems. 
88.
Most obviously, it is important to verify that SSL or TLS is 
running as expected. For instance, just because a website is 
made available over the default port for an SSL-enabled web 
server (TCP port 443) does not mean it is using SSL or TLS 
automatically. SSL or TLS must be specifically enabled. 
89.
The simplest way for an attacker to defeat the encryption 
provided by an SSL or TLS service is if the same data is already 
available via a non-encrypted method. This can happen, for 
example, if information is made available on an 
https://
website but is also made available over a plain 
http://
connection. You should have a clear concept of which 
information needs to be encrypted and which does not, and 
apply the use of SSL or TLS as appropriate. To reduce 
complexity, you may also wish to consider using SSL or TLS 
throughout your entire domain. 
90.
In the case of a website, any included content such as 
images, javascript or CSS should also be provided over SSL or 
TLS. Failure to do so risks compromising the security of the 
connection and will generally result in 'mixed content' warnings 
in users' browsers. 
91.
It is also poor practice to allow users to remain logged in to a 
website or other web application if they navigate from an 
https:// page to an http:// page. This could allow an 
attacker to read a user's session cookie, which in turn would let 
an attacker gain access as if they were a logged-in user. 
92.
The particular settings enabled for any SSL or TLS connection 
need to ensure adequate encryption: 
Do not use SSL version 2, as this is insecure. At a 
minimum, use SSL version 3, but preferably use TLS 
with the latest version possible. TLS 1.2 is current at the 
Documents you may be interested
Documents you may be interested