[#29932] Happy 2002! — "Rich Kilmer" <rich@...>

Happy New Year from Washington DC!

24 messages 2002/01/01
[#29938] RE: Happy 2002! — "James Britt (rubydev)" <james@...> 2002/01/01

>

[#29954] Re: Happy 2002! — Dinakar <Desai.Dinakar@...> 2002/01/01

"James Britt (rubydev)" wrote:

[#29991] Execing command with backquotes — mail02@... (Frank Benoit)

Hi

13 messages 2002/01/01

[#30101] Ruby Weekly News rdf feed now available — Dave Thomas <Dave@...>

12 messages 2002/01/03

[#30191] chomp for arrays? — dempsejn@...

Hi All,

25 messages 2002/01/04
[#30238] Re: chomp for arrays? — adamspitz@... (Adam Spitz) 2002/01/04

How about something like this?

[#30248] Re: chomp for arrays? — Massimiliano Mirra <list@...> 2002/01/05

On Sat, Jan 05, 2002 at 04:53:14AM +0900, Adam Spitz wrote:

[#30357] snippet exchange (was: Re: Re: chomp for arrays?) — David Alan Black <dblack@...> 2002/01/06

Hello --

[#30369] Re: snippet exchange (was: Re: Re: chomp for arrays?) — "Mark Hahn" <mchahn@...> 2002/01/06

A daydream of mine is a "super-require" that if the file was not found, the

[#30401] Re: snippet exchange (was: Re: Re: chomp for arrays?) — Dan Sugalski <dan@...> 2002/01/07

At 06:31 AM 1/7/2002 +0900, Mark Hahn wrote:

[#30195] should I use ruby instead of perl — vekkuli ketkutin <qvyht@...>

simple question...

25 messages 2002/01/04

[#30265] Structs and Marshalling — Albert Wagner <alwagner@...>

I keep getting myself tripped up when I Marshal Struct objects. I typically

18 messages 2002/01/05
[#30281] Re: Structs and Marshalling — ts <decoux@...> 2002/01/05

>>>>> "A" == Albert Wagner <alwagner@tcac.net> writes:

[#30334] Re: Structs and Marshalling — Albert Wagner <alwagner@...> 2002/01/06

On Saturday 05 January 2002 06:25 am, you wrote:

[#30473] Re: [ruby-talk:30334] Re: Structs and Marshalling — matz@... (Yukihiro Matsumoto) 2002/01/07

Hi,

[#30528] Possible bug with struct.c (Re: Re: Structs and Marshalling) — ts <decoux@...> 2002/01/07

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#30546] Re: Possible bug with struct.c (Re: Re: Structs and Marshalling) — nobu.nokada@... 2002/01/07

At Tue, 8 Jan 2002 02:36:12 +0900,

[#30274] The Ruby Way — "Conrad Schneiker" <schneiker@...>

Hi,

31 messages 2002/01/05
[#30275] RE: The Ruby Way — "Curt Hibbs" <curt@...> 2002/01/05

> From: Conrad Schneiker [mailto:schneiker@jump.net]

[#30276] Re: The Ruby Way — "Curt Hibbs" <curt@...> 2002/01/05

That was supposed to say "how do I implement a hash with duplicate keys?"

[#30320] Sorting a Hash by value of integer stored in the Hash — Michael Joner <finalfrontier@...>

I have a program which creates a Hash array. The ultimate result is a

14 messages 2002/01/06

[#30327] one liner / overriden class repository — "Jack Dempsey" <dabigdemp@...>

Why aim if not high? :-)

15 messages 2002/01/06

[#30366] class name reported differently in different contexts — Joel VanderWerf <vjoel@...>

30 messages 2002/01/06
[#30380] Re: class name reported differently in different contexts — "Chr. Rippel" <chr_news@...> 2002/01/06

[#30496] Re: class name reported differently in different contexts — <ale@...> 2002/01/07

On Mon, 7 Jan 2002, Chr. Rippel wrote:

[#30372] [ANN] Invitation to join LotY (Language of the Year) project, 2002: learning Haskell — David Alan Black <dblack@...>

Dear fellow programmers,

10 messages 2002/01/06

[#30431] Re: snippet exchange (was: Re: Re: chomp for arrays?) — "Jack Dempsey" <dabigdemp@...>

The way i was thinking of this working would be this: someone has heard of a

14 messages 2002/01/07

[#30461] Re: the [ruby-talk] is gone? — "Jack Dempsey" <dabigdemp@...>

Hi Matz,

13 messages 2002/01/07

[#30494] Segfault with druby and fork — Michael Witrant <mike@...>

Hello,

24 messages 2002/01/07
[#30510] Re: Segfault with druby and fork — matz@... (Yukihiro Matsumoto) 2002/01/07

Hi,

[#30543] Re: Segfault with druby and fork — Michael Witrant <mike@...> 2002/01/07

On Tue, 8 Jan 2002 00:37:14 +0900

[#30640] Re: Segfault with druby and fork — matz@... (Yukihiro Matsumoto) 2002/01/08

Hi,

[#30644] An Update on the FreeRIDE Project — "Curt Hibbs" <curt@...> 2002/01/08

I wanted to give everyone an update on where we are with the FreeRIDE

[#30655] Re: An Update on the FreeRIDE Project — bobx@... (Bob) 2002/01/08

Documentation should also be a big(?) concern. I am new to Ruby as

[#30539] RDoc Alpha-6 available — Dave Thomas <Dave@...>

37 messages 2002/01/07

[#30737] rpkg 0.1 (long) — Massimiliano Mirra <list@...>

<yaaawn>

16 messages 2002/01/10

[#30866] Dir.entries have no home — Ron Jeffries <ronjeffries@...>

Chet and I were writing a little code manager yesterday and we wrote

38 messages 2002/01/11

[#30920] MetaRuby : RubySchema.rb howto? — Tobias Reif <tobiasreif@...>

Hi,

15 messages 2002/01/11
[#30953] Re: MetaRuby : RubySchema.rb howto? — Mathieu Bouchard <matju@...> 2002/01/12

[#30969] Re: MetaRuby : RubySchema.rb howto? — Tobias Reif <tobiasreif@...> 2002/01/12

Mathieu Bouchard wrote:

[#30949] Another suggestion for FreeRIDE — ptkwt@...1.aracnet.com (Phil Tomson)

Based on some discussions over at comp.lang.python...

13 messages 2002/01/12

[#31017] Why I think Ruby will eventually be more popular than Python — gandy@... (Thomas Gandy)

Ruby and Python both play in the same niche: they're both Object

9 messages 2002/01/12

[#31080] Best way for platf. independent compression? — Massimiliano Mirra <list@...>

Currently, rpkg builds packets by tar'ring and gzip'ping the source

25 messages 2002/01/13
[#31112] Re: Best way for platf. independent compression? — Chris Gehlker <gehlker@...> 2002/01/14

On 1/13/02 1:42 PM, "Massimiliano Mirra" <list@chromatic-harp.com> wrote:

[#31153] Re: Best way for platf. independent compression? — Massimiliano Mirra <list@...> 2002/01/14

On Mon, Jan 14, 2002 at 12:08:58PM +0900, Chris Gehlker wrote:

[#31085] Small Methods - a ramble — Ron Jeffries <ronjeffries@...>

I noticed in some code that Chet and I were writing that, as Smalltalkers, we tend to write really

45 messages 2002/01/13
[#31170] Re: Small Methods - a ramble — Brian Marick <marick@...> 2002/01/14

Ron Jeffries wrote:

[#31099] a wishlist for ruby 2.0 — Mathieu Bouchard <matju@...>

49 messages 2002/01/14
[#31237] Re: a wishlist for ruby 2.0 — matz@... (Yukihiro Matsumoto) 2002/01/15

Hi,

[#31276] Re: a wishlist for ruby 2.0 — Mathieu Bouchard <matju@...> 2002/01/15

[#31251] Swig Ruby documentation mods. — Hugh Sasse Staff Elec Eng <hgs@...>

I have been trying to use Swig Ruby recently, and in attempting to

10 messages 2002/01/15

[#31262] grabbing stuff from web pages — Ron Jeffries <ronjeffries@...>

Part of my web site has recommended books. I use the cover jpegs from

11 messages 2002/01/15

[#31275] how to get all the reserved words? — Tobias Reif <tobiasreif@...>

Hi;

16 messages 2002/01/15

[#31289] memory usage question — "Mark Hahn" <mchahn@...>

I need to write a script that will use a hash with 4 million strings of 16

30 messages 2002/01/15

[#31311] Vote for Windows Installer packages — Andrew Hunt <andy@...>

14 messages 2002/01/15

[#31404] Re: A question on Ruby Threads — "Tobias DiPasquale" <anany@...>

In article <a242re$gop@ftp.ee.vill.edu>, "Chris Gehlker"

15 messages 2002/01/16

[#31424] A few words on threads — "Avdi B. Grimm" <avdi@...>

Warning: many strong personal opinions and broad

14 messages 2002/01/16

[#31442] #59 Add fsync method to IO class — hensleyl@... (Leslie Hensley)

Adding fsync and fdatasync methods to the IO class will allow Ruby to

17 messages 2002/01/16

[#31512] Hello! Array sub classing? — Markt <markt@...>

Hello Ruby lovers!

23 messages 2002/01/17

[#31533] Possible bug in Mac version? — Dave Thomas <Dave@...>

16 messages 2002/01/17

[#31564] The first alternative RDoc template — Dave Thomas <Dave@...>

22 messages 2002/01/17

[#31658] dynamic method creation — "Albert L. Wagner" <alwagner@...>

I have a need to dynamically create methods with method names

16 messages 2002/01/18

[#31711] Re: zip on Linux — "Mirabai Neumann" <webmaster@...>

19 messages 2002/01/19

[#31727] Keeping track of multiple Ruby discussion sites. — "James Britt (rubydev)" <james@...>

Recently, Massimiliano Mirra wrote:

13 messages 2002/01/19

[#31735] installing mod_ruby --> seg fault in ruby-rdtool — craig@...

At least that's where core dumped. FreeBSD/Alpha (4.4-RELEASE). New to

16 messages 2002/01/19

[#31741] $_ as default parameter for a function — thomass@... (Thomas)

I'd like the fragment below to produce "blah blah", but it doesn't

15 messages 2002/01/19

[#31882] RANT: Ruby GUI API — Sean Russell <ser@...>

I started this rant in another thread, where it was way OT, so I'm moving

60 messages 2002/01/21

[#31937] Re: RANT: Ruby GUI API — Ben Crowell <crowell02@...>

M. Mirra wrote:

28 messages 2002/01/22
[#31948] Re: RANT: Ruby GUI API — John Carter <john.carter@...> 2002/01/22

On Tue, 22 Jan 2002, Ben Crowell wrote:

[#32056] Ruby Publishing Framework v0.5.0 — Bryan Murphy <bryan@...>

Ruby Publishing Framework

15 messages 2002/01/22

[#32106] about time for seperate lists? — "Tobias DiPasquale" <anany@...>

Hi all,

12 messages 2002/01/23

[#32121] : ruby-talk seperation — "Tobias DiPasquale" <anany@...>

Hi all,

19 messages 2002/01/23

[#32177] — Eugene Scripnik <Eugene.Scripnik@...>

I have a problem loading files from my script (I mean Kernel::load):

20 messages 2002/01/23
[#32187] — nobu.nokada@... 2002/01/23

Hi,

[#32722] Re: — Eugene Scripnik <Eugene.Scripnik@...> 2002/01/29

Hello nobu,

[#32728] Re: — nobu.nokada@... 2002/01/29

Hi,

[#32793] Re[2]: — Eugene Scripnik <Eugene.Scripnik@...> 2002/01/30

Tuesday, January 29, 2002, 5:05:05 PM, you wrote:

[#32799] $: in mod_ruby — nobu.nokada@... 2002/01/30

Hi,

[#32957] Re: $: in mod_ruby — Eugene Scripnik <Eugene.Scripnik@...> 2002/02/01

Wednesday, January 30, 2002, 4:55:23 PM, you wrote:

[#32233] Subclassing vs Subtyping (partly OOP vs FP) — Robert Feldt <feldt@...>

Hi,

16 messages 2002/01/24
[#33032] Re: Subclassing vs Subtyping (partly OOP vs FP) — Dave Thomas <Dave@...> 2002/02/03

Lewis Perin <perin@panix.com> writes:

[#32247] Array.last Weirdness — Jesse Jones <jesjones@...>

I'd expect the following code:

19 messages 2002/01/24

[#32312] Serious Array Bug in Ruby 1.6.6? — William Djaja Tjokroaminata <billtj@...>

Hi,

42 messages 2002/01/24
[#32315] Re: Serious Array Bug in Ruby 1.6.6? — David Alan Black <dblack@...> 2002/01/24

Hello --

[#32400] Re: Serious Array Bug in Ruby 1.6.6? — billtj@... (Bill Tj) 2002/01/25

Hi,

[#32404] Re: Serious Array Bug in Ruby 1.6.6? — David Alan Black <dblack@...> 2002/01/25

Hello --

[#32319] looking for an example problem to demonstrate TaskMaster — ptkwt@...1.aracnet.com (Phil Tomson)

I'm looking for suggestions here...

19 messages 2002/01/24

[#32355] RDoc learns to draw pictures... — Dave Thomas <Dave@...>

15 messages 2002/01/25
[#32377] Re: [ANN] RDoc learns to draw pictures... — "Pit Capitain" <pit@...> 2002/01/25

On 25 Jan 2002, at 9:34, Dave Thomas wrote:

[#32388] Ruby Developers Guide — Robert Feldt <feldt@...>

Hi,

16 messages 2002/01/25

[#32401] Sourcecode dump? — Olivier CARRERE <carrere@...>

Hello,

12 messages 2002/01/25

[#32417] Subrange of String subclass => invalid object — "Bob Alexander" <bobalex@...>

Given these conditions:

52 messages 2002/01/25

[#32445] "friend" alternative in Ruby? — kturing@... (kate turing)

I have a class "Foo". It has a method "doSecretStuff" that I want to

13 messages 2002/01/26

[#32465] rubyzip 0.3.1 — thomass@... (Thomas)

rubyzip 0.3.1 is out.

18 messages 2002/01/26

[#32593] OT: tools for creating documentation — ptkwt@...1.aracnet.com (Phil Tomson)

I'm going to be creating a good bit of documentation for TaskMaster and I

12 messages 2002/01/27

[#32646] popen3 and buffering — Paul Brannan <paul@...>

I have a program test.rb:

26 messages 2002/01/28

Re: snippet exchange (was: Re: Re: chomp for arrays?)

From: Dan Sugalski <dan@...>
Date: 2002-01-07 15:15:09 UTC
List: ruby-talk #30505
At 02:34 PM 1/7/2002 +0900, Rich Kilmer wrote:
>First, I want to say there is no such thing as perfect security.
>
>You always have to balance security with usability.

And the more usable, or at least convenient, something is, generally the 
less secure.

> > From: Dan Sugalski [mailto:dan@sidhe.org]
> >
> > [SNIP]
> >
> > That does the end-user no good, though. One of the ways to attack
> > this sort
> > of setup is to co-opt things such that the user never contacts your host.
> > Another is to steal the key either from your system or from the developer
> > and to upload a properly signed kit that's dangerous.
>
>OK.  So if the user has an application on their PC that downloads a Gem from
>a server and checks for the integrity of that Gem (automatically using
>SHA/PK) that will either succeed or fail...period.

Right. Success here means nothing, unfortunately. It guarantees that the 
archive was successfully received, which is good for other reasons (IP 
packet checksums are vulnerable in several ways, and TCP does no end-to-end 
stream checksumming) but it doesn't say anything for the origins of the 
file you receive.

>DNS has nothing to do
>with it.

DNS is an easy point of attack.

>It has to do with verifying that the files were not changed from
>point A (developer) to point B (user).

But it doesn't. It guarantees that the file wasn't changed from Point A 
(the machine you got it from) to point B (the user). There aren't any 
guarantees that Point A was the original developer.

>If someone spoofs the server and
>loads nasty Gems on it they (the user) will get Gems that do not validate.

That's not guaranteed. Where does the user's program get the keys to 
validate the Gems from?

>If they do validate because the private key(s) of valid developers are
>stolen then that is no different that hypothesizing what would happen if
>some dink in your local CompUSA replaced the Red Hat CDs with Trojan horse
>infested versions and you go pick one up and install.  If physical security
>is thwarted, you are screwed.

Electronic security is a lot easier to breach than physical security. The 
developer's machine, the server, and the connection between them are all 
vulnerable to compromise in some form or other.

> > >   Now, the method by which I download the
> > >public keys of developers I "trust" is definately an issue but there are
> > >emerging systems that are being developed to [help] solve this
> > problem in a
> > >distributed (rather than centralized) fashion that fall under the name
> > >"reputation networks".
> >
> > While there might ultimately be some way to do this, as the
> > network stands
> > now the methods are insufficient. Unverified DNS is a huge danger here.
>
>Why are you fixated on DNS.  I realize that DNS is not secure.  I am
>speaking of creating cryptographically signed pieces of content.  Where the
>content resides is not an issue.  The content is self-validating if the
>public key is known by the receiver.

That's the point. The user needs to fetch the key from somewhere. That 
somewhere is off-machine, and thus as vulnerable to compromise as the 
archive itself. DNS's insecurity makes things really easy, but there are 
plenty of other ways to do this as well.

>Now, this does not prevent a denial of
>service attack (and you cannot prevent that in today's internet) but is does
>prevent content from being changed and nasty code introduced.

No, it doesn't, that's the point. Public key cryptography isn't as secure 
as might be hoped, and doesn't guarantee the sorts of things we'd like it to.

> > > > being trustworthy (they aren't), DNS being trustworthy (it
> > > > isn't), that the
> > > > signing entity is trustworthy (they aren't), and that the
> > source you're
> > > > fetching is safe to use sight unseen (it isn't).
> > > >
> > > > Someone could poison your DNS cache. The remote repository can be
> > > > compromised.   The keyserver can be compromised. A proxy in
> > the middle of
> > > > the transaction can be compromised or poisoned. The person
> > providing the
> > > > code can be less trustworthy than you think they are.
> > > >
> > > > Yeah, these are all potential issues when installing any chunk of
> > > > code from
> > > > the net, but at least with a manual install you have a chance to check
> > > > things out even if you choose not to. With automagic loading, you
> > > > take all
> > >
> > >So, for every file you download, source or binary do you check
> > it line for
> > >line to verify that it does nothing wrong and has not been compromised?
> >
> > On production machines I manage? Generally yes, I do. It does limit the
> > number of kits that get installed. If I've reason to believe that the
> > remote host hasn't been compromised and
>
>Whoa.  What OS do you run?

For production, VMS and Solaris mostly. There's an assumption of trust 
there, certainly--I don't look at all the source for them. (Just some, but 
only for fun)

>You check EVERY source line of EVERY OS, library
>and package you use? As for believing in the integrity of a remote host,
>that gets back to your very own argument about co-opting
>IP/DNS/TCP/whatever.

For packages I install off the net onto production machines, yes I do 
check. I read the install scripts, I scan the source, and I look at the 
data files. That's part of the job of administrating production systems. 
(One which I luckily don't do much at the moment)

And yes, the potential for coopted DNS, IP snooping, and whatnot are 
something I keep in mind while doing it. As I said, the risks are 
significantly lower when downloading things once, as I can generally 
validate the IP address of the remote host and the snoop/intercept 
likelyhood is lower, and I can watch what's going on when the code runs 
through its test suite and what it does on the test system.

> > >Security is based more on perception than reality.
> >
> > Nope, that turns out not to be the case. Security's based on trust and
> > trustworthiness. Anything outside reasonable physical control needs to be
> > held to a higher level of trust, and there's a lot in the loop that's
> > inherently untrustworthy.
>
>Trust is based on perception ;-)

No, it isn't. It's based on an assessment of risk, and that's an assessment 
that can be made without necessarily having to trust the other end. There 
is always risk, and there is never complete security.

>We trust what we perceive is acceptable to
>trust, from things that we perceive earn our trust but our perceptions can
>be compromised.  What I am saying is that people feel secure when they are
>convinced (through their perceptions) that they are secure.  But that does
>not, in reality, mean they are secure.

People's feelings of security have nothing to do with whether they are 
secure or not. This is definitely true. Perception isn't reality. (Neither 
is truth fiction) I'm not discussing how people feel. I'm discussing system 
security. That's a much more concrete thing.

> > >But hey, if we want to go secure how about this:
> > >
> > >Start a central site/group to issue (physical) hardware
> > cryptographic tokens
> > >(for a fee $$) like the Dallas Semiconductor iButton
> > >(http://www.ibutton.com/ibuttons/java.html) and have those
> > hardware tokens
> > >sign the Gems.  That way each would contain a x.509 certificate that was
> > >signed by the central (known) autority (public key).  So, unless the
> > >physical device was stolen (and the PIN known to the person who
> > stole it) it
> > >could not be used to sign code.
> >
> > Nope, not secure. Yes, the central server could have reasonable
> > guarantees
> > that the archives it has came from who it's said to come from.
>
>The server guarantees nothing but that some data is transferred.  The
>content (if digitally signed) is what validates who something came from.
>The hardware token prevents the theft of a private key over the network
>(because it never leaves the token).  PIN activation on the hardware token
>prevents physical theft and use without knowledge of the PIN.  That would
>create a secure identity of who a piece of content came from.

That still doesn't do the end user any good, since they have to fetch the 
validation key from somewhere. It's only good for a point-to-point system 
where both points have ends of the secure transaction. The end user doesn't 
have that.

> > Also, for this to work the code potentially needs to be downloaded every
> > time it's used. (Yes, there are cache options here, but you'd want
> > per-user, or potentially per-process caches) That is a much larger window
> > of vulnerability--if an attacker knew you did this, it'd be reasonably
> > simple to watch and intercept attempts. One-shot installs have a much
> > smaller window.
>
>Why does code have to be downloaded every time.  I am really lost in this
>statement.

I said 'potentially'. Where are you going to put it once you download it? 
Some local cache area. Caches are volatile--they get cleaned out for a 
variety of reasons. You do *not* want to install it in your ruby install 
tree, that's really unsafe. (And not just for malicious reasons) You have 
to throw it in some private sandbox somewhere, and sandboxes should get 
cleaned out at regular intervals. (Otherwise you open yourself up to other 
problems)

Besides the security issues, you're trusting that the code:

1) Works the way it used to every time you fetch it
2) Is available when you need it

The remote servers (and you need more than one--you'll find this scheme, if 
used widely, will place a pretty heavy load on things. Talk to the people 
who run perl's CPAN archive if you want, and that's all one-shot access for 
things) may not be up, making the code that uses remote modules fail.

The archives you get may be corrupt (developers will sign and upload 
corrupt archives--it happens).

Releases will break things. Bugs happen, and you can't guarantee a stable 
code base to test against this way.

*Upgrades* will break things. This has happened in the past--for example, 
the GD module for perl used to generate GIF images. (Hence the G part) One 
release they switched over to generating PNG images. (Courtesy of lawyers 
waving patents, but this isn't the place for that) If you fetched code 
dynamically, you'd find yourself with a program that's suddenly doing 
things much different than what you wanted.

People are sometimes obnoxious, and sometimes get rather aggressively odd 
ideas about what's good or not. This scheme basically gives other people 
who you can't verify license to do what they want within very broad limits 
and at a time when you can't monitor what's happening. For a personal 
system that might be OK (though given the number of root/administrator 
hacks that just need unpriv'd user access I'd be wary of that one--heck, a 
quick "rm -rf ~" is bad enough) but for something in production use it adds 
a lot of risk. To judge whether it's an acceptable thing to do you *must* 
evaluate those risks--dismissing them won't help.

					Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
dan@sidhe.org                         have teddy bears and even
                                      teddy bears get drunk

In This Thread