John the Ripper 1.9.0-jumbo-1 が FPGA サポートとともにリリースされました

リリース済み サポートされている最も古いパスワード推測プログラムの新バージョン ジョン・ザ・リッパー 1.9.0-jumbo-1 (プロジェクトは 1996 年から開発されています)。 前のバージョン 1.8.0-jumbo-1 のリリースから 4.5 年半が経過しましたが、その間に 6000 名を超える開発者によって 80 を超える変更 (git コミット) が行われました。 おかげで 継続的インテグレーションこれには、多くのプラットフォームでの各変更 (プル リクエスト) の事前チェックが含まれます。この期間中、開発者は次の使用を推奨しました。 GitHub からの最新版、変更が加えられたにもかかわらず、その状態は安定して維持されました。 メインプロジェクトコード によって配布 GPLv2+ ライセンスに基づいており、一部のコンポーネントのコードは BSD ライセンスに基づいています。

新バージョンの特別な機能は、(CPU、GPU、Xeon Phi に加えて) FPGA サポートが登場したことです。 ボード用 ZTEX 1.15y4 つの FPGA チップを含み、元々は主にビットコイン マイニングに使用されていましたが、現在は 7 種類のパスワード ハッシュが実装されています: bcrypt、classic descrypt (bigcrypt を含む)、sha512crypt、sha256crypt、md5crypt (Apache apr1 および AIX smd5 を含む)、Drupal7 および phpass (使用されている) 、特に WordPress において)。 それらの一部は初めて FPGA に実装されます。

bcrypt の場合、119^2 反復 (「$5b$2」)、消費電力約 05 ワットで達成されたパフォーマンス約 27k c/s は、ボードあたり、ハードウェア価格あたり、およびワットあたりの最新の GPU の結果を大幅に上回っています。 。 こちらもサポート クラスター このタイプのボードのテストが行​​われ、単一の Raspberry Pi 16 から制御される最大 64 ボード (2 FPGA チップ) がテストされています。すべてのパスワード推測モードや多数のハッシュの同時ダウンロードなど、通常の John the Ripper 機能がサポートされています。 。

作業を高速化するために、マスク (他のモードとの組み合わせを含む「-マスク」モード) の使用と、計算されたハッシュと FPGA 側にロードされたハッシュの比較を実装しました。 実装の観点から見ると、多くの設計 (例: sha512crypt と Drupal7) 暗号化コアと対話するマルチスレッド プロセッサ コア (ソフト CPU コア) で構成されるブロックが使用されます。 この機能の開発は、Denis Burykin が他のジャンボ開発者と協力して主導しました。

その他の重要な変更点:

  • 従来のパスワード ハッシュ (QNX の新しいバージョンなど) だけでなく、暗号通貨ウォレット、暗号化されたアーカイブ、暗号化されたファイル システム (Bitlocker や暗号化されたファイル システムなど) の両方を含む、多数の追加タイプのハッシュや暗号などのサポート。 FreeBSD geli) だけでなく、以前にサポートされていた新しいタイプの形式のサポート (たとえば、OpenBSD Softraid の bcrypt-pbkdf のサポートの追加) なども含まれます。 合計で、CPU に 80 のフォーマット、OpenCL に 47 のフォーマットが追加されました。 フォーマットの合計数は、CPU 上で 407 (または構成ファイルから設定された「動的」フォーマットを除く 262)、OpenCL 上で 88 になりました。
  • OpenCL を支持して CUDA 言語のサポートを拒否することで、NVIDIA GPU の最大限の使用が妨げられることはありません (また、以前は XNUMX つ実装されていたのではなく、GPU の各フォーマットの XNUMX つの実装に開発と最適化が集中したおかげで、さらに役に立ちました)。
  • 新しい SIMD 命令セット - AVX2、AVX-512 (第 86 世代 Xeon Phi 用を含む)、および MIC (第 64 世代用) のサポートに加え、多くのフォーマットの実装における SIMD のより汎用的かつ完全な使用。以前は xXNUMX(-XNUMX) で AVX および XOP までの命令セットをサポートしていました。
    それぞれ ARM、Aarch64、および POWER 上の NEON、ASIMD、および AltiVec。

  • CPU と OpenCL の多数の最適化により、多数のハッシュを同時により効率的に処理し (たとえば、320 億 1 万の SHA-XNUMX ハッシュを GPU にロードすることがテストされました)、ハッシュ計算の速度が向上しました。 これらの最適化の中には、普遍的なもの、フォーマットのさまざまなサブセットをカバーするもの、および個々のフォーマットに固有のものもあります。
  • CPU 上のチェックされたパスワードの最適なバッファリング (「—tune=auto —verbosity=5」) および OpenCL 上の最適なジョブ サイズ (デフォルトで有効) の (自動) 構成 (最大動作周波数までのゆっくりとした立ち上がりを考慮したものなど) NVIDIA GTX シリーズ GPU 10xx 以降。 このような自動チューニングには、実際にロードされたハッシュと、チェックされるパスワードの実際の長さが (事前にわかっている場合) 使用されます。
  • コマンドラインで直接指定された「動的式」用のコンパイラを追加し、SIMD を使用して CPU で計算される新しいハイブリッド ハッシュ タイプ (たとえば「-format=dynamic='sha1(md5($p).$s)'」) を実装します。 。 このような式のコンポーネントとして、数十の高速ハッシュ (MD5 のような一般的なものから Whirlpool のようなやや珍しいものまで)、部分文字列の連結、エンコードとデコード、文字の大文字と小文字の変換、パスワード、ソルト、ユーザー名、および文字列定数への参照がサポートされています。
  • 以前の hashcat 固有のルール (ワードリスト ルール コマンド) のサポート、1 からの OpenCL デバイス番号付けへの移行、パフォーマンス テストでの同じパスワード長 (通常は長さ 7) のデフォルトの使用など、hashcat との不要な相違点の排除。
  • hashcat の PRINCE (全長が長い順に複数の単語を組み合わせて「フレーズ」を形成する)、サブセット (これらの文字が含まれている場合でも、異なる文字の数が不十分なパスワードを表示する) を含む、検証可能なパスワードを生成するための新しいモード (クラッキング モード)可能なものの大規模なセットから)およびハイブリッド外部(C に似た言語で設定ファイルに記述された外部モードが、別のモードから受け取った各基本的な「単語」に基づいて多くの検証可能なパスワードを生成できるようにします)。 また、いくつかの新しい事前定義された外部モード。
  • 複数のモードを同時に使用したり (重ねて使用する - スタッキング)、ルールのセットを使用したり (ワードリスト ルールのスタッキング) するための追加機能。
  • マスク モード (指定された長さの範囲でマスクを段階的にストレッチする、OpenCL デバイスまたは FPGA ボードの側面にマスクを適用する) およびシングル クラック (多数のハッシュを並行して計算するデバイスでの合理的な動作) の改善、以前はこのモードでは検証可能なパスワードが十分ではなく、またメモリ消費量にも制限がありました)。
  • さまざまなサブシステムで Unicode およびその他のエンコーディングをサポートするための多くの改善。
  • *2john プログラム (さまざまな形式のファイルを変換するプログラム) に対する多くの改善。
    john とともに使用します)、特に wpapcap2john (WiFi トラフィックを処理します)。

  • 新しいコマンド ライン オプション、john.conf の設定、スクリプト オプションの構成、および対応する新機能が多数ありますが、そのすべてがここで説明されているわけではありません。
  • AddressSanitizer (以前) および UnknownBehaviorSanitizer (追加) によるデバッグ ビルドの組み込みサポート、組み込み形式ファザー (GSoC 2015 の一部として) の追加、継続的統合の使用 (数十のオペレーティング システムおよびコンパイラー用のビルド) によるコード品質の向上組み合わせを確認し、すべての形式が正しくサポートされているかどうかをテストします)。

出所: オープンネット.ru

コメントを追加します