Puncte:2

Algoritm asimetric bun pentru instrumentul cheie Java începând cu 2021

drapel ke

Deși mă așteaptă să obțin contrasens pentru termenul „cel mai bun”, unii algoritmi sunt considerați în general mai buni decât alții pentru, în esență, toate scopurile. De exemplu, DES nu mai este considerat sigur.

Ale mele special problema este ca vreau sa folosesc instrument cheie pentru a genera un depozit de chei Java, care conține o cheie asimetrică și nu știu ce algoritm să folosească. Există o listă aici: https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#Cipher , dar nu oferă recomandări - și conține DES menționat mai sus, așa că nu sunt toate la fel de bune.

Pe deasupra, am încercat câteva pentru care am primit „KeyPairGenerator not available”.

Comanda pe care o am pentru generarea cheii este:

keytool -genkey -keyalg RSA -alias server -keystore selfsigned.jks -validity 1000 -keysize 2048

Acest lucru poate fi bine, dar de fapt nu știu într-un fel sau altul.

kelalaka avatar
drapel in
Nu este clar ce vrei! vrei simetric (link) sau asimetric (etichetă)? Pe link, AES cu o cheie de 256 de biți este alegerea evidentă.
dave_thompson_085 avatar
drapel cn
Singurul _Cipher_ asimetric acceptat de keystore, și keytool, în Java este RSA (cel puțin până la PQC, și probabil chiar și atunci); există mai mulți algoritmi de _Semnătură_ și vă voi spune pe cel „cel mai bun” după ce ne spuneți cea mai bună îmbrăcăminte de culoare pe care să o poarte oamenii (toți oamenii, peste tot și întotdeauna, pentru toate scopurile), deoarece sunt cunoscute culori urâte și, prin urmare, logica ta trebuie să existe exact una mai bună.
Puncte:2
drapel in

DES este un cifru simetric. În general, depozitul de chei Java este folosit/utilizabil doar pentru perechile de chei asimetrice și, pentru a fi și mai precis, perechile de chei asimetrice cu certificatul însoțitor pentru ca acesta să devină util. Da, RSA este încă considerat un algoritm bun, deși aș recomanda o pereche de chei de 3072 de biți pentru securitatea de 128 de biți.

Rețineți că RSA nu este cuantic securizat, așa că nu îl utilizați pentru securitate pe termen lung (să zicem peste 10 ani). Atenție că, implicit, Java folosește doar o metodă destul de proastă pentru a obține cheia dintr-o parolă și apoi 3DES pentru a proteja depozitul de chei în sine, chiar dacă sunt folosite depozitele de chei PKCS#12. Așadar, asigurați-vă că protejați fișierul în sine și alegeți o parolă puternică (adică una generată folosind un generator de parole, de exemplu una dintr-o bază de date de parole).

knaccc avatar
drapel es
De altfel, dacă doriți să utilizați PBEWithHmacSHA512AndAES_256 în loc de 3DES implicit pentru a proteja cheile stocate într-un depozit de chei PKCS#12, acestea trebuie adăugate prin programare, mai degrabă decât folosind keytool pe linia de comandă. Consultați https://stackoverflow.com/a/47389384
dave_thompson_085 avatar
drapel cn
Keystore API necesită un certificat pentru asimetric, așa cum spuneți, iar keytool generează un certificat autosemnat, iar singurul algoritm asimetric (în prezent) capabil atât de criptare directă, cât și de semnătură este RSA; mai mulți algoritmi doar pentru semnături sunt acceptați. @knaccc: asta e depășit; începând cu 8u301 (dacă specificați storetype, pkcs12 nu este implicit pentru 8) 11.0.12 și 16 în sus, implicit pentru pkcs12 este într-adevăr HmacSHA512-AES256; vezi notele de lansare. (Și pentru că acesta folosește PBES2, nu poate fi citit din cauza unei erori în vechile 8 și mai mici, și 9 și 10, dar sunt „morți”.)
knaccc avatar
drapel es
@dave_thompson_085 Mulțumesc, e grozav! Fișierul java.security este foarte interesant. Se pare că valoarea implicită din JDK-ul meu este keystore.pkcs12.keyProtectionAlgorithm = PBEWithHmacSHA256AndAES_256 cu keystore.pkcs12.keyPbeIterationCount = 10000
Maarten Bodewes avatar
drapel in
Da, dar 10000 este destul de puțin și rețineți că PKCS#12 necesită de fapt mai multe rulări ale acestui algoritm, ultima dată când m-am uitat oricum la el. Cel mai bine probabil să crești la un milion sau peste dacă nu folosești o parolă generată.
kelalaka avatar
drapel in
Am iterația 383233 pe Luks și cu 4 nuclee pot testa cel mult 11 parole pe secundă cu PBKDF2-SHA1.

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.