読書

【書評】『カードセキュリティのすべて―進化する“手口”と最新防御策』神永正博

15年くらい前の古い本。しかし内容は今でも通用する。

書かれている内容は、情報セキュリティに関する話で、特にクレジットカードなどのICカードに実装するセキュリティに関する解説が書かれている。

難しい数式などはあまりなく、セキュリティの素人でも楽しく読める。お硬い技術書というよりは、読み物に近い。

アタッカー側の事情が盛りだくさん

よくあるセキュリティの教科書は、悪いやつの攻撃からシステムを守るための「ディフェンダー側」の技術が中心に書かれている場合が多い。

しかし、この本は主に「アタッカー側」の事情について書かれており、その点で珍しい本だと思う。

要は”ハッカー”の話がたくさん書いてある。どんな考え方でどんな手口を使ってくるのか。そういった話に対して、ロマンを感じる人は多いのではないだろうか。

ガチガチの理論が書かれているわけではなく、基本的なことを日常的な例えを駆使しながら面白く解説してある。セキュリティに興味を持つための導入としても良さそうだ。

正攻法だけがアタックではない

アタッカーは基本的に悪いやつである。なのでルールやら紳士協定やらを守ってはくれない。正攻法で攻めてくることはむしろ珍しく、ありとあらゆる汚い手を使ってくるだろう。

この本を読むと、システムの中には思いも寄らない弱点が存在するということを理解できる。アルゴリズム的には完璧でも、ハードウェアに欠陥があったり、通信に欠陥があったり、あるいは使用する人間に欠陥があれば、簡単にセキュリティが破られてしまう場合がある。一つでも弱い部分があればそこを狙われる。

そういった話が例を交えてわかりやすく書いてあるので、セキュリティエンジニアを目指す人にはオススメ。

良いセキュリティエンジニアになるためにはアタックを熟知する必要がある

セキュリティエンジニアは守るための技術だけではなく、攻めるための技術についても勉強する必要がある。なぜなら、攻め方がわからなければ守りようがないからである。

野球で言えば、相手ピッチャーの情報がまったくない状況でヒットを打とうしたら難しいというイメージだ。どのくらいの球速なのか、どんな変化球があるのか、全くわからない状況では圧倒的にピッチャーが有利だ。

セキュリティの場合、ただでさえアタッカーのほうがディフェンダーよりも圧倒的に有利な状況にある。アタッカー側の事情や手口を考えていかないと、勝負にならないだろう。そういったこともあって、”元ハッカー”みたいな人材をディフェンダーとして積極的に採用することさえある。セキュリティの世界では「2刀流」は当たり前というわけだ。

アタッカー側の話を詳しく書いてあるこのような本は貴重。

RTA動画好きにオススメ

最近のRTA動画(ゲームのタイムアタック動画)は、ゲーム制作者が意図したものではない、バグ利用的な手法を用いたものが盛んである。

チートはダメだが、正規品に仕込まれた再現性のあるバグを利用するのは基本であり、時が進むにつれ想像もしないようなバグ利用で大幅にタイムを縮めることがある。正道的な技術を極めるよりも、裏道的なバグ探しに力を入れたほうが効果的にタイムを短縮できるのではないかとさえ思ってしまう。

この本に書かれているアタック技術についても、似たようなところがある。たとえばRSA暗号を破るための”正道”といえば、「素因数分解の高速化」を模索することなどが挙げられるだろう。

しかしそうではなく、機械をぶっ壊してみたり、異常な環境に晒して誤動作させたり、電力消費を観察したりと、裏道的なテクニックがたくさんある。この本ではそういった裏道的な攻撃法について詳しく書かれている。

私はこういったアタックに最近のRTA動画との親和性を感じた。RTA好きが似たような思考回路を駆使してホワイトハッカーとして覚醒する未来もあるかもしれないと思ったりもした。

ところで、RTAにおいて故障利用解析的な手法を利用するのはありなのだろうか。電源制御装置などを使用してうまくゲーム機を誤動作させることにより、フラグ処理をスキップするなどできれば大幅なタイム短縮を見込める場面は多そうである。ドンキーコング64のRTAで似たようなことをやっている動画を見たことがあるが、あれを極めれば色々できると思う。

全然カードセキュリティの”すべて”ではない

本のタイトルは『カードセキュリティのすべて』であるが、一方で本文中に次のような記述がある。

本書では、主としてICカードのハードウェアに関係するセキュリティ技術について解説しました。誤解しないでいただきたいのは、書で取り上げたのはICカードセキュリティ技術のうち、ほんの一部だということです。

本文とタイトルで矛盾が生じている。

タイトルに「すべて」と書いてあるのは、「すべてに通用するような基礎的な技術」という意味なのだろう。そのおかげで、出版から15年以上経過しても通用する内容となっている。

念の為だが、この本で「カードセキュリティのすべて」について知ることができる訳じゃないことを忠告しておこうと思う。

もっと詳しく知りたい人へ

この本は基本的な話を誰にでもわかりやすく書いてあるが、「もっと具体的な話を知りたい」「実装してみたい」といった人には物足りないだろう。

そういった人は同じ著者が書いた次の本がオススメ。

 

こちらはいかにも「大学の教科書」といった感じの本。数学的な理論やプログラミングするためのアルゴリズムの話なども書かれており、より実践的な内容となっている。