This note will research how information is sent and received from an enterprise. What is channel level security? what is message level security? What is SSL? What is Mutual Auth? What are certificates? How is this handled in SOAP? How is this handled in REST? and perhaps more on those lines.

With this research I have learned what PKI is, What public and private keys are, what signatures are, what certificates are, what CA certificates, what SSL certificates are, how web servers manage their certificates, how web browsers manage their CA certificates, what self signing is, and more...

Companies, Books, Tools, and Online Resources.

SSL, MutualAuth, Certificates

Search for: SSL, MutualAuth, Certificates

How is MQ Secured?

Search for: How is MQ Secured?

This looks like a nice article to start with

What is SSL?

Search for: What is SSL?

How is SSL different from SSL with Mutual Authentication?

Search for: How is SSL different from SSL with Mutual Authentication?

Mutual SSL authentication

Search for: Mutual SSL authentication

1-way SSL 2-way authentications

Search for: 1-way SSL 2-way authentications

Understand certificates first

An entity can publish a (public) key

This public key can be used by any number of consumers to encrypt data using that key

Only the owner of the public key can decrypt the data.

This is the intent of the public key


Keys (public/private)
Signatures
Certificates

Server publishes a single public key for all clients

Many clients send messages to a server

A client can be sure no other client can understand that message including the client itself

Example will be a million browsers sending data to a given web server

No other web server can understand this traffic

No other web client or interceptor can understand this traffic

Call it the encryption principle

Controlled by a server

A server publishes a key for everyone to see and get

Very many servers can then send a message to a client

The client can take each encrypted message and see which key opens it

If a key opens a message then that message must have come from the respective server

Then the message is a "signature" of that server

Message Digest

Search for: Message Digest

Easy to compute

Attach it to the long message

Probably encrypted using keys the digest

Stops tampering the original message

Saves likely the need to encrypt the whole message

Here is a PDF from IBM to see if that helps

How does a client trust a certificate authority?

Search for: How does a client trust a certificate authority?

Where are trusted CAs kept in a browser?

Search for: Where are trusted CAs kept in a browser?


Mozilla Firefox: Edit / Preferences / Advanced / Certificates / Manage Certificaes / Authorities
Internet Explorer: Extras / Internet options / Content / Certificates / Trusted Root CAs

Explanation of certs from Microsoft

self signed certificates

Search for: self signed certificates

Structure of a digital certificate

Search for: Structure of a digital certificate

There is some information here

A PDF: Understanding certs


the name of the user/entity being certified
the public key of the user/entity
the name of the certification authority
a digital signature

Notice that the public key of the authority is not part of the certificate

This is probably a better read from MSDN

Version number The version of the X.509 standard to which the certificate conforms.

Serial number A number that uniquely identifies the certificate and is issued by the certification authority.

Certificate algorithm identifier The names of the specific public key algorithms that the certification authority has used to sign the digital certificate.

Issuer name The identity of the certification authority who actually issued the certificate.

Validity period The period of time for which a digital certificate is valid and contains both a start date and an expiration date.

Subject name The name of the owner of the digital certificate.

Subject public key information The public key that is associated with the owner of the digital certificate and the specific public key algorithms associated with the public key.

Issuer unique identifier Information that can be used to uniquely identify the issuer of the digital certificate.

Subject unique identifier Information that can be used to uniquely identify the owner of the digital certificate.

Extensions Additional information that is related to the use and handling of the certificate.

Certification authority's digital signature The actual digital signature made with the certification authority's private key using the algorithm specified in the certificate algorithm identifier field.

Message is captured.

Public key is retrieved from the recipient's digital certificate.

One-time symmetric session key is generated.

Encryption operation is performed on the message using the session key.

Session key is encrypted using the recipient's public key.

Encrypted session key is included with the encrypted message.

Message is sent.

Message is captured.

Hash value of the message is calculated.

Sender's private key is retrieved from the sender's digital certificate.

Recipient's public key is retrieved from the recipient's digital certificate.

Hash value is encrypted with the sender's private key.

Encrypted hash value is appended to the message as a digital signature.

One-time symmetric session key is generated.

Encryption operation is performed on the message using a session key.

Session key is encrypted using the recipient's public key.

Encrypted session key is included with the encrypted message.

Message is sent.

Contrasting self signed certs with others

Kaushal Panday: A key blog that talks of azure and certs

This article shows how a self signed cert is installed as a trusted site

trusted certificate authorities: CA

Search for: trusted certificate authorities: CA

Using self signed SSL certs from github

Generate a root CA

Use the root CA to generate server certs

Install the root CA on clients

Book: Network Security with OpenSSL

Search for: Book: Network Security with OpenSSL

SSL Certificate and CA Certificate

Search for: SSL Certificate and CA Certificate

Appears to be a good free book on SSL

Knowing how a browser treats a self signed certificate is useful in understanding the nature

Here is how ie does this

There is a self signed SSL cert

There is a root CA cert

Are these different?

Does the browser get both from the web server in a self signing scenario?

Or they become one and the same?

Or a root CA cert is generated out of the SSL cert?

Here is how to create a self signed SSL cert for Apache


The public key of the CA
The public key of the site

What happens to the CA public key in a self signed SSL cert?

Search for: What happens to the CA public key in a self signed SSL cert?

How do browsers deal with self signed SSL certificates?

Search for: How do browsers deal with self signed SSL certificates?

How does a browser get access to a CA cert when presented with a self signed SSL cert?

Search for: How does a browser get access to a CA cert when presented with a self signed SSL cert?

Here is a link with some info: SSL Certificate Not Trusted Error

Tell your browser to trust the self-signed certificate

Search for: Tell your browser to trust the self-signed certificate

Here is how it happens on ie9

Do I need a CA to generate self signed SSL cert?

Search for: Do I need a CA to generate self signed SSL cert?

Here is that question on SOF

OpenSSL.org

How to install a non-trusted CA from an SSL certificate?

Search for: How to install a non-trusted CA from an SSL certificate?

How to install a non-trusted CA certificate?

Search for: How to install a non-trusted CA certificate?

Youtube: Configuring SSL with IIS

Search Youtube on Self Signed certs

public key and signature in a self signed SSL certificate

Search for: public key and signature in a self signed SSL certificate

A good nomenclature of PKI infrastructure is here

Public keys are usually transmitted as Certificates.


data - main data block
Data digest - digest of that data
Signature - privateky(data-digest)
Signed Data - data + signature

A Certificate issued by a party for itself.

The Subject and Issuer of such a Certificate are the same.

The Self-Signed Certificate contains the party Public Key and Signed using the Private Key of the same party.

Self-Signed Certificates can be trusted only if other parties explicitly include them into their lists of "trusted authorities".

What is CommuniGate Pro

Search for: What is CommuniGate Pro

CommuniGate Pro and Instant Messaging

Search for: CommuniGate Pro and Instant Messaging


Terminology
***************
PKI
Public Key
Private Key
Session Key
Data Digests
Signatures
Certificate
Certificate Authority (CA)
Self signed certificates
Non-trusted CA
Root CA
SSL Cert
CA Cert
1-way SSL
2-way SSL
TLS

Concepts
*********
A Cert (SSL Cert) is basically a public key distributed by a CA
CA cert is a public key of the CA to verify an SSL Cert and its pulbic key
Servers keep SSL certs obtained from CA
Clients keep trusted CA certs
Browsers preload CA certs
Browsers can be loaded with non-trusted certs
Browsers use a server SSL cert to encode data
Browsers can add self signed certs to trust servers
Two kinds of public keys: Public key of the CA and public key of the Server
Structure of a certificate
Both CA cert and server SSL cert has the same structure
It is usually Digests that are signed with private keys
Digest is recalculated to compare it to the decoded signature
There are no good comprehensive links to get all this in one place
May be read the OpenSSL book

Key places to look
*******************
See how SSL certs are generated from CA
See how self signed certs are made
See how different browsers are preloaded with CAs

Can I do SSL or TLS at the OS level?

Search for: Can I do SSL or TLS at the OS level?

So that two machines can communicate for all their needs and need not worry about all socket communications. This will allow all traffic such as JDBC, HTTP, FTP etc.

What is message level security in SOAP, REST, MQ?

Search for: What is message level security in SOAP, REST, MQ?

Can the same PKI public key be used both to encrypt and decrypt a signature?

Search for: Can the same PKI public key be used both to encrypt and decrypt a signature?

For example in a self signed cert, is the single public key used to decrypt the signature that is signed with a private key of the signer? is the same public key used to encrypt the data to be sent to the server?

This is precisely the question asked at this SOF

How is public key used to verify a signature?

Search for: How is public key used to verify a signature?

Read this as well

Role of Public Key in PKI?

Search for: Role of Public Key in PKI?

May be....


To encrypt
To Verify

Role of Private Key in PKI?

Search for: Role of Private Key in PKI?

May be


To decipher (decrypt)
To sign (encrypt)

Public Key vs Private Key

Search for: Public Key vs Private Key

This is a good article that talks about this

This goes to show that public and private keys are mutual and can encrypt and decrypt each other.

Security products from Comodo

Competitors to Comodo

Search for: Competitors to Comodo

Comodo GoDaddy GeoTrust

Search for: Comodo GoDaddy GeoTrust

Comodo Verisign Thawte Digicert

Search for: Comodo Verisign Thawte Digicert

Public key Encrypt Verify

Search for: Public key Encrypt Verify

This is another excellent article from Mozilla Development Network. Do Read!

Internet Security Issues
Encryption and Decryption
Digital Signatures
Certificates and Authentication
Managing Certificates

Types of Certificates
SSL Protocol
Signed and Encrypted Email
Form Signing
Single Sign-On
Object Signing

Here is a set of security related articles from Mozilla

TLS, SSL Books

Search for: TLS, SSL Books


OpenSSL from O'Reilly
SSL and TLS: Theory and Practice [Book]
SSL and TLS: Designing and Building Secure Systems [Book]
Bulletproof SSL and TLS [Book]
Implementing SSL / TLS Using Cryptography and PKI [Book]
SSL & TLS Essentials: Securing the Web [Book]
SSL and Remote Access VPNs [Book]
OpenVPN. Ursprung und TLS/ SSL [Book]
SSL VPN: Understanding, Evaluating, and Planning Secure, Web-based 
Protocols for Secure Electronic Commerce, Second Edition [Book]
Apache Security [Book]