aboutsummaryrefslogtreecommitdiff
path: root/devel/p5-Penguin
diff options
context:
space:
mode:
authorTrevor Johnson <trevor@FreeBSD.org>2004-04-10 17:11:02 +0000
committerTrevor Johnson <trevor@FreeBSD.org>2004-04-10 17:11:02 +0000
commitf844f89eae41ff16153dc2b25c0706c6dffbd205 (patch)
tree5c623b2396dd5d45381df003d7c24921239c9eaa /devel/p5-Penguin
parent33c7fcfd70a00aa38fba01e087d4a6c3285ae5fb (diff)
downloadports-f844f89eae41ff16153dc2b25c0706c6dffbd205.tar.gz
ports-f844f89eae41ff16153dc2b25c0706c6dffbd205.zip
Notes
Diffstat (limited to 'devel/p5-Penguin')
-rw-r--r--devel/p5-Penguin/pkg-descr99
1 files changed, 4 insertions, 95 deletions
diff --git a/devel/p5-Penguin/pkg-descr b/devel/p5-Penguin/pkg-descr
index 2c463078687a..9d0f53f0bcf5 100644
--- a/devel/p5-Penguin/pkg-descr
+++ b/devel/p5-Penguin/pkg-descr
@@ -1,95 +1,4 @@
-From the FAQ:
-
-5. 'Saaaay, what _is_ the design of Penguin?'
-
- Glad you asked.
-
- Consider two machines, foo and bar. A user on foo (or perhaps
- a program on foo) wishes to execute a program on machine bar.
- However, imagine that the people running bar don't want just
- anyone running code on their machine for security reasons.
- This is the normal case on the Internet, and one which the
- World Wide Web attempts to emulate with HTTP and CGI.
-
- Normally, there is no well-known channel for foo to transmit
- code to bar. Further, there is no provision for the code to
- undergo verification after transmission. Too, there is no
- well-defined way for bar to ensure that foo's code does not
- attempt to perform insecure or damaging operations.
-
- Penguin attempts to solve these issues while making sure the
- code language maintains some acceptable degree of sufficiency
- and power.
-
- Using Penguin, the user/program on foo 'digitally signs' the
- code that's earmarked for delivery to bar. The signature
- encodes the code in such a way that it is impossible to alter
- the code or deny that the signer signed it.
-
- The code is then wrapped up into a packet and transmitted
- through a 'channel' to a Penguin process running on machine
- bar. The channel's protocol layer is abstracted away
- enough that it becomes unimportant; Penguin code can just
- as easily be delivered through SMTP or AOL Mail as through
- TCP/IP, DECNet, AppleTalk, whatever.
-
- The Penguin process on bar unwraps the packet, which contains
- further verification and checksum information, and then
- 'digitally unsigns' the code, a process which provides the
- code in 'clear' form while telling the receiver who digitally
- signed it.
-
- The receiver then cross-references the signer's identity with
- a list of rights that the receiver associates with the signer,
- reverting to a set of default rights if the signer is unknown
- or unlisted.
-
- A safe compartment is then created, populated with the
- functions allowed to the signer, and told to limit the
- operations it can perform to only those permitted to the
- signer.
-
- The code is then compiled within that safe compartment. If
- it attempts to do something which the signer is not allowed
- to do, or if it attempts to call a function not permitted
- to the signer, the compartment immediately traps the operation
- and throws the code away before it can execute. If the code
- uses no unsafe or illegal operations, then it executes and
- produces a result.
-
- The code executing side then becomes the master in the
- transaction, and can send code to the original sender,
- send the return value back in a data packet, and so forth.
- The process repeats as necessary until both parties are
- done; the channel then closes, and the Penguin transaction is complete.
-
- The basic sentiment behind the idea of 'identity' being
- correlated to 'rights' in the receiver is that in signing
- the code, the signer commits her identity and her reputation
- on the correct operation of the code.
-
- 'highly trustable' signers (as one might imagine Larry Wall,
- Randal Schwartz, and Tom Christiansen to be) might be assigned
- very high levels of trust and equivalent degrees of 'rights',
- so that programs they sign can perform very complex and
- interesting operations on your computer. By the same token,
- paranoid sites or those wishing isolation could assign zero
- rights to everyone except for a select (perhaps internal) few.
-
- Part of the 'rights' given to signers include possibly specialized
- functions that encapsulate the functionality of extremely dangerous
- operations. For instance, a store opening up on the Internet might
- put up a Penguin server which put functions called 'list_items'
- and 'buy_item()' into the limited compartments all users get.
- 'list_items' might open up a file on the store's machine, read
- the contents, and spit them out -- an operation which, if allowed
- in the general case, would clearly breach security. However,
- by creating a specialized function, the security concern is
- removed, and by letting potential customers know of the function,
- the power and ease of use are kept high.
-
- Niggling but important technical issues currently being wrestled
- with include the way that foreign functions are registered into
- the namespace, the construction of a foreign function framework
- so that the names and function of the functions are well-known,
- and a superior-than-current 'digital signature' method.
+The Penguin module provides a framework within which a user on one host
+electronically signs a piece of Perl code, sends it to another host where the
+signature is checked and the code is executed with privileges that are
+particular to that user.