7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CBC Bit-Flipping Attack

Posted at

はじめに

ブロック暗号のCBC(Cipher Block Chaining)暗号化モードを利用した暗号文に対する攻撃として、CBC bit flipping attackとよばれる攻撃があります。下記のCTFを解く際に勉強したまとめ。

PicoCTF WebExploitation more cookies
I forgot Cookies can Be modified Client-side, so now I decided to encrypt them!
http://mercury.picoctf.net:56136/

参考にした記事
CBC Bit-Flipping Attack
Bitflip effect on encryption operation modes
暗号技術入門04 ブロック暗号のモード〜ブロック暗号をどのように繰り返すのか〜
Bit Flipping Attack on CBC Mode

CBC暗号化モードとは

ブロック暗号の暗号化方式の一つ。まずブロック暗号って何って人はこの記事を読むといいかも。
暗号化アルゴリズムは、以下の図のように平文と一つ前の文のXORを取ったものを鍵を用いて暗号化するという特徴がある。
image.png
一番最初のブロックには一つ前の暗号文が存在しないため、IVと呼ばれるブロック長同じ長さのランダムなビット列を生成する。

復号アルゴリズムはこの逆を行う。
image.png

Bit-flipping攻撃

この攻撃は、暗号文のどこか1ビットを改ざんすることで、対応する箇所の平文の文字列を書き換える攻撃。
image.png
上図のように2番目のブロックのあるビットを改ざんすることで3番目のブロックの複合の際に、平文の対応する箇所のビットが書き換わるという影響を受ける。
攻撃者の前提条件としては以下

  • 攻撃者は暗号文を改ざんすることができる

具体的な例を考える。
平文{"user": "johndoe", "nick": "john", "admin": 0}を暗号化すると以下のように暗号文Ho2aajuAtfJJEJMmtHEOacvccrCRkkQH6WXZVlvvQTx0ptDJがえられたとする
image.png

この暗号文で以下のように赤い文字の箇所をk→jに書き換える。すると複合した際の平文で"admin:0"という元の平文から"admin:1"というように書き換えられていることがわかる。攻撃者は暗号文さえ改ざんすることができれば、平文を得ること無く平文のあるビットを書き換えることができている。
image.png

どんな使い方が考えられるか

"admin:0"という元の平文から"admin:1"と変更できているように認証の際に管理者権限に昇格することができる。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?