Size: a a a

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

2019 December 11

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Andrew Rudenko
нет, каждый владелец токен1 может сделать токен2 подписав его своим ключом
ну взял, сделал пару ключей и подписал.
а в чем вопрос?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
вот мы только что внедрили в прод подобное
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Maxim Penzin
ну взял, сделал пару ключей и подписал.
а в чем вопрос?
в том как достичь 1)
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
только у нас это называется IAM по аналогии с амазоном.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
1. Обладая token2 не должно быть возможности получить валидный token1
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Andrew Rudenko
в том как достичь 1)
как не понял, как подписать свой же токен?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
можно просто хранить это в базе (в зашифрованном виде, конечно) и проверять
источник

AG

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

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Andrew Rudenko
1. Обладая token2 не должно быть возможности получить валидный token1
так по одному подписанному токену второй никак не получишь
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Maxim Penzin
как не понял, как подписать свой же токен?
просто подписав токен1 своим ключом ты любому обладателю токен2 даешь возможность получить токен1. что противоречит 1)
источник

IG

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

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Andrew Rudenko
просто подписав токен1 своим ключом ты любому обладателю токен2 даешь возможность получить токен1. что противоречит 1)
подписав токен1, я только говорю - "смотрите, чуваки, это мой правльный токен", про токен 2 ничего не говорю
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Ivan Grishaev
только у нас это называется IAM по аналогии с амазоном.
IAM это ABAC, надстройка над ACL, что примерно противоположно тому, что я пытаюсь сделать )
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
или вопрос в том, что надо чтобы в токене2 как-то фигурировала моя подпись, но токен1 не было бы?
источник

MP

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
token1 = data1.apikey1.signature1
 where signature1 = sign(data1.apikey1, secret1)

token2 = data1.apikey1.data2.apikey2.signature2
 where signature2 = sign(data1.apikey1.signature1.data2.apikey2, secret2)
я все описал, давай вот конкретно, где в описании не понятно?
источник

AR

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

AR

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Мне кажется, чтобы решить это криптографией, для начала бы упростить схему, убрав токены. Пусть у клиента будет несколько пар открытых и закрытых ключей. А дальше как я писал выше: дерево с контентом, где каждый уровень подписан  своим ключом. Уровнь выше включает в сигнатуру  подпись из нижнего уровня. На сервере все это можно проверить.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Если это не то, видимо, не понял задачу.
источник