[IPython-dev] "Unsigned Message" error in a forking kernel manager

Jason Grout jason-sage at creativetrax.com
Tue May 29 19:04:14 EDT 2012


On 5/29/12 3:36 PM, Fernando Perez wrote:
> Hi Jason,
>
> On Tue, May 29, 2012 at 1:08 PM, Jason Grout
> <jason-sage at creativetrax.com>  wrote:
>> Is there a key or something that I should be
>> doing to "sign" my messages?  If someone could give this a quick
>> look-over and see if there are any obvious problems, that would be great.
>
> Yes, kernels sign their messages, to make it harder for other
> processes in the same machine to send them arbitrary commands
> (remember, our protocol is openly explained, so without this any
> ipython process would basically be a user shell listening on a  port
> for the first clown to say 'rm -rf $HOME').  See the code in
> zmq/session.py around line 423 for the signing, and the key is a
> member of the Session class which you can change/reassign (which will
> trigger a recomputation of the auth field used to sign the messages,
> see line 298).

Thanks.  I remember being a part of the original authentication 
conversation last year (we implemented the same thing for the sage cell 
server).  The question is: how do I get the key the kernel expects 
messages to be signed with?  Should I be initializing the kernel with 
that?  If so, how should I initialize a kernel to use a specific key for 
its sessions?  It seems that the initializing code is in the KernelApp 
class in kernelapp.py.  If I understand traits correctly, the various 
*_port traits can be initialized by passing in keyword arguments into 
the constructor, and that is how the ports are being correctly 
initialized in my gist.  However, the key for the session seems to be 
only initialized if I read a connection file (in load_connection_file). 
  So a more specific question is: can I initialize a session key using 
embed_kernel using just the arguments to embed_kernel?  Or equivalently, 
using just initialization arguments to KernelApp, can I set the kernel's 
session key?

Thanks,

Jason



More information about the IPython-dev mailing list