Security
通過管道傳輸的數據是否保密?
我閱讀了以下問題(Shell Script mktemp, what’s the best method to create temporary named pipe?)但我想知道是否最好使用臨時命名管道在程序之間傳輸敏感數據而不是未命名/匿名 shell管道?
具體來說,我對這種方法是否感興趣(來自http://blog.kdecherf.com/2012/11/06/mount-a-luks-partition-with-a-password-protected-gpg-encrypted-key -using-systemd/ ) 是安全的:
# Open the encrypted block device gpg --batch --decrypt $key_file 2>/dev/null | sudo $CRYPTSETUP -d - luksOpen $mount_device $key >& /dev/null || exit 3
Luks Keyfile 在哪些情況下會被劫持?
您建議的命令行是安全的。
在所有其他條件相同的情況下,“普通”匿名管道(使用
pipe(2)
系統呼叫或 shell 熟悉的|
語法創建)總是比命名管道更安全,因為系統外部的其他東西獲取其中任何一個的方法更少管的末端。對於普通的匿名管道,如果您已經擁有管道的文件描述符,則只能從管道讀取或寫入,這意味著您必須是創建管道的程序,或者必須繼承它(直接或間接)來自該程序,或者某個具有文件描述符的程序故意通過套接字將其發送給您。對於命名管道,如果您還沒有一個文件描述符,您可以通過按名稱打開它來獲取管道的文件描述符。在像 Linux 這樣的作業系統上,
/proc
總是有可能另一個程序可以窺視/proc/pid/fd
屬於不同程序的訪問文件描述符,但這並不是管道(無論哪種類型)所獨有的,因此它們可以窺視另一個程序程序的記憶體空間。“窺視者”必須在與主題或 root 相同的使用者下執行,因此這不是安全問題。