Upload
yoshinori-ohta
View
3.679
Download
6
Embed Size (px)
Citation preview
アクセシビリティ vs セキュリティ
~こんな対策はいらない!~
株式会社ビジネス アーキテクツ・
太田 良典
2
アクセシビリティとセキュリティ
CAPTCHA の問題
バリデーションの問題
セッションタイムアウトの問題
今日のお話
3
アクセシビリティとセキュリティ
4
デザイニング Web アクセシビリティ
5
セキュリティにからむ内容
6
3-1 CAPTCHA の導入でアクセス不能になる
※ 画面は開発中のものです
7
6-4 入力が困難なフォーム
※ 画面は開発中のものです
8
6-9 時間切れで作業が継続できなくなるフォーム
※ 画面は開発中のものです
9
CAPTCHA の問題3-1 CAPTCHA の導入でアクセス不能になる
10
Completely Automated Public Turing test to tell Computers and Humans Apart
コンピュータと人間とを判別する完全自動化されたチューリングテスト
CAPTCHA とは ?
11
ロボットによる自動アクセスの排除
特に、フリーメールサービスの自動アカウント登録を防ぐため
画像を見せて、書かれている内容を入力させる手法が主流
CAPTCHA の目的
12
CAPTCHA の例 (reCAPTCHA)
13
スクリーンリーダーの場合、画像があっても内容を理解できることがある
「代替テキスト」が指定されていればそれを読んでくれる
画像が見えない人は ?
14
<img
alt="reCAPTCHA 確認用画像 " >
画像の内容とは異なっているこれを入力してもパスできない
reCAPTCHA の代替テキスト
15
画像が見えても…… ?
16
無理ゲー
17
見えないと全くアクセスできない
適切な代替テキストも指定できない
アクセスできるようにすることはとても難しい
CAPTCHA の問題点
18
セキュリティ上の意義
19
機械によるアカウント登録を防ぐ
► 機械的にアカウントを作成されるとスパムメールを大量送信される
► 手動の登録は防がない
アカウント登録の初回に一度だけCAPTCHA を突破する必要がある
フリーメールサービスの場合
20
機械によるあらしを防ぐ
► 手動のあらしは防がない
コメントを入力するたびに毎回CAPTCHA を突破する必要がある
ブログのコメント欄
21
機械によるログイン試行を防ぐ
► 手動の試行は防がない
ログインするたびに毎回CAPTCHA を突破する必要がある
► 2 回目から CAPTCHA を出すケースも。この場合 1 回は機械試行できる
ログインフォーム
22
本当に必要なのか ?
23
CAPTCHA は機械によるアクセスを妨げるためのもの
認証の機能は持っていない
► 悪意ある攻撃者による手動のアクセスは防げない
► 「画像認証」と呼ぶのは語弊がある
判断のポイント
24
まとめ
25
CAPTCHA はアクセシビリティもユーザビリティも低下させる
実は必要ないことも多い
► 必要なケースもあるが、多くはない
► 必ずしも安全性は高まらない
採用するときはちゃんと考える
CAPTCHA のまとめ
26
バリデーションの問題6-4 入力が困難なフォーム
27
値が正当 (valid) なものであるかを確かめる処理
バリデーションとは ?
28
バリデーションの例
29
そもそも「全角」とは何か
どうやって入力するのか
► 特にスマートフォン
全角で入力してください ?
30
半角と全角の入力方法を教えてください。
31
全角の入力方法
32
セキュリティ上の意義
33
入力バリデーションはセキュリティ対策
34
ユーザーの入力には「危険な文字」が含まれることがある
► 例 : “ ‘ < など
危険な文字を入力させなければいい
► 全角はだいたいあんしん
バリデーションによる対策の発想
35
本当に必要なのか ?
36
コメント欄とかどうするの ?
素朴な疑問
37
お問い合わせやコメントなどの入力欄では、自由な入力が必要
► “ や ‘ が入力できる必要がある
► O‘Reilly の話題を禁止するのか ?
自由な入力が必要な場合
38
入力バリデーションはセキュリティ対策になる「こともある」
しかし本質ではなく、対策にならないことも多いので、他の手法で安全性を担保すべき
入力バリデーションはセキュリティ対策 ?
39
再掲
40
まとめ
41
バリデーションは必要だが、必要以上の制限をすると入力困難に
必ずしも安全性は高まらない
► バリデーションはセキュリティとはまた別の話
► たまたま重なることはある
バリデーションのまとめ
42
セッションタイムアウトの問題
6-9 時間切れで作業が継続できなくなるフォーム
43
セッションタイムアウトとは
44
ログイン後、一定時間経つと自動的にログアウトする
入力に時間がかかるユーザーは、入力を終えるまでにログアウトしてしまうことがある
セッションタイムアウトの問題
45
46
47
セキュリティ上の意義
48
旧セキュアプログラミング講座
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a05_03_main.html
49
もし,本人が WWW ブラウザを終了させずに席を離れた隙に他人が操作をして当該 ASP アプリケーションのページを呼び出すことができれば,生きているセッションに再接続することができ,各種の情報が漏れてしまうことになる。
離席対策
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a05_03_main.html
50
本当に必要なのか ?
51
どのくらい短くすれば
安全と言えるのか ?
素朴な疑問
52
セッションの継続が必要で,ユーザに閲覧させる情報・入力させる項目があまり多くないページでは, Session.Timeoutプロパティに小さな値を設定し,無理のない範囲でタイムアウトの時間を短くする。 Session.Timeoutプロパティには1分刻みでタイムアウト時間を設定できる。その最小値は1分である。次の代入文は,セッション・タイムアウトを3分に設定する例である。
Session.Timeout = 3
3分 !?
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/a05_03_main.html
53
「ユーザに閲覧させる情報・入力させる項目があまり多くないページ」をどう判断するのか ?
► 入力したり読んだりする速度はユーザーによってまちまち
3分に根拠はあるのか ?
► 離席直後に使われたらアウトでは ?
さらなる疑問
54
最近の文書では ?
セッション関連の注意事項は多数あるが、セッションの長さには言及なし
55
まとめ
56
セッションが短ければ安全、という話にはあまり根拠がない( ように思える )
古い文書を信じ続けないこと
セッションタイムアウトのまとめ
57
おわりに~アクセシビリティ vs セキュリティ~
58
アクセスしやすくする施策はセキュリティのための施策と対立 ?
高度なセキュリティとアクセシビリティは両立できない ?
vs セキュリティ ?
59
機密性 (Confidentiality)
► 漏れない
完全性 (Integrity)
► 改ざんされない
可用性 (Availability)
► ちゃんと使える、止まらない
セキュリティの三大要素
60
機密性を保持する最も簡単な方法はサービスを公開しないこと
► 存在しなければ何も漏れない
しかし、それでは意味がない
► きちんと使えることが重要
► 現実的でない「対策」はセキュリティ研究者も批判
使えなければ意味がない !
61
何のためにやるのか ?
62
ありがとうございました