TP Cryptographie – Attaque d’un chiffre de Vigenère

Salut à tous,

Dans la série des TPs en cryptographie, je vais continuer à remonter le temps et les principaux algorithmes de cryptographies historiques.
Dans ce premier TP sur la cryptographie on avait vu comment mener une attaque statistique sur un chiffre de césar. Je n’avais pas souhaité vous montrer le brute-force pour la simple et bonne raison que qu’il me semble vraiment inintéressant à implémenter sur une clé de taille 26 au maximum…

Du coup, aujourd’hui on va passer au chiffre de Vigenère, avec un vrai texte de plusieurs lignes et une clé un peu plus complexe.

Prérequis

Pour que tout fonctionne bien j’ai dû faire quelques modifications sur les fonctions du TPs précédent. Notamment pour la gestion des caractères spéciaux, espaces, et autres ponctuation. Ça s’est traduit par une fonction Remove-AllButAlphabet que je vous donne ci-dessous (et que j’ai lâchement pompé ici).

<#
.SYNOPSIS
Retire tous les caractères autres que a-z dans un texte
.DESCRIPTION
Retire tous les caractères autres que a-z dans un texte, remplace les spéciaux par leur forme "classique" (ç->c ; é->e)
.INPUTS src
Le message à nettoyer
.OUTPUTS
La chaîne sans les spéciaux
.EXAMPLE
PS C:\Mon\Pc> Remove-AllButAlphabet -src 'Chiffre par Vigenère une chaîne 
Lire la suite

TP Cryptographie – César, Vigenère et attaque statistique en PowerShell

Un TP sur la cryptographie en PowerShell, on ne va pas attaquer les choses compliqué aujourd’hui. Seulement les bases de la crypto avec 2 algorithmes connus :

  1. César ; et
  2. Vigenère

Et une attaque qui fonctionne bien sur ce genre de protection : par statistique.

Chiffre de César

Le chiffre de césar est une méthode de chiffrement qui date des romains et du fameux empereur du même nom. Elle consiste à décaler d’un certain nombre dans l’alphabet les caractères de la phrase à chiffrer. Ce nombre est la clé de l’algorithme.

Exemple :

Si je prends la chaîne « abc » avec la clé ‘+1’ :

Ma chaîne chiffrée devient « bcd »

Implémentation :

Cet algorithme est implémenté dans le livre d’Arnaud PETITJEAN : Windows PowerShell – Guide de référence pour l’administration système (v3). Dans le chapitre 8, La Sécurité – p 431 dans la V3.

Comme pour sa fonction de génération de mot de passe, j’ai trouvé que son implémentation n’était pas la plus simple. Aussi, je vous en propose un autre :

<#
.SYNOPSIS
Effectue le chiffre de césar sur une chaîne de caractères
.DESCRIPTION
Chiffre une chaîne de caractère via le chiffre de César avec la 
Lire la suite

TP PowerShell – Mesurer la taille de son token Kerberos-ActiveDirectory

La taille est un problème pour certains d’entre nous, ceux qui sont concernés savent de quoi je parle… Accès aléatoire aux ressources réseau, problème au logon, etc.
Bref ça rentre plus…

En effet jusqu’à Windows 2008R2 la taille du token Kerberos une infra Active Directory est par défaut limité à 12Ko (et 48Ko à partir de 8 et 2012). On peut très simplement changer ce réglage en réglant la clé de registre suivante sur les machines:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
    Entrée : MaxTokenSize
    Type de données : REG_DWORD
    Valeur : 48000
    Source : [MS KB938118](https://support.microsoft.com/fr-fr/kb/938118)

Le problème c’est qu’il est compliqué d’estimer la taille des tokens de vos utilisateurs pour anticiper les problèmes. Ces derniers ne sont d’ailleurs pas toujours évidents à détecter, car l’ordre des tickets stocké dans le token n’est pas déterministe, et Windows tronque ce qui dépasse quand c’est nécessaire : ainsi d’un logon à l’autre vous pouvez avoir des accès différents aux ressources accédées via des groupes AD.

Seul un Event Id 31 du KDC dans l’eventvwr vous permet d’avoir l’info quand le problème se présente. Pas mal d’info ici

Mais ce qu’on aimerait bien c’est de pouvoir connaître les utilisateurs qui posent problème ou vont bientôt poser problème. … Lire la suite

ZeroBin, ou comment faire Google Keep sans Google mais avec AES

Je veux vous présenter un outil qu’un collègue anonyme (merci Grégoire) m’a fait découvrir ce matin : ZeroBin.

ZeroBin :

ZeroBin

Ce projet open source propose de vous fournir un Pastebin qui a le bon goût de ne pas analyser tout ce que vous y écrivez pour vous placer de la pub ensuite.

Pourquoi ?

Parce que tout ce que vous y enverrez est chiffré en AES (256), et que le serveur ne sait donc pas ce qu’il stocke, il ne voit que du texte chiffré, du bruit en gros.

Comment ça marche ?

Lors de l’upload votre navigateur chiffre le contenu via une clé *secrète*.
C’est simple d’utilisation, car la clé est placée dans le lien que l’outil vous renvoi après l’upload, comme ci-dessous :

https://zerobin.net/?ca9e881b88da443e#/mubgNofdYrpDu61GikEmsPlZqJGKS0v2RD4IEtvNiE=

Mais si c’est dans l’URL le serveur reçoit bien la clé ?

C’est là que c’est beau, en fait si vous regardez bien le lien en exemple ci-dessus :
On a 3 morceaux :

A. le site,

https://zerobin.net/

Je passe c’est comme d’hab ça.

B. votre “note”,

?ca9e881b88da443e

Ça c’est comme sur n’importe quel site en PHP, ou vous demanderiez l’accès à la ressource `man of stelle` (par exemple). Vous verrez dans l’URL :… Lire la suite