Защита паролей пользователя в настольных приложениях (версия 2)

Вам нужно реализовать UnmarshalText вместо UnmarshalJSON . Из документации :

Значения карты кодируются как объекты JSON. Тип ключа карты должен быть либо строкой, целочисленным типом, либо реализовывать encoding.TextMarshaler.

blockquote>
func (t *Tier) UnmarshalText(data []byte) error {
    switch string(data) {
    case "TIER1":
        *t = 1
    case "TIER2":
        *t = 2
    default:
        return errors.New("Unrecognized")
    }
    return nil
}

https://play.golang.org/p/6omS7ImuvRl

11
задан KCorax 23 October 2008 в 20:06
поделиться

5 ответов

Это - уловка - 22. Или Вы делаете пользовательский тип в его пароле каждым разом, или Вы храните его небезопасно (запутываемый, зашифрованный, безотносительно).

Способ зафиксировать это состоит в том, чтобы больше операционных систем включило встроенные менеджеры паролей - как Связка ключей OS X. Тем путем Вы просто храните свой пароль в Связке ключей, ОС сохраняет это безопасным, и пользователь только должен ввести в 1 основном пароле. Много приложений (как Skype) на OS X использует Связку ключей, чтобы сделать точно, что Вы описываете.

Но так как Вы, вероятно, используете Windows, я сказал бы, просто идут с некоторой путаницей и шифрованием. Я думаю, что можно быть немного параноиками о ботах кражи пароля; если Ваше приложение не имеет большой базы пользователей, разногласия являются довольно низкими, что кто-то будет нацелен на него и конкретно попытается украсть пароли. Помимо этого, у них должен был бы также быть доступ к файловой системе их жертвы. Если это так, они, вероятно, имеют вирус/червя и имеют большие проблемы.

13
ответ дан 3 December 2019 в 02:42
поделиться

После дальнейшего рассмотрения я думаю, что нашел путь. Я буду использовать аутентификацию ASP.net для своего настольного приложения приложения, хранить их учетные данные онлайн и позволять менеджеру паролей Internet Explorer обработать локальное кэширование этой вторичной пары или учетных данных для меня.

Я должен буду просто сделать, чтобы они прошли проверку подлинности через Facebook-API как форма во время первого входа в систему.

2
ответ дан 3 December 2019 в 02:42
поделиться

Я не получаю его..., почему шифрование бесполезно? Используйте большой ключ и сохраните ключ в базе ключей машины (принимающий Windows). Сделанный и сделанный.

2
ответ дан 3 December 2019 в 02:42
поделиться

Я думаю, что Вы пропускаете большее изображение здесь:

Если рабочий стол поставлен под угрозу, Вы - F#* % ED!

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

5
ответ дан 3 December 2019 в 02:42
поделиться

Сохраните его в виде обычного текста и дайте знать пользователю .

Таким образом, не возникнет неправильных представлений о том, какой уровень безопасности вы достигли. Если пользователи начнут жаловаться, рассмотрите xor'ing константы, опубликованной на вашем веб-сайте. Если пользователи продолжают жаловаться, «спрячьте» константу в своем коде и скажите им, что это плохая защита.

Если пользователи не могут уберечь плохих людей из коробки, то фактически все секретные данные, которые у них есть известен Доктору Злу. Неважно, зашифровано оно или нет. И если они могут не подпускать злых людей, зачем беспокоиться о том, чтобы хранить пароли в виде обычного текста?

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

5
ответ дан 3 December 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: