Hoppa till innehåll

Webinar: Registrera dig för vårt kommande webbinarium

Registrera nu

Allt du behöver veta om RSASSA-PSS

Allt du behöver veta om RSASSA-PSS

Rivest Shamir Adleman (RSA) är en asymmetrisk algoritm som kan användas för att kryptera och signera data. Krypterings- och signeringsprocesserna utförs genom en serie modulära multiplikationer. Säkerheten för RSA-algoritmen kan ökas genom att använda längre nyckellängder, till exempel 1 024 bitar eller mer – ju längre nyckellängden är, desto långsammare är dock krypterings- eller signeringsprocessen. Det är en av de mest populära och säkra metoderna för kryptering med offentlig nyckel. Det finns två olika RSA-signaturscheman som anges i PKCS1.

  • RSASSA-PKCS1-v1_5: gammalt signaturschema med bilaga som först standardiserades i version 1.5 av PKCS #1.
  • RSASSA-PSS (RSASSA = RSA-signaturschema med bilaga): baserat på det probabilistiska signaturschemat (PSS) som ursprungligen uppfanns av Bellare och Rogaway.

Skillnaden mellan RSASSA-PKCS1-v1_5 och RSASSA-PSS

RSASSA-PKCS1-v1_5RSASSA-PSS
PKCSV1_5 är deterministisk.Den är slumpmässig, vilket ger ett annat signaturvärde varje gång.
Meddelandesammanfattningsvärde kan extraheras från en PKCSV1_5-signatur.Den kan inte extraheras från en PSS-signatur, utan kan bara verifieras mot ett känt meddelandesammanfattningsvärde.
Mindre säker och robustPSS har säkerhetstålighet och är mer robust än PKCSV1_5.
Det är ett gammalt system.Det är ett nytt upplägg.
Det rekommenderas för kompatibilitet med den befintliga signaturapplikationen.Det rekommenderas för kompatibilitet med befintliga signaturapplikationer. Det rekommenderas för eventuellt införande i nya signaturapplikationer, eftersom det inte innehåller vissa kritiska punkter från den äldre standarden.

Attacker mot gamla signatursystem

  1. Bleichenbacher-attacken

    År 1998 upptäckte Daniel Bleichenbacher att meddelandena som returnerades av SSL-servrar för fel i Kryptografistandarder för offentliga nycklar (PKCS) #1 version 1.5 utfyllnad möjliggjorde en adaptivt vald chiffertextattack, där en angripare skickar en serie chiffertexter för dekryptering och sedan använder resultaten av dessa dekrypteringar för att välja efterföljande chiffertexter. Detta gjorde det möjligt för en angripare att utföra RSA-dekryptering och signeringsoperationer med hjälp av den privata nyckeln från en TLS-server, vilket fullständigt bröt TLS sekretess när den används med RSA-kryptering.

  2. Felbaserad attack

    År 1996 presenterade Dan Boneh och andra en attack mot RSA som involverade felaktiga beräkningar. Genom att injicera slumpmässiga fel i RSA-beräkningarna kunde de regenerera den privata nyckeln från kunskapen om de felaktiga signaturerna. RSA-implementeringar som använder den kinesiska restsatsen för att snabba upp beräkningar är särskilt sårbara – en enda felaktig signatur möjliggör regenerering av den privata nyckeln. Skydd mot felbaserade attacker som denna är särskilt viktigt i inbyggda enheter som chipkort som är byggda för att inte exponera den privata nyckeln, utan för att tillhandahålla kryptografiska operationer som signaturer i en miljö som potentiellt kontrolleras av en angripare. Men i ytterligare studier har det fastställts att PSS inte är sårbart för dessa felbaserade attacker.

Skräddarsydda krypteringstjänster

Vi utvärderar, strategiserar och implementerar krypteringsstrategier och lösningar.

RSASSA-PSS

RSASSA-PSS är ett förbättrat probabilistiskt signaturschema med ett tillägg. Det innebär att en privat RSA-nyckel kan användas för att signera data i kombination med slumpmässig inmatning. Den andra sidan av kommunikationen kan sedan verifiera signaturen med motsvarande publika RSA-nyckel. Detta signaturschema använder slumpmässiga data, så två signaturer med samma inmatning är olika, och båda kan användas för att validera originaldata.

RSASSA-PSS-parametrar

  1. Hashalgoritm/funktion

    Hashfunktioner används i krypteringsscheman, signaturscheman med ett tillägg och olika kodningsmetoder. Hashfunktioner är deterministiska, vilket innebär att utdata bestäms helt av indata. Hashfunktioner tar indatasträngar av variabel längd och genererar utdatasträngar med fast längd.

  2. Maskgenereringsfunktioner

    En maskgenereringsfunktion tar en oktettsträng av variabel längd och önskad utmatningslängd som indata och matar ut en oktettsträng av önskad längd. Maskgenereringsfunktioner (MGF) är deterministiska till sin natur. Utdata från en maskgenereringsfunktion bör vara pseudoslumpmässig, det vill säga om funktionens frö är okänt, bör det vara omöjligt att skilja utdata från en verkligt slumpmässig sträng. Den bevisbara säkerheten hos RSAES-OAEP och RSASSA-PSS är beroende av den slumpmässiga naturen hos utdata från maskgenereringsfunktionen, som i sin tur är beroende av den slumpmässiga naturen hos den underliggande hashen.

  3. Saltlängd

    Det är saltvärdet som är associerat med signaturoperationen. Fältet är avsett att underlätta bearbetning i ett enda steg. Om fältet utelämnas ska saltvärdet hämtas från signaturen. Saltvärdet förbättrar säkerheten för schemat genom att ge ett "stramare" säkerhetsbevis än deterministiska alternativ som Full Domain Hashing (FDH).

  4. Trailerfält

    Det används i kodningsoperationen och är ett heltal. Värdet MÅSTE vara 1, vilket representerar trailerfältet med hexadecimalt värde 0xBC.

Standardparametrar

hashAlgoritm

Standardvärdet är SHA1, men SHA-256 rekommenderas.

maskGenAlgorithm

MGF1 behöver användas. mgf1SHA1 (funktionen MGF1 med SHA-1)

saltLängd

Standardvärdet är 20, men konventionen är att använda hLen, längden på utdata från hashfunktionen i byte.

trailerFält

trailerFieldBC (byte 0xbc)

Det rekommenderas att MGF-hashfunktionen liknar den för schemats hashalgoritm/funktion, och att saltlängden är hLen, vilket är längden på utdata från hashfunktionen.

Slutsats

RSASSA-PSS är ett förbättrat signaturschema som innehåller en bilaga. Det använder en privat RSA-nyckel för att signera informationen, och därefter kan mottagaren verifiera signaturen med hjälp av den offentliga RSA nyckel. Den har olika parametrar och är säkrare och mer robust än andra.