浏览代码

Added build-time kernel modules signatures verification

Maxim Kammerer 12 年之前
父节点
当前提交
8fd38acd2f
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      src/root/helpers/gen-kernel

+ 16 - 0
src/root/helpers/gen-kernel

@@ -90,6 +90,22 @@ elif [ "${cmd}" = modules ]; then
         fi
     done
 
+    # Verify all module signatures
+    echo "Verifying installed modules signatures"
+    sigkey="`openssl x509 -inform der -in ${sb_kmod}.der -noout -text \
+             | sed -n '/\<X509v3 Subject Key Identifier:/{n; s/^ *//p}'`"
+    find ${mainmod} -type f -name '*.ko' | while read mod; do
+        mod_sigkey="`modinfo -F sig_key ${mod}`"
+        mod_sighash="`modinfo -F sig_hashalgo ${mod}`"
+        if [ -z "${mod_sigkey}" ]; then
+            echo "${mod} is unsigned"
+            exit 1
+        elif [ "${mod_sigkey}" != "${sigkey}"  -o  "${mod_sighash}" != "${sighash}" ]; then
+            echo "${mod} is signed with unexpected sigkey/sighash"
+            exit 1
+        fi
+    done
+
     exit
 fi