Re:Show HN: Neverbleed – privilege separation engine for Ope...
by pquerna on Wednesday September 23, 2015 @05:02PM
(#10268192)
The point is that it requires TLS handshakes to be done in a multi-threaded system for a server handling high concurrency.
Many servers are multi-threaded, but many are not. Using the proposed technique in a Node.js process, or nginx, is going to severely limit the number of new connections per second.
Re:Show HN: Neverbleed – privilege separation engine for Ope...
by kazuho on Wednesday September 23, 2015 @05:44PM
(#10268461)
Wrong.
You seem to have confusion between TLS handshakes and RSA operations.
In OpenSSL (which is used by many servers including node.js, nginx), RSA operation is always synchronous. Therefore, using Neverbleed does not impose new limits regarding concurrency.
Re:Show HN: Neverbleed – privilege separation engine for Ope...
by pquerna on Wednesday September 23, 2015 @09:06PM
(#10269275)
Inter-process IPC is going to block the event loop for longer than a inline RSA operation.
Re:Show HN: Neverbleed – privilege separation engine for Ope...
by kazuho on Thursday September 24, 2015 @12:51AM
(#10269883)
It is true that RSA operation over IPC is slower than doing it internally. But the latter is by magnitudes faster than the former, therefore the slowdown is negligible in practice.
You can find the numbers in the FAQ section of the linked website.
For Keyless SSL, it is necessary to make RSA operations asynchronous, since the operations are requested over the TCP network (which may have big delays).
OTOH Neverbleed degelates the operations within the same server using Unix sockets. So there is no fear of such delays. And the server spawn a dedicated thread to each client thread. In other words, the delay is practically _no worse_ than what it is without Neverbleed.
And discussing _how worse_ it is, calculations related to TLS handshakes may block the server for a few milliseconds. It may sound bad, but generally speaking it is negligible comparing to the latency over a public network.