Puncte:1

Ce date pot fi derivate din semnătura și mesajul ECDSA?

drapel ru

generez un mesaj aleator m trimis la un dispozitiv care calculează sig(m, privKey) cu secp256k1. Apoi efectuează un apel HTTP GET pentru a le partaja pe ambele pubKey și sig cu scopul autentificării.

(m rămâne privat pentru mine și este generat aleatoriu pentru fiecare nouă solicitare de autentificare. EDITAȚI | ×: în termeni cripto s-ar putea numi o „provocare”?)

Vreau să trag un secret constant din m și sig, m' și semn', m'' și semn'' și așa mai departe.

Primul meu gând a fost să folosesc recuperarea cheii publice ECDSA, care ar produce în mod determinist aceleași date (cheia publică) de fiecare dată. Acest lucru ar funcționa, dar există probleme:

  • Recuperarea cheii publice ECDSA poate returna 0, 1 sau 2 posibile puncte EC (chei publice), din câte am înțeles.
  • Dispozitivul a efectuat un apel HTTP cu cheia publică în URL (chiar și prin SSL ar putea fi predispus la atacuri).

Dacă recuperarea cheii publice a returnat 2 chei publice, cea care nu este partajată de dispozitiv ar fi perfectă. Dar cât de des primesc 2 chei publice?

Există metode alternative, cu instrumente criptografice, pentru a obține în mod fiabil un secret pentru orice dată m și sig? Mulțumesc!

drapel ru
Scuze anticipate dacă am folosit greșit unii termeni, sunt un cripto n00b
Maarten Bodewes avatar
drapel in
O cheie publică ar trebui să fie considerată publică și, pentru a fi utilă pentru autentificare, trebuie de asemenea să fie de încredere. Partajarea atât a unei chei publice, cât și a unei semnături create cu acea cheie nu are niciun sens. O semnătură este, de asemenea, considerată publică, așa că, dacă puteți obține o cheie publică din aceasta, nu o puteți utiliza ca secretă. Poate că ar fi mai bine dacă ai descrie ceea ce vrei să obții.
drapel ru
Vreau să folosesc [lnurl-auth](https://github.com/fiatjaf/lnurl-rfc/blob/luds/04.md) care folosește cheia privată bitcoin pentru a deriva și semna provocările care sunt folosite ca dovadă la semnare în site-uri web. Vreau să-l folosesc, dar local pentru a-mi calcula automat parolele. În esență, ca manager de parole. Și dacă funcționează, împărtășește-l cu alții.
drapel ru
Deoarece mesajul (care este privat) împreună cu semnătura (care este publică) este necesar pentru a găsi cheia publică neutilizată, nepublicată, am crezut că are sens.
meshcollider avatar
drapel gb
Nu puteți verifica o semnătură dacă nu cunoașteți mesajul $m$. Verificarea necesită cheia publică, mesajul și semnătura în sine.
drapel ru
@meshcollider Permiteți-mi să clarific: mesajul `m` este privat pentru mine, îl știu, l-am generat aleatoriu. Dispozitivul îl citește (prin codul QR) și emite cheia publică și semnătura. Apoi am cele trei piese pentru a verifica semnătura, așa că acum știu că dispozitivul (utilizatorul) este cine spune că este. Ar ajuta asta la întrebarea mea inițială?
drapel ru
Poate că utilizarea cuvântului „mesaj” este confuză? În specificații folosesc „provocare”, așa că poate că asta îl face mai clar.
poncho avatar
drapel my
Aș putea sugera că ar putea fi mai curat să începi prin a descrie problema, mai degrabă decât soluția ta. Ce încerci să obții? Care sunt resursele tale? Ce obiective de securitate aveți?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.