vncserverの暗号化パスワードは解析できるから注意

  • 1
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

参考

パスワード値の確認(Linux)

バイナリ確認コマンド
xxd ~/.vnc/passwd
hexdump ~/.vnc/passwd
hd ~/.vnc/passwd
vimで開いてxxdに食わせる場合
vim ~/.vnc/passwd
:%!xxd
  • ubuntu16.04のtightvncserverのパスワードが解析できることを確認した。

パスワード値の確認(windows)

  • RealVNC

    • HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver\Password
  • TightVNC

    • HKEY_CURRENT_USER\Software\TightVNC\Server\Password
  • TigerVNC

    • HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4\Password
  • UltraVNC

    • C:\Program Files\UltraVNC\ultravnc.ini
    • Value: passwd or passwd2

解析

セキュリティ向上案

vncserverのパスワードは最長8文字。
どうしてもポート開放したい場合、以下が考えられる

  1. 通信ポートの変更。5900〜5909あたりは避ける
  2. xrdpを使う (user + passの認証となる)
  3. sshトンネリング (VPNもあり)
  4. ファイアウォールで接続元IP制限
  5. noVNC + nginxでDigest(Basic)認証をかける
  6. noVNC + nginx + 自己署名型証明書での制限
  7. vinoを使ってTLS非対応のクライアントからの接続を防ぐ
  8. RealVNCはPAM対応
  9. vncserverを起動させっぱなしにしない
vnc60min.sh
pgrep Xtightvnc
if [ $? -eq 0 ];then
    echo "vncserverがすでに起動しています。"
    exit 0
fi

vncserver -geometry 1200x900 -depth 15 :1
echo "waiting 60 min"
sleep 3600
vncserver -kill :1

合わせて読みたい