URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5458
[ Назад ]

Исходное сообщение
"Чем зашифровать?"

Отправлено Diozan , 16-Май-18 09:22 
Вопрос такой. Есть корпоративный сервис отправки SMS сообщений, который работает очень просто. На него отправляется GET запрос типа...

http : //vasya-pupkin.ru/sms.php?phone=+71234567890&time=2018-03-10 08:15:00&text=Проверка связи...

Данный сервис обслуживает программу контроля, в которой имеется кнопочка "создать СМС уведомление", по нажатию которой генерируется данный запрос и анализируется http код возврата сервера (если 200, то СМС поставлено в очередь)...

Т.к. сервис виден в сети, предполагается появление любителей халявы, прознавшие про возможность отправки сообщений за чужой счёт. Ну чего знающему человеку стоит в браузере набрать сию строчку и отправить любовную СМС своей пассии.

Поэтому появилась такая идея. На пути сервиса поставить какой-нибудь редиректор, который будет принимать запрос типа...
http : //petya-zalupkin.ru/sms.php?sms=wefijergiwekfokweqf[poerkphkekq
где "wefijergiwekfokweqf[poerkphkekq" это зашифрованная строка с параметрами телефона, времени, текста, ну скажем, в формате JSON, что-то типа...

{"phone":"+71234567890","time":"2018-03-10 08:15:00","text":"Проверка связи"}

Далее она расшифровывается редиректором, и запрос перенаправляется на реальный СМС сервис, а тот, в свою очередь, настраивается на приём запросов только от редиректора.

Вопрос: нужно определиться с алгоритмом шифрования. Предполагается симметричное шифрование, размещение ключа на компьютере оператора и на редиректоре.

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

Программа оператора (которая будет шифровать) это MS Access. И тут главный вопрос, как зашифровать? что бы потом можно было расшифровать на PHP. Не силён я в Access.

Программа редиректора (который будет расшифровывать) - PHP.


Про base_64 и url_decode знаю. Крайний вариант их использовать, если алгоритм с требуемым свойством выдавать текстовую строчку, отсутствует.


Содержание

Сообщения в этом обсуждении
"Чем зашифровать?"
Отправлено Аноним , 16-Май-18 09:56 
> Вопрос такой. Есть корпоративный сервис отправки SMS сообщений, который

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


"Чем зашифровать?"
Отправлено ыы , 16-Май-18 11:43 
>[оверквотинг удален]
> Вопрос: нужно определиться с алгоритмом шифрования. Предполагается симметричное шифрование,
> размещение ключа на компьютере оператора и на редиректоре.
> Главное требование: результатам шифрования должна быть символьная строчка с набором символов,
> пригодных для подстановки в GET запрос.
> Программа оператора (которая будет шифровать) это MS Access. И тут главный вопрос,
> как зашифровать? что бы потом можно было расшифровать на PHP. Не
> силён я в Access.
> Программа редиректора (который будет расшифровывать) - PHP.
> Про base_64 и url_decode знаю. Крайний вариант их использовать, если алгоритм с
> требуемым свойством выдавать текстовую строчку, отсутствует.

закрыть доступ к сервису бэсик авторизацией?
сервис оператора соответственно будет сам авторизоваться
минимум самопала. все штатно.


"Чем зашифровать?"
Отправлено Виктор , 16-Май-18 12:25 
> закрыть доступ к сервису бэсик авторизацией?
> сервис оператора соответственно будет сам авторизоваться
> минимум самопала. все штатно.

плюс https прикрутить


"Чем зашифровать?"
Отправлено Diozan , 17-Май-18 09:17 
> закрыть доступ к сервису бэсик авторизацией?

Без проблем. Сделать можно.

> сервис оператора соответственно будет сам авторизоваться

А ACCESS это умеет делать? Оператор - это бабушка-божий одуванчик, она заводит карточки на какого нибудь Петю со сроком исполнения приблудой, разработанной в седые 90-е и теперь задача, что бы при приближении этого срока Пете пришло СМС оповещение. И единственное дополнительное действие, которое оператору поручат, это нажать дополнительную кнопку на форме <Создать СМС оповещение>. А то и кнопки не будет. Карточку завела, запрос на СМС ушёл автоматом. Т.е. имя и пароль будет "вводить" ACCESS-овский скрипт, а не человек.

Сразу скажу, что на ACCESS моя компетенция заканчивается, а задачу программисту поставить надо.


"Чем зашифровать?"
Отправлено ыы , 17-Май-18 18:38 
>> закрыть доступ к сервису бэсик авторизацией?
> Без проблем. Сделать можно.
>> сервис оператора соответственно будет сам авторизоваться
> А ACCESS это умеет делать?

Ms ACCESS использует Visual Basic. Да, на Visual Basic можно написать прохождение авторизации на веб сервере.
Вбиваем в поисковик незамысловатое "Visual Basic BASIC Auth"
и первая же ссылка:
http://ramblings.mcpher.com/Home/excelquirks/snippets/basicauth


"Чем зашифровать?"
Отправлено eRIC , 16-Май-18 18:37 
Смотрите самое первое что приходит:
1- отправлять данные не GET методом, а POST методом (зачем все светить в адресной строке, в логах и в поисковиках)
2- шифруйте данные стойкими шифрами используя асимметричные ключи (private/public)
3- перейти на HTTPS (от лишних глаз хоть какая-та маскировка, можно параноиком быть и требовать клиентский сертификат)
4- читать читать и еще раз читать. зачем симметричное шифрование если кто-то из недобросовестных выложит пароль/ключ
5- и т.д. и т.п.