BG Development


  Reply to this topicStart new topicStart Poll

> Съхраняване на споделен ключ в база данни
thrawn
Публикувано на: 23-10-2021, 13:58
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3224
Регистриран на: 17.01.17



Правя една система за двуфакторна автентикация (потребителско име и парола + totp токен) та се замислих, как е най-удачно да съхранявам споделения ключ в базата данни? Че ще е криптиран е ясно ама дали да ползвам симетрично криптиране или асиметрично се чудя? И в двата случая, ключът ще е извън базата данни, но това е плюс които е независим от изборът на алгоритъм за криптиране.
PMEmail Poster
Top
dvader
Публикувано на: 23-10-2021, 18:10
Quote Post


Group Icon
Име:
Група: VIP
Ранг: Почетен член

Мнения: 4951
Регистриран на: 12.07.05



Симетрично, за по-бързо, плюс периодична смяна на ключа.


--------------------
I find your lack of faith disturbing
PM
Top
wqw
Публикувано на: 24-10-2021, 13:20
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 6304
Регистриран на: 10.06.04



Значи искаш в базата за всеки потребител да пазиш ключ и тези ключове да са криптирани с някакъв друг master key и се чудиш дали да бъде симетрично или асиметрично това криптиране на потребителските ключове?

Що не пробваш да направиш MVP първо без никакво криптиране пък после да го мислиш? То ако стигнат да декриптират нещо от базата ти значи имаш вече доста по-сериозни проблеми IMO.

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 24-10-2021, 13:51
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3224
Регистриран на: 17.01.17



Да, при totp се генерира споделен ключ който се дава на клиентът (и съответно го знае и сървърът).
За разлика от паролите за вход, където можеш да сравняваш директно хешове, тоя ключ ти трябва за да можеш да изчислиш текущия токен и да го сравниш с тоя който праща клиентът при вход.

Тъй като всички пароли в базата данни имат някакво ниво на защита, смятам че е редно и тоя ключ да е защитен. Тъй като ще трябва да се ползва при вход на потребителя, няма как да се пази хеш, та за това смятам, че е удачно да го криптирам.
PMEmail Poster
Top
wqw
Публикувано на: 25-10-2021, 12:47
Quote Post


Group Icon
Име: Владимир Висулчев
Група: VIP
Ранг: Почетен член

Мнения: 6304
Регистриран на: 10.06.04



QUOTE (thrawn @ 24-10-2021, 13:51)
Тъй като всички пароли в базата данни имат някакво ниво на защита, смятам че е редно и тоя ключ да е защитен. Тъй като ще трябва да се ползва при вход на потребителя, няма как да се пази хеш, та за това смятам, че е удачно да го криптирам.

Защо? Паролите не ги криптираш. Имам предвид не криптираш хеша на паролите, хеш който ползваш за auth и който не е добре да се знае, но като leak-не пак нищо не можеш да направиш преди да ги строшат тези хешове към оригиналните пароли.

Принципно като се замислиш ако криптирането на някакви данни в базата помагаше срещу leak-ове, защо хешовете на паролите не са криптирани?

В тази връзка по същия начин не виждам причина да се криптират и shared keys. Ако leak-нат трябва да ги reset-неш така или иначе.

Just my $.02 worth и размисли на глас.

cheers,
</wqw>


--------------------
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 25-10-2021, 14:47
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3224
Регистриран на: 17.01.17



Въпросът е, как се разбира дали има теч?
С други думи, не се знае дали данните са изтекли или не. Хешът на паролите дава някаква гаранция, че те не могат да се ползват директно. Ако при това положение изтече споделения ключ, то втория фактор за автентикацията се компроментира (всеки ще може да генерира валиден токен). Вярно, за да стигне до там, първо трябва да мине през проверка на първия фактор (име и парола). А това от своя страна пък е аргумент в твоя полза - няма смисъл от криптиране.

Значи, асиметричното криптиране отпада на 100%. Остава въпросът, дали да криптирам ключът симетрично или изобщо да не го криптирам.

PMEmail Poster
Top
thrawn
Публикувано на: 29-10-2021, 16:01
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3224
Регистриран на: 17.01.17



В края на краищата, криптирах ключа симетрично.
Нещо ми се набиваше на очи, паролата хеширана, еднократните ключове също и само тоя споделен ключ се мъдри в прав текст...
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0