More Related Content
Similar to 第33回 U-20プログラミング・コンテスト 「USB Lock」 (20)
第33回 U-20プログラミング・コンテスト 「USB Lock」
- 1. USB Lock
1. 制作目的
2. 概要
3. 作品のアピールポイント
4. プログラミング上の工夫点
5. これからの改善・改良点
- 3. 制作目的
ありふれたファイル保護ソフトが
ユーザーを悩ませるケース
• ロック/ロック解除の方法が複雑、
ファイルのロック(暗号化)に時間が掛かる
• 暗号化されたファイルを変更・削除してしまう
• ロックの解除方法といえばパスワード
- 4. 制作目的
ありふれたファイル保護ソフトが
ユーザーを悩ませるケース
• ロック/ロック解除の方法が複雑、
ファイルのロック(暗号化)に時間が掛かる
• 暗号化されたファイルを変更・削除してしまう
• ロックの解除方法といえばパスワード
- 10. プログラミング上の工夫点
• 実装に最適な言語の選択
• UI ⇒ C#, Java
• 低レベルI/O ⇒ C++/CLI
• デバイスへの直接アクセスの為に、
ファイルシステムを介さずに物理デバイスへアクセス
(セクタリード/ライト) ・
デバイスドライバへ直接制御コードを送信
(マウント/アンマウント等)
• ロック機構の実装
- 11. ストレージのロック
4.0 GB USBメモリ ① ロックされていない状態
MBR
② データ領域のディレクト
ダミー領域 リ情報など数MBを
(64 MB) 認証情報を元にAESで
FAT32 暗号化
AES 暗号化領域 ③ MBRの指す領域を
ダミー領域に切り替え
データ領域
空き領域
(3.9 GB)
④ ロック完了
未知のファイルシステム
FAT32
- 12. ストレージのアンロック
4.0 GB USBメモリ ① ロックされている状態
MBR
② MBRの指す領域を
ダミー領域 データ領域に切り替え
(64 MB)
FAT32
③ 認証情報を元にAESの
暗号化を解除
AES 暗号化領域
④ ロック解除完了
データ領域
空き領域
(3.9 GB)
未知のファイルシステム
FAT32
- 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アドレスを基にした認証コード