Я читал, что SSL - хорошее решение для обеспечения безопасности «точка-точка», а не «сквозная». Например, в Эта статья в JavaWorld говорится:
SSL / TLS просто не предназначен для такого сценария; SSL / TLS обрабатывает только безопасность точка-точка ... SSL / TLS может защитить путь между любыми двумя [посредниками], но не от одного конца к другому.
Я создаю веб-сервис для предоставления данных отдельным клиентам, как описано в этот вопрос Programmers.SE. Насколько я понимаю, реализация SSL в этом контексте заключается в том, что я могу добавить какой-то ключ API ко всем моим вызовам веб-службы и принудительно использовать HTTPS только для службы, и я настолько защищен, насколько мне нужно (я не передаю что-либо, относящееся к конкретному пользователю, кроме адреса электронной почты при определенных обстоятельствах, которые были указаны и инициированы пользователем). Но это утверждение и эта статья, кажется, оспаривают это. Предполагает ли это, что атака «злоумышленник посередине» все еще возможна при использовании SSL-соединения? В руководстве OAuth говорится Вот (второй абзац в разделе «Помимо основного»), что:
HTTPS - это рекомендуемое решение для предотвращения Атака "человек посередине" (MITM), подслушивание и другие угрозы безопасности.
Как это примирить?
Прочтите статью еще раз.
Речь идет о ретрансляции данных - в этом сценарии клиент разговаривает с вашим сервером (через SSL), ваш сервер говорит с другой службой через SSL. Хотя информация, отправляемая от клиента, предназначена для другой службы, эта модель требует, чтобы ваш сервер имел ее видимость - вы являетесь человеком посередине по замыслу в этой архитектуре. Клиент не видит учетные данные другого сервера. Оба соединения безопасны.
Эта статья посвящена туннелированию данных на удаленный сайт при сохранении доверительных отношений между клиентом и «другим сервером», но, в конечном итоге, если другой сервер отправляет эти данные в другое место, целостность системы нарушается - так же, как и если вы не используйте SSL ни на одном из двух соединений в трехузловой модели.
Вы не можете полностью защититься от всех сценариев, а SSL может быть взломан с помощью атаки «человек посередине». Иногда MITM выполняется специально, скажем, вы используете шлюз контента WebSense или брандмауэр Пало-Альто, который предлагает дешифрование SSL на лету. В этом сценарии клиент доверяет ЦС или промежуточному ЦС, который выдает сертификаты на лету, чтобы прозрачно расшифровать и повторно зашифровать данные.
SSL, как и многие другие технологии, в большей степени ориентирован на конфиденциальность и выполняет довольно хорошую работу. Теперь MITM можно использовать и для управления содержимым, что в большей степени повлияет на целостность данных.
Я думаю, что я говорю, что SSL довольно проверенный и верный. Получите сертификат от известного центра сертификации, и все будет в порядке, но вы не можете контролировать, был ли скомпрометирован клиент.