Hot answers tagged

266

Software is too complex This is by far the most important factor. Even if you just look at something like a web application, the amount of work hours put into the codebase is immense. The code works with technologies, who's standards are pages over pages long, written decades ago, and which offers features that most developers have never even heard of. ...


92

The existing answers, at the time of writing this, focused on the difficulties of making bug free code, and why it is not possible.† But imagine if it were possible. How tricky that might be. There's one piece of software out there which earned the title of "bug free:" the L4 microkernel. We can use it to see just how far the rabbit hole goes. seL4 is a ...


75

There is a really, really good paper on this here. Tl;dr: 95% of spam is in English In f.ex. Germany only 17% of the spam is in German In Scandinavia it's less than 1% in the local language Conclusion I: Yes, generic phishing is mostly directed to English speaking people. I can only confirm that many German people will not even consider opening a mail ...


74

Much of the work on passwords and keys is related to controlling where they are stored and copied. A password is stored in the mind of a human user. It is entered on a keyboard (or equivalent) and goes through the registers of a CPU and the RAM of the computer, while it is processed. Unless some awful blunder is done, the password never reaches a permanent ...


64

A second factor is defined as independent of the first factor. That means your system should stay secure, even if one of the factors is compromised (and you are aware of the compromise). For example, a door badge and a fingerprint are independent of each other, and just having the door badge or the fingerprint is not enough to gain access. This is often ...


28

In my opinion (this is a subjective question) they are even less protected. If you read a phishing mail in your own language (or any other language that you understand) from someone that claims to be "your bank manager" (for example) you may understand better what's going on, and you won't click the link. But if the mail is in English, and you don't ...


24

You're confusing several things. First, pretty much every standard protocol (save for FTP which you should avoid like plague) has only a handful of standard ports. Since these ports are standards, they will not change often and therefore will not need to be updated. Now, some applications will require specific ports to be opened, Typically, that's handled ...


24

You can have high quality code, but it becomes massively more expensive to develop it. The Space Shuttle software was developed, with great care and rigorous testing, resulting in very reliable software - but much more expensive than a PHP script. Some more day-to-day things are also very well coded. For example, the Linux TCP/IP stack is pretty solid and ...


23

TL;DR in bold: We don't have crystal balls to predict where technology will take us, but the purpose of cryptography is to develop algorithms that have just this kind of resistance on a very fundamental level. Mathematically speaking, in terms of "honestly" brute-forcing a single plaintext from a single ciphertext, knowing everything that would otherwise ...


22

First point: there is a practical security increase only if both encryption algorithms, taken alone, would be independently vulnerable to exhaustive search, i.e. by using too small a key. That is the main issue, and it is better to fix that. Exhaustive search works only up to the key sizes such that the space of key can be enumerated with existing or ...


16

I'd say that is true, but only to the extent that it filters out people who don't know the language the email was written in at all (completely unintelligible). The truth of the matter is if it was profitable for them to have properly translated, grammatically correct, spam emails then they would do it. Sending an email is extremely cheap in regards to labor ...


14

Yes 2FA requires two different factors or categories of authentication. (They must be different categories; a password and a PIN would not be considered 2FA.) Wikipedia provides a great list of factors: Knowledge factors: Password, PIN, secret questions Possession factors: Disconnected tokens (human-readable): Google Authenticator Connected tokens (...


12

Several points against the second model: Hashing the password should take a significant amount of time, so as to slow down brute forcing in the event of a database leak. Checking a password on every request is a waste of resources. Cookies can be vulnerable to XSS attacks, and having your password stolen is worse than having your session stolen (passwords ...


12

No. Other answers are pretty close, but miss important factor. I won't repeat in detail what other say, just summarize that for SSH key+password to be multi-factor in your case, it would have to be "something you know" + "something you possess". What I would argue is if you need only knowledge to effectively replicate "something you have" (so nobody can ...


11

Yes... As others have pointed out, it's possible to proof your code, and by such means demonstrate that your code will work exactly as intended. The difficulty with proofing timing and non-deterministic models (such as network interactions) is one of difficulty, not impossibility. The patches to Meltdown and Spectre show that even side-channel timing ...


9

A recent thing to add here which probably is relevant to the question is that Landauer's Principle might not actually hold up: http://phys.org/news/2016-07-refutes-famous-physical.html They measured the amount of energy dissipated during the operation of an "OR" gate (that is clearly a logically irreversible gate) and showed that the logic operation ...


8

Keeping your crypto secret is not feasible. You need to have it out there, if it was just so people could test it if it actually works. I don't see any reason to keep crypto secret. You can put a lock on the door everyone can see your lock everyone knows how your lock works and knows that without the key it's useless. The password is your key. Besides all ...


8

The term "sandbox" is wide, generic, and often misused and misunderstood. Let's consider a type of sandbox, a virtual machine running under control of an hypervisor. The guest system is nominally isolated and cannot "see" the host system. However, this is relative to the implementation of the hypervisor, which is a combination of software and hardware, both ...


8

If your goal is to stop a virus or an active attacker from exfiltrating company data stored on a PC that can execute arbitrary code on the same client PC, you're hosed. There's a vast number of sites to dump data to that are the same sites your users ALSO need legitimate access too. You simply can't block these. Unless you're willing to block essentially ...


8

I want to answer sideways to the previous questions. I don't believe that bug-free software is theoretically impossible or that software is too complex. We have other complex systems with much lower error rates. There are two reasons why exploit-free code will not happen within the forseable future: Performance and other Optimizations Many issues, ...


7

Established expert... that would be me (although not under this name -- I use a pseudonym because I am tremendously humble). Allow me to answer, then. The "halting problem" is indeed an illustration of the impossibility to decide (for a computer) whether a given program will halt or not. Of course, a lot of programs are decidable, but not all of them. ...


7

Suppose that you have a pseudorandom function with an output of n bits. A good hash function with a given salt ought to behave like a PRF. The general, average structure of a PRF, with regards to repeated application, is to have one big "cycle": if you hash and rehash repeatedly, you will, at some point, enter a cycle and obtain a value which you already ...


7

The problem with the future is that you don't know what will happen. We can guess, of course, but you can never get a guarantee. AES is presumed to be secure, and no known faults exist in the algorithm. In fact, DES (the original government-endorsed cipher) has no known faults in the algorithm either, the only problem is that the key length is too short. ...


7

There are two important differences between algorithms vs. passwords/keys: You can (and should) change cryptographic keys routinely -- or when a compromise is suspected. This mitigates loss of secrecy. Similarly, you should change your password whenever you have reason to suspect that the password may be compromised. In contrast, it is rarely feasible to ...


7

How much you invest in knowledge, products and configuration depends on how high your risk is. There is no solution which will offer 100% security but there is a great difference between the security a simple packet filter firewall can offer or which application level gateways can do: Packet filter firewalls can only filter at the packet level (IP, port, ...


7

Is it possible? Yes. But not for the software you're looking for. "Bug/Exploit Free" basically means that a program will have a sensible, safe response to any input. This can include ignoring that input. The only software where this can achieved is small, trivial programs just beyond a Hello World. There are no exploits in this: print("Hello World") ...


7

Short answer: Yes, DLL path highjacking. Long answer: Though a program may not explicitly ask for user input, the operating system supplies resources for that program to run. So the attacker can target the program, the resources prepared for that program, or the interaction between that program and other necessary components.


6

A first generic comment is that when you give a key to a friend, there is no way you can prevent that "friend" from sending the same key to other people, or blabbering about your semi-private information. In that sense, encryption cannot make a useful distinction between "keyF" and "keyA". In a security setting, there are only two categories of information: ...


6

Potentially, sure. If permissions are viewable, that gives an attacker a list of valid usernames and tells the attacker which accounts are the best candidates to attack. An attacker is much more likely to want to break in to the jdoe account in the HR system if they know, for example, that jdoe has the ability to see everyone's salary. Making ...


6

Although I very much like @thomas-pornin's answer, I think there's a problem with the first assumption that must be called out. Laundauer's Principle only applies to irreversible operations. Contrary to what some may assume, reversible computing is already achievable. The operations are common in quantum computers and homomorphic encryption systems. ...


Only top voted, non community-wiki answers of a minimum length are eligible