家戶年收入小整理

103 年綜合所得稅的統計資料出爐了. 平均綜合所得總額在 200 萬以上的村里, 新竹縣市有 9 個之多.  特別是關新里大概是全國最均富的區域. 下面的單位都是千元新台幣, 資料來自財政部103年度綜合所得稅申報初步核定統計專冊 [1].

縣/市 里/區 平均數 中位數
新竹市 光明里 2,413 1,450
新竹市 科園里 3,265 1,218
新竹市 關新里 2,628 2,206
新竹市 湖濱里 2,321    771
新竹市 豐功里 2,162 1,576
新竹縣 寶山鄉三峰村 2,111    903
竹北市 鹿場里 2,243 1,690
竹北市 東平里 2,244 1,747
竹北市 中興里 2,135 1,578

新竹的成績和科學園區有關, 因為這裡是工程師的聚落. 從下圖 [2] 可以得知, 家戶所得主要來自薪資. 關新里 (表格最下方) 每戶整年的機會中獎所得只有 5 千元, 並不是致富的原因. 但關新里顯然又比別的里更容易中獎!!! 這公平嗎? 哈!

HsinchuEastIncome-1-768x313

新竹看起來好像很厲害, 不過天龍國還要高出一大截! 松山區最強的東昌里, 平均家戶所得上千萬元. 而大安區簡直是恐怖, 有 21 個里的平均所得都超過 200 萬. 看了都不想打字了. 

台北市 好野里個數 最強的里 平均數 中位數
松山區 7 東昌里 10,727 936
大安區 21 民輝里 4,307 940
中正區 4 東門里 5,431 887
中山區 7 新福里 4,096 624
內湖區 2 金湖里 2,538 1,183
士林區 12 菁山里 6,104 646
北投區 1 永欣里 2,039 1,033
信義區 5 興隆里 9,083 806

台北雖然有好野的里, 但里民間的貧富差距比新竹大. 證據是平均數雖然高, 但中位數就還好. 東昌里的平均上千萬是怎麼來的呢?根據 103-166-A.pdf (A 代表台北市), 這個里的股利收入有 36 億. 但薪資收入只有 8.3 億. 大約 4.3:1.

反觀郭董住的信義區安康里, 平均值是 415.4 萬, 中位數是 99.4 萬. 收入來源是股利收入 91.9 億, 薪資收入 45.6 億. 大約 2:1. 因此可以推出郭董住的里也有不少高薪上班族, 但東昌里主要是大股東, 領薪水的人相對少.

像內湖這樣的產業聚落, 就和新竹的分布很類似 – 連中位數的家庭也是年收入百萬以上. 至於萬華, 大同, 文山, 南港這幾區的平均所得剛好沒有超過 2 M, 是台北市的異數. 

走出台北市之後, 外面的世界很不一樣. 平均家戶年收入破 200 萬成了奢求. 很快掃過所有資料, 只有找到下面幾個區域. 其中比較均富的也只有大甲的孔門里, 台中西屯的惠來里和新北市的華城里. 板橋福丘里等地方的貧富差異算是尚可.

 縣市 村里 平均數 中位數
 台中市 大甲區 孔門里 2,641 1,051
 台中市 北區 新北里 2,115   639
 台中市 西屯區 惠來里 2,920 1,045
 台南市 中西區 郡王里 2,346   734
 台南市 中西區 天后里 3,144   521
 高雄市 鹽埕區 教仁里 2,365   541
 高雄市 鹽埕區 沙地里 2,242   598
 高雄市 苓雅區 林圍里 2,106   780
 高雄市 岡山區 壽天里 2,605   657
 新北市 三重區 龍門里 2,044   515
 新北市 三重區 錦田里 3,459   529
 新北市 新店區 下城里 2,980   857
 新北市 新店區 華城里 4,993 1,197
 新北市 板橋區 福丘里 2,042   964
 桃園縣 桃園區 明德里 2,028   854
 桃園縣 大溪區 永福里 3,478   556
 桃園縣 中壢區 中榮里 2,245   629
 彰化縣 彰化市 延平里 2,177   600
 彰化縣 鹿港鎮 頭南里 3,310   455
 彰化縣 員林市 三多里 2,724   625
 彰化縣 大村鄉 美港村 6,089   531
 屏東縣 恆春鎮 網紗里 2,560   506

台北以外的貧富差異更是明顯 – 平均數字即使比台北高, 但是中位數低很多 (如彰化大村鄉美港村). 當地的營利所得, 薪資所得和租賃所得都高於鄰村 [3]. 可以推測有賺錢的公司隱身其中 (查為正新輪胎, 美利達等), 但雇用的人數不足, 還不足以造福整個鄉里.

ChangHuaIncome-1-768x489

另一方面, 沒有任何村里平均所得超過 200 萬的縣市非常多, 像是: 基隆市, 宜蘭縣, 嘉義縣市, 苗栗縣, 南投縣, 雲林縣, 花蓮縣, 台東縣, 金門縣, 澎湖縣, 連江縣…等等. 難怪有如此大的聲浪抱怨低薪. 別的賺錢方法我沒把握說, 但是到新竹來試試工程師的工作似乎是個比下有餘的選擇.

[REF]

  1. 103年度綜合所得稅申報初步核定統計專冊
  2. 上述資料主要來自[1] 網頁裡面的 103-PDF-3.zip. 解開後的 103_165-X.PDF (X = A~Z) 描述各村里的所得數字. 至於分類的收入來自 103_166-X.PDF, 這張圖來自 zip 檔裡面的 103_166-O.PDF. O 代表新竹市.
  3. 本圖來自103_166-N.PDF. N 代表彰化縣.
  4. 原始檔案下載 103- PDF-3.zip

WAI-ARIA 小註解

所謂 WAI-ARIA 是指 Web Accessibility Initiative’s Accessible Rich Internet Applications, 究竟何謂也?WAI 的部分指 “無障礙網頁倡議" 或是 “可訪問性倡議”.  就字面上來看, 就是一種讓網路使用變簡單的提案.

根據 [1],  W3C 在  WCAG 2.0 裡將無障礙定義為: “縱使使用者能力不一,也能輕易使用網頁所提供的資訊和服務。 (Web Content Accessibility Guidelines (WCAG) 2.0 defines how to make Web content more accessible to people with disabilities. [2])

舉例來說, 網頁上放了一張圖, 那麼也要有文字說明. 如果使用顏色來區隔, 那麼也要有顏色以外的替代方案. 考慮到這些, 至少對於視障或是色盲的人上網比較方便. 同樣也有人行動不便, 那麼易於瀏覽或是輸入就對他們很重要.

WCAG 2.0 已經把可以用的招數分為 4 個 原則, 每個原則底下又有 guideline. 主要就是讓使用者可以容易感知, 操作, 了解, 並且穩固.
Perceivable – Information and user interface components must be presentable to users in ways they can perceive.
Operable – User interface components and navigation must be operable.
Understandable – Information and the operation of user interface must be understandable.
Robust – Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies.

WCAG 2.0 將符合規範的程度 (Conformance Level) 分為 3 級: level A~ level AAA. 不過, 即使是到了最高級的 AAA, WCAG 2.0 也說不能保證沒問題. (“Note that even content that conforms at the highest level (AAA) will not be accessible to individuals with all types, degrees, or combinations of disability, particularly in the cognitive – 認知 language and learning areas.")

至於 ARIA 有 1.0 和 1.1 [3] 兩個版本, 他們描述了如何具體實踐 WAI. 根據 [4], [5], ARIA 最明顯的實現方式在於加入 role 屬性 (landmark roles). 所謂的 role 就是角色, 在既有的 HTML 網頁當中, 額外描述這段 HTML 的功能. 例如: 

  • role=”banner”
  • role=”navigation” (e.g., a menu)
  • role=”main” (the main content of the page)
  • role=”complementary” (e.g., a sidebar)
  • role=”contentinfo” (meta data about the page, e.g., a copyright statement)
  • role=”search”
  • role=”form”
  • role=”application” (a web application with its own keyboard interface)

如果一個網頁中有兩個同樣的 role, 就要進一步用不同的 (aria-)label 來區隔.

  • <div role=”navigation” aria-label=”Main menu”>
  • <div role=”navigation” aria-label=”User menu”>

除了 role 之外, 另外一個特色是多了 state (狀態) 和 property (屬性). 重要的有下面這些:

state 的好處是, 讓使用者可以知道這個控制項的狀態, 例如 aria-checked 的狀態有 true, false, mixed 三種, 我們就知道 checkbox 點了沒有? 至於 propoerty 可以描述一個欄位允許的最大值, 最小值. 這的確也是很重要. State 和 property 的細節, 以及略過不提的其他特點等等, 可多參考中文的 [5], 這裡就先略過了.

最後來看一眼和我們工作有關的部分. 增加了 WAI-ARA 的支援之後, 它需要強大的底層支援, 如果要把文字敘述唸出來給視障的人聽, 系統就要具備文字轉語音 (TTS – Text to Speech) 的能力. 這些基礎建設相當於下圖 (來自[2]) 最右邊的方塊, 這個 Assistive Technology 就是系統要提供的了.

ARIA-Model-1-768x464

[REF]

  1. 建置 無障礙網頁 的小秘訣
  2. WCAG 2.0
  3. Accessible Rich Internet Applications (WAI-ARIA) 1.1
  4. ARIA Landmark Roles
  5. WAI-ARIA 介紹之二
  6. Roadmap for Accessible Rich Internet Applications (WAI-ARIA Roadmap)

FDE 小破解

此處的 FDE 是指 Full Disk Encryption.

根據 [1] 這篇文章, 他在 Qualcomm 的系統中找到了 FED 的漏洞. 下面我把這篇文章的重點摘要出來, 細節就略過了.

首先我們都知道加密需要密碼, 因此好用的方式就是把硬體上的唯一密碼 (unique HW key) 和使用者輸入的密碼 (Passcode key) 做運算, 得到一個沒有人知道的新密碼. 下圖是 Apple iOS 用的方法. (KDF = key derivation function)

Apple’s FDE KDF

試想, 如果我把整個 FLASH (eMMC or SD Card) 裡面的資料都加密了. 那我換了密碼之後, 是否要把整個資料重新加密一遍? 當然不可能, 新的密碼只能用來加密 “File key", 而加密真正資料 (file contents) 的 key 是不變的.

Android 的做法也類似 [2].

Androids-FDE-1-768x487
Android FDE’s KDF
  1. 首先裝置隨機產生一個 16 byte 的 master key (Device Encryption Key – DEK), 然後準備一把鹽巴調味 (16 byte = 128 bit random-generated salt).
  2. 用 user password 加鹽巴 scrypt 出 32 byte (=256 bit) 的中間 key 1 (IK1 = intermediate key 1).
  3. 把 IK1 前面加一個 zero byte, 後面加 233 個 zero byte 墊成 256 bit (padded IK1) , 這是因為裝置上的 key (hardware-bound private key = HBK) 就是 256 byte.
  4. 用 HBK 去sign padded IK1. 產生 256 byte IK2.
  5. 用 IK2 加鹽巴 scrypt 出 32 byte IK3.
  6. 用 IK3 的前 16 byte 當 KEK (key encryption key), 後 16 byte 當 IV ( initialization vector).
  7. 把 DEK 用 AES-CBC 加密, 其中 KEK 和 IV 取材自上一步.

除了這些複雜的 key, iOS 和 Android 都有防止嘗試錯誤的軟體機制, 錯愈多次就要休息愈久. 所以破解方法就要用外部的硬體來做, 這也就是 Android 網頁上 [2] 所說的, 把產生 key 的方法複雜化, 以對抗 off the box 的破解. “In order to make the key resilient against off-box attacks, we extend this algorithm by signing the resultant key with a stored TEE key." 然而, 這樣還是被破了.

在 [1] 當中提到, 破壞的關鍵在於 key master module. 在 TEE (Trusted Execution Environment) 架構裡面, 有安全顧慮的動作, 都會由 REE (rich execution environment, non-secure world) 送到 TEE (secure world), 然後再把結果回傳 REE. Key master 本身長在 secure world, 理論上夠安全才對.

access-to-keymaster

不過, 畢竟 TEE 需要 SW 實作, 所以從 binary code 可以被反組譯, 再搭配公開的 data structure, 就可以找出 HMAC (Keyed-Hash Message Authentication Code) [7]. 下圖中間的 QSEE 就是 Qualcomm Secure Execution Environment. 破解的流程如下:

  • Enable the DACR (ARM 裡面的 Domain Access Control Register) in the TrustZone kernel to allow us to modify the code cave.
  • Write a small shellcode stub in the code cave which reads the keys from the KeyMaster application.
  • Hijack the “qsee_hmac" system-call and point it at our shellcode stub.
  • Call the KeyMaster’s key-generation command, causing it to trigger the poisoned system-call and exfiltrate the keys into the shared buffer.
  • Read the leaked keys from the shared buffer.

All-Android-System

作者認為 FDE 雖然已經被公認是安全可靠加密方式, 但是在 Android + QSEE 的組合之下, 還是被找到了漏洞. QSEE 使用 SHK (hardware key) 衍生的 key 來加密, 作者認為不如直接用 SHK 比較好, 因為 SHK 反而保證是 SW 不能讀取的. 不過在其他的使用案例, 這樣又會有別的問題 [1].

[REF]
1.  Extracting Qualcomm’s KeyMaster Keys – Breaking Android Full Disk Encryption
2.  https://source.android.com/security/encryption/
3.  Nikolay Elenkov’s blog, “Android Explorations"
4. Dan Guido’s superb post about the technical aspects of Apple v. FBI,
5. Matthew Green’s great overview on Apple’s FDE
6. iOS Security Guide
7. https://en.wikipedia.org/wiki/Hash-based_message_authentication_code

2016 匯僑股東會記要

一早跑來參加股東會, 結果園區大塞車, 錯過高鐵班次. 出了捷運還找不到會場的方向, 最後遲到 1 分鐘才進場. 

20160630_092435-1-768x576

會議其實很快就結束, 沒有人提意見. 感覺只有投票的時候計時 2 分鐘花了比較久的時間. 我都衝動想去投票了, 不過我心知投了也沒影響就忍住了. 最後選舉都都依大股東的意見通過, 沒有任何意外.

會後我想認識身邊的一些股東朋友, 畢竟大家互通訊息的話應該會更好. 正在東張西望的時候, 財務長兼發言人陳重光先生主動過來遞名片, 隨後吸引了董事長廖述群先生和總經理葉唐榮先生靠過來.

陳發言人應該是公關專家, 很客氣地提到有什麼問題都可以找他. 也特別跟其他人介紹我是特別請假來參加. 我的確是為了對小朋友負責, 不得不來關心一下. 廖董表示去年也有一對退休夫妻說要來參加過才放心… 寒暄已畢, 於是我趁機把我的小問題提出來.

我主要擔心的問題是, 匯僑的專業不在高科技, 如果轉投資這些產業, 怕沒有人可以監督管理. 廖董事長表示, 過去也有同樣的擔心, 已經將那些投資處分掉. 現在投資的太陽能獲利不錯.

另外一個更小的問題是, 公司有沒有買回股票的打算?葉總經理表示承認事項 2 中提到這句只是慣用的 wording, 最近股價在穩定的高點, 實際上沒有這樣的計畫.

最後要離開會場時, 在電梯遇到一位先生看似來參加的股東. 一問之下是匯僑的蘇坤明副總經理. 他也提到公司投資太陽能獲利不錯. 蘇副總好說台語, 人很爽朗, 還關心我幾塊錢買的, 哈!由於他要趕去搭車, 我就沒再打擾他. 

雖然串連股東同好的目的沒有達成, 不過來日方長. 如果有關心這檔股東的同好, 請加我 Facebook 好友. 畢竟這家公司的股東結構除了千張以上的超大股東 (閎常國際, 泰禹投資, 利揚資產管理) 之外, 就只有和個人股東地位差不多, 只買幾百張的法人 (新藏興投資, 德意志銀行, 南山人壽, 富同投資), 以及我們這些喊冰箱也不會結凍的小股東了.

比我預期早結束的股東, 讓我還有銷假上班的機會. 於是先跑去台北內湖的辦公室回 email, 中午再去行程中的林東芳吃牛肉麵. 不過光是這樣跑來跑去, 體力已經不多了. 回到新竹後更是累, 最終放棄回去上班的念頭. (下圖: 林東芳大半筋半肉麵 250 NTD).

20160630_115937-768x576

因為沒酸菜, 所以我加了牛油, 使得原本好喝的湯變鹹了! ><||| 下次我想點半筋半肉湯就好. 因為肉質沒話說, 但麵不是我愛的. 偶然發現帶位的歐巴桑會說日語, 因為我左手邊坐了日本人, 而右手邊又坐了大陸客. 小小一個隔間就有來自不同地方的人來探險, 難怪要開發票!哈!

網路修修

前幾天老婆一直抱怨樓下的網路慢, 我在手機裝了 APK 測試一下, 發現下載大概 3 Mbps, 上傳大概 100 Kbps 而已. 不過在小烏龜上測試, 上傳可以有 38 Mbps 的水準, 這未免也差太多了.

看了網友的文章 [1], 似乎是 AP 裡面設定的問題 – 需要手動設定上傳頻寬. 不過我的 AP 和他的不同牌子, 調了半天也沒有起色. 尤其 Tenda W309R 的韌體快 3 年沒更新了, 不由得令我惡向膽邊生, 決定把這樓上樓下的這兩個 AP  淘汰掉.

畢竟我們產品線 OTT box 兼著做 AP router 都號稱 AC1200 了, 不如趁機進版到 802.11ac wave 2 吧! 很快爬了 802.11ac router 的文章, 確認 ACXXX 的數字並不見得是愈大愈好 [2], 於是我把目標放在一位香港人小 U 推薦的品牌 [3]. 他比較重視 CP 值, 這樣應該不至於冤枉花了大錢.

在此先回頭講一下 ACXXX 是怎麼來的? 首先, 一定要把 2.4GHz 和 5GHz 的數字加在一起, 然後再灌水到整數. 不過數字大了之後, AC3200 和 AC5300 可以視為沒直接灌水! 話說 2.4G 真的可以和 5G 同時用嗎? 可以的, 根據 [2], 11ac 的部分會掉 30~40%, 11n 的部分掉 0~25%.

Mbps 2.4G 5G 5G Total
1T1R 433 433
AC600 150 433 583
AC750 300 433 733
2T2R 867
AC1200 300 867 1167
3T3R 1300 1300
AC1750 450 1300 1750
4T4R 1734 1734
AC1900 600 1300 1900
AC2350 600 1734 2333
AC2400 600 1734 2333
AC2600 800 1734 2533
AC3100 1000 2167 3100
AC3200 600 1300 1300 3200
AC5300 1000 2167 2167 5333

上表要怎麼解讀呢? 在 5 GHz 的 80MHz 頻寬的 11ac 部分 1T1R 就是 433 Mbps, 接著 2T2R, 3T3R, 4T4R 都比照辦理, 所以最高就是 1734 Mbps [4]. 除非頻寬長到 160 MHz. 那 Asus RT-AC88U (AC3100) 的 5 GHz 跑到 2167 是怎麼回事呢? 因為它是 1024-QAM, 不是 256-QAM, 速度比 1734 快 25%, 所以應該是 802.11ax 的規範 [5] .

至於 5 GHz 的部分有時候出現兩欄, 這就是所謂的 3 頻 ( 1 個 2.4 G, 2 個 5G). 一個 5G 給高速使用, 1 個 5G 給低速使用. 兩者各占一個頻寬通道, 理論上速度可以相加. 但事實上就沒那麼理想.

那麼 2.4GHz 的速度從 150~1000 Mbps 要如何解釋呢? 150 Mbps 是 11n 的 1T1R, 依此類推, 2T2R/3T3R/4T4R 就是 300/450/600 Mbps. 至於 800 Mbps 是 4T4R 的 200 Mbps, 它恰好是 11ac 的 256-QAM 在 40MHz 頻寬的速度. 而 1000 Mbps 就是 800 Mbps 快 25% 的 1024-QAM.

總結起來, AC2400 的 4T4R 應該就很夠用了. 所以買個兩台 7~8K NTD 的路由器, 應該可以讓我們家的網路升級到前所未有的地步!!! 於是我點開 PChome 的網頁, 滑鼠準備要按下去的時候, 忽然看見下方 “看此分類的人也看了…." 裡面有 “最新★1000Mbps速率“, 靠腰! 2005 年我買過左邊這個, 還放在抽屜裡面沒丟掉. 若干年後, 我又買過右邊這個 500 Mbps 的. 理論上的速度已經快了 35.7 倍.

現在居然已經進步到 1800 Mbps, 價錢只比 1/3 台高級路由器多一點點, 而且一次有兩支. 那…那…只好不讓公司 6 月業績創新高了 (各少賣了兩顆 802.11n 和 ac 的 IC), 我先買 HomePlug 頂著吧, 這樣一樓的網速可以先上到 20 Mbps. 畢竟這產品的效能打 0.1 折都堪用了.

buy-powerline1800Mbps

2016/6/5 實測結果 OK. 這樣就符合期待了.

DrSpeed-1-768x623

[REF]

  1. 光世代上傳速度過慢排除
  2. AC2400! AC3200! 是數字遊戲還是越大越好?分析最新AC WIFI製式、明白什麽規格才適合自己
  3. 嚴選性價比: 小U網販路由器/接收器五虎將列陣!- 刺激一下行貨代理吧^_^
  4. 無線傳輸速率
  5. https://en.wikipedia.org/wiki/IEEE_802.11ac