c# pdf to tiff : Create a pdf signature file software control project winforms web page azure UWP Python%20How%20to%20Program%20200267-part1755

2
Index 
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/17/01
socket
760
socket
763
776
socket close
768
socket module
763
socket.error
766
socket-based communications
760
start method
776
stream socket
760
766
773
streams
760
streams-based transmission
770
system service
764
T
TCP (Transmission Control 
Protocol)
760
telephone system
770
the server portion of a stream 
socket connection between a 
client and a server
766
Thread class
777
threading.Event class
776
threading.Thread class
777
Tic-Tac-Toe
773
TicTacToeClient
773
777
TicTacToeServer
773
Tkinter module
777
U
UDP
760
Uniform (or Universal) Resource 
Locators
761
Universal Resource Locators
761
URL
763
URL (uniform resource locator)
761
urllib module
763
urlopen method
763
urlparse method
763
urlparse module
763
User Datagram Protocol
760
W
wait for a new connection
767
wait state
777
waiting for a client to connect
764
Web server
764
Widget class
782
winfo_name method
782
World Wide Web browser
760
World Wide Web server
760
Create a pdf signature file - C# PDF File Permission Library: add, remove, update PDF file permission in C#.net, ASP.NET, MVC, WPF
Tell C# users how to set PDF file permissions, like printing, copying, modifying, extracting, annotating, form filling, etc
add signature to pdf; add signature box to pdf
Create a pdf signature file - VB.NET PDF File Permission Library: add, remove, update PDF file permission in vb.net, ASP.NET, MVC, WPF
VB.NET Tutorial for How to Set PDF File Access Permissions Using XDoc.PDF for .NET
create pdf signature box; create pdf signature field
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
21
Security
Objectives
• To understand the basic concepts of security.
• To understand public-key/private-key cryptography.
• To learn about popular security protocols, such as 
SSL.
• To understand digital signatures, digital certificates, 
certificate authorities and public-key infrastructure.
• To understand Python programming security issues.
• To learn to write restricted Python code.
• To become aware of various threats to secure systems.
Three may keep a secret, if two of them are dead.
Benjamin Franklin
Attack—Repeat—Attack.
William Frederick Halsey, Jr.
Private information is practically the source of every large 
modern fortune.
Oscar Wilde
There must be security for all—or not one is safe.
The Day the Earth Stood Still, screenplay by Edmund H. 
North
No government can be long secure without formidable 
opposition.
Benjamin Disraeli
pythonhtp1_21.fm  Page 777  Wednesday, August 29, 2001  4:16 PM
C# PDF Digital Signature Library: add, remove, update PDF digital
Barcode Read. Barcode Create. OCR. Twain. Edit Digital Signatures. |. Home ›› XDoc.PDF ›› C# PDF: Edit PDF Digital Signature.
add signature field to pdf; add signature to pdf file
VB.NET PDF Digital Signature Library: add, remove, update PDF
PDF in C#, C#.NET PDF Reading, C#.NET Annotate PDF in WPF, C#.NET PDF Create, C#.NET PDF Add a signature or an empty signature field in any PDF file page.
add signature image to pdf acrobat; add signature to preview pdf
778
Security
Chapter 21
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
Outline
21.1
Introduction
21.2
Ancient Ciphers to Modern Cryptosystems
21.3
Secret-key Cryptography
21.4
Public-key Cryptography
21.5
Cryptanalysis
21.6
Key Agreement Protocols
21.7
Key Management
21.8
Digital Signatures
21.9
Public-key Infrastructure, Certificates and Certificate Authorities
21.9.1 Smart Cards
21.10 Security Protocols
21.10.1 Secure Sockets Layer (SSL)
21.10.2 IPSec and Virtual Private Networks (VPN) 
21.11 Authentication
21.11.1 Kerberos
21.11.2 Biometrics
21.11.3 Single Sign-On
21.11.4 Microsoft® Passport
21.12 Security Attacks
21.12.1 Denial-of-Service (DoS) Attacks
21.12.2 Viruses and Worms
21.12.3 Software Exploitation, Web Defacing and Cybercrime
21.13 Running Resticted Python Code
21.13.1 Module rexec
21.13.2 Module Bastion
21.13.3 Web browser example
21.14 Network Security
21.14.1 Firewalls
21.14.2 Intrusion Detection Systems
21.15 Steganography
21.16 Internet and World Wide Web Resources
Summary • Terminology • Self-Review Exercises • Answers to Self-Review Exercises • Exercises • 
Works Cited • Recommended Reading
pythonhtp1_21.fm  Page 778  Wednesday, August 29, 2001  4:16 PM
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
HTML5 Viewer for C# .NET enables you to create signatures to PDF all signatures can be deleted and remove from PDF by using delete signature button.
add signature pdf online; pdf converter sign in
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Tiff
for C# .NET can help to convert Tiff to PDF document online add text signature to Tiff image, insert date signature to Tiff or create freehand signature
create pdf signature; add signature to pdf acrobat
Chapter 21
Security
779
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
21.1 Introduction
The explosion of e-business is forcing companies and consumers to focus on Internet and
network security. Consumers are buying products, trading stocks and banking online. They
are submitting their credit-card numbers, social-security numbers and other confidential in-
formation to vendors through Web sites. Businesses are sending confidential information
to clients and vendors using the Internet. At the same time, an increasing number of security
attacks are taking place on e-businesses, and companies and customers are vulnerable to
these attacks. Data theft and hacker attacks can corrupt files and even shut down businesses.
Preventing or protecting against such attacks is crucial to the success of e-business. In this
chapter, we explore Internet security, including securing electronic transactions and net-
works. We discuss how a Python programmer can secure programming code. We also ex-
amine the fundamentals of secure business and how to secure e-commerce transactions
using current technologies.
e-Fact 21.1
According to a study by International Data Corporation (IDC), organizations spent $6.2 bil-
lion on security consulting in 1999, and IDC expects the market to reach $14.8 billion by
2003.
1
21.1
Modern computer security addresses the problems and concerns of protecting elec-
tronic  communications  and  maintaining  network  security.  There are  four  fundamental
requirements for a successful, secure transaction: privacy, integrity,  authentication and
non-repudiation. The privacy issue is: How do you ensure that the information you transmit
over the Internet has not been captured or passed on to a third party without your knowl-
edge? The integrity issue is: How do you ensure that the information you send or receive
has not been compromised or altered? The authentication issue is: How do the sender and
receiver of a message prove their identities to each other? The nonrepudiation issue is: How
do you legally prove that a message was sent or received?
In addition to these requirements, network security addresses the issue of availability:
How do we ensure that the network and the computer systems to which it connects will stay
in continuous operation?
Python applications potentially can access files on the local computer on which the
code is run. This chapter explains how a programmer can write secure, restricted environ-
ment Python code.
e-Fact 21.2
According to Forrester Research, it is predicted that organizations will spend 55% more on
security in 2002 than they spent in 2000.
2
21.2
We encourage you to visit the Web resources provided in Section 21.16 to learn more
about the latest developments in e-business security. These resources include many infor-
mative and entertaining demos.
21.2 Ancient Ciphers to Modern Cryptosystems
The channels through which data passes are inherently unsecure; therefore, any private in-
formation passed through these channels must somehow be protected. To secure informa-
tion,  data  can  be  encrypted.  Cryptography  transforms  data  by  using  a  cipher,  or
pythonhtp1_21.fm  Page 779  Wednesday, August 29, 2001  4:16 PM
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Create high resolution PDF file without image quality enable users to insert vector images to PDF file. graphic picture, digital photo, signature and logo into
pdf sign; add signature to pdf in preview
.NET PDF SDK - Description of All PDF Processing Control Feastures
Create signatures in existing PDF signature fields; Create signatures in new fields which hold the signature; Add signature image to PDF file. PDF Hyperlink Edit
adding signature to pdf; add signature to pdf reader
780
Security
Chapter 21
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
cryptosystem—a mathematical algorithm for encrypting messages (algorithm is a computer
science term for “procedure”). A key—a string of digits that acts as a password—is input
to the cipher. The cipher uses the key to make data incomprehensible to all but the sender
and intended receivers. Unencrypted data is called plaintext; encrypted data is called ci-
phertext. The algorithm is responsible for encrypting data, while the key acts as a vari-
able—using  different  keys  results  in  different  ciphertext.  Only  the  intended  receivers
should have the corresponding key to decrypt the ciphertext into plaintext.
Cryptographic ciphers have been used throughout history, first recorded by the ancient
Egyptians, to conceal and protect valuable information. In ancient cryptography, messages
were encrypted by hand, usually with a method based on the alphabetic letters of the mes-
sage. The two main types of ciphers were substitution ciphers and transposition ciphers. In
a substitution cipher, every occurrence of a given letter is replaced by a different letter; for
example, if every “a” is replaced by a “b,” every “b” by a “c,” etc., the word “security”
would encrypt to “tfdvsjuz.” The first prominent substitution cipher was credited to Julius
Caesar, and is referred to today as the Caesar Cipher. Using the Caesar Cipher, every
instance of a letter is encrypted by replacing by the letter in the alphabet three places to the
right. For example, using the Caesar Cipher, the word “security” would encrypt to “vhfx-
ulwb.”
In a transposition cipher, the ordering of the letters is shifted; for example, if every
other letter, starting with “s,” in the word “security” creates the first word in the ciphertext
and the remaining letters create the second word in the ciphertext, the word “security”
would encrypt to “scrt euiy.” Complicated ciphers combine substitution and transposition
ciphers. For example, using the substitution  cipher first,  followed by the transposition
cipher, the word “security” would encrypt to “tdsu fvjz.” The problem with many historical
ciphers is that their security relied on the sender and receiver to remember the encryption
algorithm and keep it secret. Such algorithms are called restricted algorithms. Restricted
algorithms are not feasible to implement among a large group of people. Imagine if the
security of U.S. government communications relied on every U.S. government employee
to keep a secret; the encryption algorithm could easily be compromised.
Modern cryptosystems are digital. Their algorithms are based on the individual bits or
blocks (a group of bits) of a message, rather than letters of the alphabet. A computer stores
data as a binary string, which is a sequence of ones and zeros. Each digit in the sequence
is called a bit. Encryption and decryption keys are binary strings with a given key length.
For example, 128-bit encryption systems have a key length of 128 bits. Longer keys have
stronger encryption; it takes more time and computing power to crack the message.
Until January 2000, the U.S. government placed restrictions on the strength of crypto-
systems that could be exported from the United States by limiting the key length of the
encryption algorithms. Today, the regulations on exporting products that employ cryptog-
raphy are less stringent. Any cryptography product may be exported as long as the end user
is not a foreign government or from a country with embargo restrictions on it.
3
21.3 Secret-key Cryptography
In the past, organizations wishing to maintain a secure computing environment used sym-
metric  cryptography,  also  known as secret-key  cryptography. Secret-key  cryptography
uses the same secret key to encrypt and decrypt a message (Fig. 21.1). In this case, the send-
pythonhtp1_21.fm  Page 780  Wednesday, August 29, 2001  4:16 PM
How to C#: Basic SDK Concept of XDoc.PDF for .NET
load, combine, and split PDF file(s), and add, create, insert, delete specific, you can edit PDF password and digital signature, and set PDF file permission
adding signature to pdf form; create signature pdf
C# WinForms Viewer: Load, View, Convert, Annotate and Edit Tiff
Viewer provides other utility features for processing Tiff while in preview, such as convert Tiff file to PDF, add annotations to Tiff, Create signature on tiff
adding signature to pdf document; adding signature to pdf file
Chapter 21
Security
781
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
er encrypts a message using the secret key, then sends the encrypted message to the intend-
ed recipient.  A  fundamental  problem  with  secret-key  cryptography  is that  before  two
people can communicate securely, they must find a secure way to exchange the secret key.
One approach is to have the key delivered by a courier, such as a mail service or FedEx.
While this approach may be feasible when two individuals communicate, it is not efficient
for securing communication in a large network, nor can it be considered completely secure.
The privacy and the integrity of the message would be compromised if the key is intercept-
ed as it is passed between the sender and the receiver over unsecure channels. Also, since
both parties in the transaction use the same key to encrypt and decrypt a message, one can-
not authenticate which party created the message. Finally, to keep communications private
with each receiver, a sender needs a different secret key for each receiver. As a result, or-
ganizations would have huge numbers of secret keys to maintain.
An alternative approach to the key-exchange problem is to have a central authority,
called a key distribution center (KDC). The key distribution center shares a (different)
secret key with every user in the network. In this system, the key distribution center gener-
ates a session key to be used for a transaction (Fig. 21.2). Next, the key distribution center
distributes the session key to the sender and receiver, encrypted with the secret key they
each share with the key distribution center. For example, say a merchant and a customer
want to conduct a secure transaction. The merchant and the customer each have unique
secret keys that they share with the key distribution center. The key distribution center gen-
erates a session key for the merchant and customer to use in the transaction. The key dis-
tribution center then sends the session key for the transaction to the merchant, encrypted
using the secret key the merchant already shares with the center. The key distribution center
sends the same session key for the transaction to the customer, encrypted using the secret
key the customer already shares with the key distribution center. Once the merchant and the
Fig. 21.1
Fig. 21.1
Fig. 21.1
Fig. 21.1
Encrypting and decrypting a message using a secret key.
Buy 100 shares 
of company X
Plaintext
XY%#?
42%Y
Ciphertext
Symmetric 
secret key
Sender
Receiver
Same 
symmetric 
secret key
communications 
medium (such as 
Internet)
encrypt 
decrypt
Buy 100 shares 
of company X
Plaintext
pythonhtp1_21.fm  Page 781  Wednesday, August 29, 2001  4:16 PM
C# WPF Viewer: Load, View, Convert, Annotate and Edit Tiff
functionalities. convert Tiff file to PDF, add annotations to Tiff, Create signature on tiff, etc. Please refer to more details below:
create pdf signature stamp; add signature to pdf preview
VB.NET PDF: Basic SDK Concept of XDoc.PDF
load, combine, and split PDF file(s), and add, create, insert, delete specific, you can edit PDF password and digital signature, and set PDF file permission
add jpeg signature to pdf; create transparent signature stamp for pdf
782
Security
Chapter 21
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
customer have the session key for the transaction they can communicate with each other,
encrypting their messages using the shared session key.
Using a key distribution center reduces the number of courier deliveries (again, by
means such as mail or FedEx) of secret keys to each user in the network. In addition, users
can have a new secret key for each communication with other users in the network, which
greatly increases the overall security of the network. However, if the security of the key dis-
tribution center is compromised, then the security of the entire network is compromised.
One of the most commonly used symmetric encryption algorithms is the Data Encryp-
tion Standard (DES). Horst Feistel of IBM created the Lucifer algorithm, which was chosen
as the DES by the United States government and the National Security Agency (NSA) in
the 1970s.
4
DES has a key length of 56 bits and encrypts data in 64-bit blocks. This type of
encryption is known as a block cipher. A block cipher is an encryption method that creates
groups of bits from an original message, then applies an encryption algorithm to the block
as a whole, rather than as individual bits. This method reduces the amount of computer pro-
cessing power and time required, while maintaining a fair level of security. For many years,
DES was the encryption standard set by the U.S. government and the American National
Standards Institute (ANSI). However, due to advances in technology and computing speed,
DES is no longer considered secure. In the late 1990s, specialized DES cracker machines
were built that recovered DES keys after just several hours.
5
As a result, the old standard
of symmetric encryption has been replaced by Triple DES, or 3DES, a variant of DES that
is essentially three DES systems in a row, each with its own secret key. Though 3DES is
more secure, the three passes through the DES algorithm result in slower performance. The
United States government recently selected a new, more secure standard for symmetric
encryption to replace DES. The new standard is called the Advanced Encryption Standard
(AES). The National Institute of Standards and Technology (NIST), which sets the crypto-
Fig. 21.2
Fig. 21.2
Fig. 21.2
Fig. 21.2
Distributing a session key with a key distribution center.
Session key 
(symmetric 
secret key)
Key distribution 
center (KDC)
encrypt 
encrypt 
Session key 
encrypted with 
the sender's 
KDC Key
111
222
Session key 
encrypted with 
the receiver's 
KDC key
333
333
"I want to communicate 
with the receiver"
Sender
Receiver
pythonhtp1_21.fm  Page 782  Wednesday, August 29, 2001  4:16 PM
Chapter 21
Security
783
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
graphic standards for the U.S. government, is evaluating Rijndael as the encryption method
for AES. Rijndael is a block cipher developed by Dr. Joan Daemen and Dr. Vincent Rijmen
of Belgium. Rijndael can be used with key sizes and block sizes of 128, 192 or 256 bits.
Rijndael was chosen over four other finalists as the AES candidate because of its high secu-
rity, performance, efficiency, flexibility and low memory requirement for computing sys-
tems.
6
For more information about AES, visit csrc.nist.gov/encryption/aes.
21.4 Public-key Cryptography
In 1976, Whitfield Diffie and Martin Hellman, researchers at Stanford University, devel-
oped public-key cryptography to solve the problem of exchanging keys securely. Public-
key cryptography is asymmetric. It uses two inversely related keys: a public key and a pri-
vate key. The private key is kept secret by its owner, while the public key is freely distrib-
uted. If the public key is used to encrypt a message, only the corresponding private key can
decrypt it, and vice versa (Fig. 21.3). Each party in a transaction has both a public key and
a private key. To transmit a message securely, the sender uses the receiver’s public key to
encrypt the message. The receiver then decrypts the message using his or her unique private
key. Assuming that the private key has been kept secret, the message cannot be read by any-
one other than the intended receiver. Thus the system ensures the privacy of the message.
The defining property of a secure public-key algorithm is that it is “computationally infea-
sible” to deduce the private key from the public key. Although the two keys are mathemat-
ically related, deriving one from the other would take enormous amounts of computing
power and time, enough to discourage attempts to deduce the private key. An outside party
cannot participate in communication without the correct keys. The security of the entire
process is based on the secrecy of the private keys. Therefore, if a third party obtains the
private key used in decryption, the security of the whole system is compromised. If a sys-
tem’s integrity is compromised, the user can simply change the key, instead of changing
the entire encryption or decryption algorithm.
Fig. 21.3
Fig. 21.3
Fig. 21.3
Fig. 21.3
Encrypting and decrypting a message using public-key cryptography.
Buy 100 shares 
of company X
Plaintext
XY%#?
42%Y
Ciphertext
Receiver's 
public key
Sender
Receiver
Receiver's 
private key
communications 
medium (such as 
Internet)
encrypt 
decrypt
Buy 100 shares 
of company X
Plaintext
pythonhtp1_21.fm  Page 783  Wednesday, August 29, 2001  4:16 PM
784
Security
Chapter 21
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
Either the public key or the private key can be used to encrypt or decrypt a message.
For example, if a customer uses a merchant’s public key to encrypt a message, only the
merchant can decrypt the message, using the merchant’s private key. Thus, the merchant’s
identity can be authenticated, since only the merchant knows the private key. However, the
merchant has no way of validating the customer’s identity, since the encryption key the cus-
tomer used is publicly available.
If the decryption key is the sender’s public key and the encryption key is the sender’s
private key, the sender of the message can be authenticated. For example, suppose a cus-
tomer sends a merchant a message encrypted using the customer’s private key. The mer-
chant decrypts the message using the customer’s public key. Since the customer encrypted
the message using his or her private key, the merchant can be confident of the customer’s
identity.  This  process  authenticates  the sender,  but  does  not  ensure  confidentiality,  as
anyone could decrypt the message with the sender’s public key. This systems works as long
as the merchant can be sure that the public key with which the merchant decrypted the mes-
sage belongs to the customer, and not a third party posing as the customer.
These two methods of public-key encryption can actually be used together to authen-
ticate both participants in a communication (Fig. 21.4). Suppose a merchant wants to send
a message securely to a customer so that only the customer can read it, and suppose also
that the merchant wants to provide proof to the customer that the merchant (not an unknown
third party) actually sent the message. First, the merchant encrypts the message using the
customer's public key. This step guarantees that only the customer can read the message.
Then the merchant encrypts the result using the merchant’s private key, which proves the
identity of the merchant. The customer decrypts the message in reverse order. First, the cus-
tomer uses the merchant’s public key. Since only the merchant could have encrypted the
message with the inversely related private key, this step authenticates the merchant. Then
the customer uses the customer’s private key to decrypt the next level of encryption. This
step ensures that the content of the message was kept private in the transmission, since only
the customer has the key to decrypt the message. Although this system provides extremely
secure transactions, the setup cost and time required prevent widespread use.
pythonhtp1_21.fm  Page 784  Wednesday, August 29, 2001  4:16 PM
Chapter 21
Security
785
© Copyright 1992–2002 by Deitel & Associates, Inc. All Rights Reserved. 8/29/01
The most commonly used public-key algorithm is RSA, an encryption system devel-
oped in 1977 by MIT professors Ron Rivest, Adi Shamir and Leonard Adleman.
7
Today,
most Fortune 1000 companies and leading e-commerce businesses use their encryption and
authentication technologies. With the emergence of the Internet and the World Wide Web,
their security work has become even more significant and plays a crucial role in e-com-
merce transactions. Their encryption products are built into hundreds of millions of copies
of the most popular Internet applications, including Web browsers, commerce servers and
e-mail systems. Most secure e-commerce transactions and communications on the Internet
use RSA  products. For more information  about  RSA,  cryptography and security, visit
www.rsasecurity.com. 
Pretty Good Privacy (PGP) is a public-key encryption system used for the encryption
of e-mail messages and files. PGP was designed in 1991 by Phillip Zimmermann.
8
PGP can
also be used to provide digital signatures (see Section 21.8, Digital Signatures) that confirm
the author of an e-mail or public posting. PGP is based on a “web of trust;” each client in a
network can vouch for another client’s identity to prove ownership of a public key. The
“web of trust” is used to authenticate each client. If users know the identity of a public key
holder, through personal contact or another secure method, they validate the key by signing
it with their own key. The web grows as more users validate the keys of others. To learn
more about PGP and to download a free copy of the software, go to the MIT Distribution
Center for PGP at web.mit.edu/network/pgp.html.
Fig. 21.4
Fig. 21.4
Fig. 21.4
Fig. 21.4
Authentication with a public-key algorithm 
WVF%B#
X2?%Y
Signed ciphertext
decrypt
decrypt
encrypt 
Plaintext
Buy 100 shares 
of company X
XY%#?
42%Y
Ciphertext
Receiver's 
public key
Sender's 
private key
encrypt 
Buy 100 shares 
of company X
Plaintext
Receiver's 
private key
Sender's public key 
(authenticates 
sender)
XY%#?
42%Y
Ciphertext
Sender
Receiver
pythonhtp1_21.fm  Page 785  Wednesday, August 29, 2001  4:16 PM
Documents you may be interested
Documents you may be interested