473,511 Members | 15,011 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

VB 2005 and Content Security Question

Hi All

Bit of a newbie at this stuff but was wonering if anyone could offer me some
advice on a vb application and securing data.

I have a fairly basic vb 2005 application that connects to a sql 2005
database (Think of it as a journal). Some of the entries in this application
contain sensitive data that needs to be kept secure. What I am wondering is
the best method of doing this?

Should I encrypt the data in the application and store the encrypted text in
the database for the secure entries and then decrypt it on retrieval or
should I rely upon the security of the SQL server?

What do I need to consider in relation to :-

1. someone reverse engineering the application
2. intercepting the network traffic between the application and the sql
server
3. others having access to the sql server
4. anything else I might not have considered.

I appreciate any assistance or advice anyone might have to offer.

Regards
ILR
Jan 4 '07 #1
8 1067
Hello ILR,

For your scenario, must the sensitive data be stored in SQL Server database
or if it's some simple data that can also be stored in configuration
file(such as app.config). In .NET Framework 2.0, there does provide many
new data protection/secure features that can help us conveniently secure
our application data. If the data should be stored in SQL Server, since
SQL server access include network connection and data transfering, I
suggest you manually encrypt the data if the size is not very huge.

You can consider using the DPAPI component in .NET
2.0(System.Security.Cryptography.ProtectedData class). You can have a look
at the following MSDN reference about how to perform data protection in
.NET:

#How to: Use Data Protection
http://msdn2.microsoft.com/en-us/lib...41(vs.80).aspx

here is another web article introduce other net security features in .NET
2.0

#New Security Features in .NET 2.0
http://www.theserverside.net/tt/arti...wSecurityFeatu
res

In addition, if you have some sensitive configuration setting that need to
secure and want to store in configuration file, you can have a look at the
following article:

#How To: Encrypt Configuration Sections in ASP.NET 2.0 Using DPAPI
http://msdn2.microsoft.com/en-us/library/ms998280.aspx

Though the above article is targeting ASP.NET web.config, the function also
apply for normal .net application(console or winform), see a former thread:

#Encryption of application configuration block
http://groups.google.com/group/micro.../browse_thread
/thread/1bbeeb01ae5ca5c6/70dd27a4598ab060?

Hope this helps you.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

==================================================

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.

==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 4 '07 #2
Thanks for your response Lan,

Please feel free to let me know if you have any further questions on this.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 5 '07 #3
OK I think I have a solution using DPAPI and a hashed password , I would
appreciate your feedback.

Store a password as an MD5 hash in the database. When the user wants to
save a secret entry to the database they are asked for a password (different
to the windows user password to provide additonal security) which is hashed
and compared to the hashed password in the database. If they are the same it
encrypts the text using DPAPI (using the protecteddata class with currentuser
scope) and uses the password value as the additional entropy, storing the
encrypted data in the database. The decryption process again askes for the
password, compares the hash values and then decrypts the data from the
database.

If I understand correctly this should prevent anyone accessing the
information by reverse engineering the application, intercepting the network
traffic or accessing the sql server?

Does that make sense? Anything else I should consider?

Regards
Ian



"Steven Cheng[MSFT]" wrote:
Thanks for your response Lan,

Please feel free to let me know if you have any further questions on this.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 5 '07 #4
Thanks for your reply Lan,

My comments below:

If I understand correctly this should prevent anyone accessing the
information by reverse engineering the application, intercepting the
network
traffic or accessing the sql server?
===============================

I think it ok. And here is an overall analysis over your application's data
process:

** in database and over network, since the data is in encrypted form, it is
secure.

** in your application, since you use DPAPI, so you do not need to worry
about the encryption key(the operating system help you manage it).

so the only potential threat is that if any one can access your program's
run memory and inspect the inmemory decrpypted data. However, I think this
is quite rare case and is not protectable through application code. so you
can feel free to use your current pattern.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 5 '07 #5
Hi Steven

Wondering if you can help?

I'm having trouble converting the byte array retrurned by
dataprotect.protect to a string that I can store in my database and then
retrieve later to be decrypted.

I've tried using UnicodeEncoding.ASCII.GetBytes to create the byte array for
encryption which returns the byte array ok but can't seem to covert it into a
string to display the encrypted data. I only get what I assume is the first
char of the encrypted data.

Any ideas
Appreciate any assistance.
Ian



"Steven Cheng[MSFT]" wrote:
Thanks for your reply Lan,

My comments below:

If I understand correctly this should prevent anyone accessing the
information by reverse engineering the application, intercepting the
network
traffic or accessing the sql server?
===============================

I think it ok. And here is an overall analysis over your application's data
process:

** in database and over network, since the data is in encrypted form, it is
secure.

** in your application, since you use DPAPI, so you do not need to worry
about the encryption key(the operating system help you manage it).

so the only potential threat is that if any one can access your program's
run memory and inspect the inmemory decrpypted data. However, I think this
is quite rare case and is not protectable through application code. so you
can feel free to use your current pattern.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 9 '07 #6
Hi Lan,

For convert binary data into string/text format, you should use base64
encoding, e.g.

.net framework has provided two methods for you to do the convertion:

System.Convert.FromBase64String()
System.Convert.ToBase64String()

For System.Text.Encoding namespace classes, they're used for convert
between binary and string based on a Charset , and this is used when you
are processing Text data and care about the charset of different
language/region.

Please feel free to let me know if there is anything you wonder.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead

This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 9 '07 #7
Hi Lan,

Does this helps some? Please feel free to post here if you have any further
question.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 12 '07 #8
Thanks Steven

That has helped.
I appreciate your assistance.

Ian

"Steven Cheng[MSFT]" wrote:
Hi Lan,

Does this helps some? Please feel free to post here if you have any further
question.

Sincerely,

Steven Cheng

Microsoft MSDN Online Support Lead
This posting is provided "AS IS" with no warranties, and confers no rights.

Jan 12 '07 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
2104
by: Unigroup of New York | last post by:
Content-Type: multipart/mixed; boundary="------------C465DF38DCB38DD2AF7117E0" Lines: 327 Date: Tue, 15 Feb 2005 23:36:38 -0500 NNTP-Posting-Host: 24.46.113.251 X-Complaints-To: abuse@cv.net...
5
512
by: Mike Owen | last post by:
Hi, I have just used the import Wizard to import a VS 2003 app to VS 2005. I have a lot of work to do to enable it to compile successfully with all the errors and warnings it gave me, but as a...
2
1638
by: rjack | last post by:
I'm using VS 2005 Beta 2. In VS 2003, the Page directive in an aspx page has Language and CodeBehind attributes. You can have the language be different than the code behind file language. For...
8
1515
by: Mike Owen | last post by:
Hi, I am trying to pre-compile a project prior using ASP.Net 2.0, VS 2005, to putting it onto a live server. The reason for doing this is that other people have access to the server, and I...
8
6441
by: Phil Lee | last post by:
I'm sure this is possible but I just can't see how to do it. I want to add schemas to my solution and have C# classes automatically generated from them. I can see how to generate typed DataSet's...
6
2703
by: | last post by:
Hi all, is there a better way to stream binary data stored in a table in sql 2005 to a browser in .net 2.0? Or is the code same as in .net 1.1? We noticed that in certain heavy load scenarios,...
0
7245
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7144
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7427
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
7512
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
5671
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5069
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4741
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
1577
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
785
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.