Email or username:

Password:

Forgot your password?
Alexey Skobkin

Обожаю всякие региональные платёжные системы.

Есть тут вот одна, которая упарывается в шифрование передаваемых данных не только на уровне HTTPS, но и на уровне передаваемых в API данных.

При этом у них в примерах буквально такое вот:

Если твой ключ для AES-256-CBC меньше 32 байт, то:

- складывай его самого с собой в цикле
- когда набралось больше 32 байт, обрежь первые 32 байта
- КЛЮЧ ГОТОВ К ШИФРОВАНИЮ 🎉

Хотел бы я посмотреть в глаза тому, кто писал это всё 👀

#dev #work #money #payments #encryption #log #WTF #security

10 comments
sattellite

@skobkin зашифруем данные, зашифруем ключ, а вы там сами как-нибудь

Alexey Skobkin

@sattellite
Знаешь, так даже было бы лучше.

sattellite

@skobkin подозреваю что так. Я год назад подключал одну платежку. Везде xml, куча обязательных полей, документация из этого же xml по комментам. И целый отдел по помощи в интеграции. «То не описано, это поле не обязательно, для этого используйте другой метод. Так мы не умеем, но у нас есть экспериментальное json api, там это есть» и документацию по новому апи кот наплакал. Два месяца писал обязку и плакал. То от смеха, то от бессилия.

Alexey Skobkin

@sattellite
Я этим постоянно занимаюсь, да.
Предыдущая система вот выдавала примерно такие перлы:

ПС: Давайте вы вместо параметра X будете присылать нам параметр Y
Я: Но его нет в документации
ПС: Да, но он есть в API

🤡

WildTuna 🇷🇺

@skobkin ну челик с синдромом отличника закончивший вуз и решивший, что надо знания в деле то испытать! Устраивается в какую то шарагу за копейки, говнокодит там в одного-двух. Компания растёт, он вместе с ней и вот его "творения" уже легаси и с ним живут "так исторически сложилось".

D:\side\

@skobkin если выбрать ключом нуль-символ, выйдет бесконечный цикл, прикольно. :blobcatgooglythumbsup:
(Если сложение числовое. Если строковое, всё ок. Но instructions unclear.)

Alexey Skobkin

@dside
Пример на PHP. Но да, пустой строкой его можно положить.
А строкой вроде "0" можно создать самое надёжное шифрование всех времён и народов.

UPD для UPD:
сложение строковое - конкатенация.

D:\side\

@skobkin а точно, в строках нейтральный элемент сложения ж тоже есть.

Rubikoid

@skobkin Б - безопасный KDF…

Звучит, если честно, как какой-то смешной таск на CTF, а не реальный алгоритм в продакшене.

Alexey Skobkin

@rubikoid Ну естественно никто в здравом уме на продакшене такое не будет делать. Я, например, у системы прошу рандомные байты.
Но сам факт, что у сервиса в документации ключ предлагается делать вот так - не то чтобы внушает доверие.

Go Up