From owner-soc-status@FreeBSD.ORG Mon Jul 23 16:22:30 2012 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4ED06106564A for ; Mon, 23 Jul 2012 16:22:30 +0000 (UTC) (envelope-from gpf.kira@gmail.com) Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com [209.85.214.182]) by mx1.freebsd.org (Postfix) with ESMTP id 14CE08FC0C for ; Mon, 23 Jul 2012 16:22:30 +0000 (UTC) Received: by obbun3 with SMTP id un3so12593916obb.13 for ; Mon, 23 Jul 2012 09:22:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=8BjcNgz0cJAzaXPVPFW2tOXxzHQUcZ7qE0L5JFyiegY=; b=Irahkv2lmiKOiR+h2ClLOxgwTWZXgSyRPl4i2AycR6iuNmgunZ6F/Y1nGWrKFXzbXf 8ngc0rgPQqSPGV83hce7HTpdRd97Ji0dHjr+FsvUPLMCXAMMOFaHnZskTq7+xQk0hqno 3aSWppvPeuGj9Lk3DTbirf6Y5lHWN+aMDXhL5EQT/4QUj/6dLvH+EcvEY67hjt3P53az cfJRtbrXbFdZkrr6nJRh23Ud13Rr5AHTRXU6jSyen1tnUjJeKb/NQIKvj9rOR0N63Vn3 zACFrLSq+ULvaQ9A7yj0xd28igQe6wB2U9tDGamO9e7LyRHfosauYYROaDeDdpodEvGh kheg== MIME-Version: 1.0 Received: by 10.182.74.68 with SMTP id r4mr21813638obv.31.1343060549532; Mon, 23 Jul 2012 09:22:29 -0700 (PDT) Received: by 10.182.108.38 with HTTP; Mon, 23 Jul 2012 09:22:29 -0700 (PDT) Date: Mon, 23 Jul 2012 19:22:29 +0300 Message-ID: From: Efstratios Karatzas To: soc-status@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: Kernel Level File Integrity Checker report #9 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Jul 2012 16:22:30 -0000 During week #9: * .pefs.checksum is signed during /sbin/pefs 'addchecksum' action. Signature is placed in .pefs.signature and public key in .pefs.pkey. * .pefs.checksum's signature is verified during /sbin/pefs 'verify' action, using the public key. For the moment, only DSA & sha1 digest are supported and used by default. * Immutable flag schg is now required for all files that need integrity checking. /sbin/pefs 'addchecksum' action has a new option to turn on schg flag for any file that doesn't have schg turned on already. In kernel, when a vnode is first looked up in our checksum index tables, we check if schg is turned on. If not, we deny reading access to that vnode. Next tasks on the TODO list: * Code /sbin/pefs 'nameid' that will return the name id (MAC) for a file in pefs filesystem. This identifier is used instead of inode number when looking up files in .pefs.checksum so it should prove useful when user has to decipher cryptic error messages. * Offer more options for signing algorithm & digest. Support both DSA & RSA and all digests that can be used by these algorithms and are supported by the openssl library. * .pefs.checksum's integrity should be verified by the kernel driver during VFS_MOUNT(). Therefore, add another option to /sbin/pefs 'mount' that will provide the driver with the location of .pefs.pkey which should not be found inside the pefs filesystem. On the other hand, .pefs.signature is expected to be found in pefs root directory, alongside .pefs.checksum. -- Efstratios "GPF" Karatzas