星期一, 9月 16, 2024
星期五, 9月 06, 2024
指定時間的類型
clock_getres 的第一個參數是指定時間的類型,常見的類型有:
https://blog.gtwang.org/programming/measure-the-execution-time-in-c-language/2/#google_vignette
CLOCK_REALTIME:系統的實際時間(wall-clock time)。CLOCK_REALTIME_COARSE:系統的實際時間(wall-clock time),取得速度快,但精確度校低。CLOCK_MONOTONIC:單調遞增時間(monotonic time),這個時間會非常穩定的持續遞增,不會因為系統時間改變而有變動,適合用於測量程式執行效能。CLOCK_MONOTONIC_COARSE:與CLOCK_MONOTONIC類似,取得速度快,但精確度校低。CLOCK_MONOTONIC_RAW:與CLOCK_MONOTONIC類似,但是它是從硬體時鐘所讀取出來的值。CLOCK_PROCESS_CPUTIME_ID:程式行程的 CPU time,這個時間包含所有的執行序所花費的時間。CLOCK_THREAD_CPUTIME_ID:程式單一執行序所耗費的時間。
https://www.cnblogs.com/memo-store/p/5658277.html
CLOCK_REALTIME,可以理解为wall time,即是实际的时间。用户可以使用命令(date)或是系统调用去修改。如果使用了NTP, 也会被NTP修改。当系统休眠(suspend)时,仍然会运行的(系统恢复时,kernel去作补偿)。
CLOCK_MONTONIC,是单调时间,即从某个时间点开始到现在过去的时间。用户不能修改这个时间,但是当系统进入休眠(suspend)时,CLOCK_MONOTONIC是不会增加的。
CLOCK_MONOTONIC_RAW,和CLOCK_MONOTONIC类似,但不同之处是MONOTONIC_RAW不会受到NTP的影响。CLOCK_MONOTONIC会受到NTP的影响并不是说NTP会去修改CLOCK_MONOTONIC,使其不连续,而是说当NTP server 和本地的时钟硬件之间有问题,NTP会影响到CLOCK_MONOTONIC的频率,但是MONOTONIC_RAW则不会受其影响。 其区别可以参考 Difference between MONOTONIC and MONOTONIC_RAW
CLOCK_BOOTTIME,与CLOCK_MONOTONIC类似,但是当suspend时,会依然增加。可以参考LWN的这篇文章 introduce CLOCK_BOOTTIME
星期三, 8月 21, 2024
星期二, 8月 13, 2024
Modbus Gateway
Reference:
- MOXA AIG-101 系列
- Amplified Engineering g3-series
- IQEG-500 物聯網智慧邊緣運算閘道資料記錄器
- 802.11AH PRODUCT PORTFOLIO by 雲協 2024/05
- rs485-iot-sensors
星期五, 8月 09, 2024
Secure Boot
Term:
- ARM TrustZone: 一種實現 TEE 的硬件技術。
- OP-TEE (Optimized Trusted Execution Environment) : 一種基於 ARM TrustZone 的 TEE 開源實現。
- REE (Rich Execution Environment) 是我們日常使用的系統環境,負責運行一般的應用程序。
- TEE (Trusted Execution Environment) 是一個安全隔離的環境,用於保護敏感數據和關鍵應用。
- CA (Client Application)是運行在 REE 中的應用程序,需要調用 TEE 中的 TA 的服務。
- TA (Trusted Application) 是運行在 TEE 中的應用程序,提供具體的安全功能。
- privilege mode:
- SVC(Supervisor Call): 当用户空间通过系统调用陷入到内核空间的时候,则最终会通过SVC指令进入到内核空间
- HVC(Hypervisor Call): 当在ARMv8-A架构下,normal world, EL1尝试去访问 EL2的时候,则会陷入到虚拟化层的,其中是通过HVC指令
- SMC(Secure Moniter Call): 用于切换noramal world 和 secure world使用。
- ARMv8-A_Architecture_Reference_Manual P.1408
- ARMv8-A架構定義了四個例外層級,分別為EL0到EL3,其中數字越大代表特權(privilege)越大。 (Exception Level)
- EL0: 無特權模式(unprivileged)
- EL1: 作業系統核心模式(OS kernel mode)
- EL2: 虛擬機器監視器模式(Hypervisor mode)
- EL3: TrustZone® monitor mode
- 要提升到較高層級需要透過exceptions(如: 中斷、page faults等)。
- EL0 => EL1: SVC (system call)
- EL1 => EL2: HVC (hypervisor call)
- EL2 => EL3: SMC (secure monitor call)
Boot Flow
Reference:
- TrustZone-OPTEE 编译调试笔记
- 什麼是OPTEE-OS
- TrustZone-OPTEE 编译调试笔记
- 代码导读1: REE->TEE 调用, RA->TA 调用
- ARM Trusted Firmware分析——启动、PSCI、OP-TEE接口
- ARMv8架構介紹
星期三, 8月 07, 2024
OWASP
- https://owasp.org/www-project-web-security-testing-guide/v42/6-Appendix/A-Testing_Tools_Resource
- https://www.zaproxy.org/
- https://cheatsheetseries.owasp.org/index.html
- Application Security Verification Standard (ASVS)
NET-SNMP V3
Reference
- NET-SNMP WIKI
- NET-SNMP網址(頁面存檔備份,存於網際網路檔案館)
- 安裝與設定 NET-SNMP(頁面存檔備份,存於網際網路檔案館)
- 《深入理解Net-SNMP》源碼(頁面存檔備份,存於網際網路檔案館)
- SNMP 教程 流程 OpManger
- Get 161
- Traps 162
- Inform 162
- net-snmp/net-snmp github
星期二, 8月 06, 2024
星期五, 8月 02, 2024
Cipher & OWASP與UL TAICS
Reference:
- 【臺灣資安大會直擊】網路攝影機資安認驗證的安全要求大公開,高標準助臺產品強化資安功能
- PPT 影像監控系統資安認驗證與輔導成果
- PKI基礎技術與應用
- Linux Kernel 密碼學演算法實作流程
- 加解密使用 一對 public/ private 金鑰. 通常使用 public 金鑰加密, private 金鑰解密. 也可以使用 private 金鑰進行信任簽章. public 金鑰進行簽章確認.
- DEKRA (安華) 2024/09/04
- 竹科、林口、新店安華資安
- SecSBOM, SecSAM, SecDDoS, SecDevice
- RED-DA: (歐盟RED-DA強制性資安法規 2025/08上路)
- https://eur-lex.europa.eu/eli/reg_del/2022/30/oj
- 3.1, 3.2, Especially 3.3 = RED-DA
- EN18031-1, 3.3d 提升網路韌性: 只要無線連網internet, 有線不用,
- EN18031-2, 3.3e 提高個人隱私保護: 收集個資, 地理位置, 交通資料, 個人資料...etc.
- EN18031-3, 3.3f 降低金融詐騙風險
- 豁免e/f : 道路交通產品...etc.
- 顧問服務: 3.3d(40萬). d+e+f(80萬)
- 諮詢服務: 14萬
- 相關規範:
- UL CAP(UL 2900-1)
- UL 62368-1 3rd
- OWASP V4 Level3
- FIPS 140-2/3
- IEC-62443, 4-1 4-2 歐盟 CRA
- CC, (Common Criteria) (CC, ISO/IEC 15408)
- 使用7個評估安全等級(Evaluation Assurance Level, EAL)
- 歐盟RED-DA強制性資安法規 2025/08上路