all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: emacs-devel@gnu.org
Subject: Re: Wherein I argue for the inclusion of libnettle in Emacs 24.5
Date: Fri, 07 Feb 2014 06:54:39 -0500	[thread overview]
Message-ID: <87y51nb0jk.fsf@lifelogs.com> (raw)
In-Reply-To: m3lhxnthns.fsf-ueno@gnu.org

On Fri, 07 Feb 2014 18:07:35 +0900 Daiki Ueno <ueno@gnu.org> wrote: 

DU> Ted Zlatanov <tzz@lifelogs.com> writes:
>> What do you think happens when you open a .gpg file using GnuPG
>> externally, even disregarding the OS channels traveled?  That data is
>> certainly not safe from defadvice.

DU> Didn't I ever say:

DU> - Once an attacker successfully takes over your desktop session, he can
DU>   do almost everything.  We can't do much on that situation.  Why don't
DU>   you lock the screen before leaving?

We could at least try to process data in a place where ELisp can't
access it.

DU> - More possible threat is inspecting persistent data (e.g. core files on
DU>   a disk attached to a stolen note PC).  GnuPG is designed to be secure
DU>   against this, using "secure core".

I don't agree with the EPA/EPG coupling to GnuPG but admire the design
of both sides.  GnuPG is a great program that, due to the client/agent
design, is hard to use securely as an API.  As proof, consider the Java
libraries to implement OpenPGP internally (BouncyCastle).  Similar
situation in Go (http://godoc.org/code.google.com/p/go.crypto/openpgp).

Is Emacs so different from those platforms, given applications like Gnus
and Magit and eww?

DU> - On the other hand, Emacs copies small strings around.  If passwords
DU>   (normally not too long) are managed poorly in Emacs, they might appear
DU>   repeatedly in a core file, when it crashes.

Right, regardless of EPA/EPG's behavior, you *still* need passwords in
the clear to open an IMAP connection, for instance.  I feel that, unless
we wish to blame the user for not locking their desktop, Emacs should at
least try to protect such passwords in its own "secure core."  It's
surely possible and, I honestly believe, a worthy goal.  I think for
that goal to happen *some day* we need the crypto primitives
GnuTLS/libnettle/libhogweed provide, so we don't have to write our own.

>> Emacs as a whole could use a way to hide "data not intended for direct
>> user inspection" better, and provide for a "tainting" trace of data
>> (to use the Perl term).

DU> Interesting.  Any prior art on that area?  I haven't heard the word
DU> "tainting" used in that way.  Isn't it for preventing untrusted data
DU> being injected to, say, SQL?

Here I meant it in the sense of "knowing when a data token has been
touched by a Lisp function" with the assumption that Lisp code is
inherently unsafe.

(Perl's "taint" traces data obtained externally.  It's remarkable
because it imposes some security on top of a very liberal language, a
lot like Lisp in fact.  See http://perldoc.perl.org/perlsec.html for
further details.)

Ted




  reply	other threads:[~2014-02-07 11:54 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-03 22:36 Wherein I argue for the inclusion of libnettle in Emacs 24.5 Lars Ingebrigtsen
2014-02-04  3:21 ` Stefan Monnier
2014-02-04 13:07   ` Ted Zlatanov
2014-02-04 14:44     ` Stephen J. Turnbull
2014-02-04 18:36       ` Ted Zlatanov
2014-02-04 22:44   ` Lars Ingebrigtsen
2014-02-05  2:28     ` Stefan Monnier
2014-02-05  2:39       ` Lars Ingebrigtsen
2014-02-05  7:00       ` Ted Zlatanov
2014-02-05  8:13         ` Stephen J. Turnbull
2014-02-05 13:41           ` Ted Zlatanov
2014-02-05 15:50             ` andres.ramirez
2014-02-05 17:00             ` chad
2014-02-05 18:55               ` Ted Zlatanov
2014-02-06  5:03             ` Stephen J. Turnbull
2014-02-06 11:49               ` Ted Zlatanov
2014-02-06 13:03                 ` Stefan Monnier
2014-02-06 14:28                   ` Ted Zlatanov
2014-02-06 15:05                 ` Stephen J. Turnbull
2014-02-06 15:54                   ` Ted Zlatanov
2014-02-07  2:06                     ` Stephen J. Turnbull
2014-02-07  6:51                       ` David Kastrup
2014-02-07  7:15                         ` Stephen J. Turnbull
2014-02-07  8:53                           ` David Kastrup
2014-02-07 10:00                             ` Stephen J. Turnbull
2014-02-07 10:49                               ` David Kastrup
2014-02-07 20:43                                 ` Stephen J. Turnbull
2014-02-07 21:42                                   ` Ted Zlatanov
2014-02-07 22:23                                     ` Stephen J. Turnbull
2014-02-07 15:30                               ` Ted Zlatanov
2014-02-07  9:07                     ` Daiki Ueno
2014-02-07 11:54                       ` Ted Zlatanov [this message]
2014-02-08  8:11                         ` Daiki Ueno
2014-02-08 16:59                           ` Ted Zlatanov
2014-02-05  8:19         ` Daiki Ueno
2014-02-04 13:10 ` Ted Zlatanov
2014-02-04 16:27   ` Paul Eggert
2014-02-04 18:32     ` Ted Zlatanov
2014-02-04 19:04       ` Paul Eggert
2014-02-04 20:11         ` Ted Zlatanov
2014-02-04 21:46           ` Paul Eggert
2014-02-04 22:44             ` Ted Zlatanov
2014-02-04 22:36           ` Lars Ingebrigtsen
2014-02-05  5:11             ` Daiki Ueno

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y51nb0jk.fsf@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.