Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Which is to say it immediately breaks any brute-force attack that worked on a 32bit OS.which is to say it will deter all the zero people attempting to brute force on a 64b address space.
Which is to say it immediately breaks any brute-force attack that worked on a 32bit OS.
There are features that can take advantage of the entire 64bit (and 128bit) address space, even if you only have a couple of gigabtes of RAM installed. Address Space Layout Randomization (ASLR) uses the entire address space, and randomly assigns chunks of it to physical resources. This makes it impossible to attempt exploits that target specific memory addresses.
ASLR can be defeated by scanning the entire address space with some intelligent pattern-matching, which is easily-done on 32bit systems (only 4GB of addresses to scan). This becomes MUCH more difficult on 64bit systems (16 Exabytes of addresses to scan, even if there's only 4GB of physical RAM installed). As you can imagine, 128bit would make ASLR even more effective (and no, the OS doesn't need to be 128bit native to handle 128bit addressing)
There are also benefits that have nothing to do with address space... Some operations (like high-grade encryption / decryption) are legitimately faster to compute with 128bit registers.
also I think you're better off combatting buffer overflow attacks with instruction/data memory flags and/or going to Harvard architectures.
Nope, those exploits will still attempt to run on a 64bit OS thanks to Windows having complete 32bit backwards compatibility through the WoW layer.Ok.....? So does a 64b OS, which we already have.
Even if ASLR was for some reason limited to 48bit, that's still a LOT more entropy than a 32bit address space allows. So no, that point was not irrelevant by any standard.Of course, as anybody who actually knows what they are talking about at all is aware of, that's a completely irrelevant point, because we're still only on 48-bit address spaces, so clearly the CPU data-path width is not the limiting reactant here
Not sure what you're on about here. A founding principal of ASLR is that more bits of entropy = more secure and harder to brute-force. The additional entropy afforded by the 64bit address space is part of what makes ASLR on 64bit Windows more secure than ASLR on 32bit Windows....If 64-bit and 128-bit address spaces are too large to naïvely scan, then they're far too large to effectively manage with structures like page tables. The overhead of managing such a large address space is so enormously large that it simply wouldn't be practical to implement them for the sake of ASLR.
Yes, I already covered this a few posts back. That's something that SSE has allowed for the last 15 years or so.Fortunately you can stick two 64-bit registers together and call it a 128-bit one, and it's something the instruction set already supports, so there isn't really anything to gain there.
those high huge number of bits like 128bit, 256bit ++ will become necessary as we grow in amount of data gatered!? we are going to need huge memory capacity computers, to map the universe, or like making artificial intelligence possible. I think we are already headed that way. today things like 1gigabyte will be like 1kilobyte in the future. in a way, it is important and will become necessary.
Even if ASLR was for some reason limited to 48bit, that's still a LOT more entropy than a 32bit address space allows. So no, that point was not irrelevant by any standard.
Not sure what you're on about here.
A founding principal of ASLR is that more bits of entropy = more secure and harder to brute-force. The additional entropy afforded by the 64bit address space is part of what makes ASLR on 64bit Windows more secure than ASLR on 32bit Windows.
Yes, I already covered this a few posts back. That's something that SSE has allowed for the last 15 years or so.
And if you're combining registers to run 128bit code, then obviously there WAS some benefit to running 128bit for the task at hand... which, again, was my original point (we'll see 128bit used WHERE APPROPRIATE, but it's unlikely that we'll ever see an end-to-end 128bit x86 OS)
The point of ASLR isn't about making memory difficult to find. It's about making it non-deterministic. ASLR will be largely effective regardless of how large the address space is, because the main purpose of it is to make the location of payloads and the location of the stack unpredictable. They don't have to be uncomputable searches...it just needs to be something you can't reliably locate first try. In nearly every attack using a stack buffer overflow vulnerability, you're going to be unable to sit there and scan the system to find your payload address, since doing so implies you already have the ability to run arbitrary code on the system. The point of ASLR is to eliminate the attacker's ability to predict where their shellcode lives or predict where the stack lives. If they can predict where they need to go, it's easy to inject that address and jump there. If they can't, they can only guess, and guessing is generally always a one-shot thing anyways. If you guess wrong, things will most likely blow up, and unless the show is being run by complete idiots, that will be cause of observation and investigation. Certainly you're not going to be able to try every address until you find your payload, because you will have encountered a fatal error as soon as you jump the program counter to an address that doesn't make sense.
My point here is there are significantly diminishing returns. By your own admission 64b address space is already sufficient.Not sure what you're on about here.
So what are YOU saying, exactly? That 128bit isn't needed and we should rip the ability to run 128bit mode out of SSE / AVX? Because that's what it sounds like you're rooting for.Like I said before, you will only see as much benefit as the optimized code is used. If it's not used very much, you won't see very much benefit. Your original statement was that there are benefits to moving to 128-bit that aren't memory related, and the proceeded to give two examples that offer no tangible benefit. The point is, you haven't made any sort of point here.
Never said that. It should be obvious that, as computers get faster, so do brute-force attacks.By your own admission 64b address space is already sufficient.
I think executable base locations are often not randomized, so you can return to your payload then search for more useful functions in that limited space. Alternatively you can brute force outside the executable by overflowing multiple times (assuming you don't crash the target process) - I think this is probably quite tricky though.We should also point out here that if you're able to scan the address space to find out which address your shell code lives at, you've to some extent already figured out how to run arbitrary code anyways.
Eventually, that leaves even a 64bit address space easily scan-able.
If you have a 128-bit CPU you can run more code in parallel using the same clock cycles.
It appears to me that people are missing the whole point about 128-bit architectures. The whole point is _not_ the maximum theoretical available memory, it's about instruction widths. If you have a 128-bit CPU you can run more code in parallel using the same clock cycles. This increases computing power as die scaling and clock speed has hit practical walls.
Expanded register encoding allowing 32 512-bit registers.
That's assuming the attack forcibly cycles every single virtual address through physical memory.Current DDR3-2133 = 17GB/s, assume socket 2011 for 68GB/s total, 64 bits is 18 billion billion bytes, total scan time, 252,645,135 seconds or 8 years.
As far as the industry jargon goes, 128b+ SIMD instructions aren't really the same thing as 128b CPUs and OSes; these are instructions which operate on vectors of 64/32/16b words and (outside of Sony marketing) have never been used to describe a CPU architecture.So what are YOU saying, exactly? That 128bit isn't needed and we should rip the ability to run 128bit mode out of SSE / AVX? Because that's what it sounds like you're rooting for.
Again, SIMD extensions aren't what makes a CPU or OS 128b. If you disagree, then I'm pleased to tell you that we *already* have 512b computers and operating systems!I'm going to stick with the camp that says 128bit will be used when appropriate (and encryption is very appropriate, even if you don't seem to think so).
As an example, Bitlocker uses AVX support to prop-up real time full disk encryption. Microsoft obviously felt there was tangible benefit there.
Are you seriously advocating 128b processors based on their ability to avoid buffer overflow attacks when:Never said that. It should be obvious that, as computers get faster, so do brute-force attacks.
Eventually, that leaves even a 64bit address space easily scan-able.
Never said they were (in fact, I said quite the opposite. That we'd probably never see an end-to-end 128bit x86 implementation). Are you even reading? I've been agreeing with you for over a page now and you keep missing it :-/As far as the industry jargon goes, 128b+ SIMD instructions aren't really the same thing as 128b CPUs and OSes
Again, never said this would make the OS 128bit (I quite clearly mentioned that I was talking about normal 32bit and 64bit applications making use of 128bit). Again, 128-bit only when appropriate to do so.Again, SIMD extensions aren't what makes a CPU or OS 128b. If you disagree, then I'm pleased to tell you that we *already* have 512b computers and operating systems!
And? We're already down to 182 days (potentially). At this rate, another couple generations could get that under 30 days.Even 100x faster you're still looking at a search time of over a month.
Seriously, ONE MORE TIME. Who said I was advocating a switch to a fully end-to-end 128bit x86 implementation? I'm not, never have been.Are you seriously advocating 128b processors based on their ability to avoid buffer overflow attacks when:
1) This is already infeasible on 64b processors and will be for some time
2) There are many existing and proposed safeguards which don't require such obscene architectural changes.?
Sorry. Are you instead advocating a 128b address space?Never said they were (in fact, I said quite the opposite. That we'd probably never see an end-to-end 128bit x86 implementation). Are you even reading?
This whole thread reminds me of the RISC v CISC crap from 15-20 years ago.
That's assuming the attack forcibly cycles every single virtual address through physical memory.
If that doesn't need to take place, the attack can be carried out MUCH faster (the limiting factor becomes CPU cache speed rather than RAM speed)
I'll use the extra bit to store a boolean indicating whether I like you at any given moment.I've changed my mind. 64-bits isn't enough anymore. Give me a 65-bit OS now!
So what are YOU saying, exactly?
Again, when did I claim that the ONLY advantage was additional address space? Point = missed.What I'm saying is that none of the things you've said so far has substantiated your claim that larger address spaces are useful.
And yet you're still hung-up on address space related features...Why does everyone seem to think 64bit and 128bit are only good for addressing additional physical RAM?
[snip]
There are also benefits that have nothing to do with address space... Some operations (like high-grade encryption / decryption) are legitimately faster to compute with 128bit registers.
being able to use additional bits of entropy
I thought this thread was started as a joke, since obviously no one would take it seriously.
But apparently I am wrong![]()
Who said I was advocating a switch to a fully end-to-end 128bit x86 implementation? I'm not, never have been.
And you're not totally advocating 128b address space? I can't tell. As noted the benefits are so negligible especially when considered in the context of the additional hardware and software complexity (where it is a resounding no).And yet you're still hung-up on address space related features...
But you are advocating larger registers for operations like encryption, which incidentally already exist in 64b CPUs via SIMD and AES ISA extensions.Some operations (like high-grade encryption / decryption) are legitimately faster to compute with 128bit registers.
Again, when did I claim that the ONLY advantage was additional address space? Point = missed.
I chimed in initially because I was tired of seeing everyone make that assumption. From my very first post on the subject:
And yet you're still hung-up on address space related features...
Why does everyone seem to think 64bit and 128bit are only good for addressing additional physical RAM?
There are features that can take advantage of the entire 64bit (and 128bit) address space, even if you only have a couple of gigabtes of RAM installed.
For the record, I don't see what you don't find substantial about being able to use additional bits of entropy. Seems pretty clear-cut, aside from the the whole "diminishing returns" argument (which is self-defeating since computers continually get faster).
Exactly, the current arrangement (where 128bit, and larger, registers can be exposted via extensions) is just fine.Ok so you're not advocating an end-to-end 128b architecture.
I was merely conceding, to all the people who kept yapping about using more RAM as if it were somehow the only benefit of moving to 128bit, that there were some uses for a larger address-space.And you're not totally advocating 128b address space? I can't tell.
Yes, exactly! Already exists, which is a point I've been re-stating over-and-over for pages now...But you are advocating larger registers for operations like encryption, which incidentally already exist in 64b CPUs via SIMD and AES ISA extensions.
That I've been trying to agree with you from the beginning, maybe?I guess I'm not totally sure what your point is.