2020年6月25日木曜日

セキュリティ対策 XSS, CSRF, ポップアップブロック そして・・

サードパーティークッキー・ブロック

Webサーバーがコンテンツをブラウザーにレスポンスする際、ヘッダー情報にクッキー ( cookie ) というセッション識別情報を付加することがあります。HTTPプロトコルはブラウザーからのリクエストに対してサーバーがコンテンツをレスポンスして終了です。1ページで終わらないようなアプリケーションの場合、継続しているセッションを知る必要があります。HTMLに識別情報を埋め込んでもよいのですが、コンテンツとは別にヘッダー部にセッション識別情報を組み入れたのが cookie です。

その cookie 、長年の問題がありました。ユーザーが意図していないタイミングで受け取ったり、送ったりしてしまうのです。
例えばニュースサイトをみて通販商品のコンテンツがあったとします。そのコンテンツは別のサイトのものだったとします。ユーザーはニュースサイトを見ているつもりですが、通販サイトはユーザーがニュースサイトのどのページをいつ見たかを記録します(できます)。通販サイトへのリンクをたどらずとも記録されます。ニュースサイトに通販コンテンツがあることを事前にユーザーはわかりません。また一度クリックすると別サイトでも同じ商品の広告が出てくるのはサイトを越えてクッキーの使い回しができるからです(事前にユーザーはわかりません)。このリンクが書き換え、悪用されてもそれっきりです。

この例のようなセキュリティの問題をはらむクッキーをサードパーティクッキーといいます。実はブラウザーの設定でサードパーティークッキーの受け取りを拒否することができます。高い、不便、遅くなるで不評のセキュリティ対策としては、例外的にただ、簡単、遅くならない、しかも強力なものです。ただブラウザーのクッキー設定を変更しているユーザーは少ないのではないでしょうか?会社のPCどうですか

しかし朗報です。Appleは2020年3月に Webブラウザ Safari の初期設定を “サードパーティークッキーの受け取り拒否” としました。サードパーティークッキーの主たる用途は広告宣伝なのです。セキュリティもですが追っかけ広告も鬱陶しいですよね。サードパーティークッキーの濫用というか、そもそもネットマナー、エチケットとしてどうなのかと思っていました。広告宣伝行為として後ろめたさありますよね。会社のマーケティング部門に勤めている知人も個人的にはやりたくないし、自宅のPCはサードパーティクッキーをブロックしているそうです(私もです)。Apple やりますね。マイクロソフト、Google も諦めて欲しいものです。

ブラウザーの設定画面のキャプチャーを貼りました。設定した後は、過去のクッキーをクリアしましょう。クッキー・ブロックは受信拒否であり送信拒否ではありません。過去の設定でブラウザーに保存されているクッキーは有効期限まで送信され続けます

Chromeの設定


Edgeの設定


サイト運営者、Webエンジニアのみなさま、自主的にクッキーポリシー SameSite=Lax  を明示しましょう。Apache であれば mod_header で append SameSite=Lax とするだけです。 php でも jsp でも HTTPヘッダーに反映されます。簡単です。Apache 知っていると得することまたご紹介します。枯れた技術に宝ありですね。
永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年6月21日日曜日

外部認証 OAuth2 業務サービスのクラウドでは?

外部認証、身近なものでは “Facebookでログイン” とか “Googleでログイン” のことです。ユーザ登録は面倒ですし、パスワードも覚えていられないのであれば使われている方も多いかと思います。OAuth2 なのですがコンシューマ向けと業務サービスでは構成、シーケンスに違いがあります。なぜか?というお話です。


最初に業務サービスのの場合の認証シーケンスの例をご紹介しましょう。

ユーザーは認証サイトBにログインし業務サービスを利用していますが、あるオプション機能はサイトAのものだとします。まだサイトAにログインしていないので、オプションメニューをクリックすると、認証トークンが埋め込まれたサイトAへのログインページがサイトBから返されます。ここがポイントで、サイトAへのログインページをサイトAのセッションで返されると、認証トークンをサイトBから得るセッションがブロックされます。なのでサイトAにログインするページはサイトBから返してもらう必要があります。サイトBは有効なセッションをもつユーザー(ブラウザー)に対してサイトAの認証を代行します。認証OKの場合はトークンを返します。トークンはサイトAから提供された秘密台帳による署名付きです。

ログインページはブラウザーのリダイレクション機能を使って直ちにサイトAにアクセスします。認証トークンはサイトAの秘密台帳で検証されログインが成立、ユーザーはサイトAの提供するオプション機能を利用できるようになります。

さて同じことをコンシューマ向けサービスで出来るでしょうか?サイトBを Facebook 、サイトA を転職情報サイトとでもしましょう。Facebookにログインしているユーザーが転職情報サイトのバナー広告をみてクリックします。しかしここで引っ掛かります。サイトAへのログインページです。Facebookに自由にWebページを配置することはできません。このようなシーケンスになります。


いったん、ただのアンカーリンクでサイトAのページを表示します(ページ要求)。そのページはサイトB( Facebook )にリダイレクし認証トークンを受け取ります( 認証要求(1) )。ブラウザーは再度リダイレクしサイトAに認証要求(2)、めでたくログインとなります。
1.サイトBページ→サイトA(バナー広告のクリック)
2.サイトAページ→サイトB(リダイレクション、認証要求、トークン発行)
3.サイトBページ→サイトA(リダイレクション、認証トークン検証、ログイン成立)
4.サイトAページ

これが本来のOAuthの流れなのですが、業務系の場合は1と2をセットで行い、3へ行くことができます。被認証サイトへのログインページを認証サイトに配置できるとシーケンスを簡略化、認証処理の開発、テストも簡素化できます。高品質、安定稼働で安上がりです。業務サービス、企業向けクラウドの場合はこれが可能です。ちょっとしたことなのですが一考の価値ありです。

もう一つ。これはどうでしょう?



先に結論を言うとクロスサイトスクリプティングなので、そのままでは動きません(動いてはいけません)。サイトAのセッションの間にあるサイトBとのセッション(Javascriptで張られたセッション)が、サイトA以外にトークンを渡しうるからです。サイトCもしくは別のユーザーからこのトークンで認証要求されてもサイトAにはわかりません。なりすましでサイトAにログインできます。

postMessage による制限つきの処理も可能ではあるのですが、リダイレクションのような安全かつ一般的な手法を採用しない理由を説明できません。一見構成も簡単なのですが postMessage は特殊なケースに限定されると思います。
ITの世界は流行り、廃りが速いので変化にロバストであるよう、一般的な要素でシステムを構成、簡素化するよう心がけています。寿命の長いシステムはエンジニアの誇りです。ユースケースに応じた簡素な設計、費用対効果の高いシステムほど長持ちです。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年6月1日月曜日

マルチホーミング

マルチホーミング、わかります?ITの世界でマルチホーミングといえば物理的なネットワークの冗長化です。最近とんと聞かなくなりましたが、可用性確保で案外落とし穴かもしれません。クラウド流行りでエンジニアも希少化しているのではないでしょうか。インフラ担当としてアサインされたら焦りますよね。。


クラウドへのアクセスはアプリケーションプロバイダーの責任範囲から外れるのまずネットワークの冗長化要件が来ることはないのですが、以前は自前でマシンを設置してアクセス回線を手配していたので、冗長化も仕事の範囲でした。

最初に確認することは、NTT以外の幹線が建屋の近くの(道路の下)に来ているかで、来ていれば建屋への引き込みを依頼します。大技で有線回線と無線回線を併用するなんてのもありました。冗長化の趣旨からするとできるだけ異なる特性のものを組み合わせたほうが良いので悪くないアイデアです。

さて難しいのは、なじみの薄いL1,L2レイヤーを意識しないといけない点ですが、現在はフルIPなのでまだましですね。それでもルーターを用意してBGPの設定となると、なかなか手ごわいですね。できればパスしたいです。できるのでしょうか?
ことと場合によると出来ます。負荷分散としても割りと悪くない方式だと思います。概略を紹介します。

フロントウェッブは一般的なクラウドサービスに配置し、アプリケーションサービスを別のサービスサイトから提供することとします。マルチホーミングの対象はサービスサイトのみです。
ネームサーバーに www.***.com (フロント), svc1.***.com (サービス1), svc2.***.com (サービス2)の3ホストを登録します。フロントはサービス1、サービス2をタイムアウト付きでコールする javascript を組み込んだページを返します。
もうお分かりですね。サービス1が障害されていれば、タイムアウトしてサービス2にアクセスするという簡単なものです。サービス1のホストが回線A経由で、サービス2のホストが回線B経由でアクセスされます。2つのホストが同一DC内であれば疑似マルチホームで、別々のDCであればDC可用性確保になります。
* サービス1、サービス2のIPアドレスがクラスター共有されていれば元々の定義のマルチホーミングらしくなりますが、やるかどうかはユーザーメリット次第ですね。

何も難しいことはありませんし安上がりですぐに適用できますね。というか、DC可用性確保は基本しておいた方がいいです。有名なクラウドサービスもダウン前提ですから(フロントも複数のホストに配置し、ネームサーバーに登録ですよ)。
タイトルと書きだしを否定するようですが、ルーターでマルチホーミングなんて割りが合いません。ajax のおかげで手軽にサービスレベルを上げることができます。
システム設計は、ユースケース、アーキテクチュア、インフラトータルで見ましょう。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)

2020年5月15日金曜日

使える AI 使えない AI

コロナの影響で派手な催しもできず AI / IT バブルがすっかり鳴りを潜めた感がありますが、本当のところはどうなんでしょうか? IT なんて不要不急の代名詞かと思いきや AI 系は影響を受けていないようです。よっぽど医療関係のほうがダメージが大きいです。


わからないものです。医療のほうが不要不急だったとは。ただ区別しないといけません。医療は個人のニーズで、AI / IT は企業のニーズです。たまたま私はそのふたつを掛け持ちしているので比較してしまうのですが、企業活動は個人活動を凌ぐ力、強さがあるようです。

AI にお金払っている個人います?いませんね。パソコン相変わらず賢くありません。このブログも賢くないかな漢字変換で効率悪く作っています。お金出して ATOK 入れたほうがいいのは分かっていますが、人間がカバーして良しとしてしまいます。

ところが、企業は AI にお金払います。AI が全部できる訳ではないです。本当に限られたシーン、適切なユースケースだけです。ただボリュームが大きくなると人間の 1/10 以下のコストで業務をさばきます。24時間365日さばき続けます。10倍、1/10 というのは、パラダイムシフトが起きる目安で、以前のニューラルネットや AI ブームが終わってしまったのは、せいぜい 3倍、1/3 どまりだったからです。

さてタイトルの “ 使えるAI 使えないAI ” 決め手は認識率だけではないです。ユースケース設計です。認識率が 仮に 80% でも、サンプリング調査であれば サンプル数を 25% 増やせば必要なデータは得られますね。ちょっと机上計算をしてみましょう。

・1 サンプル に10円かかる調査 で 1000サンプルなら 1万円、1250サンプルなら 12,500円
・1サンプルを人間がデータ化するのに 10円、AI だと 1円だとします。
 1000サンプルを人間がデータ化するには、1万円
 1250サンプルを AI がデータ化するには 1250円
結果、人間だと2万円、AI だと13,750円です。2万円と1万4千円ではインパクトないですが、2億円と1億4千万円だとしたら、 AI に切替ない経営陣は責任を問われます。

使える AI はユースケースに利があります。利があるユースケースをターゲットにして不要不急のコストをかけずに市場を拡大しています。AI  もまた資本主義の申し子、おそるべし資本主義!資本主義の辞書に自粛という言葉はないようです。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)


2020年4月28日火曜日

システム開発 原価計算・資産計上

以前取り上げた 工事進行基準廃止! 2021年4月から強制適用の影響いかがでしょうか?分割検収が一つの手ですね。要件定義と設計開発が同時に進むようなアジャイルでは分割検収できないのでウォータフォールに逆戻りしている案件もあるのではないでしょうか。その検収ですが異質なのがAI領域ですね。納品時点では認識率が目標値に達していないことがあります。使い続ければユースケースに最適化されていくことは分かるのですが数値保証はされません。“資産計上していいのか?” 経理部さんを悩ませます。


AI技術を搭載した業務システムが導入され、自社業務・自社データで受入試験開始します。1日目で気付くと思います。“カタログスペックまず出ません”。コンピュータって賢くないです。AIだろうと電卓だろうと同じ、しょせん足し算と条件分岐の組み合わせです。コンピュータにはコンピュータに向いた仕事を定義して、単純ロジックに整理してあげないとエラーが多くて使い物になりません。それがユースケースです。ユースケースを整理できるAIはまだありません。一番面倒なところは人間仕事です。

いったん適切なユースケースが与えられれば、AIシステムは処理データ量・使用時間とともに精度が向上していきます。かな漢字変換(ATOKとか)もそうですが、使うほどにユースケースに最適化されていきます。かな漢字変換も入力効率が上がっていきます。大規模なAIシステムだと経済効果が大きなものになります。当初想定した投資対効果を上回り、めでたしとなるのですが、システムの資産価値はどうでしょうか?ソフトウェアなら5年の減価償却が基本ですね。減価償却ということは費用処理できる訳ですが、使うほどに生産性の向上するソフトで利益圧縮ができるなんて経営側から見れば打ち出の小づちです。本来なら、販管費から一部、資産に振替えていかなければならない気がします。類似するのは製造原価計算の副産物の原価控除でしょうか。

大手鉄鋼メーカーの経理部の方にお聞きしたことがあるのですが、現在の製造原価計算法は鉄鋼製造に由来しているところが少なくないそうです。AIソフトの普及、進展とともに減価償却の逆で資産が年々増える会計処理が制度化されるかもしれません。その際は単純な計上基準であってほしいですね。

ところAIソフトですが、最初からカタログスペックに近い値が出るのは不吉なサインです。自社業務のユースケースを学習させる余地がないからです。他社業務のユースケースで学習飽和したニューラルネットを再学習させるのは難しく、学習量の少ない未熟なニューラルネットを強化する方が容易です。

永島志津夫

全社のシステムを少ない人数で見ていれば時に見落としもあるかもしれません。
オフィスエヌ ショートレビュー5万円から。
連絡先 office.nagasima#gmail.com (#を@に変えてメールをお願い致します)



2020年4月16日木曜日

湿度75% が 飛沫感染の予防目標か?

時節柄、今回も予防衛生の話題からです。感染という言葉を聞かない日がないくらいですが、ウィルス感染の前段階に “吸着” というプロセスがあります。吸着とは宿主細胞表面にウィルスが安定的に密着した状態です。ウィルスは宿主細胞に自力でたどり着くすべがないので、宿主細胞表面に密着できるかどうかは偶然です。健康な粘膜表面は粘液で覆われているので、ウィルススケールでは三次元の障壁となります。粘膜・粘液保護の弱い部位にウィルスが付着することが吸着を有利にします。吸着できなければ細胞内への 侵入(≒感染)プロセスには進めません。タイトルの通り、湿度75%以上が飛沫感染の予防目標ではないか、というお話(仮説です)。



生まれてから死ぬまでの全ての間、生物は常に微生物、病原体にさらされていますが、免疫システムがバランスを取りながら病原体から身を守っています。免疫システムの複雑さは神経系に例えられるほどで、人間が90年前後生きられるのはこの免疫システムに負うところが大です。過労・睡眠不足は要注意ですが、普段の健康状態に問題がなければ、心配することはないでしょう。心配の精神ストレスの方が考えものです。

予防衛生の一つ、飛沫感染対策です。「インフルエンザってそんなに怖いの?」?の38ページをごらんください。鼻、のど、気管支、肺への付着率と粒子径の関係を調べたものです。大きな飛沫は鼻には付着しますが、肺にはほとんど届きません。粒子が小さくなる程、肺への付着率が上がります。また肺の場合は鼻(鼻腔)よりもはるかに少ないウィルス数で感染が成立するとみられています。肺胞組織の健全性が損なわれている場合はさらに感染率が上がります。コロナに限らず、肺への感染は急速に症状が進みます。注意すべきはこの点です。肺に到達するような微粒子をどう防止するかです。

0.1mmオーダーの飛沫粒子は飛散中の乾燥でマイクロメートルサイズの微粒子になります。乾燥を左右するのは主に湿度で、室温 15-25℃ では、75% 以上の湿度があれば微粒子化までに5秒程かかります。なので飛沫を吸い込んだとしても、微粒子状態ではないので鼻腔で留まるだろうというものです。もちろん鼻呼吸していればですよ。湿度75%というのは東京では6月から10月頃の気候です。体感的には季節風が南風に変わるゴールデンウィークあたりから変化が表われるのではないかとみていますまたアンブロキソールという薬が肺・気管支粘膜保護に役立ちます。高齢の方は医師にご相談下さい生体防御因子群の分泌を促進する塩酸アンブロキソールの 抗インフルエンザ効果」。

飛沫乾燥時間見積(湿度75%、飛散速度3m/s)
縦軸:時間(秒)、横軸:気温(℃)

 飛沫乾燥時間見積(気温20℃、飛散速度3m/s)
縦軸:時間(秒)、横軸:湿度(%)



今年の夏は、換気対策で部屋の空気を入れ替えながらのエアコン使用でしょうか。換気とともに亜熱帯の湿気が部屋に入ってきますが、ドライ運転はしない方がいいですね。蒸し蒸ししたオフィスにいるくらいなら自宅で快適にしていたい訳で、テレワークが定着してしまいそうです。

テレワークは組織を疎結合化し瞬発力発揮に弱くなります。事情はどこも同じで慣れてきたのか、鈍くても文句あまり言われません。一方、自律的で集中力を持続させやすいというメリットは大きいです。こんな騒ぎの最中でもシステムの仕事は減りませんし、生産性も下がっていないようです。テレワーク向きの仕事だったということもあるのでしょうが、AI系は加速している感じもします。システムは人の仕事を機械に置き換えることを目標とするものなので、この勢いで進んだらコロナ騒ぎが落ち着いた後も一部雇用は永久に戻らないでしょう。
機動性、瞬発力を取柄とした人・組織は相対的に順位を下げ、鈍だが、その人・その組織にしかアウトプットできない仕事がニッチを広げていきそうです。
図らずも、社会進化の真っただ中に居合わせてしまったようです。

永島志津夫

追記
 風疹患者数、川崎病患者数が半分程度に減っているようです。予防衛生習慣が広くこのまま定着してくれたら、まさにティールです。

2020年3月27日金曜日

テレワーク 〈コミュニケーション/コラボレーション〉

残念ながら新型コロナウィルス感染まだ落ち着きませんね。2月から3月にかけて気温は上昇しましたが関連性は薄いようでした。感染予防の在宅、テレワークという働き方が広がりつつあり、これを契機に仕事上のコミュニケーション、コラボレーションのあり方も変わっていきそうです。


都内の最新感染動向東京都の新型コロナウィルス感染症対策サイト)によると 3/26の
検査陽性者数は50人前後です普通の風邪症状で終わってしまう人は検査にかからないので東京都トータルでの感染者数、感染率はわかりません。検査は2182人に行われており陽性率は12% 、 8人に1人です(8人に7人は予防的検査か、症状はあるものの別のウィルス・細菌感染の可能性)。検査陽性者の状況をみると累計259人中、死亡5人となっており死亡率は 約 2% となるのですが、そもそも市中肺炎で入院した場合の死亡率は 9% 前後と高いものです。肺炎は日本の死因の第4位で年間約12万人が肺炎で死亡します東京都健康安全研究センター年報 69巻 )。重症者15人+死亡者5人との割合で、死亡率は  5 / (15+5) = 25% ですが、重症の市中肺炎の死亡率が 22% 前後なので特別な数字でありません(市中肺炎患者死亡率ー全日本民医連)。感染率、重症化率が謎のまま不安が広がっています。肺炎について高齢者と喫煙者は要注意ということで、これは新型コロナに限りません。私は幸い気管支炎までで済みましたが、かって子供にとって肺炎は死の病でした。

今回の新型コロナは試練ですが、救いは乳児・小児の症例が少ないことです。もしもインフルエンザのようにも乳児・小児にも重症例をもたらすものであったら、騒ぎは想像を絶するものであったと思います。世間の騒ぎの割には医療現場は静かなもので、この時期にしては内科・小児科の患者さんが非常に少ないのです。インフルエンザの早期終息により日本全体で今シーズン500人以上の命が救われました(前回の投稿)。全国的な予防衛生対策の副次的な成果として小児疾患の川崎病と赤ちゃんに影響を及ぼす風疹が減少することを願っています。

人口1400万人の東京で新型コロナ肺炎の死亡者は現時点で5人です。これを、常態化している通勤過密等から既に高いレベルにあった衛生マナーが一層高められた結果と考えることは楽観的過ぎるでしょうか。あと1ヶ月が勝負のようです。過労厳禁、人混みでは口を閉じていましょう。あと手洗いを忘れずに。接触感染防止に手袋を。

話は変わりますが、テレワークご多分に漏れず私も経験しました。通勤および職場での新型コロナ感染予防を目的としたものですが、通勤がなくなった途端、仕事場として会社は副で、自宅が主という感覚になります。不便を感じつつもこれはこれでいけるとなると、この流れ元に戻せないかもしれません。

不便というのはコミュニケーションです。テレワークは仕事のコミュニケーション、コラボレーションのスタイル疎結合スタイルに変えますね。いくらツールを使っても同じ職場で近い距離に同僚がいることと同じにはなりませんし、あえて同じようにしなくても良いかと思いました。メリットとデメリットを踏まえスタイルを変えていけば良いと思います。

(テレワークが成立する前提)
職務能力を持ち社会で自律している
・人に頼らずこなすことができるタスク

(メリット)
・人の目や雑音、つきあいたくもない雑談もない。人間関係のストレスが減る。
 チャットができるといっても仕事ですからハードルができます。リアルタイムに応じる必要もありません。
・休憩やちょっとした家事をはさむみことで仕事に対する集中力が回復する
 集中とリラックス、頭を使うことと体を使うことを織り交ぜるのが集中力持続のポイントだといわれます。結果的にテレワークはバランスのとれた時間の使い方ができます。
 個人中心、他人は他人という感じです。

(デメリット)
・自律できないと無為に時間が過ぎるだけになる(人の目がないのでさぼりやすい
 他人依存的な人には不向きです。
・ライバルや手本となる人を見ることが出来ない。組織ならではの成長圧力がない
 先輩が様子をみて助けることができません。指導には限界があります。
 自律前提=他律不向きです。またチーム一体で瞬発力発揮も難しいかもしれません。

仕事にもよると思いますが、ITプロジェクトでテレワーク、疎結合型組織で働けるようにようになるのは30代からでしょうか。社会人としてある程度成熟し、専門能力をもち、それを裏付ける経験を語れるレベルでないと難しいと感じました。新型コロナ対策を契機に過密社会の是正に加えて、自律した個人が能力を発揮しやすい世界、他律組織から自律組織への変化が進めばと思います。ティール組織というのでしたっけ?
永島志津夫