戸締りと金庫とセキュリティ
ずっと感じてきたことですが、ブログにしていませんでした。具体的には
戸締りする前に、金庫を買うセキュリティ対策
です。
IT技術者以外の方向けに書いています。最近問題だ、と話題のStruts2というソフトウェアを引き合いに書いていますが、技術的なことはほとんど書いてありません。
ずっと感じてきたことですが、ブログにしていませんでした。具体的には
戸締りする前に、金庫を買うセキュリティ対策
です。
IT技術者以外の方向けに書いています。最近問題だ、と話題のStruts2というソフトウェアを引き合いに書いていますが、技術的なことはほとんど書いてありません。
Googleは暗号を積極的に使っていることが知られています。暗号を積極的に使う理由を紹介します。
「信頼境界線の中で暗号を使っても、内部に侵入を許した時点で終わり」なので、「暗号を使っても意味がない」と考えているかも知れません。「リスクの廃除」だけが、セキュリティ対策ではありません。「リスクの緩和」もセキュリティ対策です。暗号は侵入を許してしまった場合のリスク緩和に効果的です。
前のエントリでFirefox + NoScriptによる内部ネットワークを守る方法を簡単に紹介しました。本当はネットワークを分離(物理的またはVLAN)し、それぞれに安全に利用できるプロキシーサーバー(ローカルネットワークのリソースにアクセスさせない、など)を用意して利用する方が良い、のですがこれには”それなりのモノと手間”が必要です。
Firefox + NoScriptだけでもかなり効果があるので改めて紹介します。前回紹介したのは10年も前ですね :D
信頼境界線(Trust Boundary)と境界防御はITセキュリティに限らず、セキュリティ対策の基礎中の基礎です。基礎中の基礎かつ最も重要な概念ですが習わないことが多いです。これが原因で「正しいセキュリティ対策」(≒効率的なセキュリティ対策)ができていないケースが多数あります。残念ながら”セキュリティに詳しい”とされている人でも全く理解していないケースが散見されます。
このエントリでは主に、ソフトウェアセキュリティに於ける信頼境界線の概念と引き方(≒セキュリティ構造/設計)、ついて紹介します。かなり長いエントリになりましたがお付き合いください。
最近、HMACハッシュ(hash_hmac)の使い方を書いてきたのでまとめです。
プログラム・コードが正しく動作する為の必要条件と十分条件を考えたことがあるでしょうか?
プログラム・コードが正しく動作する為の必要条件と十分条件とは何でしょうか?
岡山大学大学院工学部では一般社会人向けの無料公開講座として、ビジネスマインド養成講座を開講しています。工学部の講座ですが技術的な内容に偏重せず幅広い内容です。業務の内容に関わず、一般社会人の方に理解いただける講座です。(学生の方の参加も大歓迎です)
このブログをご覧になった方は、上記申込書にご記入いただき、件名を「H29ビジネスマインド養成講座申込」として info@es-i.jp へお送り頂ければ申し込み処理を行います。返信が無い場合、迷惑メールに分類されている可能性があります。お手数ですが、弊社(エレクトロニック・サービス・イニシアチブ 0866-90-2131)までお電話ください。
上記PDFの案内書に記載されている講座一覧は以下の通りです。
本年度も岡山大学のビジネスマインド養成講座の講師を勤めさせていただきます。情報セキュリティがよく解らない、必要性がよく解らない、対策の選択がよく解らない、の原因は基本的・根本的な部分の誤解や知識不足が原因であることがほとんどです。
私の担当講座(2017/11/11)では情報セキュリティ標準に基づいて、これらの誤解や知識不足を解消します。情報セキュリティに「完全」はありませんし、闇雲に対策するモノでもありません。講義をお聞きいただければ、少なくとも自身が行っている対策にそれなりの自信を持てるようになります。
以下のような方に有用な講義です。
平成27年度の資料は以下の通りです。本年度の担当講座の内容は大幅に変わります。以前の講座に比べ、IT技術者でも理解不足であることが多いセキュリティ設計の原理と原則をより理解り易く解説します。
通常はEXCELファイルによる申し込みが必要ですが、私の講座に限りメールやメッセージなどで連絡頂くだけでも大丈夫です。途中からの受講でも構いません。お時間がある方は私の講座のみでなく、他の講座も是非受講ください!
映画などでPINコードを一桁づつ解析してドアを開錠する、といったシーンがあると思います。こんなのは”映画の世界だけ”と思っている方も多いと思います。しかし、タイミング攻撃を利用すると”実際にこれと全く同じ方法”で鍵となる情報を解析できます。
タイミング攻撃とはサイドチャネル攻撃の一種で、鍵情報を比較的簡単に解析する方法です。PHP 5.6からはタイミング攻撃に脆弱でない比較方法を提供しています。
結論から書くと、秘密の文字列を比較する場合
if ($secret_str !== $user_input) { // ユーザー提供の秘密情報不一致 die('不正なアクセスです'); }
といった通常の文字列は比較は危険です。
if (!hash_equals($secret_st, $user_input)) { die('不正なアクセスです'); }
上記のようにhash_equals関数を利用しなければなりません。
コンピュータで数値を正確に扱うのは「実は結構難しい」です。つまり「コンピューターは数値を正確に扱えない」という事です。「コンピューターが数値を正確に扱えない?!何を言ってるんだ?!」と思った方は是非読んでみてください。