fujimisakari blog

APIリクエストの各認証方式

APIリクエストの認証っていろいろあって、よくわからなくなるので整理してみました。(認証フローとかは省いてます) 認証/認可について認証を整理するためには、認証/認可の役割は知っとく必要があります。 認証(Authentication)とは「誰であるか」を本人確認すること。ID、PWでの認証が一般的な方法ですが、APIだとどのような認証方法があるかは後述して

SSL/TLS通信の仕組み

SSL/TLS通信の仕組みってよく忘れてしまい毎回ググってるのでメモがてら整理してみた。仕組みを理解するには、デジタル署名、デジタル証明書の理解が肝となる。 デジタル署名デジタル署名は、送信されてきたデータが間違いなく本人のものであるのかを証明するのための技術で公開鍵暗号よって実現してます。送信者の送信データをハッシュ値に算出し暗号化したものがデジタル署名に

k8sのServiceMeshとルーティング、LB

最近よく聞くk8sのServiceMesh。業務では使ってるけどいまいち理解が追いついてないのでルーティング方法とLBについて調べてみました。 ServiceMeshとはマイクロサービス間に張り巡らされたメッシュ状の通信やその経路を制御する考え方です。OSSしてはIstio / Conduit / Linkerdなどが有名で、今回はIstioについて調べまし

公開鍵暗号

暗号化技術の勉強で前回は、共通鍵 をやったので公開鍵暗号をやりました。 公開鍵暗号暗号化と復号に別々の鍵(公開鍵、秘密鍵)で行う暗号方式です。暗号化を公開鍵で行い、復号を秘密鍵で行なわれます。暗号化アルゴリズムにはRSAや楕円曲線(Elliptic Curve)暗号などがあります。 RSAの鍵長サイズは1,024から4,096ビッドで、サイズは256の倍数で

共通鍵暗号

パブリックなネットワーク上でデータのやり取りを行う場合には、第三者にデータを盗み見や改ざんさせない仕組みが必要になります。その仕組みとしてデータの暗号化があります。暗号化方式には共通鍵暗号と公開鍵暗号が2種類あり、まずは共通鍵暗号を勉強してみました。 共通鍵暗号暗号化と復号を同一鍵で行う暗号方式です。共通鍵暗号の暗号化アルゴリズムでは長い間DESが利用されて

TCPのSocket Closeでハマった

TCP通信開発に慣れていないのとTCP状態遷移を理解できていなかったのでSocket Closeしようとしてハマってしまった。 前提 やろうとしていたこと TCP ServerとClientを開発していて、Serverが落ちたときClientからリトライで再接続するような仕組み ハマったっこと Clientからリトライで再接続するとき、bind: ad

Test Double パターン

ユニットテストでよく mock や stub, fake など見かけるが理解度が低かったので、テストでは有名な xUnit Test Patterns を漁ってみるとこれらの用語は Test Double パターン がそれに該当するようだったので調べてみた Test Double パターン について対象コードをテストするために依存してるコンポーネントを別で用

Go

Go Linter

定期的にブログ書いてないとなかなか書く気が起きなくなるので敷居が低そうだった Go の Linter について調べてみた。書こうと思って調べた矢先、非常にまとまった良い記事を発見してしまったが気にせず書いてみる。 Go の CI で lint と カバレッジ回して非人間的なレビューは自動化しよう in 2016年 - haya14busa Go Meta

Go

赤黒木を実装

最近、業務委託で参画させていただいてる会社の方から新たな言語を使うときはまず赤黒木を作ってみるといいよと聞きGoで実装してみましたー red-black-treeコマンドに引数で数字を渡すと赤黒木として表示させる実装になってます 赤黒木について赤黒木は「平衡木」というデータ構造のひとつで、ツリー構造のうち、根ノードから子を持たない末端の葉ノードまでの深さがな

pecoでDockerを操作する

タイトルの通りですが、pecoでDockerを操作するコマンドを作りました。はじめに理想を言うと、素のDockerコマンドをタイポせずすごい勢いで打てるのが一番カッコイイと思ってるのですが自分には無理なので最高のインタフェースを持つpeco(本当はpercol)でDocker操作を効率化できるようにしました。 これまではよく紹介されてるshell設定のエイリ