Size: a a a

2020 September 10

AP

Anton Petrusevich in Modern::Perl
ну а что твиттер — ну и хрен с ним...
источник

AS

Alexey Stavrov in Modern::Perl
Ну в мире, где у тебя нет https (не знаю, что за мир такой, но предположим, что он существует) v2 неприемлем, там что-то в открытую в http передается
источник

P

Pavel in Modern::Perl
Для али писал последний раз получение токена , для подписи они там навертели какой-то фигни, но греп по метаспану роляет ), сильно ускорил мне все
источник

IA

Ivan Avseyanko in Modern::Perl
Писал oauth2 клиент для 5 сервисов, сейчас, кстати, с apple мучаюсь. Там можно довольно многое, но каждый сервис изо всех сил старается хоть что-то сделать по своему.
источник

P

Pavel in Modern::Perl
Ага, вот чудо код для али который генерит подпись запроса (тут он выдает url, но не суть). Вот это вот обкладывание с двух сторон uc md5 ...

sub get_url {

    my ($self, $input_parms) = @_;

    if (!$self->{'app_key'} || !$self->{'secret_key'}) {

        return 0;

    }

    my $merge = Hash::Merge->new('LEFT_PRECEDENT');

    my $public_params = $self->_get_public_params();

    my $all_parms = $merge->merge($public_params, $input_parms);

    my ($signature_param, $url_param) = ('', '');

    map {

        #是否需要转utf8?

        #$_ = encode_utf8($_);

        $signature_param .= $_ . $all_parms->{$_};

        $url_param .= join('=', $_, uri_escape($all_parms->{$_}) . '&')

    } sort keys(%{$all_parms});

    #MD5加密后需要全部大写,否则签名会出错

    my $signature = uc(md5_hex(

        $self->{'secret_key'} . $signature_param . $self->{'secret_key'}

    ));

    return sprintf('%s?%ssign=%s', $self->{'aliyun_url'}, $url_param, $signature);

}
источник

IA

Ivan Avseyanko in Modern::Perl
Жалкий md5? Ха! Apple jwt использует. Закриптованный, естественно. )
источник

IA

Ivan Avseyanko in Modern::Perl
Хотя... чтоб я знал, зачем это надо... неужели email и имя пользователя - настолько страшная тайна для передачи по https?
источник

P

Pavel in Modern::Perl
Ivan Avseyanko
Жалкий md5? Ха! Apple jwt использует. Закриптованный, естественно. )
Есть и sha256, как альтернатива md5 они оба поддерживают.
источник

P

Pavel in Modern::Perl
А вообще по али АПИ много веселья  особенно с учетом китайского
источник

SZ

Sergey Zhmylove in Modern::Perl
Ivan Avseyanko
Жалкий md5? Ха! Apple jwt использует. Закриптованный, естественно. )
Хехехе, а фаербейз использует не только jwt, но и редкие алгоритмы типа ecliptic curve 2
источник

IA

Ivan Avseyanko in Modern::Perl
Ох, давайте не надо про гугль, это был предыдущий этап... у них свои заморочки, и файрбейз - имхо - это аццкое мегазло. Потому что делает хрен знает что, хрен знает когда, и внезапно может перестать это делать.
источник

IA

Ivan Avseyanko in Modern::Perl
*справедливо для относительно больших компаний )
источник

AS

Alexey Stavrov in Modern::Perl
Sergey Zhmylove
Хехехе, а фаербейз использует не только jwt, но и редкие алгоритмы типа ecliptic curve 2
Что за алгоритмы такие? Можно ссылочку?
источник

SZ

Sergey Zhmylove in Modern::Perl
Alexey Stavrov
Что за алгоритмы такие? Можно ссылочку?
Google please: ECDSA + P-256 + SHA256
источник
2020 September 11

AS

Alexey Stavrov in Modern::Perl
Sergey Zhmylove
Google please: ECDSA + P-256 + SHA256
Спасибо.
Глянул, теперь не понимаю этих ребят, кто это использует.

Ну представьте вам нужно использовать просто hmac, что является по сути хешем от данных и секретной строки.
А тут вы начинаете считать хеш и использовать ecdsa зачем-то, что явно не добавляет вам скорости.

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

Так же не понятно, а почему алгоритм редкий? в бразерах уже ваще давно повсеместно.
источник

DF

Denis F in Modern::Perl
Именно из-за цепочки и используют.
источник

AP

Anton Petrusevich in Modern::Perl
Pavel
Ага, вот чудо код для али который генерит подпись запроса (тут он выдает url, но не суть). Вот это вот обкладывание с двух сторон uc md5 ...

sub get_url {

    my ($self, $input_parms) = @_;

    if (!$self->{'app_key'} || !$self->{'secret_key'}) {

        return 0;

    }

    my $merge = Hash::Merge->new('LEFT_PRECEDENT');

    my $public_params = $self->_get_public_params();

    my $all_parms = $merge->merge($public_params, $input_parms);

    my ($signature_param, $url_param) = ('', '');

    map {

        #是否需要转utf8?

        #$_ = encode_utf8($_);

        $signature_param .= $_ . $all_parms->{$_};

        $url_param .= join('=', $_, uri_escape($all_parms->{$_}) . '&')

    } sort keys(%{$all_parms});

    #MD5加密后需要全部大写,否则签名会出错

    my $signature = uc(md5_hex(

        $self->{'secret_key'} . $signature_param . $self->{'secret_key'}

    ));

    return sprintf('%s?%ssign=%s', $self->{'aliyun_url'}, $url_param, $signature);

}
Паша, если что, то основная выжимка для клиентов социалок у меня вот тут: https://github.com/jef-sure/pef-front-psgi-dist/tree/master/lib/PEF/Front/Oauth
источник

AS

Alexey Stavrov in Modern::Perl
Denis F
Именно из-за цепочки и используют.
Хм... думал только браузеры этим занимаюстся 😊
Есть ещё примеры?

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

Хотя может я и не прав. Разубедите меня!
источник

DF

Denis F in Modern::Perl
Alexey Stavrov
Хм... думал только браузеры этим занимаюстся 😊
Есть ещё примеры?

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

Хотя может я и не прав. Разубедите меня!
Платёжные токены гугла так умеют,  про эпл не помню
источник

М★

Михаил ★ in Modern::Perl
Привет, по mojo вопрос. Прокидываю через вебсокет поток с IP-камеры: запускаю ffmpeg ... http://localhost... в можо-приложение,  в хуке http://pastebin.calculate-linux.ru/ru/show/144488 ловит поток и тупо скидывает чанки подключенным вебсокетам  http://pastebin.calculate-linux.ru/ru/show/144490

Картинка выходит, но по центру кубики артефактов, т.е. где-то данные  некорректно принимаются/передаются, как-то странно чанки идут парно - данные и еще какие-то байты

Взял за основу https://github.com/phoboslab/jsmpeg там node.js websocket-relay.js нормально перекачивает
источник