Carpe Diem

備忘録

継続的プロファイリング

背景

過去にいくつかpprofの使い方を紹介しましたが、実際に運用する上では以下の課題があります。

  • 何かしら問題が発生して初めてプロファイリング開始するという後手になりがち
  • 問題の再現が難しく、再び発生するまで様子見という流れになりがち
  • プロファイリングしたことがないメンバーにとってオペレーションコストが高い
  • バージョン比較ができない

これらの課題を解決するために、継続的プロファイリング(Continuous Profiling)を導入します。

続きを読む

GCPのCloud PubSubで考慮すること

概要

GCPのCloud PubSubはメッセージング基盤として非常に有用です。
ただし利用する上で考慮すべきことも多々あるのでまとめておきます。

パラメータに関しては主にGoのクライアントライブラリをベースに説明します。

環境

  • Go 1.15.2
  • google-cloud-go v0.72.0

SLO/SLA

Cloud PubSubのSLOは99.95%です。
自身が提供するサービスのSLOを満たすかはこれを元に利用しましょう。

それを満たせなかったときのSLAとしては以下のように決められています。

各月の稼働率 対象サービスが SLO を満たさなかった場合、お客様の翌月以降の請求書に対して返金される月次請求額の割合
99%~99.95% 未満 10%
95%~99% 未満 25%
95% 未満 50%

ref: Pub/Sub Service Level Agreement (SLA)  |  Google Cloud

続きを読む

データ暗号化で考慮すること(鍵編)

概要

前回の続きです。

christina04.hatenablog.com

今回は暗号化における鍵(共通鍵)について説明します。

前提知識

鍵とは

鍵とはとても大きな数です。
鍵のビット長が大きい=鍵空間が大きいことを意味します。つまり可能な鍵の総数が大きいため総当り攻撃が困難になります。

AESでは128bits, 192bits, 256bitsのビット長の鍵を選択できますが、長いほど鍵空間が大きくて良いということになります。

続きを読む

データ暗号化で考慮すること(暗号アルゴリズム編)

概要

ユーザのメールアドレスといった機密情報を暗号化・復号したいユースケースがあるとします。
メール送信などに利用するためパスワードのようにハッシュ化するのでなく、復号して利用したいケースです。

機密情報の管理全般については以前↓で話しましたが、今回はデータの暗号化に焦点を当ててみます。

機密情報の管理で大切なこと - Carpe Diem

前提知識

適切な暗号方法を理解していないとZoomで問題になったように脆弱性のあるアルゴリズムを使用してしまいます。

Zoom documentation claims that the app uses “AES-256” encryption for meetings where possible. However, we find that in each Zoom meeting, a single AES-128 key is used in ECB mode by all participants to encrypt and decrypt audio and video. The use of ECB mode is not recommended because patterns present in the plaintext are preserved during encryption.

ref: Move Fast and Roll Your Own Crypto: A Quick Look at the Confidentiality of Zoom Meetings - The Citizen Lab

なので暗号における前提知識を説明した後に具体的な実装を紹介します。

続きを読む

パスワードを保存するときに考慮すること

概要

パスワードを保存する際は平文で保存せずハッシュ化するのは当然です。しかし単にハッシュ化するだけでなく

  • 暗号学的に優れたハッシュ関数を使う
  • saltを付ける
  • 計算コストのかかるアルゴリズムを採用する
  • ストレッチングで計算コストを上げる

といった点を考慮することで、万が一ハッシュ化されたデータが漏洩してもそこから平文が算出されないようにすべきです。

続きを読む

Homebrewで過去のバージョンを使いたい【tap版】

概要

以前以下の記事でhomebrewの過去バージョンの使い方を紹介しました。

christina04.hatenablog.com

あれからHomebrewも変わり、以前の方法ではうまくいかなくなったため新しい過去バージョンのインストール方法を紹介します。

環境

  • macOS Catalina 10.15.6
  • Homebrew 2.5.2
続きを読む

CircleCIの新UIでのslack連携 (Webhook URL版)

追記

現在(slack orb v4)は新しい連携方法に変わっています↓

christina04.hatenablog.com

以下(slack orb v3)は古い連携方法です。

概要

旧UIでは以下のような設定画面でslack連携を行っていましたが

f:id:quoll00:20200924011339p:plain

新UIからはこの設定方法はサポートされなくなり、新しくSlack Orbを使った設定方法に変わりました。

続きを読む