Upgrade to Pro — share decks privately, control downloads, hide ads and more …

タブレットLinuxで暗号化ファイルシステム(dm-crypt)をアンロック

 タブレットLinuxで暗号化ファイルシステム(dm-crypt)をアンロック

Kenichiro MATOHARA

October 14, 2023
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. タブレットLinuxで
    暗号化ファイルシ
    ステム(dm-crypt)をア
    ンロック
    Kenichiro Matohara(matoken)
    1

    View full-size slide

  2. matoken
    南隅から参加(鹿児島の右下)
    好きなLinuxディストリビューションはDebian
    鹿児島らぐもやってます → Next 2023-10-22(sun)
    map: © OpenStreetMap contributors
    Kenichiro Matohara(matoken) https://matoken.org
    https://inari.opencocon.org/@matoken
    https://www.kagolug.org/
    2

    View full-size slide

  3. 少し前にWindowsタブレット入手
    Fujitsu ARROWS Tab Q508/SE
    CPU Atom x7-Z8700, RAM4GB, eMMC 128GB, screen
    10.1inch/WUXGA(1920×1200), 防水防塵
    IPX5/IPX7/IPX8/IP5X
    イオシスにて7k程
    https://iosys.co.jp/review/arrowstab_q508se
    3

    View full-size slide

  4. mobian で遊んでいたけど日本語入力がうまく行かずDebian に変
    更(レジュームや画面回転が遅くなった?)
    dm-crypt(LUKS) で暗号化fs
    再起動時に有線Keyboard が無いと起動できないな?外出時に
    困る……
    🤔
    https://www.mobian.org/
    モバイル向けLinuxディストリビューションのMobianを
    Widownsタブレットで試す
    4

    View full-size slide

  5. bios on screen keyboard
    GRUB 編集は可能だけど,Linux 起動が始まると利用不可
    5

    View full-size slide

  6. dm-crypt
    Linux向けの暗号化ファイルシステムLUKS(Linux Unified Key
    Setup ) の実装
    基本的に /boot(とefi) 以外を暗号化
    パスフレーズや鍵ファイルを使ってアンロック(複数登録可能)
    AES-NI のあるcpu(Core2Duo/GeodeLX)+ssd でデスクトッ
    プ用途だと体感で暗号化fs無しとほぼ変わらなく
    (それ以前にdm-crypt + eCryptfs + HDD で運用していて少
    し重かった……)
    自分の持ち運びPCやリモートの端末は有効にしている
    6

    View full-size slide

  7. dm-crypt unlock
    キーボードでパスフレーズ入力
    ssh(dropbear)経由(有線LANが必要)
    USBメモリに鍵を保存して起動時に接続
    7

    View full-size slide

  8. 以下未検証
    BIOS on screen Keyboard 利用→GRUBには使えるがLinux
    起動後は利用不可(GRUBからkernel引数に?)
    bluetooth HID 利用(initramfsに組み込み)
    TPM に鍵を格納(Windows やUbuntu 23.10のFDE で採用)
    PostmarketOS 由来のosk-sdl(on screen keyboard) を利
    用(initramfs に組み込み) → 今回試した
    8

    View full-size slide


  9. 再起動前にワンタイムキーをdm-crypt に登録してそれにより
    一度だけパスフレーズ無しで起動できるものが
    リモートサーバのメンテナンスに便利そう
    Mark Collins / passless-reboot · GitLab
    https://gitlab.com/Marcool04/passless-boot
    9

    View full-size slide

  10. osk-sdl
     Debian にはpkg あり
    https://gitlab.com/postmarketOS/osk-sdl
    Lightweight On-Screen-Keyboard
    based on SDL2
    This keyboard is used to unlock the
    encrypted root partition in
    postmarketOS and other distributions.
    10

    View full-size slide

  11. package version
    https://qa.debian.org/cgi-bin/madison.cgi?
    package=osk-sdl&table=debian&a=&c=&s=#
    $ rmadison -u udd osk-sdl
    osk-sdl | 0.62.1-2 | bullseye | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, pp
    osk-sdl | 0.67.1-2 | bookworm | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, pp
    osk-sdl | 0.67.1-3 | trixie | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el,
    osk-sdl | 0.67.1-3 | sid | source, amd64, arm64, armel, armhf, i386, mips64el, ppc64el,
    https://qa.debian.org/cgi-bin/madison.cgi?
    package=osk-sdl&table=ubuntu&a=&c=&s=#
    $ rmadison -u https://qa.debian.org/cgi-bin/madison.cgi?table=ubuntu osk-sdl
    osk-sdl | 0.62.1-1 | hirsute/universe | source, amd64
    osk-sdl | 0.62.1-2 | impish/universe | source, amd64
    osk-sdl | 0.66-4 | jammy/universe | source, amd64
    osk-sdl | 0.67-2 | kinetic/universe | source, amd64
    osk-sdl | 0.67.1-2 | lunar/universe | source, amd64
    osk-sdl | 0.67.1-3 | mantic/universe | source, amd64
    11

    View full-size slide

  12. osk-sdl 導入
    $ sudo apt install osk-sdl
    12

    View full-size slide

  13. osk-sdl 設定
    crypttab での設定
    grub での設定
    どちらか片方の設定が必要
     "Enable osk-sdl [SOLVED] - Debian User Forums"
    https://forums.debian.net/viewtopic.php?
    t=152140
    13

    View full-size slide

  14. disk 状況
    $ lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
    mmcblk0 179:0 0 116.5G 0 disk
    ├─mmcblk0p1 179:1 0 512M 0 part /boot/efi
    ├─mmcblk0p2 179:2 0 488M 0 part /boot
    └─mmcblk0p3 179:3 0 115.5G 0 part
    └─mmcblk0p3_crypt 254:0 0 115.5G 0 crypt
    ├─tab--vg-root 254:1 0 108G 0 lvm /
    └─tab--vg-swap 254:2 0 7.5G 0 lvm [SWAP]
    mmcblk0boot0 179:256 0 4M 1 disk
    mmcblk0boot1 179:512 0 4M 1 disk
    14

    View full-size slide

  15. crypttab 設定例
    /etc/crypttab
    === オプション設定
    /etc/osk.conf 見た目などの設定
    === initramfs 更新
     osk-sdl の設定に失敗すると起動がうまく行かなくなったりす
    るのでUSB Linux などを用意しておくと安心
    #mmcblk0p3_crypt UUID=feb5507b-2cb5-43ea-b2c8-69b69d9e86e9 none luks,discard
    mmcblk0p3_crypt UUID=feb5507b-2cb5-43ea-b2c8-69b69d9e86e9 mmcblk0p3_crypt \
    luks,initramfs,keyscript=/usr/share/initramfs-tools/scripts/osk-sdl-keyscript,discard
    $ sudo update-initramfs -u
    15

    View full-size slide

  16. initrd サイズ比較
    osk-sdlなし
    osk-sdlあり
    倍ほどに!
    $ ls -s /boot/initrd.img-`uname -r`
    63651 /boot/initrd.img-6.1.0-13-amd64
    $ ls -s /boot/initrd.img-`uname -r`
    126097 /boot/initrd.img-6.1.0-13-amd64
    16

    View full-size slide

  17. osk-sdl でdm-crypt unlock
    17

    View full-size slide

  18. gdm3 osk でlogin
    18

    View full-size slide

  19. gsd-keyboard & Onboard
    19

    View full-size slide

  20. まとめ
    タブレットLinux に暗号化fs を導入
    osk-sdl をinitramfs に組み込むことでon screen keyboard
    でdm-crypt のパスフレーズ入力が可能に
    タブレット単体でも起動できるように :)
    荷物が減らせる?
    でもterminal によく居るので物理キーボードは欲しいところ
    もっといい方法もありそう
    20

    View full-size slide

  21. 発表時のツッコミなど
    Android端末をKeyboardとして使うといいのでは
    に鍵ファイルを格納す
    れば忘れることがないのでは
    マイコンやRaspberry Pi等でUSB HID を喋らせてパスフレーズを
    入力
    鍵型の物も
    は でssh 経由のunlock
    ができるらしい
    Keyring に付けるようなタイプのUSBメモリ
    1 2
    mkinitcpio-systemd-tool Wireless
    21

    View full-size slide

  22. 奥付
    発表
    :revdate:
    発表者
    利用ソフトウェア
    ライセンス
    東海道らぐ名古屋 2023年10月オフな集まり
    Kenichiro Matohara(matoken)
    Asciidoctor Reveal.js
    CC BY 4.0
    22

    View full-size slide