HighBridge’s blog

勉強の記録

2021/7/27

[研究]

リプレイ攻撃がseqで対処できる解釈

-> seqは2バイト確保しており、2^16乗回分のseqがあるので、

それがMACに反映されている。よってあるメッセージを傍聴して再び送ろうとしたら、2^16乗回分のが終わった後になるので困難。

 

-> 2の16乗が終わってもseqが何周目かのビットを立てれば良さそう?

 

・packet_downlinkとpacket_uplinkに認証を追加した。

-> verify_macのところの引数を変更して、関数を呼び出すだけでできるように実装をした。

-> broadcastのところは認証がうまくいっているっぽいが、sendの方が、受け取り側のmac生成結果の最後の2バイトが異なっている。

-> バグ修正完了。

 

[現状報告内容]

・command.cのATB, ATU, ATSにMACを追加して、メッセージを変えてMACが異なることを確認した。(Sendto2はまだ)

 

・認証をしやすくするために、cmac.cのverify_macを修正し、packet.cのdownlinkとuplinkのところに組み込んで、認証が動くのを確かめた。(コマンド04のところは実装が途中だったのでまだ入れていない。確かめたのは、動作のみで細かいチェック(フェイクメッセージとか)はしていない。)

 

[聞くこと]

・これからやること

・ゼミのお願い

・パケットのMACの追加はあれでいいのかどうか。

・作業リポジトリをどこでやったらいいか、先生のブランチで進めていく方がいい?

 

(予備)

・コマンド02 uplinkとコマンド04 sendto2のパケットにseqがないので、再生攻撃の心配

・ATGした時の表示の修正

・バイトを8月にできないかどうか