Core: `SecurityUtils.createMtlsKeyStore` should use a fixed algorithm for creating the `PrivateKey`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia da SecurityUtils.createMtlsKeyStore ed esamina la gestione attuale di IllegalArgumentException relativa alla chiamata a KeyFactory mostrata nell'issue. Esamina le indicazioni di Error Prone su InsecureCipherMode e l'API di InvalidAlgorithmParameterException, quindi esegui la build con Error Prone abilitato. Il lavoro è completato quando gli algoritmi di chiave non sicuri o non supportati vengono gestiti come specificato e l'avviso viene risolto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Callers of SecurityUtils.createMtlsKeyStore can direct the use of insecure algorithms in the construction of the mTLS connection. In general, we attempt to affix the algorithm used to inhibit use of algorithms with known vulnerabilities.
Personally, I would be fine with denying provided certs whose cert.getPublicKey().getAlgorithm() was DH or DSA, but in lieu of blocklisting known bad algorithms, perhaps it'd be more security affirmative to allowlist currently-OK algorithms, so we only ever use good versions, and suffer toil later if we have to retrofit additional entries.
My suggestion is to create a case statement just below where the method currently throws IllegalArgumentException for various cases, and add the set of known good algorithms, and throw an InvalidAlgorithmParameterException if it is not one of those. In addition, special case DH and DSA to give references to their vulnerabilities as described in InsecureCypherMode.identifyDiffieHellmanAndDsaVulnerabilities.
/cc @sophieschmieg, as her guidance/requirements will be canonical for importing whatever changes are made here into the monorepo.
Environment details
- API: Core
- OS type and version: 5.17.6-1rodete1-amd64
- Java version: OpenJDK Runtime Environment (build 11.0.13+8-google-release-451398016) OpenJDK 64-Bit Server VM (build 11.0.13+8-google-release-451398016, mixed mode, sharing)
- version(s): ~head (with local patches)
Steps to reproduce
- Add errorprone warnings to the build
- Build.
SecurityUtils.createMtlsKeyStore will generate an InsecureCipherMode warning.
Code example
PrivateKey key =
KeyFactory.getInstance(cert.getPublicKey().getAlgorithm()).generatePrivate(keySpecPKCS8);
- Lingua principale
- Java
- Stelle
- 1.4k
- Fork
- 476
- Merge medio
- 10h 47m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di googleapis/google-http-java-client
-
Core: Validate header names and values to prevent CRLF injectionForse già presa @insaf021 l’ha presa 106 giorni fa. Apertapriority: p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Core: XmlPullParser processes external DTD entities (XXE) — disable FEATURE_PROCESS_DOCDECL in Xml#createParser()Forse già presa @insaf021 l’ha presa 106 giorni fa. Apertapriority: p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Core: LowLevelHttpResponse not disconnected when HttpResponse construction throws RuntimeExceptionForse già presa @insaf021 l’ha presa 106 giorni fa. Apertapriority: p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
type: cleanup
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
org.apache.http.conn.ssl.SSLSocketFactory is deprecatedForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertapriority: p2 type: cleanup
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
Tutte le issue di googleapis/google-http-java-client
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 84/100
cpp-best-practices/project_validator#251 ·
I maintainer di solito rispondono entro 1 giorno
-
backend enhancement
Difficoltà 2/5 Mezza giornata Idoneità per principianti 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every changeForse già presa @dwizard0 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno