Secure Chat in C Sharp
- or -
Post a project like this$$
- Posted:
- Proposals: 1
- Remote
- #12986
- Expired
Description
Experience Level: Intermediate
I need a Secure C# chat system completed(I have a GUI outline that will be provided to the chosen developer)
I will provide the Security Certificate and the Personal Information Exchange cert file that will allow the user access the secure server.
The system will allow encrypted chat messages to be sent and received via a secure server.
Secure chat client
- Certificates, RSA, AES, SHA1 etc.
- Server will be provided by me
SEE ATTACHED IMAGE for required Program Flow
- Basic project and GUI design provided
- Protocol and cryptographics implementation required
- Error handling required
- Chat message send/receive and display required
2 threads will be necessary: one handling theGUI and user input (also sending chat messages to the server) and the other has to
listen for incoming packets from the server and display
the messages in the chat log.
Server will generate random AES session key
and encrypt it with the clients public key
- Only the client will be able to decrypt it
- Afterwards, the server and client have a
shared secret they will use to encrypt/decrypt
chat messages
Signature creation
When signing the certificates for transport, use the following procedure:
1) Retrieve the RAW bytes of the certificate using the property X509 Certificate 2.RawData
2) Create the signature using the SHA1 algorithm (signature should be 128 bytes long)
3) Create one large byte array: First 128 bytes for the signature and the rest for the RAW certificate
Signature/Certificate verification:
Key exchange
When encrypting decrypting the session key using RSA use the following padding configuration:
rsaCsp.Encrypt(data, false);
rsaCsp.Decrypt(data, false);
Message encryption
When encrypting/decrypting chat messages using AES use the following settings:
aes.Key = sessionKey;
aes.GenerateIV();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
String encoding
All strings (error messages, chat messages, etc.) have to be ASCII encoded, have a look the class
Encoding.ASCII for details on how to do this!
Signature creation
When signing the certificates for transport, use the following procedure:
1) Retrieve the RAW bytes of the certificate using the property X509Certificate2.RawData
2) Create the signature using the SHA1 algorithm (signature should be 128 bytes long)
3) Create one large byte array: First 128 bytes for the signature and the rest for the RAW
certificate
Signature/Certificate verification:
Key exchange
When encrypting decrypting the session key using RSA use the following padding configuration:
rsaCsp.Encrypt(data, false);
rsaCsp.Decrypt(data, false);
Message encryption
When encrypting/decrypting chat messages using AES use the following settings:
aes.Key = sessionKey;
aes.GenerateIV();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
String encoding
All strings (error messages, chat messages, etc.) have to be ASCII encoded, have a look the class
Encoding.ASCII for details on how to do this!
I will provide the Security Certificate and the Personal Information Exchange cert file that will allow the user access the secure server.
The system will allow encrypted chat messages to be sent and received via a secure server.
Secure chat client
- Certificates, RSA, AES, SHA1 etc.
- Server will be provided by me
SEE ATTACHED IMAGE for required Program Flow
- Basic project and GUI design provided
- Protocol and cryptographics implementation required
- Error handling required
- Chat message send/receive and display required
2 threads will be necessary: one handling theGUI and user input (also sending chat messages to the server) and the other has to
listen for incoming packets from the server and display
the messages in the chat log.
Server will generate random AES session key
and encrypt it with the clients public key
- Only the client will be able to decrypt it
- Afterwards, the server and client have a
shared secret they will use to encrypt/decrypt
chat messages
Signature creation
When signing the certificates for transport, use the following procedure:
1) Retrieve the RAW bytes of the certificate using the property X509 Certificate 2.RawData
2) Create the signature using the SHA1 algorithm (signature should be 128 bytes long)
3) Create one large byte array: First 128 bytes for the signature and the rest for the RAW certificate
Signature/Certificate verification:
Key exchange
When encrypting decrypting the session key using RSA use the following padding configuration:
rsaCsp.Encrypt(data, false);
rsaCsp.Decrypt(data, false);
Message encryption
When encrypting/decrypting chat messages using AES use the following settings:
aes.Key = sessionKey;
aes.GenerateIV();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
String encoding
All strings (error messages, chat messages, etc.) have to be ASCII encoded, have a look the class
Encoding.ASCII for details on how to do this!
Signature creation
When signing the certificates for transport, use the following procedure:
1) Retrieve the RAW bytes of the certificate using the property X509Certificate2.RawData
2) Create the signature using the SHA1 algorithm (signature should be 128 bytes long)
3) Create one large byte array: First 128 bytes for the signature and the rest for the RAW
certificate
Signature/Certificate verification:
Key exchange
When encrypting decrypting the session key using RSA use the following padding configuration:
rsaCsp.Encrypt(data, false);
rsaCsp.Decrypt(data, false);
Message encryption
When encrypting/decrypting chat messages using AES use the following settings:
aes.Key = sessionKey;
aes.GenerateIV();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
String encoding
All strings (error messages, chat messages, etc.) have to be ASCII encoded, have a look the class
Encoding.ASCII for details on how to do this!
Denis C.
0% (0)Projects Completed
-
Freelancers worked with
-
Projects awarded
0%
Last project
19 Apr 2024
Ireland
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies