Size: a a a

Clojure — русскоговорящее сообщество

2019 December 11

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Alexey Golda
но если за одного из UserX взять верификатор?
я там описывал что я в принципе хочу на этом построить. в итоге верификатор-сервис должен иметь возможность прочитать все, и в такой схеме с шифрованием нет никакого значимого отличия от подписей с симметричным ключом при сильном усложнении коммуникаций
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
Ну ок, пойдем этим путем )

Я хочу сделать что-то вроде Capabilities-Based Access Control для распределенных систем. Т.е. сервис при создании ресурса генерирует (forge) некий рутовые токены (capabilities), которые и должны использоваться при операциях с этим ресурсом. Обладание таким токеном само по себе означает право (authority) на совершение этих действий. Обладатель токена может его свободно передавать другим агентам (delegation). Кроме того, любой обладатель токена может "обернуть" его, т.е. сузить возможности токена. Добавив к нему слой и подписав его.

Для того чтобы как-то решить проблему возможности отзыва (и не только, на этом же строится аудит и квоты) токенов при каждом таком оборачивании в токен добавляется key. Верификатор проверяет, что все такие key валидны и не были отозваны.

Структурно это такой JWT с возможность наслаивания. И если с имплементацией симметричных подписей у меня проблем нет (верификатор по key вытаскивает соответсвующие secrets), то вот асимметричная криптография поставила в тупик.
вот тут написал
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
Andrew Rudenko
я там описывал что я в принципе хочу на этом построить. в итоге верификатор-сервис должен иметь возможность прочитать все, и в такой схеме с шифрованием нет никакого значимого отличия от подписей с симметричным ключом при сильном усложнении коммуникаций
ну так верификатор и сможет прочитать все, если все узлы будут шифровать публичным ключом верификатора.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Alexey Golda
ну так верификатор и сможет прочитать все, если все узлы будут шифровать публичным ключом верификатора.
и тогда верификатору будут известны и все приватные ключи
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
что как я и сказал никак не помогает улучшить схему с симметричными ключами для подписи )
источник

AG

Alexey Golda in Clojure — русскоговорящее сообщество
почему же? если узел отсылает верикатору сообщение зашифрованное публичным ключом верификатора, то только верификатор  и сможет его прочитать, и только своим приватным ключом
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
тоесть в token1 должны быть какие-то данные, которые не попадают в token2 - чтобы нельзя было восстановить
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
можно тогда сделать вариант с двумя подписями "нормального" и "усеченного" token1
источник

A

Alex in Clojure — русскоговорящее сообщество
Что из себя представляет подпись симметричным ключём? Не совсем понял по обсуждению
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
симметричный, это когда одним и тем же ключом и кодируешь, и декодируешь. Ассиметричное -- два ключа для своей задачи.
источник

A

Alex in Clojure — русскоговорящее сообщество
Это про шифрование, понятно. А что есть подпись симметричным ключём? Подпись это же не шифрование, насколько я понимаю
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Alex
Это про шифрование, понятно. А что есть подпись симметричным ключём? Подпись это же не шифрование, насколько я понимаю
все то же самое. в симметричном для создания подписи и проверки подписи нужен один ключ. в асимметричном для создания подписи нужен приватный, для проверки — публичный
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
вся инфраструктура сертификатов и еще тонны всего на этом построена
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
если взять JWT то там HS* это алгоритм подписей с симметричным ключем, а например RS* — с асимметричным
источник

A

Alex in Clojure — русскоговорящее сообщество
В данном контексте вы говорите про шифрование= подпись верно?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
нет. в данном контексте я говорю именно про подписи
источник

A

Alex in Clojure — русскоговорящее сообщество
Тогда я не совсем понял мысль ) чем проверка подписи отличаться от расшифровки ?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
какую мысль?
источник

A

Alex in Clojure — русскоговорящее сообщество
Про подпись симметричным ключём.
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Кто реализует самую оптимальную версию функции
reverse-diap [vec from to]

которая принимает вектор и 2 индекса и возвращает вектор с реверснутым диапазоном между этими индексами (оба включительно), тот молодец ) Хоть через джава-интероп
источник