アクセシビリティ vs セキュリティ ~こんな対策はいらない!~

Post on 07-Aug-2015

3.679 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

アクセシビリティ 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

ありがとうございました

top related