EVENT_03

Cryptography

 

 

26/03/2019

18h

Title Text

La team(us)

Programme

  1. Cryptography

  2. Exemples

  3. Outils

  4. mini-CTF

Cryptography

  • Qu'est-ce que c'est ?

  • Pourquoi est-ce utilisé ?

  • Encore d'actualité ?

  • Présent dans tous les CTFs

Exemples

  • Symétriques (DES, AES)

  • Asymétriques (RSA)

  • Hachage (md5, Sha-*)

Symétriques

  • 1 clé secrète : Chiffrement & Déchiffrement

  • Canal protégé nécessaire

  • Fonctionnement :

    • M = F1(k, C)

    • C = F2(k, M)

Asymétriques

  • 2 clés : Publique & Privée

  • Authentification de l'auteur

  • Pas besoin de canal protégé

Fonction Hachage

  • Calcule une empreinte

  • Identification de la donnée initiale (Intégrité)

  • Collision

Tools

  • CyberChef, Dcode
  • Bigprimes, FactorDB
  • RSACtfTools, RsaTool

  • OpenSSL

  • Quipqiup

  • Script Python

Tools

  • CyberChef : plateforme de chiffrement & déchiffrement

Tools

  • FactorDB : Base de données pour la factorisation

Tools

  • Quiqiup: Plateforme de déchiffrement par alphabet de substitution

Tools

  • RsaCtfTools : Attaque sur RSA avec des tailles de clés de petites tailles

Tools

  • RsaTool : Calcule la clé privée RSA correspondant aux paramètres donnés

Tools

  • OpenSSL: boîte à outils cryptographiques
# generate private key
$ openssl genrsa -out priv_key.pem 2048

# generate public key from priv_key.pem
$ openssl rsa -in priv_key.pem -pubout -out pub_key.pem

# encrypt flag.txt file with pub_key.pem to flag.txt.enc
$ openssl rsautl -encrypt -pubin -inkey pub_key.pem -in flag.txt -out flag.txt.enc

# decrypt flag.txt.enc with priv_key.pem
$ openssl rsautl -decrypt -inkey priv_key.pem -in flag.txt.enc -out flag.txt.dec

Tools

  • Python: RSA example
#!/usr/bin/env python3
from Crypto.Util.number import inverse

### encrypt with public key (n=3233,e=17)
message = 97
p = 61 # secret
q = 53 # secret

n = p*q
phi = (p-1)*(q-1)
e = 17

ciphertext = pow(message, e, n) # 2790

### decrypt
p = 61
n = 3233
e = 17
ciphertext = 1632

q = n//p
phi = (p-1)*(q-1)
d = inverse(e, phi)
message = pow(ciphertext, d, n)

Tools

  • Le meilleur outil

mini-CTF

  • teamcryptis.fr (slides + détails)

  • 1h30

  • solo ou duo

  • Correction des challenges (dès demain)

mini-CTF

  • Pas trop de brute force sur le site web :)

  • Nos PC hébergent la plateforme + challenges

  • Vous faire apprendre des choses

Accès à la plateforme

  • Configuration
  • Tuto VirtualBox Windows
  • Tuto VirtualBox  Linux

À l'attaque !

Made with Slides.com