3
$\begingroup$

This is a very basic and practical question. Since I started reading cryptography recently, these things keep bugging me.

What are the things that an adversary is usually aware of before planning an attack? Let's say an adversary plans an attack on a server of a big company.

  1. Does he know what encryption scheme/model is being used by the company to protect its data stored in the server?

I think usually companies use very standard and popular schemes that are known already to the cryptographic community since using a totally unknown scheme might have a huge data leakage which the company was not able to discover.

  1. Let's say adversary knows about the model. So what about the specific functions that are used in them. For eg. Pseudorandom generators used in stream ciphers(obviously, the key is not known), or S-box in case of DES etc. Are these things known to the adversary already?

I think these things are usually fixed while implementing the model. And even if these things are known, for example S-box in DES is known, it still won't change the security of the scheme. But even if the company tried to hide the above functions, can it actually increase the security of the data?

  1. Keys

I think this is mainly the information that separates the user and the adversary. But can you tell what are the other things that are hidden in practical implementations?

My assumptions are based on the quote that one should only use encryption schemes that are trusted by the cryptography community. Else there is a high probability that there can be an unknown leakage that an adversary can exploit.

$\endgroup$
7
$\begingroup$

I think usually companies use very standard and popular schemes that are known already to the cryptographic community since using a totally unknown scheme might have a huge data leakage which the company was not able to discover.

Definitely. And remind yourself that implementing cryptography is hard as well. Self made schemes may have side channel attacks, data leaks and whatnot.

Quite often the algorithms that are used are known in advance. They are in design documents, leaks by developers, can be determined from the protocol configuration directly, are specified to certification agencies etc. etc. etc. So we simply assume that Kerckhoff's principle applies.

This is also why cryptographers don't take people seriously when they are confronted with a ciphertext without specifying the algorithm. Finding the algorithms is generally not the problem we're trying to solve.

I think these things are usually fixed while implementing the model. And even if these things are known, for example S-box in DES is known, it still won't change the security of the scheme. But even if the company tried to hide the above functions, can it actually increase the security of the data?

The same applies as in the above.

I think this is mainly the information that separates the user and the adversary. But can you tell what are the other things that are hidden in practical implementations?

Anything that is known as a secret. That includes keys, but also passwords, PIN, biometric data (where applicable). Besides keeping things secret, there are of course also other counter measures such as access conditions, number of retries and whatnot. A system never solely relies on cryptography, i.e. cryptography is never the solution, but it may be part of a solution.


My assumptions are based on the quote that one should only use encryption schemes that are trusted by the cryptography community. Else there is a high probability that there can be an unknown leakage that an adversary can exploit.

Correct. As Bruce Schneier famously summed it up:

Anyone, from the most clueless amateur to the best cryptographer, can create an algorithm that he himself can't break.

with a corollary from Cory Doctorow :

any person can invent a security system so clever that she or he can't think of how to break it.

| improve this answer | |
$\endgroup$
1
$\begingroup$

I would take a further step back than the confirmation by @Maarten Bodewes to your own answers. You say you are asking "a very basic and practical question". Let's look at the problem practically and make basic assumptions.

Suppose adversary A wants to hack a victim V. Now, let's consider three possible examples of A: the high-school cracker, a skilled (and possibly financed) black hat individual (or group), and a military-backed APT (or intelligence agency). And the targets are: an SMB with 100 employees ("S100"), a random Fortune 10 company ("F10"), and finally the military of a G7 super-power ("G7"). You ask only about "a server of a big company" but we can scale the victims without affecting the discussion.

You ask, what is "already known"? First, I know there will be some financial reward hacking an S100 and much greater reward hacking an F5. Hacking a G7 military would probably have financial reward to only a few who could leverage the knowledge gained (such as an APT or intelligence agency). And, depending on the skills and resources of the adversary A, there would be a sliding scale of probability of being caught and impact (punishment) if caught.

What is already known by a high-school "cracker"? There are high-school crackers with enough knowledge to hack an S100.

What is already known by an experienced black-hat hacker (or group) trying to gain access to an F5 and make a few million? They know that research and planning will pay-off immensely. A determined and well-planned attack is advised.

What does an APT "already know" about military targets in the G7? I wouldn't want to (or even could) venture a guess.

Further, we know that the attacks would be of increasing sophistication. The high-school cracker may only need social engineering. The black hat might succeed with off-the-shelf tools including Metasploit and such. The APT will be writing and testing sophisticated, multi-stage zero day code and even exploiting weaknesses in cryptographic algorithms (possibly introduced in the design phase by the "APT" or intelligence agency).

Given the reward and risk, what is "already known" may mean hard work, days or months of effort, and deep pockets. Or, it might only mean a phone call with "a grown-up voice" and a good story.

This is the (other) "basic and practical" side of information security and cryptography.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.