Аутентификация iPhone Шифрование пароля - PullRequest
1 голос
/ 10 июля 2011

Каков наилучший способ обработки шифрования паролей?

Я пытаюсь отправить пароль через NSURLRequest.Пароли зашифрованы на уровне базы данных на сервере.

  1. Если я отправлю пароль в виде обычного текста, а затем, когда он достигнет сервера, зашифрует пароль и затем проверит, соответствует ли этот пароль зашифрованному паролю в базе данных.1008 *

  2. Стоит ли сначала зашифровать пароль, а затем просто проверить, совпадает ли этот зашифрованный пароль с зашифрованным паролем в базе данных?

Ответы [ 3 ]

2 голосов
/ 10 июля 2011

Никогда не отправляйте пароль через незащищенное простое HTTP-соединение.

Использование TLS (преемника SSL), как указано в j0k, будет вашим способом, если возможно, вы должны использовать его, когда это возможно, вместо того, чтобы придумывать свои собственные схемы. Если вы просто используете односторонний TLS / SSL (т. Е. Только сервер аутентифицирует себя, клиент остается анонимным), тогда вы избавите себя от необходимости обработки симметричных ключей шифрования на стороне клиента.

Если вы правильно настроили свой TLS на сервере, вы можете просто передать незашифрованные учетные данные пользователя. TLS как протокол обрабатывает шифрование на транспортном уровне, поэтому вам, как разработчику, больше не нужно об этом заботиться.

Еще одна вещь, которую вы, вероятно, должны сделать, это не хранить пароли в зашифрованном виде, а просто хранить соленый их хеш (SHA-1 или что-то подходящее) в вашей базе данных. Таким образом, вы никогда не рискуете скомпрометировать пароли вашего пользователя.

0 голосов
/ 10 июля 2011

Я бы зашифровал пароль локально и затем отправил бы его на сервер.Из соображений безопасности вы всегда хотите ограничить передачу паролей в незашифрованном виде.

0 голосов
/ 10 июля 2011

Учитывая, как вы это делаете, не имеет значения, какой подход вы используете. Сравнительный подход точно такой же. Если вы просто сравниваете строку со строкой, нет никакой разницы между «foo» и его зашифрованным аналогом, например, "74 $ # 4UC".

Если вы ищете безопасность, есть несколько вещей, которые вы можете сделать, но все они потребуют работы. Возможно, проще всего было бы опубликовать URL-адрес с помощью SSL, если это вариант для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...