Re: Question on OpenSSL encryption

2012-01-09 Thread Ashok C
Hi,

In addition to the online material, are there any good books which we can
refer to understand openSSL better? Both conceptually as well as from the
API/code perspective.
We hear of the Network Security with OpenSSL by John Viega as one good
reference. But it was published in 2002. Any good new books which can be
used?

Regds,
Ashok

On Sat, Jan 7, 2012 at 11:44 PM, Ben Laurie b...@links.org wrote:

 On Sat, Jan 7, 2012 at 4:12 PM, Manish Jain invalid.poin...@gmail.com
 wrote:
 
  Hello Michael/Anyone Else,
 
  Can you be kind enough to please point me to some place/URL where I can
 get
  a bit more information about how the key is negotiated upon ?
 
  I have gone through a a couple of write-ups on OpenSSL which throw light
  upon everything else except for this vital piece of information.

 http://en.wikipedia.org/wiki/Transport_Layer_Security

 
 
  Thanks  Regards
  Manish Jain
 
 
 
  On 07-Jan-12 19:23, Michael S. Zick wrote:
 
  On Sat January 7 2012, Manish Jain wrote:
 
 
  Hi,
 
  I am new to OpenSSL and am trying to prepare some illustrative
  documentation on how it works.
 
  AFAIK, OpenSSL uses the concept of a pair of keys per host : one is a
  private key which is never communicated to any other host, and the
 other
  is a public key which is transmitted to the peer (the other party). The
  client uses the public key of the server (contained in the server's
  certificate) to encrypt its communication, which can only be decrypted
  with the server's private key. Please correct me if I am wrong.
 
 
  That is the essence of what happens and by that the client knows
  that it is communicating with the server it intended to reach
  (authentication).
 
  Now the question is : when the server sends data to the client, what
 key
  does it use for encryption ?
 
 
  The general answer is: The client and server establish a shared key
  for that propose early in the protocol.
 
  Does the client communicate its public key
  to the server (at some initial stage) which the server uses for
  encryption ?
 
 
  If the communications set up between the two requires client
  authentication.
  In many cases the client remains a stranger to the server
  (un-authenticated).
 
  If yes, what if the client does not have a pair of
  public/private keys ?
 
 
  The usual case for public web browsing using https and some other
  protocols.
  The client remains a stranger to the server.
 
  The question arises because it does not seem logical that the server
  would its private key for encrypting data to be sent to the client.
  Else, snoopers who might have picked the public key could decrypt the
  data too.
 
 
  There is an early stage in nearly all protocols, called: key agreement
  where the client and server agree on a key without exchanging any of
  the 'private' information that it is based on.
 
  Any help on clearing up the above points would be greatly appreciated.
 
 
  My comments above are at a very general level.
  If the process was as simple as my answers, OpenSSL would not be as
  large a body of code as it is.  ;-)
 
  Mike
 
 
  Thank you
  Regards
 
  Manish Jain
  invalid.poin...@gmail.com
 
  __
  OpenSSL Project http://www.openssl.org
  User Support Mailing Listopenssl-users@openssl.org
  Automated List Manager   majord...@openssl.org
 
 
 
 
  __
  OpenSSL Project http://www.openssl.org
  User Support Mailing Listopenssl-users@openssl.org
  Automated List Manager   majord...@openssl.org
 
  __
  OpenSSL Project http://www.openssl.org
  User Support Mailing Listopenssl-users@openssl.org
  Automated List Manager   majord...@openssl.org
 __
 OpenSSL Project http://www.openssl.org
 User Support Mailing Listopenssl-users@openssl.org
 Automated List Manager   majord...@openssl.org



Re: Question on OpenSSL encryption

2012-01-09 Thread Richard Könning

Am 09.01.2012 13:10, schrieb Ashok C:

Hi,

In addition to the online material, are there any good books which we
can refer to understand openSSL better? Both conceptually as well as
from the API/code perspective.
We hear of the Network Security with OpenSSL by John Viega as one good
reference. But it was published in 2002. Any good new books which can be
used?


Well, the questions of the original poster weren't OpenSSL specific, but 
targeted SSL/TLS in general, for this Eric Rescorla's book SSL and TLS: 
Building and Designing Secure Systems is the better book. Sadly being 
from the year 2000 it is somewhat outdated too, but nevertheless a good 
introduction to SSL/TLS. For a description of the OpenSSL API afaik the 
book from Viega et al. is still the most detailed book, despite being 
somewhat outdated.


For newer versions of TLS (i.e. 1.1 and beyond) one should check newer 
TLS books, e.g. the ones from Joshua Davies or Rolf Oppliger. Until now 
i had none of the two books in my hands so i can't you tell more about 
the books, but maybe a visit at Amazon or similar book traders will give 
you at least a detailed content description.


Ciao,
Richard
__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Question on OpenSSL encryption

2012-01-09 Thread Ashok C
Thanks Richard,

What I am looking would be any good book which gives details about SSL
communication like use of certificates, verification of certificates, APIs
to examine certificates, certificate revocation concepts/SSL APIs for that,
etc.

Regds,
Ashok

2012/1/9 Richard Könning richard.koenn...@ts.fujitsu.com

 Am 09.01.2012 13:10, schrieb Ashok C:

  Hi,

 In addition to the online material, are there any good books which we
 can refer to understand openSSL better? Both conceptually as well as
 from the API/code perspective.
 We hear of the Network Security with OpenSSL by John Viega as one good
 reference. But it was published in 2002. Any good new books which can be
 used?


 Well, the questions of the original poster weren't OpenSSL specific, but
 targeted SSL/TLS in general, for this Eric Rescorla's book SSL and TLS:
 Building and Designing Secure Systems is the better book. Sadly being from
 the year 2000 it is somewhat outdated too, but nevertheless a good
 introduction to SSL/TLS. For a description of the OpenSSL API afaik the
 book from Viega et al. is still the most detailed book, despite being
 somewhat outdated.

 For newer versions of TLS (i.e. 1.1 and beyond) one should check newer TLS
 books, e.g. the ones from Joshua Davies or Rolf Oppliger. Until now i had
 none of the two books in my hands so i can't you tell more about the books,
 but maybe a visit at Amazon or similar book traders will give you at least
 a detailed content description.

 Ciao,
 Richard

 __**__**__
 OpenSSL Project http://www.openssl.org
 User Support Mailing Listopenssl-users@openssl.org
 Automated List Manager   majord...@openssl.org



RE: Question on OpenSSL encryption

2012-01-09 Thread Mohan Radhakrishnan
I have struggled with SSL/TLS in the past.

 

Good list of books. I checked amazon's table of contents and it looks like 
Joshua Davies has written a more comprehensive book with lots of code. Clearly 
it seems to me to be a better book with good reviews.

 

Rolf Oppliger's book is more than twice the cost of the former and did not seem 
to have code. The former seems to be more technical than the latter.

 

I would like to buy Davies. Neither is specifically about OpenSSL.

 

Anybody agree ?

 

Thanks,

Mohan

 



From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] 
On Behalf Of Ashok C
Sent: Monday, January 09, 2012 8:15 PM
To: openssl-users@openssl.org
Cc: richard.koenn...@ts.fujitsu.com
Subject: Re: Question on OpenSSL encryption

 

Thanks Richard,

What I am looking would be any good book which gives details about SSL 
communication like use of certificates, verification of certificates, APIs to 
examine certificates, certificate revocation concepts/SSL APIs for that, etc.

Regds,
Ashok

2012/1/9 Richard Könning richard.koenn...@ts.fujitsu.com

Am 09.01.2012 13:10, schrieb Ashok C:

 

Hi,

In addition to the online material, are there any good books which we
can refer to understand openSSL better? Both conceptually as well as
from the API/code perspective.
We hear of the Network Security with OpenSSL by John Viega as one good
reference. But it was published in 2002. Any good new books which can be
used?

 

Well, the questions of the original poster weren't OpenSSL specific, but 
targeted SSL/TLS in general, for this Eric Rescorla's book SSL and TLS: 
Building and Designing Secure Systems is the better book. Sadly being from the 
year 2000 it is somewhat outdated too, but nevertheless a good introduction to 
SSL/TLS. For a description of the OpenSSL API afaik the book from Viega et al. 
is still the most detailed book, despite being somewhat outdated.

For newer versions of TLS (i.e. 1.1 and beyond) one should check newer TLS 
books, e.g. the ones from Joshua Davies or Rolf Oppliger. Until now i had none 
of the two books in my hands so i can't you tell more about the books, but 
maybe a visit at Amazon or similar book traders will give you at least a 
detailed content description.

Ciao,
Richard


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org

 



DISCLAIMER:
==The
 information contained in this e-mail message may be privileged and/or 
confidential and protected from disclosure under applicable law. It is intended 
only for the individual to whom or entity to which it is addressed as shown at 
the beginning of the message. If the reader of this message is not the intended 
recipient, or if the employee or agent responsible for delivering the message 
is not an employee or agent of the intended recipient, you are hereby notified 
that any review, dissemination,distribution, use, or copying of this message is 
strictly prohibited. If you have received this message in error, please notify 
us immediately by return e-mail and permanently delete this message and your 
reply to the extent it includes this message. Any views or opinions presented 
in this message or attachments are those of the author and do not necessarily 
represent those of the Company. All e-mails and attachments sent and received 
are subject to monitoring, reading, and archival by the 
Company.==


Re: Question on OpenSSL encryption

2012-01-08 Thread Ben Laurie
On Sat, Jan 7, 2012 at 4:12 PM, Manish Jain invalid.poin...@gmail.com wrote:

 Hello Michael/Anyone Else,

 Can you be kind enough to please point me to some place/URL where I can get
 a bit more information about how the key is negotiated upon ?

 I have gone through a a couple of write-ups on OpenSSL which throw light
 upon everything else except for this vital piece of information.

http://en.wikipedia.org/wiki/Transport_Layer_Security



 Thanks  Regards
 Manish Jain



 On 07-Jan-12 19:23, Michael S. Zick wrote:

 On Sat January 7 2012, Manish Jain wrote:


 Hi,

 I am new to OpenSSL and am trying to prepare some illustrative
 documentation on how it works.

 AFAIK, OpenSSL uses the concept of a pair of keys per host : one is a
 private key which is never communicated to any other host, and the other
 is a public key which is transmitted to the peer (the other party). The
 client uses the public key of the server (contained in the server's
 certificate) to encrypt its communication, which can only be decrypted
 with the server's private key. Please correct me if I am wrong.


 That is the essence of what happens and by that the client knows
 that it is communicating with the server it intended to reach
 (authentication).

 Now the question is : when the server sends data to the client, what key
 does it use for encryption ?


 The general answer is: The client and server establish a shared key
 for that propose early in the protocol.

 Does the client communicate its public key
 to the server (at some initial stage) which the server uses for
 encryption ?


 If the communications set up between the two requires client
 authentication.
 In many cases the client remains a stranger to the server
 (un-authenticated).

 If yes, what if the client does not have a pair of
 public/private keys ?


 The usual case for public web browsing using https and some other
 protocols.
 The client remains a stranger to the server.

 The question arises because it does not seem logical that the server
 would its private key for encrypting data to be sent to the client.
 Else, snoopers who might have picked the public key could decrypt the
 data too.


 There is an early stage in nearly all protocols, called: key agreement
 where the client and server agree on a key without exchanging any of
 the 'private' information that it is based on.

 Any help on clearing up the above points would be greatly appreciated.


 My comments above are at a very general level.
 If the process was as simple as my answers, OpenSSL would not be as
 large a body of code as it is.  ;-)

 Mike


 Thank you
 Regards

 Manish Jain
 invalid.poin...@gmail.com

 __
 OpenSSL Project                                 http://www.openssl.org
 User Support Mailing List                    openssl-users@openssl.org
 Automated List Manager                           majord...@openssl.org




 __
 OpenSSL Project                                 http://www.openssl.org
 User Support Mailing List                    openssl-users@openssl.org
 Automated List Manager                           majord...@openssl.org

 __
 OpenSSL Project                                 http://www.openssl.org
 User Support Mailing List                    openssl-users@openssl.org
 Automated List Manager                           majord...@openssl.org
__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Question on OpenSSL encryption

2012-01-07 Thread Michael S. Zick
On Sat January 7 2012, Manish Jain wrote:
 
 Hi,
 
 I am new to OpenSSL and am trying to prepare some illustrative 
 documentation on how it works.
 
 AFAIK, OpenSSL uses the concept of a pair of keys per host : one is a 
 private key which is never communicated to any other host, and the other 
 is a public key which is transmitted to the peer (the other party). The 
 client uses the public key of the server (contained in the server's 
 certificate) to encrypt its communication, which can only be decrypted 
 with the server's private key. Please correct me if I am wrong.


That is the essence of what happens and by that the client knows
that it is communicating with the server it intended to reach (authentication).
 
 Now the question is : when the server sends data to the client, what key 
 does it use for encryption ? 


The general answer is: The client and server establish a shared key
for that propose early in the protocol.

 Does the client communicate its public key  
 to the server (at some initial stage) which the server uses for 
 encryption ? 


If the communications set up between the two requires client authentication.
In many cases the client remains a stranger to the server (un-authenticated).

 If yes, what if the client does not have a pair of  
 public/private keys ?
 

The usual case for public web browsing using https and some other protocols.
The client remains a stranger to the server.

 The question arises because it does not seem logical that the server 
 would its private key for encrypting data to be sent to the client. 
 Else, snoopers who might have picked the public key could decrypt the 
 data too.
 

There is an early stage in nearly all protocols, called: key agreement
where the client and server agree on a key without exchanging any of
the 'private' information that it is based on.

 Any help on clearing up the above points would be greatly appreciated.
 

My comments above are at a very general level.
If the process was as simple as my answers, OpenSSL would not be as
large a body of code as it is.  ;-)

Mike
 
 Thank you 
 Regards
 
 Manish Jain
 invalid.poin...@gmail.com
 
 __
 OpenSSL Project http://www.openssl.org
 User Support Mailing Listopenssl-users@openssl.org
 Automated List Manager   majord...@openssl.org
 
 


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Question on OpenSSL encryption

2012-01-07 Thread Manish Jain


Hello Michael/Anyone Else,

Can you be kind enough to please point me to some place/URL where I can 
get a bit more information about how the key is negotiated upon ?


I have gone through a a couple of write-ups on OpenSSL which throw light 
upon everything else except for this vital piece of information.



Thanks  Regards
Manish Jain


On 07-Jan-12 19:23, Michael S. Zick wrote:

On Sat January 7 2012, Manish Jain wrote:


Hi,

I am new to OpenSSL and am trying to prepare some illustrative
documentation on how it works.

AFAIK, OpenSSL uses the concept of a pair of keys per host : one is a
private key which is never communicated to any other host, and the other
is a public key which is transmitted to the peer (the other party). The
client uses the public key of the server (contained in the server's
certificate) to encrypt its communication, which can only be decrypted
with the server's private key. Please correct me if I am wrong.



That is the essence of what happens and by that the client knows
that it is communicating with the server it intended to reach (authentication).


Now the question is : when the server sends data to the client, what key
does it use for encryption ?



The general answer is: The client and server establish a shared key
for that propose early in the protocol.


Does the client communicate its public key
to the server (at some initial stage) which the server uses for
encryption ?



If the communications set up between the two requires client authentication.
In many cases the client remains a stranger to the server (un-authenticated).


If yes, what if the client does not have a pair of
public/private keys ?



The usual case for public web browsing using https and some other protocols.
The client remains a stranger to the server.


The question arises because it does not seem logical that the server
would its private key for encrypting data to be sent to the client.
Else, snoopers who might have picked the public key could decrypt the
data too.



There is an early stage in nearly all protocols, called: key agreement
where the client and server agree on a key without exchanging any of
the 'private' information that it is based on.


Any help on clearing up the above points would be greatly appreciated.



My comments above are at a very general level.
If the process was as simple as my answers, OpenSSL would not be as
large a body of code as it is.  ;-)

Mike


Thank you
Regards

Manish Jain
invalid.poin...@gmail.com

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org





__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


Re: Question on OpenSSL encryption

2012-01-07 Thread Matt Caswell (fr...@baggins.org)

Hi

There's quite a good description of the key negotiation here:

http://technet.microsoft.com/en-us/library/cc785811%28WS.10%29.aspx

Matt


On 07/01/12 16:12, Manish Jain wrote:


Hello Michael/Anyone Else,

Can you be kind enough to please point me to some place/URL where I 
can get a bit more information about how the key is negotiated upon ?


I have gone through a a couple of write-ups on OpenSSL which throw 
light upon everything else except for this vital piece of information.



Thanks  Regards
Manish Jain


On 07-Jan-12 19:23, Michael S. Zick wrote:

On Sat January 7 2012, Manish Jain wrote:


Hi,

I am new to OpenSSL and am trying to prepare some illustrative
documentation on how it works.

AFAIK, OpenSSL uses the concept of a pair of keys per host : one is a
private key which is never communicated to any other host, and the 
other

is a public key which is transmitted to the peer (the other party). The
client uses the public key of the server (contained in the server's
certificate) to encrypt its communication, which can only be decrypted
with the server's private key. Please correct me if I am wrong.



That is the essence of what happens and by that the client knows
that it is communicating with the server it intended to reach 
(authentication).


Now the question is : when the server sends data to the client, what 
key

does it use for encryption ?



The general answer is: The client and server establish a shared key
for that propose early in the protocol.


Does the client communicate its public key
to the server (at some initial stage) which the server uses for
encryption ?



If the communications set up between the two requires client 
authentication.
In many cases the client remains a stranger to the server 
(un-authenticated).



If yes, what if the client does not have a pair of
public/private keys ?



The usual case for public web browsing using https and some other 
protocols.

The client remains a stranger to the server.


The question arises because it does not seem logical that the server
would its private key for encrypting data to be sent to the client.
Else, snoopers who might have picked the public key could decrypt the
data too.



There is an early stage in nearly all protocols, called: key agreement
where the client and server agree on a key without exchanging any of
the 'private' information that it is based on.


Any help on clearing up the above points would be greatly appreciated.



My comments above are at a very general level.
If the process was as simple as my answers, OpenSSL would not be as
large a body of code as it is.  ;-)

Mike


Thank you
Regards

Manish Jain
invalid.poin...@gmail.com

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org





__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   majord...@openssl.org