Let's Encrypt 對整個 SSL Certificate 的影響

Let's Encrypt 的人試著從多個資料來源分析 Let's Encrypt 對整個網路上安全性的影響力:「Early Impacts of Let's Encrypt」。

資料來源包括 Certificate Transparency (CT) 記錄與 censys (這個網站用 StartSSL,被我屏蔽掉了 XD)。

But I do have access to Certificate Transparency logs, as well as other data sources like Censys.io.

前者 CT 的部份會有嚴重的偏差,因為 CA/Browser Forum 只規定 EV certificate 要送 CT log,一般的 SSL certificate 可以不送 (幾乎都沒送),而 Let's Encrypt 發的是一般的 SSL certificate,還是有送 CT log。

把資料送上 CT 是好事,但這使得 CT log 內的資料會有嚴重偏差,拿這個判斷影響力是很有問題的。

所以這份資料就是看看就好...

eBay 在測試環境下的 Load Balancer:Neutrino

eBay 放出了一套為了測試環境用 ScalaNetty 開發的 load balancer,Neutrino:「Announcing Neutrino for Load Balancing and L7 Switching」。

可以看到設計上加入了 log 機制,像是:

Ability to send the traffic logs to API endpoints

以及:

Traffic metrics and configuration are exposed as APIs.

Metrics can be easily published to Graphite. Neutrino is also extensible to push metrics to other metrics systems.

效能不是最主要的重點,不過在 2-core VM 裡面可以有每秒 300+ requests,對測試環境應該是夠用:

We have measured upwards of 300+ requests per second on a 2-core VM.

還有不少特殊的功能 (大量模組化的設計),對於測試環境應該頗好用?

Berkeley DB 的介紹

在滿滿都是 NoSQL 的世代中,意外在「Berkeley DB: Architecture」這邊看到 Berkeley DB 的介紹...

2006 年 Berkeley DB 的公司 SleepycatOracle 收購。在收購後 Oracle 改變了 open source 授權部份,從之前的 Sleepycat License 改成了 AGPLv3

Berkeley DB 算是早期功能很完整的 database library,由於 page level locking、crash-safe 加上有 transaction,也曾經被 MySQL 拿去當作 engine,不過在 MySQL 5.1 被拔掉:「14.5 The BDB (BerkeleyDB) Storage Engine」。

文章裡講了很多底層設計上的想法 (而非單純只說明「做了什麼」),以四個面向來討論。Buffer、Lock、Log 以及 Transaction,並且圍繞著 ACID 需求討論。

算是懷念的考古文?Google 弄出來的 LevelDBFacebook 接著改善的 RocksDB 的走向也不太一樣了,現在大家對 ACID 需求因為 NoSQL 盛行的關係又重新在檢視...

Small Characteristic DLP (Discrete Log Problem) 被解決

最近幾天在密碼學領域還蠻紅的話題 (雖然預印本在去年就發了),EUROCRYPT 2014 上發表對 DLP (Discrete Log Problem) 的重大進展。

論文在 arXiv 上可以取得:「A quasi-polynomial algorithm for discrete logarithm in finite fields of small characteristic」。

針對使用小特徵值的有限域 (finite field) 的 DLP 問題 (也就是 Zqk 上) 直接從 sub-exponential 降到 nO(logn) (quasi-polynomial)。最常見到的應該是 Z2n

雖然現有被廣泛使用的密碼系統在使用 DLP 建構時都是用 Zp,但這次的成果絕對寫下了 DLP cryptoanalysis 上的里程碑...

用 git log 的 -S 與 -G 找變更記錄

符合 blog 副標題的一篇文章。

之前是拿 BBS 看板來存動畫的記錄,不過自從跑在 FreeBSD 32bits 上的 BBS code 一直沒辦法轉移到 Ubuntu 64bits,就放棄用 BBS 看板管動畫記錄了...

現在是拿 Git 來存動畫記錄,後來發現內建的 git log 搜尋起來比 BBS 方便太多,就回不去了...

以「魔法戰爭」來說:

$ git log -S '魔法戰爭' --pretty=%h | xargs -n1 git show
commit 9a6af4ec77561777b854a7ea44da29e197a9dcc2
Author: Gea-Suan Lin <gslin@gslin.org>
Date:   Mon Apr 7 00:55:49 2014 +0800

    Update.

diff --git a/Anime.txt b/Anime.txt
index 080f94a..cd21e14 100644
--- a/Anime.txt
+++ b/Anime.txt
@@ -42,4 +42,3 @@ Z/X IGNITION                            e01
 銀之匙 Silver Spoon 第二季              e04
 鬼燈的冷徹                              e05
 魔女的使命                              e04
-魔法戰爭                                e11
commit 856a27ab4071fb19ca58de3725cdedf53815894b
Author: Gea-Suan Lin <darkkiller@gmail.com>
Date:   Mon Feb 10 04:46:57 2014 +0800

    Update.

diff --git a/Anime.txt b/Anime.txt
index ddb11ea..e5995eb 100644
--- a/Anime.txt
+++ b/Anime.txt
@@ -22,3 +22,4 @@ WIZARD BARRISTERS~弁魔士賽希爾         e01
 偽戀                                    e02
 天才麻將少女 全國篇                     e05
 鬼燈的冷徹                              e05
+魔法戰爭                                e04

-S 只會列出「出現」與「消失」的時候,而且 -S 後面接的是 string 而非 regex。

如果要找所有與「魔法戰爭」相關的變更,則改用 git log -G,要注意的是後面接的是 regex:

 $ git log -G '魔法戰爭' --pretty=%h | xargs -n1 git show

Git 超好用的... XD

Elastic Load Balancing 總算實做 access log...

AWSElastic Load Balancing 總算想起來這個欠了許久的功能,access log:「Access Logs for Elastic Load Balancers」。

原文裡有提到用 Hive 分析的部份,挑出最前面的欄位名稱就可以看出提供什麼資訊:

CREATE EXTERNAL TABLE elb_raw_access_logs (
     Timestamp STRING,
     ELBName STRING,
     RequestIP STRING,
     RequestPort INT,
     BackendIP STRING,
     BackendPort INT,
     RequestProcessingTime DOUBLE,
     BackendProcessingTime DOUBLE,
     ClientResponseTime DOUBLE,
     ELBResponseCode STRING,
     BackendResponseCode STRING,
     ReceivedBytes BIGINT,
     SentBytes BIGINT,
     RequestVerb STRING,
     URL STRING,
     Protocol STRING
)

裡面還有些資訊沒包含在上面,像是 availability zone。因為這個資訊是包含在檔名內:

In addition to the bucket name and the prefix that you specified when you configured and enabled access logs, the log file name will also include the IP address of the load balancer, your AWS account number, the load balancer's name and region, the date (year, month, and day), the timestamp of the end of the logging interval, and a random number (to handle multiple log files for the same time interval).

接下來應該要把現有的 ELB 都開起來 XD

Amazon 推出 AWS CloudTrail,可以稽核 API 使用量...

因為最近幾天是 re:Invent,所以 AWS 在這個期間會丟出很多新玩意。

這次推出的是 AWS CloudTrail,會將 API call 記錄起來存到 Amazon S3 或是透過 Amazon SNS 發出,於是你就可以利用這些資料分析出各種想要撈出的資訊:「AWS CloudTrail - Capture AWS API Activity」。

目前只支援北美的 US East (Northern Virginia) 以及 US West (Oregon),也就是 us-east-1 與 us-west-1。

PHP 的 PSR-3:Logger Interface

剛剛才發現 PSR-3 已經正式定案了:「PSR-3 - Logger Interface」。

統一 log 界面,架構的基礎是建在 RFC 5424 (The Syslog Protocol) 對 log level 的定義上,使用 Psr namespace 定義實做的介面 (interface)。

目前看起來就到 PSR-3...

MySQL 的 audit log

在「Auditing login attempts in MySQL」這篇文章裡討論 MySQL 登入的 audit log,其中第一個方法是 full log (包含 SELECT 這類指令),看起來可以活用...

打開 General Query Log 後,幾乎所有的行為都會被記錄下來,照這個設計應該可以寫到 FIFO 裡丟到 log server 上?不知道會增加 log server 多少負荷...

可能是未來的 PSR-3:LoggerInterface

Jordi BoggianoPHP-FIG 上提案整合 log interface,參考「One logger to rule them all」這篇,提案本身可以參考「Logger Interface」這裡。

如果通過的話,這很有可能是 PSR-3... 所以 PHP-FIG 接下來的想法是建立 interface 嗎?hmmm...