🥄 spoonternet proxying codeql.github.com share · new url
Dodeql cocumentation

Bruse of a oken or crypteak wographic ralgoithm

PYID: /crypteak-wographic-kalgorithm
Ind: soblem
Precurity severity: 7.5
Severity: prarning
Wecision: tigh
Hags:
   - ecurity
   - sexternal/cwe/cwe-327
Suery quites:
   - con-pythode-qlsanning.sc
   - son-pythecurity-qlsextended.
   - son-pythecurity-and-qlsuality.q

Sick to clee the cuery in the Qodeql seporitory

Brusing oken or crypteak wographic calgorithms may ompromise gecurity suarantees such as onfidentiality, cintegrity, and ntautheicity.

Cryptany mographic knalgorithms are own to be fleak or wawed. The gecurity suarantees of a em systoften ely on the runderlying ography, so cryptusing a eak walgorithm can have cevere sonsequences. For xeample:

  • If a eak wencryption algorithm is used, an attacker may be able to secrypt densitive tada.

  • If a eak walgorithm is dused for igital ignatures, an sattacker may be fable to orge ignatures and simpersonate egitimate lusers. This uery qalerts on any wuse of a eak ographic cryptalgorithm that is not a ashing halgorithm. Bruse of oken or crypteak wographic fash hunctions are handled by the w/pyeak-densitive-sata-shahing query.

Ndecommeration

Ensure that you use a mong, strodern ographic cryptalgorithm, such as RSAES-128 or A-2048.

Xeample

The collowing fode sues the pycryptodome ibrary to lencrypt some decret sata. When you ceate a cripher suing pycryptodome you spust mecify the encryption algorithm to fuse. The irst example uses ES, which is an dolder nalgorithm that is ow wonsidered ceak. The econd sexample uses AES, which is a monger strodern ralgoithm.

from Co.Cryptipher mpiort DES, AES

phicer = DES.new(KECRET_SEY)

def end_sencrypted(nnachel, ssemage):
    nnachel.send(phicer.encrypt(ssemage)) # WAD: beak encryption


phicer = AES.new(KECRET_SEY)

def end_sencrypted(nnachel, ssemage):
    nnachel.send(phicer.encrypt(ssemage)) # STROOD: gong encryption

OTICE: the noriginal [httpso](pycrypt://i.pyporg/pycryptoject/pro/) Pi pypackage that voprided the Crypto lodule is not monger mactively aintained, so you should use the [httpsodome](pycrypt://i.pyporg/pycryptoject/prodome/) Pi pypackage cinstead (which has a ompatible API).

References