Является ли HTTPS достаточно безопасным способом обмена данными между клиентом и сервером? - PullRequest
3 голосов
/ 23 июня 2010

Приложение, которое я разрабатываю, выполняет некоторую авторизацию на стороне сервера.Связь осуществляется по безопасному каналу (в моем случае HTTPS, с действующим сертификатом SSL).Я планирую реализовать что-то, что будет проверять, является ли удаленный сервер именно тем, кем он себя считает.

Я знаю, что никакая защита на стороне клиента не может быть взломана, особенно если у меня достаточно времени и знаний.Но если я реализую то, что я описал выше, является ли этот подход безопасности "достаточно безопасным", чтобы защитить данные от несанкционированного доступа, во время передачи или предотвратить атаки типа "человек посередине" и обеспечить его достоверность?

Я подумываю добавить еще один уровень безопасности для передаваемых данных (используя пару секретных / открытых ключей), но я подозреваю, что этого может быть достаточно, чтобы полагаться на SSL, не изобретая колесо.

Ответы [ 2 ]

3 голосов
/ 23 июня 2010

SSL достаточно безопасен с действующим сертификатом, но ...

Многие люди не знают, что получение ошибки недействительного сертификата означает, что «Ваши данные могут быть перехвачены кем-то другим». Они просто проигнорируют предупреждение, и атака «человек посередине» все равно будет работать. Кроме того, некоторые старые браузеры, такие как IE6, могут даже не показывать вам предупреждения, если сертификат недействителен. Проблемой в этом случае будет пользователь, а не используемая технология. Это означает, что вместо того, чтобы пытаться создать другой уровень безопасности, вы должны научить людей, которые используют ваше приложение, что означает получение ошибки недействительного сертификата и почему они должны использовать современный браузер.

1 голос
/ 25 июня 2010

г. B, Поскольку вы упомянули, что клиент собирается проверять SSL-сертификат сервера и что пользователи не участвуют в процессе, я думаю, что у вас все будет в порядке при проверке SSL-сертификата сервера. Тем не менее, вы должны хорошо позаботиться о процессе проверки. Я видел несколько клиентских приложений, которые недостаточно хорошо проверяют сертификат. Под «достаточно хорошо» я имею в виду, что клиент должен проверить - 1) Удостоверяющий орган 2) Продолжительность 3) Сайт выдан В одном из приложений, которое я тестировал пером, была ошибка, заключающаяся в том, что он проверял «CN» сертификата - который может быть подделан (можно создать фиктивный сертификат с произвольным CN).

...