「暗号技術入門 第3版 秘密の国のアリス」を読んで
既にいろんなブログでレビューがあるので今更だけど、最近読んだので自分なりの感じた点をまとめる。
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/09/17
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
読んだきっかけ
本書を読もうと思ったのはNginxやELBでのSSL関連の設定をしている時に、そういった技術体系が理解したくなった。 そこで本書の中にある「SSL/TLS セキュアな通信のために」という章があり、そこだけも読んでみようと思った。 しかし、SSL/TLSをしっかりと理解するには本書の前半にあるそれを支える技術を理解しないといけない。 ただ本書は理解しやすく、最初のきっかけを忘れて読み進める事ができた。
概要
暗号技術の全般的な知識を分かり易く解説。 アリスやボブといった人物を例にした各章の説明・クイズが非常にわかりやすい。
どんな人向け
本書には、
- 暗号全般に興味がある人
- 公開鍵暗号やデジタル署名など、暗号技術の仕組みを理解したいと思っている人
- セキュリティに興味がる人
とあるが、 暗号化技術を全般を体系的に理解でき、プログラマーであれば一度は目を通してみても良いと思う良書。
以下、ザックリとメモ書き程度に。
第Ⅰ部.暗号
P13.暗号学者の道具箱
セキュリティに対する脅威 | 脅かされる特性 | 防衛のための暗号技術 |
---|---|---|
盗聴 | 機密性 | 対称暗号・公開鍵暗号 |
改竄 | 正真性 | 一方向ハッシュ関数・メッセージ認証コード・デジタル署名 |
なりすまし | 認証 | メッセージ認証コード・デジタル署名 |
否認 | 否認不可能性 | デジタル署名 |
それぞれの技術がどういった役割があるかを整理されており、その中身がしっかりと本書の中で説明されている。
P15.暗号とセキュリティの常識
- 秘密の暗号アルゴリズムを使うな
- 弱い暗号は暗号化しないよりも危険である
- どんな暗号もいつかは解読される
- 暗号はセキュリティのほんの一部である
これが本書の中で繰り返し言われる事で、本当に納得した。
そして、第Ⅰ部では
- シーザー暗号から始まる暗号の歴史
- ブロック暗号化の処理フローをわかりやすく解説
などがあり読み物としても面白く、数学の知識がなくても理解できる説明。
第Ⅱ部.認証
普段何気なく利用している 一方向ハッシュ関数 。
MD4,MD5やSHA-1,SHA-2の説明や、SHA-3の選定プロセスは興味深かった。
そして どの一方向ハッシュ関数を使えばよいか といった結論まであり大変勉強になった。
第Ⅲ部.鍵・乱数・応用技術
- SSL/TLS・・・Webアプリケーションを開発する人間であれば、この章はちゃんと理解しておいた方が良いと思った。
- ビットコイン・・・簡単ではあるば、ビットコインとその暗号化技術についても触れられている。
まとめ
ざっと読んだけど、また読み返したくなる机の横にあって良いようなそんな本。
本書で紹介された
- 作者: Bruce Schneier,ブルース・シュナイアー,山形浩生
- 出版社/メーカー: 翔泳社
- 発売日: 2001/10/05
- メディア: 単行本
- クリック: 13回
- この商品を含むブログ (25件) を見る
CloudWatch Logsのログファイルを監視メモ
アプリケーション・サーバーのログをCloudWatchで集約するための設定時のメモ。
基本的には以下を参考にする。
AccessDeniedExceptionが発生
この際、インスタンスに設定したロールにCloudWatchポリシーを設定するのを失念した為、ログの転送がされずに、以下のエラーがログ・ファイルに出力された。
$ sudo cat /var/log/awslogs.log
2017-01-16 05:30:07,690 - cwlogs.push.publisher - WARNING - 3947 - Thread-3 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati ・・・中略・・・ ClientError: An error occurred (AccessDeniedException) when calling the PutLogEvents operation: User: arn:aws:sts::913687097810:assumed-role/ec2_hoge/i-8aa0ff05 is not author ized to perform: logs:PutLogEvents on resource: arn:aws:logs:ap-northeast-1:913687097810:log-group:api_/var/log/syslog:log-stream:hoge.com 2017-01-16 05:30:07,693 - cwlogs.push.publisher - WARNING - 3947 - Thread-5 - Caught exception: An error occurred (AccessDeniedException) when calling the PutLogEvents operati
CloudWatchポリシーをアタッチ
インスタンスのロールに、CloudWatchポリシーをアタッチしてログエージェントを再起動でOK。
CloudWatchLogポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
$ sudo service awslogs restart
関連本
AWSのオススメ本。
Amazon Web Services完全ソリューションガイド
- 作者: 大澤文孝,川上明久,大嶋和幸
- 出版社/メーカー: 日経BP社
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログを見る
screenコマンドについて
screenコマンドのメモ。
screenの説明のサイトはすごいあるけど、sshでセッションが切れてからの復帰方法について書かれているサイトが中々見つからなかったのでメモ。
手順
sshでログインしてscreen
実行。
$ screen
で、このままタイムアウトした場合に、
再度sshでログインして、screen -r
をするとThere is no screen to be resumed.
となってscreenにアタッチできない
$ screen -ls There is a screen on: 14188.pts-0.hoge-dev (01/11/2017 03:01:17 PM) (Attached) 1 Socket in /var/run/screen/S-foo. $ screen -r There is a screen on: 14188.pts-0.hoge-dev (01/11/2017 03:01:16 PM) (Attached) There is no screen to be resumed.
上記のようになったら、以前のsshでのログインプロセスをkillする
$ ps aux|grep pts|grep sshd foo 13786 0.0 0.1 107736 1888 ? S 14:54 0:00 sshd: foo@pts/0 foo 14920 0.0 0.1 107736 1880 ? S 15:22 0:00 sshd: foo@pts/2 foo 14987 0.0 0.0 10460 932 pts/2 S+ 15:23 0:00 grep --color=auto sshd $ kill 13786
kill
をしたら、再度アタッチ
$ screen -r
これで大丈夫。
- 作者: 沓名亮典
- 出版社/メーカー: 技術評論社
- 発売日: 2015/06/05
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
screenコマンドの説明
アタッチの説明
Webサイト構築の構造・骨格・表層
自分なりのWebサイト構築手順のまとめ。
IAシンキング Web制作者・担当者のためのIA思考術 を参考にフローを整理し、サイトのコンセプト以降からシステム設計の手前に至るまでの手順。
Webサイト構築に必要なプロセス
- 戦略
- サイトの目的
- ユーザーニーズ
- 要求
- 機能仕様
- コンテンツ要求
- 構造
- インタラクションデザイン
- 情報アーキテクチャ
- 骨格
- 情報デザイン
- インターフェースデザイン
- ナビゲーションデザイン
- 情報デザイン
- 表層
- ビジュアルデザイン
1 -> 5 は時系列な順序であり、上から下に行く事で 抽象的->具体的 となる。
ここでは、「3. 構造」以降についてをまとめてみる。
※ 戦略・ 要求については、こちら で。
サイトストラクチャ
簡単に言うとサイトマップの事。動作手順や画面遷移のフローチャート等をつくる。
そしてこの段階で以下を決める
- 表現方法の統一。 エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) で言うところの ユビキタス言語 。
- ハイレベルサイトストラクチャを作成
表現方法の統一
IAシンキングでは設計での表現方法の統一としているが、自分の場合にはサイトで利用する文言統一をこの段階で決定する
ハイレベルサイトストラクチャ
IAシンキングでは「サイトを俯瞰し要点をおさえる」とし、コアコンテンツを見つけ出し、それを書き出すとある。 で、その思考フレームワークとして以下を例示。
- トップページとその他コンテンツ群
- メインメニュー類
- サブカテゴリー
- 詳細コンテンツ群
で、自分の場合をザックリと以下に。
- ホーム:最新記事
- グローバル:部品、記事
- 部品一覧、記事検索
- 部品詳細
画面設計
IAシンキングでは「画面設計」とは、「ラベル設計」「サイトストラクチャ設計」「ナビゲーション設計」の集大成とある。 そして、次の3つを抑える必要がある 1. 画面内のエリア定義(レイアウト) 2. 画面前後のフロー(ナビゲーション) 3. 画面内の機能(アクション)
自分のサイトの特性から、あらかじめあるページタイプ、レイアウトパターンをイメージして細部をつめてみる。 自分の場合には、Free Responsive Mobile Website Templates Designs - w3layouts.com から近いカテゴリーを見つけて、設計をしてみる
ワイヤーフレーム
上記から近いイメージのページをみつけたら、 Wirify のブックマークレットを利用してワイヤーフレームを表示し、それを元に自分でCacooやKyenoteを利用してワイヤーフレームを作成する。
これ以降は?
ここまでがコンセプトを決めてからの画面イメージを決めるまでのざっとした概要。
ここからシステム設計(URL、DB、etc)に行程を進めていく。
- 作者: 坂本貴史,宮崎綾子,長谷川恭久
- 出版社/メーカー: ワークスコーポレーション
- 発売日: 2011/03/29
- メディア: 単行本
- 購入: 12人 クリック: 167回
- この商品を含むブログ (10件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (131件) を見る
「Amazon Web Services完全ソリューションガイド」を読んで
Amazon Web Services完全ソリューションガイド を読んで
概要
実践的な導入事例からAWSでの以下の実現方法を解説
- ネットワーク
- Webサーバー
- ファイルストレージ
- データベース
- 監視
どんな人向け
AWSの入門ではなく、サービス運用の各種ケーススタディからAWSによる解決策を解説。 とはいえ、各種サービスの前提を丁寧に解説しているので初・中級者向けの内容に感じた。
AWSを利用して、シンプルな構成でアプリケーションを開発したことがあり、スケールメリット・監視を意識した構築をしたい方には良書だと思う。
他のAWS書籍と比較して
どんな所が新しいか
最新の書籍ということだけあって、自分が知る限りでは、これまで出版されている中では以下の内容が新しかった。
- Lambda、API Getewayでのサーバーレスアプリケーション
- Application Load Balancer(ALB)の設定
- RDSのAurora(内容的には少しだけど)
- CloudTrail、AWS Configでの監視
どんな書籍と読み較べたか・一緒に読むと良い本
本書を読んで内容が近く、読んでおくとより知識が深まると感じた書籍。
- Amazon Web Services実践入門 (WEB+DB PRESS plus) はカバー範囲が広く本書と内容的に被る部分もあるが、「実践入門」はAWS CLIでの説明もあり内容が冗長的と感じたが、本書ではマネージドコンソールでの説明がメインなのでその分読みやすさがあった
- Amazon Web Services クラウドデザインパターン実装ガイド 改訂版 は初めてAWSを利用してシンプルな構成でシステムを構築する際に参考になる。本書やこの本の内容+スケールを意識した設計&最新のサービス、といった感じ
- Amazon Web Services 基礎からのネットワーク&サーバー構築 は一般的なネットワークの基礎とそれをAWSに落とし込んだ時の説明があり、こちらも事前に読んでおくと本書の理解は早いかも
Amazon Web Services完全ソリューションガイド
- 作者: 大澤文孝,川上明久,大嶋和幸
- 出版社/メーカー: 日経BP社
- 発売日: 2016/12/22
- メディア: 単行本
- この商品を含むブログを見る
Amazon Web Services実践入門 (WEB+DB PRESS plus)
- 作者: 舘岡守,今井智明,永淵恭子,間瀬哲也,三浦悟,柳瀬任章
- 出版社/メーカー: 技術評論社
- 発売日: 2015/11/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
Amazon Web Services クラウドデザインパターン実装ガイド 改訂版
- 作者: 大澤文孝,アマゾンデータサービスジャパン玉川憲,アマゾンデータサービスジャパン片山暁雄,アイレット鈴木宏康,日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2015/03/05
- メディア: 単行本
- この商品を含むブログ (2件) を見る
Amazon Web Services 基礎からのネットワーク&サーバー構築
- 作者: 玉川憲,片山暁雄,今井雄太
- 出版社/メーカー: 日経BP社
- 発売日: 2014/07/16
- メディア: 単行本
- この商品を含むブログ (3件) を見る
「成功者の告白」を読んで。ベンチャーで働くプログラマーも参考になった
成功者の告白 (講談社+α文庫) の感想
概要
経営コンサルタントの著者が、これまでの自身の経験や出会った企業をベースに経営者が陥るパターンを物語にしたもの。
物語は主人公がベンチャー企業を創業するところから始まり、その成長過程を描いている。
感想
最初は V字回復の経営 2年で会社を変えられますか 企業変革ドラマ (日経ビジネス人文庫) のように経営者や起業家を対象にした本かと思った(これはこれで面白い)が、ベンチャーで働く人間であれば、誰でも共感できる内容。
出版は結構前の本だけど、内容は色褪せない普遍的なところがある。
自分は複数のベンチャー企業で成長していく過程を経験しているが、本書にあるパターンが「あるある」として受け入れられ、 そのパターンがなぜ起こるのかというメカニズムが説明されている点に、ものすごく共感と学びを得た。
気づきをえたところ
- 「成長カーブ」を利用した説明のわかりやすさ
- 事業(仕事)と家庭との相関
- 組織が拡大していくと現れるポジティブグループとネガティブグループ
- 鬼の経営、仏の経営とマネジメント
企業が成長していく過程にいるとどうしてる起きる諸問題に対して、経営者だけでなく、社員に対してもどう向き合っていけば良いかという示唆を得られる。
どんな人にオススメ
IT系は特にベンチャー企業が多く、本書のような成長カーブを描いていえる企業が多く感じる。そうゆう意味では職種、メンバー・リーダーに係わらずIT系で働く全般にオススメ。
- 作者: 神田昌典
- 出版社/メーカー: 講談社
- 発売日: 2006/09/21
- メディア: 文庫
- 購入: 25人 クリック: 172回
- この商品を含むブログ (62件) を見る
V字回復の経営 2年で会社を変えられますか 企業変革ドラマ (日経ビジネス人文庫)
- 作者: 三枝匡
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2012/10/18
- メディア: Kindle版
- 購入: 1人 クリック: 1回
- この商品を含むブログを見る
ActiveRecordでMySQLの正規表現(REGEXP)
ActiveRecordを利用して、MySQLのREGEXPを利用したい場合
class Book < ActiveRecord::Base scope :with_title_regexp, -> (pattern) { with_regexp(columns_hash['title'].name, pattern) } scope :with_regexp, -> (column, pattern) { where("`#{table_name}`.`#{column}` REGEXP ?", pattern) } end
こうすると、以下のように正規表現を利用した検索ができるようになる
Book.with_title_regexp('^[a-d]') #=> SELECT * FROM `books` WHERE (`books`.`title` REGEXP '^[a-d]');