Cryptography 'Becoming Less Important,' Adi Shamir Says
Trailrunner7 writes "In the current climate of continuous attacks and intrusions by APT crews, government-sponsored groups and others organizations, cryptography is becoming less and less important, one of the fathers of public-key cryptography said Tuesday. Adi Shamir, who helped design the original RSA algorithm, said that security experts should be preparing for a 'post-cryptography' world. 'I definitely believe that cryptography is becoming less important. In effect, even the most secure computer systems in the most isolated locations have been penetrated over the last couple of years by a series of APTs and other advanced attacks,' Shamir said during the Cryptographers' Panel session at the RSA Conference today. 'We should rethink how we protect ourselves. Traditionally we have thought about two lines of defense. The first was to prevent the insertion of the APT with antivirus and other defenses. The second was to detect the activity of the APT once it's there. But recent history has shown us that the APT can survive both of these defenses and operate for several years.""
Without him, it'd just be RA, which isn't even RAD.
Encryption is the best anti-tampering mechanism you have in computing. Well placed encryption protects OS data from tampering, user data from theft, and sensitive communications secured. It's only getting more important.
To offset political mods, replace Flamebait with Insightful.
My vote is for just giving up and letting the bad guys have their way with us.
Would have been nice to define APT...
If you're trying to protect your big organization against foreign spies, yes. If you are a little guy who wants to communicate without having that communication be laid wide open for a large organization to see, then I think encryption is still pretty useful. Even if just because managing all those separate unique intrusions over a long period of time requires a lot more resources than just tapping into a trunk line.
Need a Python, C++, Unix, Linux develop
I have a PC that I use for all of my financial stuff, record keeping, and other critical data. I don't encrypt the hard drive. I don't even password protect files.
You know how I do security for the PC that handles my most critical data?
It's not plugged into the fucking Internet. That's how.
Encryption doesn't do shit if they're grabbing it before encryption or after decryption. It's not a magic security bullet. It has its uses, but now it's become easier for Eve to hack Alice and read the plaintext than to intercept and brute-force the ciphertext. And when Alice is talking to not just Bob, but Carol and Dave, well, that makes Alice a high-value target worth spending time on.
In a world where cryptography gets used for DRM purposes, it is not surprising to think that someone would say it was "becoming less important".
If you understand cryptography, you know that the opposite is true: It is absolutely essential and therefore extremely important.
It is not a silver bullet designed to kill every security problem; nothing ever will be. That doesn't mean it's not important.
Perhaps it's really just that encryption is a lesser part of the total solution, so in that respect, it's relatively less important than it used to be.
Now get that meat off of my cyberlawn!
The use of encryption is only intended to provide a way for legitimate remote users to gain supervised access to the system without having to hack into it. The real culprit behind bad security is software reliability. Attackers look for and try to exploit the defects in the software. Why is software defective? Because (it's the bugs, stupid!) the Turing/Von Neumann model of computing is inherently insecure and unreliable. Why? Because timing is not an essential part of the model. I predict that this decade will see the end of the Turing madness and that the future of computing is non-algorithmic. There is no alternative and the sooner, the better.
hates bitcoin.
From TFA
One way to help shore up defenses would be to improve--or replace--the existing certificate authority infrastructure, the panelists said
Indeed. IMO SSL public keys could be stored in DNSsec protected DNS records. That way one would only have to trust the manager of the root zone and the TLD, which would be a good improvement compared to the CA debacle.
kids who who have hacked the kernel were self-motivated/taught.
These are the only ones that the industry needs. The rest can fuck right off. It won't help to teach kids programming (shit I mean coding, nobody programs anything anymore)if they aren't interested. They will do the laziest shit they can get away with, and it won't matter what language you use the better idiot will be born. The age of the App is upon us. Have fun with all these lil' coders that don't know they didn't program shit and they are just using templates and can't even debug AT ALL because "the compiler won't let me make a mistake."
I just hope nobody wonders why most of their computers resources are devoted to error correction. It's fucking obvious now.
If you really want to protect your network, disconnect it from the internet. Encryption should be used to prevent sniffing or try to stop it anyways, in the intranet as a secondary defense. If you actually need the internet, you should have 2 networks, one with your internet facing servers, then a firewall allowing very specific access to the intranet network and heavy monitoring.
Why can't you build a system to monitor and defend against attacks? Once a virus gains control of your system it is quite easy to find and remove based on file signatures (time installed,ect). If you know what you have and something changes you should be able to identify it. It would be easy to identify attacks on a network when things go outside the norm. "Well, lets see somebody opened up a bunch of ports and is transferring files to some random IP in X country that isn't on my list of recently accessed http sites, I think I'll shut those down. Oh, a user is downloading 20% more classified files than normal users, maybe we should pay him a visit and shut down his access until we figure out what is going on. Implementing such a system would be difficult, but patterns should be statistical and you should be able to see most of what goes on. Yes people could slip through the cracks, but if you develop a good model, you should be able to spot the differences between malicious and normal behavior.
so if you know the information the enemy will find out through you.
Another reason that it could become less important is if the zone becomes a patent minefield. Maybe math is not patentable, or shouldn't be (but even natural genes get patented) but there are enough borders around it that could be used as excuse that could be a tool to force only the use of "approved" encryption methods.
Governments are trying to follow all our steps over the internet, intercepting and parsing everything we do. Encrypting our communications and trying to encrypt everything is the secure method to make the Internet freedom to us all.
I suspect he's just fed up with the state of software security, which is appallingly bad. We now have patch-and-release on everything. This turns out to be a failed strategy against competent attackers.
I used to work on secure microkernels in the 1980s. I thought that by now we'd have provably secure microkernels in ROM with a mandatory security model enforced. Systems like that have been built a few times for the three-letter agencies, but never went mainstream. Instead, we have bloated operating systems with a high churn rate, and far too much trusted software per system.
Ballmer used to call this "strategic complexity". As Ballmer once put it, when asked why Microsoft kept adding functions to Windows, "If we stopped adding functions to Windows, it would become a commodity, like a BIOS. And Microsoft is not in the BIOS business".
Most applications should be running with far less privileges than they have. But if they are locked down properly, their ad tracking, update checking, and self-modification won't work. The user would actually be in charge.
Cryptography only provides a secure way to communicate between secure regions. If there are few or no secure regions, it doesn't help much.
Upon reflection, and not surprisingly, the expert has made a good point.
If due to an Advanced Persistent Threat (APT), your secret data was captured after it was decoded (as it must be to be actively used, or created, or transferred, at some point) or if the private keys are compromised (either due to torture, pressure on appropriate authorities, or captured as created (see above)) the benefit(s) of encryption are greatly reduced (even if the cryptosystem itself is very secure).
It is a bit of a chilling thought, and yes other posters have pointed to various good zones of defense, but Shamir's point is that some existing APTs in the wild have penetrated to the deepest levels.
As for the "air gap" method, as has been pointed out in other places, that's often compromised even for very secure infrastructures by people with laptops, cellphones, or compromised printers that are moved from one side of the "air gap" to the other....
The problem as I see it is that not enough people actually care so it doesn't get used when it should. Other options that are not quite as good but you can actually get people to use are worth a try. Even military intelligence aerial camera footage gets sent in the clear in real time using publicly available codecs for anyone tuned to the right frequency for hundreds of miles to pick up. Trivial encryption is seen as just too much of a hassle. It's not seen as important.
I was just having a discussion about this at work today. Encryption should be ubiquitous now. There is no excuse. It's not "free" in terms of the resources it takes up, but it's pretty close. Everything should be encrypted in transit. Everything should be encrypted at rest. "Well you mean the table with the PII and not...." NO! I mean EVERYTHING. The servers drive should be encrypted. The entire database should be encrypted. Every network connection should be encrypted.
This doesn't mean encryption is a panacea solution to APTs or to any other security threat, but its an absolutely critical layer which is still not widely implemented enough. To prevent tampering, to prevent certain types of attacks, to prevent breaches through physical theft, etc. Saying encryption isn't as important anymore is like saying that keyboards aren't that important anymore. Sure, management shouldn't spend a lot of time worrying about them, and should be focusing on other problems instead....but that doesn't mean everything will be cool if everyone's keyboard is stolen overnight.
It needs to be there, and by there I mean everywhere. And its not. Every day developers are looking at security guys like, "huh??" because they are looking for encryption to be incorporated into the product. Or, they want to "just get the system built out" without encryption, but they'll totally enable it once everything is working perfectly and all the testing is done (FYI developers, security guys aren't falling for that, we realize that you really mean, 'we'll think about enabling it until we realize how many things it will break, and then we'll ship the product without it, ignoring the enormous liability it creates'). You would think things would be different now that its 2013...they are different, but not that much different. Security still isn't regarded as a core piece, or even an important feature, of most products.
Unfortunately for your grand plan, the owner of the code and the owner of the computer aren't the same person. Fortunately for you the owner of the computer can elect to not run code they aren't the owners of. Now whither that ideology leaves you with a useful computer is open to debate.
Why are there so many people who think programming is should be treated like reading, writing, and arithmetic? It would be nice if I wasn't competing with high school drop outs the next time I'm looking for a job.
..just don't use apt-get.
Stop using email.
apt-get penetrate
wtf is APT??
Many (not ALL, though) security issues are a direct result of using C or C++, which both do not provide Memory Safety. Java and C# could theoretically provide this (forget the implemtation issues for a second), but they are inefficient as they force a simplistic memory model onto developers. You can't have stack allocation, value object arrays, objects directly embedded into other objects and probably most importantly, you cannot control memory dealloction. As icing on the cake, you don't have synchronous destructors.
Here is a language which aims to provide memory safety without having to compromose on efficiency:
http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/SAPPEUR.pdf
http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/manual.pdf
http://sourceforge.net/projects/sappeurcompiler/
Captcha: Anteater
..is that a running piece of code can be subverted by means of buffer overflows, dangling pointers and so on. You don't really need to infect executable code.
For example, imagine an exploit in SQLite. Then they virus could come in via an exploit in the Firefox or Chrome html parser and then proceed to persist itself in the SQLite database file of the browser. Each time you run the browser it will read the sqlite file (because it needs to load the bookmarks, for example) and that will restore the virus.
All your "secure validation" claptrap will not catch this, as the executables are NOT modified.
Memory Safe Languages such as Sappeur, Java (if the runtime is correctly done), C# could defend against against this kind of scenario in most cases.
If there's some elite group of hackers who like to target high profile websites and services that can get past the most complex forms of encryption, then does that automatically mean we shouldn't use encryption anymore? For all I know, at the very least, encryption will keep out the 13 year old bedroom hackers who write vbscripts and call it a virus.
Similar to me having MAC filtering enabled on my wireless router. I know MAC filtering won't keep out the determined hacker, but it will be enough of a blockade for some wannabe punk that thinks it's cool to spend a weekend trying to access insecure wifi routers. To keep out more advanced and experienced intruders, more is needed, but that's no reason for me to just open the gate to every laptop owner with half a braincell who bookmarked a "hacking 101" tutorial.
What is APT?
Fata viam invenient.
In other words, he is saying he will be ready to retire in a couple of years. Good for him, it's hard work being a cryptographer these days, for goodness sakes!
You sound like an obese monk of the 13th century bitching about commoners learning to read and write. Imagine all the "unlicensed" works of writ !!!!
The larger problem here is motivation of software developers, white hats, and black hats. The developers; whether it be open source or proprietary, tend to code towards a particular functionality and usually with deadlines. The white hats are preforming a job function to the best of their ability usually no more than 40-50 hours a week in teams. Whereas, the black hat is playing a game or solving a puzzle for personal enjoyment reasons. Now, I'm not saying that there is any weakness to any of the aforementioned groups, but when people do things for enjoyment, it tends to yield a higher chance of success especially when the black hat needs only to find a single point of attack in a system that largely extends from the digital realm or job functions of the software developer or the infosec ops.
..you don't really need to store a virus directly inside a piece of executable code. If I have two fitting Oracle exploits and have access to the Oracle Server, I can first inject myself into the process. No useful way for you to fingerprint processes. The second exploit would be somewhere in the code which reads the records, indices and so on from mass storage. My virus would write its code inside the database or index file and not touch the executables and dlls/shared objects. Again, there is no useful way to fingerprint the database/index files and compare them with "good" fingerprints.
Whenever you access the table/index my virus is loaded into the Oracle database server process. Booom - there goes your nice concept of "fingerprints will detect virus infection".
We need to harden the code against exploits in the first place. Here is one approach:
http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/SAPPEUR.pdf
http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/manual.pdf
http://sourceforge.net/p/sappeurcompiler/code-0/2/tree/trunk/doc/
And no, memory safe languages DO NOT magically eliminate all security weaknesses, but they eliminate a large percentage of the worst exploits. We also need to look at practical ways of formal verification. We need to invest into "proven correct" infrastructure such as compilers, XML parsers, CSV parsers, operating systems and the like. I think only governments will do that, if anyone. Commercial companies have been an utter failure in the security arena.
in response to a reset request is not hashing passwords and would fail a security audit (but I have certainly seen sites like this). There is no reason for the remote site you are logging into to ever store your password, vs. storing a hash (a strong hash, repeated multiple times to make brute force reverse hashing difficult).
'We should rethink how we protect ourselves. Traditionally we have thought about two lines of defense. The first was to prevent the insertion of the APT with antivirus and other defenses. The second was to detect the activity of the APT once it's there. But recent history has shown us that the APT can survive both of these defenses and operate for several years.""