Thanks. As per my understanding,Before sending master key to client , server
has to maintain the master key. How i can get this in server side? is there
any code sample or snippet to get this key?

Krishna
On Tue, Aug 23, 2011 at 11:54 PM, Gayathri Sundar <suraj...@gmail.com>wrote:

> Master key is unique per session, and its same for both client and server,
> thats the concept behind the SSL handshake. The RFC would state the
> information accurately.  Perhaps you can send the master secret as part of
> ur application data, to  the client, which can decrypt and use.
> Thanks
> --Gayathri
>
> On Tue, Aug 23, 2011 at 12:41 PM, krishnamurthy santhanam <
> krishnamurth...@gmail.com> wrote:
>
>> Thanks. I gone through the RFC 2246 and understood the Master key
>> generation part. The Master key is generated and able to print the client
>> side(test C program) using ssl strucure.
>>
>>
>> printf("session A\n");
>>
>> SSL_SESSION *session = SSL_get_session(ssl);
>>
>> SSL_SESSION_print(out, session);
>>
>> for (i=0; i<(unsigned int)session->master_key_length; i++)
>>         {
>>         BIO_printf(bp,"%02X",session->master_key[i]) );
>>         }
>>
>> How i can get the same Master key in server side?
>>
>> in my scenario, server side program is running in C. JDBC clients will
>> establish the connection to the server. will the same Mester key generated
>> in the cross platforms(JDBC client side)?
>>
>> Any help will be great.
>>
>> Thanks for your time,
>>
>> Krishnamurthy
>>
>> On Mon, Aug 22, 2011 at 9:03 PM, Gayathri Sundar <suraj...@gmail.com>wrote:
>>
>>> Please read the RFC, it would clearly explain how the master secret is
>>> dervied, and from that how the read and write keys are derived. With that
>>> you can get to know how to extract the read n write keys. Meanwhile the read
>>> and wirte keys are available as part of the ssl object.
>>> Check that structure out.
>>>
>>> Thanks
>>> --Gayathri
>>>
>>>   On Mon, Aug 22, 2011 at 10:24 AM, krishnamurthy santhanam <
>>> krishnamurth...@gmail.com> wrote:
>>>
>>>> I have more than 100 clients that will connect to my server and
>>>> communicate the data. I am implementing SSL on server side to authenticate
>>>> the client certificate(X.509) and also client will authenticate the servers
>>>> certificate. Once the mutual authentication has completed I have to 
>>>> generate
>>>> master key for encryption and decryption.  I am going to use AES for
>>>> encryption and decryption.
>>>>
>>>>  I had generated the client and server certificates using the bellow
>>>> commands and signed by the root,
>>>>
>>>> 1. CLIENT CERTIFICATE:
>>>>
>>>> openssl req -newkey rsa:1024 -sha1 -keyout clientkey.pem -out
>>>> clientreq.pem
>>>>
>>>> openssl x509 -req -in clientreq.pem -sha1 -extfile openssl.cnf  -extensions
>>>> usr_cert -CA rootcert.pem  -CAkey rootkey.pem -CAcreateserial   -out
>>>> clientcert.pem
>>>>
>>>> cat clientkey.pem  clientcert.pem rootcert.pem > client.pem
>>>>
>>>> openssl x509  -subject -issuer -noout -in client.pem
>>>>
>>>> 2. SERVER CERTIFICATE:
>>>>
>>>> openssl req -newkey rsa:1024 -sha1 -keyout serverkey.pem -out
>>>> serverreq.pem
>>>>
>>>> openssl x509 -req -in serverreq.pem -sha1 -extfile openssl.cnf  -extensions
>>>> usr_
>>>>
>>>> cert -CA rootcert.pem  -CAkey rootkey.pem -CAcreateserial   -out
>>>> servercert.pem
>>>>
>>>> cat serverkey.pem  servercert.pem rootcert.pem > server.pem
>>>>
>>>> openssl x509  -subject -issuer -noout -in server.pem
>>>>
>>>> 3. ROOT CERTIFICATE:
>>>>
>>>> openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem
>>>>
>>>> openssl x509 -req -in rootreq.pem -sha1 -extfile root.cnf -extensions
>>>> v3_ca -sig
>>>>
>>>> nkey rootkey.pem -out rootcert.pem
>>>>
>>>> cat rootcert.pem rootkey.pem  > root.pem
>>>>
>>>> openssl x509  -subject -issuer -noout -in root.pem
>>>>
>>>>
>>>>
>>>> Initially I  am writing ssl/tls programming for server and client. In
>>>> this I am able to communicate the data between client and server.
>>>>
>>>> I was struck on master key generation, I have added the below LOC to
>>>> programs to get MASTER KEY,
>>>>
>>>> printf("session A\n");
>>>>
>>>> SSL_SESSION *session = SSL_get_session(ssl);
>>>>
>>>> SSL_SESSION_print(out, session);
>>>>
>>>> It is printing like this ,
>>>>
>>>>  session A
>>>>
>>>> SSL-Session:
>>>>
>>>>     Protocol  : TLSv1
>>>>
>>>>     Cipher    : AES256-SHA
>>>>
>>>>     Session-ID:
>>>> 9FCE46513DD74882D3FF0E0E84CC4A6BE12192B65C426E0B27D0FA15F81D7D5E
>>>>
>>>>     Session-ID-ctx:
>>>>
>>>>     Master-Key:
>>>> 56F90B0D90DEB3430207A74793C9B6565744E06ECA191D9DFA04C29B1EE2B782
>>>>
>>>> 6B602878597465F739AD69091DDF6499
>>>>
>>>>     Key-Arg   : None
>>>>
>>>>     Krb5 Principal: None
>>>>
>>>>    Compression: 1 (zlib compression)
>>>>
>>>>     Start Time: 1314015355
>>>>
>>>>     Timeout   : 7200 (sec)
>>>>
>>>> Is this the Master key for both the server and client?
>>>>
>>>> Is this the key that should be used for the encryption in client side
>>>> and decryption in server side?
>>>>
>>>> If this is the Master key how can I extract the key?
>>>>
>>>> Please guide me if I understood anything wrong.
>>>>
>>>
>>>
>>
>

Reply via email to