USB Lock
1.   制作目的
2.   概要
3.   作品のアピールポイント
4.   プログラミング上の工夫点
5.   これからの改善・改良点
制作目的
USBメモリの使い道

• 大切なデータの持ち運び   データの紛失、
                  漏えい
• 大切な書類・画像の保管

⇒ 大切なデータを保護する為に
ありふれた保護ソフトを使う人が多い
制作目的
    ありふれたファイル保護ソフトが
     ユーザーを悩ませるケース
• ロック/ロック解除の方法が複雑、
  ファイルのロック(暗号化)に時間が掛かる

• 暗号化されたファイルを変更・削除してしまう

• ロックの解除方法といえばパスワード
制作目的
    ありふれたファイル保護ソフトが
     ユーザーを悩ませるケース
• ロック/ロック解除の方法が複雑、
  ファイルのロック(暗号化)に時間が掛かる

• 暗号化されたファイルを変更・削除してしまう

• ロックの解除方法といえばパスワード
制作目的




 もっと簡単に、 もっと確実に、 もっと面白く

 ⇒ USB Lock を制作
概要
• USBメモリなどのリムーバブルメディアを
  簡単に、確実に、様々な手段でロックし
  ファイルを保護するソフトウェア

• メーカーに依存せずに、ファイル単位ではなく
  USBメモリ全体ごとロックする
  USBデバイスを作成できる
作品のアピールポイント
簡単に、
 • ウィザードで簡単に設定、
   様々なPCで素早くロック・ロック解除


確実に、
 • パーティションレベルで完全分離


面白く
 • 様々な認証方法でUSBメモリをロック
   ⇒ パスワード忘れからの解放
作品のアピールポイント
画像認証
作品のアピールポイント
Androidデバイス認証
プログラミング上の工夫点
• 実装に最適な言語の選択
  • UI      ⇒ C#, Java
  • 低レベルI/O ⇒ C++/CLI

• デバイスへの直接アクセスの為に、
  ファイルシステムを介さずに物理デバイスへアクセス
     (セクタリード/ライト) ・
  デバイスドライバへ直接制御コードを送信
    (マウント/アンマウント等)

• ロック機構の実装
ストレージのロック
 4.0 GB USBメモリ   ①   ロックされていない状態
      MBR
                 ②   データ領域のディレクト
    ダミー領域            リ情報など数MBを
     (64 MB)         認証情報を元にAESで
      FAT32          暗号化

  AES 暗号化領域      ③   MBRの指す領域を
                     ダミー領域に切り替え
   データ領域
   空き領域
    (3.9 GB)
                 ④   ロック完了
未知のファイルシステム
     FAT32
ストレージのアンロック
 4.0 GB USBメモリ   ①   ロックされている状態
      MBR
                 ②   MBRの指す領域を
    ダミー領域            データ領域に切り替え
     (64 MB)
      FAT32
                 ③   認証情報を元にAESの
                     暗号化を解除
  AES 暗号化領域
                 ④   ロック解除完了
   データ領域
   空き領域
    (3.9 GB)
未知のファイルシステム
     FAT32
これからの改善・改良点
アルゴリズムの見直し・改良
 • ロックや暗号化のアルゴリズムの見直し
 • ダミー領域(非保護領域)・保護領域の設定
 • 取り外しの際のロックの自動化

新しい機能の追加
 • 新たな認証方法の追加
   (様々なデバイス、QRコード、NFC)
 • 紛失の際のUSBメモリの追跡、リモートコントロール
もっと簡単に、もっと確実に、もっと面白く
 More easily, More surely, More amusingly

      このソフトウェアを通して、
       少しでも多くの人々に
    身近な情報セキュリティの大切さを
        伝えていきたい




                                            USB Lock

                          ご清聴ありがとうございました
USB Lock
DeviceIoControl関数
• デバイスドライバへ制御コードを
  直接送信し処理させるWin32API関数

• 各種ドライバに命令を送り、特定の動作を
  させたり固有の情報を取得することができる


   ファイルシス       ストレージ
     テム          操作
DeviceIoControl関数
         • ボリューム(ドライブ)のマウント/アンマウン
           ト
ファイルシス
  テム     • ボリューム(ドライブ)全体の排他制御




         • デバイスのパーティション・ファイルシステ
           ムのレイアウト情報の取得/設定
ストレージ
 操作      • デバイスのロード・取り外し
Androidデバイス認証
                                    無線LANルーター
Androidデバイス                          192.168.11.1           他のコンピューター
  192.168.11.4                                               192.168.11.3


                 データパケット

                       UDP
                  255.255.255.255
                 (ブロードキャスト)
                                                                 認証
                                                    目的のコンピューター
                 データパケット                              192.168.11.2


           シグネチャ、
     MACアドレスを基にした認証コード

第33回 U-20プログラミング・コンテスト 「USB Lock」

  • 1.
    USB Lock 1. 制作目的 2. 概要 3. 作品のアピールポイント 4. プログラミング上の工夫点 5. これからの改善・改良点
  • 2.
    制作目的 USBメモリの使い道 • 大切なデータの持ち運び データの紛失、 漏えい • 大切な書類・画像の保管 ⇒ 大切なデータを保護する為に ありふれた保護ソフトを使う人が多い
  • 3.
    制作目的 ありふれたファイル保護ソフトが ユーザーを悩ませるケース • ロック/ロック解除の方法が複雑、 ファイルのロック(暗号化)に時間が掛かる • 暗号化されたファイルを変更・削除してしまう • ロックの解除方法といえばパスワード
  • 4.
    制作目的 ありふれたファイル保護ソフトが ユーザーを悩ませるケース • ロック/ロック解除の方法が複雑、 ファイルのロック(暗号化)に時間が掛かる • 暗号化されたファイルを変更・削除してしまう • ロックの解除方法といえばパスワード
  • 5.
    制作目的 もっと簡単に、 もっと確実に、もっと面白く ⇒ USB Lock を制作
  • 6.
    概要 • USBメモリなどのリムーバブルメディアを 簡単に、確実に、様々な手段でロックし ファイルを保護するソフトウェア • メーカーに依存せずに、ファイル単位ではなく USBメモリ全体ごとロックする USBデバイスを作成できる
  • 7.
    作品のアピールポイント 簡単に、 • ウィザードで簡単に設定、 様々なPCで素早くロック・ロック解除 確実に、 • パーティションレベルで完全分離 面白く • 様々な認証方法でUSBメモリをロック ⇒ パスワード忘れからの解放
  • 8.
  • 9.
  • 10.
    プログラミング上の工夫点 • 実装に最適な言語の選択 • UI ⇒ C#, Java • 低レベルI/O ⇒ C++/CLI • デバイスへの直接アクセスの為に、 ファイルシステムを介さずに物理デバイスへアクセス (セクタリード/ライト) ・ デバイスドライバへ直接制御コードを送信 (マウント/アンマウント等) • ロック機構の実装
  • 11.
    ストレージのロック 4.0 GBUSBメモリ ① ロックされていない状態 MBR ② データ領域のディレクト ダミー領域 リ情報など数MBを (64 MB) 認証情報を元にAESで FAT32 暗号化 AES 暗号化領域 ③ MBRの指す領域を ダミー領域に切り替え データ領域 空き領域 (3.9 GB) ④ ロック完了 未知のファイルシステム FAT32
  • 12.
    ストレージのアンロック 4.0 GBUSBメモリ ① ロックされている状態 MBR ② MBRの指す領域を ダミー領域 データ領域に切り替え (64 MB) FAT32 ③ 認証情報を元にAESの 暗号化を解除 AES 暗号化領域 ④ ロック解除完了 データ領域 空き領域 (3.9 GB) 未知のファイルシステム FAT32
  • 13.
    これからの改善・改良点 アルゴリズムの見直し・改良 • ロックや暗号化のアルゴリズムの見直し • ダミー領域(非保護領域)・保護領域の設定 • 取り外しの際のロックの自動化 新しい機能の追加 • 新たな認証方法の追加 (様々なデバイス、QRコード、NFC) • 紛失の際のUSBメモリの追跡、リモートコントロール
  • 14.
    もっと簡単に、もっと確実に、もっと面白く More easily,More surely, More amusingly このソフトウェアを通して、 少しでも多くの人々に 身近な情報セキュリティの大切さを 伝えていきたい USB Lock ご清聴ありがとうございました
  • 15.
  • 16.
    DeviceIoControl関数 • デバイスドライバへ制御コードを 直接送信し処理させるWin32API関数 • 各種ドライバに命令を送り、特定の動作を させたり固有の情報を取得することができる ファイルシス ストレージ テム 操作
  • 17.
    DeviceIoControl関数 • ボリューム(ドライブ)のマウント/アンマウン ト ファイルシス テム • ボリューム(ドライブ)全体の排他制御 • デバイスのパーティション・ファイルシステ ムのレイアウト情報の取得/設定 ストレージ 操作 • デバイスのロード・取り外し
  • 18.
    Androidデバイス認証 無線LANルーター Androidデバイス 192.168.11.1 他のコンピューター 192.168.11.4 192.168.11.3 データパケット UDP 255.255.255.255 (ブロードキャスト) 認証 目的のコンピューター データパケット 192.168.11.2 シグネチャ、 MACアドレスを基にした認証コード