[О блоге] [наверх] [пред] [2018-05-15 22:35:32+03:00] [2d28df8ebbd164894b4e19d1442677dd540093dd]
Темы: [crypto]

Почему end-to-end шифрование невозможно в броузере (как и вся криптография)

https://secushare.org/end2end
https://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/
Отличная подборка коротких фактов о попытке использовать криптографию в
броузере на JS. Решил полностью сюда скопировать:

Why don't you try end-to-end encryption in the web browser?

    Because it is impossible to achieve, by design of the web, without
    trusting your server or installing something on your machine.

    Let's say your encryption application comes from your server. If you
    have to trust your server anyway, why make a huge effort to try to
    put it into the web browser?

    You can't tell your web server, as it controls what you see in your
    web browser, won't just make the web page transmit an unencrypted
    version of whatever message you are reading or authoring, somewhere
    you wouldn't want it to go. So the browser silently allows the
    server administrator to watch over your messaging. You MUST trust
    your server. It's inevitable.

    The entire architecture of HTML and Javascript is intended to be so
    flexible, that you cannot ensure the safety of crypto operations.
    The existence of plenty of dedicated crypto APIs and libraries does
    not solve this chicken/egg issue of trust: A web server can make it
    look like everything is fine and you can't tell something is going
    on behind your back.

    Even the developers of Javascript crypto solutions admit it
    themselves, that their tools are only useful if the server is
    trustworthy: "A person getting access to your server can modify
    Javascript code and public key of the receiver."

    There's also the possibility for a man in the middle to insert
    malicious Javascript designed to redirect copies of your unencrypted
    messages elsewhere. Maybe even your passwords and private keys, so
    he only needs to do this once. Thanks to the complete unreliability
    of the X.509 certification infrastructure it is only a question of
    money for a man in the middle to view or modify anything you send or
    receive over HTTPS.

    A web browser just isn't suited for 100% private communications as
    it is built to do what the web server tells it to.

What if my website isn't coming from a server?

    Then it can be okay. If the website you are using is actually
    entirely installed on your device and all communication to the web
    server is exclusively done via something like secushare, or in the
    case of traditional web servers, via AJAX-like technologies over
    encrypted HTTP, the way hellais does it for GlobaLeaks. Most
    smartphone apps are somehow implemented that way: in the form of
    "static" web applications that get downloaded to your phone and stay
    there.

    Unfortunately, for end users installing a serverless web interface
    on the local computer is just as complicated as installing an actual
    software package, so there is no advantage in choosing a work-around
    if you could have a dedicated and properly designed end-to-end
    communication tool without unnecessary drawbacks.

What about an add-on to my web browser?

    One thing that is slightly easier to install than custom software is
    a browser plugin like Cipherbox. Still, Cipherbox provides for a
    quite simple attack vector: Once the message has been decrypted and
    inserted into the HTML document, a drive-by Javascript can steal the
    decrypted message and send it wherever you don't want it to be.

    The only solution to truly provide end-to-end encryption in that
    case is to have unencrypted data only appear in the custom user
    interface of the add-on, never in the web page. That usually
    destroys any intended usability and you can no longer say your
    application is actually web-based. It is quite impractical and makes
    it pointless to not use a dedicated and secure software package from
    the very start. That's why there apparently doesn't exist any such
    add-on.

    In the case of secushare you of course get a lot more than just what
    a browser add-on could offer, since a web browser wouldn't be able
    to do sybil-attack resistant cryptographic routing, or other of the
    magic described on this website, to dramatically improve your
    privacy in communications.

The End-to-End-Encrypted Web is a myth.

    It's a logical fallacy. A technical impossibility. A bad idea. A
    very bad idea. But there's nothing as strong as a bad idea whose
    time has come, so you will hear of this a while longer until
    somebody hits their nose bleeding on it.

    [оставить комментарий]