投稿

TPMとは。Mac/iPhone/Androidのストレージ暗号化

TPM(Trusted Platform Module)がWindows11の推奨要件になり、お客さんからもいろいろ聞かれそうなので調査したときの覚書。 TPM(Trusted Platform Module)とは PCのマザーボードに搭載されているストレージ(HDD/SSD)を暗号化/復号化するための専用チップ。 PCが盗難された場合にデータを直接読み出しされるのを防止するセキュリティ目的で2019年頃からノートPCに標準で搭載され始めた。 今の最新はTPM2.0。CPU内部で実装されたファームウェアTPMもある。 Trusted Platform Module - Wikipedia トラステッド プラットフォーム モジュール (Windows 10) - Microsoft 365 Security 「セキュリティチップ」という言い方をされるけど、あくまでも盗難など直接ストレージの読み出しを防ぐのみ。 盗難が想定されないサーバーでは使用しない(と思う)。 ランサムウェアに対しても意味はない。 Mac/iPhoneのストレージ暗号化 Apple独自のT1/T2チップがMacシリーズに搭載されている。 Apple T2 セキュリティチップ搭載モデルの Mac - Apple サポート (日本) 新CPU「M1」からはIntelプロセッサからARMベースのApple設計のプロセッサに移行し、Apple T2のセキュリティ機能も統合され、最適化とパフォーマンス向上を実現している。 iPhoneに搭載されているCPU AシリーズはARMアーキテクチャを使用して、ストレージ暗号化機能も含まれている。 Appleシリコン - Wikipedia Androidのストレージ暗号化 ARMv8 CPUがストレージ暗号化をサポートしている。 2019年以降はデフォルトで暗号化されているのがほとんど。 Google Developers Japan: Adiantum : 低廉な端末でも効率的に使える暗号化技術 暗号化 | Android オープンソース プロジェクト | Android Open Source Project

Cloudflare+HTTP3 QUICを体感する

イメージ
CloudflareでHTTP/3 QUICを使用するとどれくらい速くなるのか試したときの覚書。 Cloudflareの管理画面でネットワーク → HTTP/3(QUIC使用)をオンにする。 0-RTT接続再開もオンにしてみた。 Google ChromeのデフォルトではHTTP/3は有効でない。 Google Chrome · Cloudflare HTTP/3 docs 開発者向けのChrome Canaryをインストールした方が手っ取り早い。 Chrome Canary のデベロッパー向け機能 - Google Chrome Chrome CanaryでHTTP/3をオンにしたサイトを表示。 DevToolsのNetworkパネルで表示項目を右クリックで「Protocol」を表示。 h3-29が確認できる。 後で気付いたけどFirefoxだとデフォルトで対応していた(v91.0) 感想としては、(ブラウザにキャッシュされていない)初回表示でもすぐ切り替わってストレスがない。 ブラウザにキャッシュされた2回目からはHTTP/2と体感速度は変わらない。 HTTP/3 QUICはTCPではなくUDPを使うという革命を起こしているので、アプリケーション側(サーバー側も含め)は大変だと思う。 Wikipediaが分かりやすい。 QUIC - Wikipedia HTTP/3 QUICの全体像を理解するのに下記記事が有用だった。 うまいことまとめていて良記事だと思う。 A Last Call for QUIC, a giant leap for the Internet 【関連記事】 Cloudflareとは。WordPressのセキュリティとパフォーマンスを一段階上げれるか?

Cloudflareとは。WordPressのセキュリティとパフォーマンスを一段階上げれるか?

Google Signed Exchange(SXG)を調べていて、Cloudflareを利用すると自動対応してくれるらしいので調査したときの覚書。 Understanding Amp Real URL | Cloudflare Help Center Cloudflare(クラウドフレア)とは 2009年に設立したアメリカの会社。 2020年に東京オフィス開設。 CDN(コンテンツ・デリバリー・ネットワーク)で有名。日本では東京と大阪の2拠点にデータセンターを持っている。 配信サーバー(origin server)とユーザーの間に入り、セキュリティからパフォーマンスまで幅広くサービスを展開。 Cloudflare - Wikipedia ホームページの類いは格安レンタルサーバー + Cloudflareの構成になっている未来もあり得る。 ただサーバーインフラの経験がないとCloudflareで提供している技術の凄さが伝わりづらい。 Cloudflareの特徴 詳しくは公式ページを参考に。 プラン | 料金設定 | Cloudflare 基本的に管理画面で各機能をオンにするだけ。 対応していないブラウザにも自動で振り分けてくれるので楽。 Cloudflare経由で取得したデータはヘッダー情報に"cf-*"が付与されているので、DevToolsで確認できる。 機能一覧 常時暗号化(SSL/TLS) DDoS攻撃からの保護 画像最適化。画像のメタデータなど不要な情報を削除して軽量化してくれる。 gzipより高圧縮率のBrotli対応。 ヘッダーのcontent-encodingが"br"になる JavaScript, CSS, HTMLの自動サイズ縮小 Automatic Platform Optimization for WordPress: WordPressをいい感じに最適化。オリジンサーバーのWordPressにプラグインをインストール必要あり。 具体的に何をやっているかは未調査。 参考サイト:  Cloudflare Automatic Platform Optimization AMP Real URL: Signed HTTP Exchanges(SXG)対応。 Google検索からのリンク先がキャッシュになり高速表

CentOS Stream 8 + Ruby + fontcustomをインストール

CentOS7でやった時のリライト版。思ったより時間が掛かった。 環境: CentOS Stream 8, ruby 2.6.7p197, fontcustom 2.0.0 参考サイト 【CentOS】SVGをWOFFなどのWebフォントへ変換するfontcustomをインストール GitHub | FontCustom/fontcustom: Generate custom icon webfonts from the comfort of the command line. fontcustomのGitHubページを参考にコマンド実行。powertoolsにfontforgeはあった。 # cd /opt/software/ # dnf install fontforge --enablerepo powertools # git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli && cd sfnt2woff-zopfli && make && mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff # git clone --recursive https://github.com/google/woff2.git && cd woff2 && make clean all && sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/ Rubyをインストール。 モジュール一覧で確認。 # dnf module list ruby CentOS7の時は2.6だったので冒険せず2.6をインストール。 # dnf module install ruby:2.6 バージョン確認 # ruby --version ruby 2.6.7p197 (2021-04-05 revision 67941) [x86_64-linux] fontcustomをインストール # gem install fontcustom エラー F

WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored

php-fpmが下記ログを出力してたので調査したときの覚書。 WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored 環境: CentOS Stream 8, nginx 1.20.1, php 7.4.6 設定ファイルに記載されている。 # less /etc/php-fpm.d/www.conf ; When POSIX Access Control Lists are supported you can set them using ; these options, value is a comma separated list of user/group names. ; When set, listen.owner and listen.group are ignored listen.acl_users = apache,nginx ;listen.acl_groups = acl_usersが有効の場合、 listen.ownerとlisten.groupが無視される。 CentOS8のdnf module listからPHPをインストールするとlisten.acl_usersが有効になっている。 CentOS7のremiリポジトリからインストールしたPHPはコメントアウトされていた。 ACL(POSIX Access Control Lists)とは 従来の3bitでのパーミッション管理(所有者・グループ・その他)を拡張したアクセス権限管理。 Windowsサーバー環境をLinuxサーバー環境へ置き換える場合に有用らしい。 カーネル2.6からサポート。 Linux でのアクセス制御リスト | セキュリティ強化ガイド | openSUSE Leap 15.3 現在のカーネルのバージョン確認 # uname -r ACLのアクセス権限を確認するにはgetfaclコマンドを使う # getfacl /run/php-fpm/www.sock getfacl: Removing leading '/' from absolute path names # file: run/php-fpm/www.sock # owner: root # group: ro

PHPでCSV出力。ダウンロードせず文字化けしてブラウザで表示される。

久しぶりにCSV出力を実装したときの覚書。 環境: nginx 1.20.1, PHP 7.4.6 CSVでダウンロードするように実装した後、データが多くなると文字化けしてダウンロードまでいかない現象が発生。 参考サイト php://outputが書き込みの途中で出力される - Qiita ※ コメントを読むこと ポイントは fputcsv前にheader関数を使いHTTPヘッダーを送信(設定)する。 参考:  PHP: header - Manual output_bufferingを十分な値に設定する。 参考:  PHP: 実行時設定 - Manual output_bufferingの詳細 output_bufferingは出力するための作業領域容量を設定する。 生成するCSVファイルが大きくなる可能性がある場合は、実ファイルとして保存する処理に変更する。 そもそも 出力バッファを使わずに実ファイルとして生成→readfile→unlinkする べき。 ファイル名は他の処理と被らないようにランダム生成。 どうしても出力バッファを使いたい場合はoutput_bufferingの設定を変更する。 # less /etc/php.ini output_buffering = 40960 再読み込み # systemctl reload php-fpm ちなみにPHP CLIは常にoutput_bufferingが0なのでコマンドで確認しても常に0。 # php -i | grep output ブラウザでphpinfo()を確認する必要がある。

Bootstap5のウェブページをブラウザで印刷したときのBreakpoint

ホームページを印刷するときになるべく見た目通りに印刷するにはどうしたらいいか調査したときの覚書。 環境: Google Chrome 92, Bootstrap 5.0.2 結局、ブラウザ印刷はB3用紙(364 x 515 mm)とCSSで定義することにした。 @page {   margin: 5mm;   size: 364mm 515mm; } ※ @pageのsizeはChromeとEdgeで有効。Firefoxは効かない。 size - CSS: カスケーディングスタイルシート | MDN 印刷したときの横幅(Bootstrap Breakpoint) B3(364 x 515 mm)の場合 B3の横幅364mmを(両端のマージン10mm引いて)pixelに変換すると ディスプレイ: (364㎜ - 10mm) * 0.04inch * 72dpi = 1020px 印刷: (364㎜ - 10mm) * 0.04inch * 96dpi = 1359px CSSの@media(BootstrapのBreakpoint)は72dpiで計算される。 この場合、BootstrapのLarge(lg)が適用。 その後、印刷用に横幅1359pxで再描画。 だからブラウザで印刷したときは見た目とBreakpintの位置に違和感がある。 (あくまでも実験した結果による推測です) A4(210 x 297 mm)の場合 ディスプレイ: (210㎜ - 10mm) * 0.04inch * 72dpi = 576px 印刷: (210㎜ - 10mm) * 0.04inch * 96dpi = 768px BootstrapのSmall(sm)が適用されて横幅768pxで印刷。 A3(297 x 420 mm)の場合 ディスプレイ: (297㎜ - 10mm) * 0.04inch * 72dpi = 827px 印刷: (297㎜ - 10mm) * 0.04inch * 96dpi = 1102px BootstrapのMedium(md)が適用されて横幅1102pxで印刷。 関連記事 Bootstrap3のWEBページを印刷してもいい感じに