2

ClientSide Sending Key Example: tabc-xkaf-gaga-gtax to the Server

Server Checks if Key Exists in Database if YES then return TRUE as Response

ClientSide IF RESPONSE = TRUE THEN

OPEN FORM1

But thats not a Secure way to do it cause they can change the Response of the ServerSide check and then get the Product for free cause it will open Form1 anyone has a better way to do it?

2 Answers2

0

Signed server side response and verify server response at client side to check whether response was altered or not.

Refer this article for how to digitally signed and verify

Moreover this will be a typical solution and suit for very complex security .

For simple solution, You can send hash of response along with server response and convert response to hash at client side. compare both hash , if they match it means response was not changed.

Always_a_learner
  • 1,254
  • 1
  • 8
  • 16
0

As you indicated, professional attackers can see and decode VB.Net applications, and hence, as an initial conclusion, you cannot reliably protect your code. In the first step, you must encrypt your code by using several encryption techniques such as the one mentioned by @Always_a_learner. However, this will not 100% protect your code from reverse-engineering (A good discussion could be found here). A good trick in such cases is to make some intentional dependencies. For example, some core calculations should be done by the server (if possible) and only the result should be returned to the client. More explanation, for core calculations, the client should send a request to the server, and the server first verifies the requester (the sender) validity state, and if she is a valid user, then runs calculations and returns results to the user. This solution is fine only if you can trade-off between speed and security.