読者です 読者をやめる 読者になる 読者になる

脳内テキストの垂れ流し

プログラミングとか絵とか色々

セキュリティ甘めな学生証の偽造について考える

普通の学生ならば必ずと言っていいほど持っているこの学生証。

自分の学校の場合、この学生証に印刷されているバーコードを校内に設置されているPOS端末とかいうポンコツに読み込ませると学籍情報、つまり生徒の生年月日や住所や最終学歴といった個人情報が表示されるシステムになってる。あと出席状況とか。

今回は、そんな学生証の偽造について考えてみる。

想定ターゲットは大学や専門学校などの学生証。

 

1. バーコードをやっつけるには

もしもあなたが社会人で、たまたま会社の近くにある大学の学生証を偽造して学割とかいう学生向けの割引システムを不正に利用したいと考えたのだとしたら、バーコードなんか適当でも、逮捕されてジャパンポリスの皆さんと仲良くドライブするコトになるリスク以上の問題は無いでしょう。

ただ、もしあなたが偽造した学生証の情報とバーコードの情報の整合性を保つ必要性があると考えている場合、まずはこのバーコードをやっつけないといけません。

つまり、バーコードの勉強をしなければいけないということです。

 

バーコードの規格は意外と多い

バーコードについての簡単な情報がまとめてある物好きな某サイトの情報によると、バーコードは世界に100種類以上もあるらしいのだそうです。

ですがビビる必要はありません、どうせ実際に使われているのなんてほんの数種類ですから。

 

  • JANコード:  日本で買える商品についてるバーコードは基本的にコレ
  • ITFコード:    物流用にJIS化されているそうです
  • NW-7:           主に工業用として使用されていて、各種会員カードなどにも利用されている
  • PDF417:   たまに輸入品に見かけるぐちゃぐちゃしたバーコード。世界中で普及しているらしい。

 

とまあよく使われているらしい規格を4つほど適当に眺めてみれば、どれが自分の学生証に使われていそうか大体予想がつくと思います。

 

まあ自分の学生証はNW-7だったんで皆さんのもNW-7とういう設定でいきますね。というかこれが一番怪しいw

NW-7

・1994年にJIS化されて以来、その比較的単純な構成と高い印刷制度が要求されないことから、多くの用途で使われている。

・0~9までの数字と("+"  "-"  "$"  ":"  "/"  "." )とa~dのスタート・ストップコードと呼ばれる文字を表すことができる...

 

まあこんなもんより実際に読んでみたほうが早いです。

 

とりあえずこれを参考に画像のバーコードを読んでみてください。

1は黒い部分、0は白い部分を表しています。

また、一番最初と最後には必ずスタート・ストップコード(ここではa)が入り、

一文字ごとに0ひとつ分の余白が必ず入ります。

0. "101010011"     5. "110101001"

1. "101011001"     6. "100101011"

2. "101001011"     7. "100101101"

3. "110010101"     8. "100110101"

4. "101101001"     9. "110100101"     a. "1011001001"

 

f:id:ibuninngu:20160830021809p:plain

読めました?

このバーコードをキャラクタごとに区切っていくとこうなります。

 

f:id:ibuninngu:20160830021936p:plain

最初と最後にスタート・ストップコードのa、続いて2 1 2 3 4 5。

まあスタート・ストップは違うこともありますがここまで来ればもう楽勝ですね。どうやら我が校では学籍番号とかがバーコードとして学生証に印刷されているみたいです。

あとはPythonでも使って適当にバーコード生成するだけです!

 

2. 学生証の見た目の偽造を考える

まあこれはテキトーでいいと思います。PhotoshopとかExcelで土台を作って色つけるだけ。

学校長(?)の印とかロゴチックな物はBlenderとかCAD的なやつとかでトレースすれば完璧。

ただ、時間かけたいのは色ですね。色だけはソックリにしておかないと多分バレます。

きっとディスプレイはRETINAがいいですね。

あとは顔面の写真を貼るなりコピペするなりして完成です。

 

3. 印刷の問題

あとは印刷するだけですが、紙の学生証なら厚みとかがそっくりな紙と、ある程度高品質なプリンターが必要ですし、カードなら専用の機械を使うかシールとかデカールで工作する必要がありますね。

そういえば、なんかでプロ(デザイナー)の人が言ってましたが、家庭用のインクジェットプリンターだと品質が悪いのですぐにバレるそうです。

 

4. 法的なアレとかの注意。というかやんないでね

バーコードの生成までは法的に問題ないとは思うんですが、学園長だか理事長だかのあのぐにゃぐにゃした印鑑をやっちゃうのは印章偽造の罪とかいうヤバそうなやつに引っかかるのでやめましょう。

あと偽造したバーコードで人の個人情報をぺろぺろするのもやめときましょう。詳しくはちょっとよく分からないけど多分不正アクセスかなんかに引っかかるんで、うん。

 

5. まとめ

まとめを書くほど長くもなかったような気がするけどまあ一応w

結果は見ての通り偽造可能。

少しグレーな内容になりましたが、結局何が言いたかったのかというと

僕らは常に、本来厳重に守られなくてはいけないはずの個人情報がこのように簡単に他人に取得されてしまうかもしれない危険に晒されているんです。

誕生日ひとつ漏れただけでも4ケタのPINコードが突破されてしまうリスクが高まります。

今回の自分のように個人情報を預けている(言い方合ってる?)側が何も対策を取らないというのならどうしようもないですが、ユーザーのひとつひとつの心掛けが攻撃の難易度を上げていきます。

偉そうな事を言えるほど大したことは出来ませんが、

皆さん、少しずつでいいのでセキュリティに対する意識を高めてください。お願いします。

ということでした!