Jerome.
----- Forwarded Message -----
From: notifications(a)xwiki.org
To: notifications(a)xwiki.org
Sent: Friday, August 6, 2010 12:00:18 AM GMT +01:00 Amsterdam /
Berlin /
Bern / Rome / Stockholm / Vienna
Subject: [xwiki-notifications] XWiki updates, 9 documents have been
modified since 2010/08/05 00:00
Contents
• dev
• Community
• Release Plans
• Release Plans Archives
• IRC
• IRC Archive for channel #xwiki
• platform
• DevGuide
• XWiki API Reference
• XWiki JavaScript API
• xwiki
• XWiki
• ChristophDewes
• JarbasJunior
• guenter
• pmarzouk
Hello Developers,
This message is sent by XWiki. Here are the documents in your
watchlist
that have been modified since the last
notification:
dev
Community
Release Plans
Community.ReleasePlans
On 2010/08/05 13:49, the document has been modified by Thomas
Mortagne
* [[API
doc>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/API]]
([[core>>
http://maven.xwiki.org/releases/com/xpn/xwiki/platform/xwiki-core/]]
[[rendering>>
http://maven.xwiki.org/releases/org/xwiki/platform/xwiki-core-rendering-api…)
doc>>http://platform.xwiki.org/xwiki/bin/view/DevGuide/API]]
|= Release notes |= Update download page |= News on OW2 |= News on
xwiki.org |= API doc (core rendering) |= Wikipedia |= Freshmeat |=
Wikimatrix |= ANN Mail
= 2.3.2 =
(% style="width: 100%;" %)
|=(% colspan="3" %)Update translations
|= CORE |= XE |= WYSIWYG
| x| x| x
(% style="width: 100%;" %)
|=Module |= Version |= Jira |= Maven |= OW2
| xwiki-core | 2.3.2| x| x| -
| xwiki-plugin-skinx| 1.13.1| x| x| -
| xwiki-platform-web | 2.3.2| x| x| -
| xwiki-product-enterprise | 2.3.2| x| x|x\\
| xwiki-product-enterprise-manager| 2.3.2| x| x|x
(% style="width: 100%;" %)
|= Release notes |= Update download page |= News on OW2 |= News on
xwiki.org |= API doc (core rendering) |= Wikipedia |= Freshmeat |=
Wikimatrix |= ANN Mail
|x|x| x|x| x|x| x|x|x
author: xwiki:XWiki.Sergiu > xwiki:XWiki.ThomasMortagne
Release Plans Archives
Community.ReleasePlansArchives
On 2010/08/05 13:49, the document has been modified by Thomas
Mortagne
= 2.3.2 =
(% style="width: 100%;" %)
|=(% colspan="3" %)Update translations
|= CORE |= XE |= WYSIWYG
| x| x| x
(% style="width: 100%;" %)
|=Module |= Version |= Jira |= Maven |= OW2
| xwiki-core | 2.3.2| x| x| -
| xwiki-plugin-skinx| 1.13.1| x| x| -
| xwiki-platform-web | 2.3.2| x| x| -
| xwiki-product-enterprise | 2.3.2| x| x|x\\
| xwiki-product-enterprise-manager| 2.3.2| x| x|x
(% style="width: 100%;" %)
|= Release notes |= Update download page |= News on OW2 |= News on
xwiki.org |= API doc (core rendering) |= Wikipedia |= Freshmeat |=
Wikimatrix |= ANN Mail
|x|x| x|x| x|x| x|x|x
parent: Scheduler.ReleasePlans > ReleasePlans
author: xwiki:XWiki.Sergiu > xwiki:XWiki.ThomasMortagne
IRC
IRC Archive for channel #xwiki
IRC.xwikiArchive20100805
Between 2010/08/05 01:24 and 2010/08/05 21:48, the document has
been
modified 3 times, by 1 user: Sergiu Dumitriu
#includeForm("IRC.IRCArchiveClassSheet")
IRC.IRCArchiveClass
channel:
#xwiki
content:
abusenius left at 01:24 (Quit: Konversation terminated!
sdumitriu left at 02:23 (Ping timeout: 240 seconds
tsziklay left at 03:12 (Quit: ChatZilla 0.9.86 [Firefox
3.6.8/20100722155716]
boscop_ joined #xwiki at 03:53
boscop left at 03:56 (Ping timeout: 265 seconds
MartinCleaver left at 04:35 (Quit: MartinCleaver
venkatesh joined #xwiki at 05:49
kibahop joined #xwiki at 08:27
LadySerena left at 08:36 (Quit: Time to sharpen my claws!
asrfel joined #xwiki at 08:41
sdumitriu joined #xwiki at 08:52
Enygma` joined #xwiki at 08:52
mflorea joined #xwiki at 08:56
lucaa joined #xwiki at 08:56
florinciu joined #xwiki at 09:05
tmortagne joined #xwiki at 09:06
tmortagne left #xwiki at 09:06
mflorea left at 09:21 (Quit: Leaving.
tmortagne joined #xwiki at 09:23
mflorea joined #xwiki at 09:24
vmassol joined #xwiki at 09:32
mflorea - (09:36): guys, how can I delete a translation of a wiki
page?
tmortagne left at 09:36 (Quit: Leaving.
sdumitriu - (09:37): mflorea: Add ?language=xz in the /delete/ URL
tmortagne joined #xwiki at 09:38
mflorea - (09:38): let me try
sdumitriu - (09:38): Works only if that’s not the default language
of the
document
ztane - (09:48): how do I get the password reset dialog working on
a
private wiki? :)
vmassol left at 09:50 (Quit: Leaving.
KermitTheFragger joined #xwiki at 09:54
tmortagne - (09:54): sounds like a long proposal :)
mangroovie joined #xwiki at 09:54
ztane - (09:56): hmm maybe should go for ldap
sdumitriu - (09:56): ztane: Private = forbid unauthenticated view?
ztane - (09:57): yes
ztane - (09:58): enterprise extranet wiki :))
cjdelisle - (09:59): It has been a long time coming. Oddly enough
there
aren’t a real lot of services provided.
ztane - (09:59): do not want anything to leak out to nonauthorized,
except
the password reset form
jvdrean joined #xwiki at 10:04
sdumitriu - (10:11): ztane: Sorry, that’s not possible yet
sdumitriu - (10:12): Preventing unauthenticated access really
prevents it
abusenius joined #xwiki at 10:21
vmassol joined #xwiki at 10:23
cjdelisle - (10:28): abusenius: Any thing else you need in
xwiki-crypto?
(working on the proposal)
abusenius - (10:32): hm, no, just the methods for storing/loading
certs/keys that we might want put elsewhere
abusenius - (10:32): *to put
cjdelisle - (10:33): Yea, IMO load/store is not really in the scope
of
crypto.
abusenius - (10:35): should I move it to signedscripts? thats the
only
place it’s used atm
cjdelisle - (10:36): *distraction: IPv6 is a joke, 19.0.0.0 -
19.255.255.255 is Ford Motor Company ip space, it is not even
announced to
the backbone routers.
cjdelisle - (10:36): What car company doesn’t need 16,000 unused
ips?
abusenius - (10:36): *IPv4?
cjdelisle - (10:37): IP6 is a joke because like 40% of ip4 numbers
are
routed, 3% respond to pings.
abusenius - (10:37): it’s a good investment, they will be able to
sell it
for a lot of money quite soon :)
cjdelisle - (10:37): Not if arin/ripe catch you.
abusenius - (10:37): well, it’s just that nobody uses them
abusenius - (10:38): well, thats another question
cjdelisle - (10:38): Well not nobody, some halliburton space
suddenly
started getting announced from eastern europe.
cjdelisle - (10:38): spam spam spam spam
cjdelisle - (10:41): Halliburton 34.0.0.0 - 34.255.255.255 (to their
credit
they announce a couple hundred ips in that range
and run their site
in it.)
abusenius - (10:42): I’Ve read somewhere that one
of the problems is
that
they used to give just 2 types of ip ranges,
255.255.255.0 for
"small"
companies and 255.0.0.0 for "big"
companies :)
cjdelisle - (10:45): that 255.255.255.0 is called a /24 because 24
of the
32 bits are defined. 255.0.0.0 is a /8, nobody
can get a /8 anymore,
they
gave them out in like 1991.
cjdelisle - (10:46): You guys can still get a /24 for like 150€ but
arin
won’t sell anything smaller than a /20.
cjdelisle - (10:48): The problem is provide independent space means
you
announce your (tiny little) range to all of the
backbone routers and
the
global routing tables get so huge they need
bigger routers.
cjdelisle - (10:50): What’s easiest for the backbone is if 192
routes to
usa, 64 routes to chicago, 32 routes to some isp
and 25 routes to
the
specific computer. Except 192 range is not like
that, 192.64.32.1
might be a
computer in chicago and 192.64.33.1 might be in
estonia.
sburjan joined #xwiki at 10:52
cjdelisle - (10:57): humpf... decryption succeeded with wrong
password. I
think it decrypted to garbage but I have to
check...
abusenius - (10:57): we might want to check if the output == input
cjdelisle - (11:00): yup, repeating the test in loop 0-1000
cjdelisle - (11:01): if the output is the same length, I think the
padding
scheme doesn’t notice anything is wrong.
cjdelisle - (11:01): indeed, I already have a bad decryption.
abusenius - (11:03): in theory, a wrong password might decrypt to
any
meaningful text, but the probability is very very
low
cjdelisle - (11:04): hmm, actually the key would have to be as long
as the
original text to decrypt to anything.
cjdelisle - (11:05): I remember someone talking about an algorithm
which
would decrypt to various things based on the
password given.
cjdelisle - (11:05): It would be pretty obvious to a cryptographer
though
that there was more to it though.
abusenius - (11:06): well, if the key is as long as the text, then
you can
decrypt to any text of the same length
abusenius - (11:07): if the key is shorter, the number of possible
decryptions is much smaller
cjdelisle - (11:07): But it brings up an interesting topic, if you
xor
"illegal data" against random and
publish the random on one server
and the
output on another, which server gets the takedown
notice?
abusenius - (11:07): but one of them might still be meaningful
cjdelisle - (11:08): It’s essentially impossible to determine random
from
something xor’d against random.
cjdelisle - (11:09): 4 collisions.
abusenius - (11:09): well, you can easily invent any content you
want :)
abusenius - (11:09): what yre you encrypting?
cjdelisle - (11:10): I just rigged the test to repeat trying to
decrypt
with the wrong password and dump any time it
collides.
Enygma` left at 11:10 (Ping timeout: 276 seconds
cjdelisle - (11:10): decryptWithWrongPasswordTest() * 1000
abusenius - (11:11): so "collision" = successfull decryption to
garbage?
cjdelisle - (11:11): yup.
cjdelisle - (11:11): done. 4/1000 tries.
abusenius - (11:11): the only way decryption algorithm can
distinguish
"meaningful" text from garbage is the
padding
kibahop left #xwiki at 11:12
cjdelisle - (11:12): IMO it should output garbage every time it
fails.
Imagine trying to password guess that :D
abusenius - (11:12): so if the garbage by chance contains one byte
of
correct padding, it will succeed
abusenius - (11:12): well, you can check for printable character
for
example
cjdelisle - (11:12): yup, check for invalid utf8
cjdelisle - (11:13): imagine encrypting an mp3, basically any text
is valid
in an mp3
cjdelisle - (11:13): or mpeg4
abusenius - (11:13): there is a header you can trry to match
abusenius - (11:14): frames etc.
abusenius - (11:14): but it is harder
abusenius - (11:14): thats one of the reasons people first compress,
then
encrypt :)
cjdelisle - (11:16): Yea, it would be tough trying to beat this
algorithm
though, it took like 5 minutes for 2000 cycles of
scrypt, I could
make it
take longer with config too.
cjdelisle - (11:27): proposal sent.
mangroovie left at 11:29 (Ping timeout: 252 seconds
cjdelisle - (11:41): I don’t see the user manager in the sandbox, is
it
written?
(
http://dev.xwiki.org/xwiki/bin/view/Design/UsersModule)
abusenius - (11:42): it is very new imo, probably not yet
cjdelisle - (11:45): The proposed interface looks like it can only
be
implemented using some sort of String USER_CLASS
=
"XWiki.XWikiUsers";
cjdelisle - (11:47): Maybe I should propose a
best practice that we
never
make the core depend on the content of the
database. AKA hardcoding
document
names.
abusenius - (11:51): which interface?
cjdelisle - (11:53): defined here
http://dev.xwiki.org/xwiki/bin/view/Design/UsersModule
mangroovie joined #xwiki at 11:53
venkatesh left at 11:53 (Ping timeout: 265 seconds
abusenius - (11:54): ah, ok
abusenius - (11:56): maybe, I "never ever" rule is quite unrealistic
though
abusenius - (11:56): s/I/a/
cjdelisle - (11:58): Well that’s how all best practices are,
sometimes you
are just plain painted into a corner.
cjdelisle - (11:58): I usually end up throwing away code when that
happens.
abusenius - (12:01): moved cert storage methods
out of crypto, about
to
commit
cjdelisle - (12:01): there was storage in crypto?
cjdelisle - (12:02): I don’t see it...
abusenius - (12:03): well, user document utils were misused for
that
abusenius - (12:04): I mean listinf fingerprints
etc.
abusenius - (12:04): *listing
venkatesh joined #xwiki at 12:04
cjdelisle - (12:04): Oh, I haven’t looked there in a while. thanks
;)
cjdelisle - (12:04): k I think I know how you can
validate a cert.
cjdelisle - (12:05): Take the webid and do a http get on it, you’ll
get the
foafssl stuff.
cjdelisle - (12:06): We can also set it up so you get a list of
signed
permissions granted to the user.
abusenius - (12:07): yea, we could do that
cjdelisle - (12:07): parse those permissions, extract cert from
signature,
recurse.
cjdelisle - (12:08): It will be awesome but slooooooow.
cjdelisle - (12:09): hmm, maybe not if the user pages get cached.
abusenius - (12:09): the recursion would not be very deep
abusenius - (12:09): unless we overdo it :)
venkatna joined #xwiki at 12:10
abusenius - (12:10): it should be something like admin -> user
permission
-> cert
cjdelisle - (12:10): What’s awesome about it is I can be on one wiki
and
give you permission on another, you can then give
permissions to
people on
my wiki.
venkatesh left at 12:10 (Ping timeout: 248 seconds
abusenius - (12:11): not that everybody was waiting to do that all
their
life, but yea, would be possible :)
cjdelisle - (12:12): I don’t expect anyone beating a path to the
door for
it but I can see in the future there might be
applications.
cjdelisle - (12:13): If I grant admin authority to an admin of
another
wiki, all of their wiki’s users get defacto
permissions on mine.
cjdelisle - (12:15): the escaping test makes a nice DoS engine.
abusenius - (12:16): :)
cjdelisle - (12:17): Have you seen Websecurity?
abusenius - (12:18): not sure what you mean
abusenius - (12:18): afk for lunch
cjdelisle - (12:19):
http://www.websecurify.com/
cjdelisle - (12:19): I’ll go find something to eat too.
florinciu1 joined #xwiki at 12:39
florinciu left at 12:44 (Ping timeout: 276 seconds
florinciu1 left at 12:46 (Read error: Connection reset by peer
florinciu joined #xwiki at 12:47
sylviarusu joined #xwiki at 12:56
florinciu left at 13:05 (Ping timeout: 240 seconds
florinciu joined #xwiki at 13:08
tmortagne - (13:10): cjdelisle: i’m not sure i understand what you
mean in
XWIKI-5390
cjdelisle - (13:10):
http://maven.xwiki.org/site/xwiki-core-parent/xwiki-core/apidocs/com/xpn/xw…
cjdelisle - (13:11): all still version 1.7
tmortagne - (13:12): cjdelisle: there is a hudson project for it
already,
it
has been disabled some time ago because we had
issue with javadoc
plugin
think
tmortagne - (13:12): s/think/I think/
cjdelisle - (13:13): I see, I can try to see if I can get it working
again.
tmortagne - (13:13): yep
cjdelisle - (13:13): It’s pretty important because that’s the only
place to
get javadoc for XWikiDocument etc.
tmortagne - (13:14): cjdelisle: well there is m2Eclipse
automatically
downloading javadoc/source too ;)
tmortagne - (13:14): which is very usefull
tmortagne - (13:15): but it’s only for released projects
cjdelisle - (13:15): When I wrote the DevGuide.Scripting I had to
reference
some javadoc so I chose that.
cjdelisle - (13:15): Because it’s hosted.
cjdelisle - (13:16): If I can get this working then I see no reason
to keep
uploading .zip files to
xwiki.org so that will
close another issue.
cjdelisle - (13:16): Make any sense?
tmortagne - (13:17): cjdelisle: it’s not the same thing
tmortagne - (13:17): this job deploy trunk jaavadoc
tmortagne - (13:17): in
xwiki.org we provide specific releases
javadoc
cjdelisle - (13:17): hmm. good point. Maybe we
can have hudson build
from
branches?
tmortagne - (13:17): what should be done in
xwiki.org is having
something
more dynamic that get the proper javadoc from
maven.xwiki.org files
instead of having to attach
tmortagne - (13:18): i want to add this since a long time in zip
plugin but
never had the time
cjdelisle - (13:18): in the zip plugin?
tmortagne - (13:19): the xwiki plugin which is used to view the
javadoc
inside the zip file attached to the page
tmortagne - (13:19):
http://platform.xwiki.org/xwiki/bin/download/DevGuide/API/xwiki-core-render…
cjdelisle - (13:19): make it able to load a page
hosted somewhere
else?
cjdelisle - (13:19): s/load a page/read a zip/
tmortagne - (13:20): yes make it able to work with a zip from
anywhere and
not only an attached file
cjdelisle - (13:20): hmm, as long as it can’t be exploited to... say
open
really big zips somewhere?
abusenius - (13:21): re websecurity, no, haven’t seen it before
cjdelisle - (13:22): I was talking to a guy who mentioned if you
can
convince a bot to download a file, feed it a
linux .iso
tmortagne - (13:23): cjdelisle: you can always indicate a maximum
size
abusenius - (13:23): we should try some tools
like websecurity on
xwiki at
some point, but not now (would be too
disappointing ^^)
florinciu left at 13:23 (Ping timeout: 258 seconds
cjdelisle - (13:23): abusenius: I see a bunch of FATAL: not escaping
single
quote.
cjdelisle - (13:23): I don’t think even escapetoo.xml escapes
single
quotes.
tmortagne - (13:24): checking something: i think there is something
abut
javadoc in nexus actually
abusenius - (13:24): it does
abusenius - (13:24): getXMLEncoded doesn’t
cjdelisle - (13:24): That’s right :)
abusenius - (13:24): afaik
abusenius - (13:24): it is technically correct to not escape single
quotes
in URL
abusenius - (13:25): but not secure, because a href=’bla’ is also
correct
cjdelisle - (13:25): no getXMLEncoded escapes ’
to and it becomes ’
which
breaks everything
abusenius - (13:25): ah, right
tmortagne - (13:25): cjdelisle:
http://nexus.xwiki.org/nexus/service/local/repositories/releases/archive/co…
tmortagne - (13:25): tadaa
cjdelisle - (13:25): cool. I wish it said something like /latest/
tmortagne - (13:26): maybe there is something
tmortagne - (13:27): i will at least modify the API page to go there
and
stop attaching files
abusenius - (13:27): is it possible to link javadocs for *all*
components
on DevGuide/API ?
abusenius - (13:28): currently it only lists core
tmortagne - (13:28): abusenius: and rendering ;)
tmortagne - (13:28): but yes it should be more that theses two
tmortagne - (13:28): should be at least important components
abusenius - (13:28): yea, but you need to do voodoo magic to find
other
docs :)
cjdelisle - (13:29): That was a nice thing about
maven.xwiki.org was
everything was linked together.
tmortagne - (13:31): cjdelisle: you mean
maven.xwiki.org/site ?
cjdelisle - (13:31): yup
cjdelisle - (13:32): *idea* What if we added the svn location to the
class
javadoc comment in each class, then it will make
a link in each
javadoc
pointing to the source.
cjdelisle - (13:32): Maybe svn config will do the trick.
abusenius - (13:33): wasn’t there a configuration option for javadoc
for
that?
tmortagne - (13:34): cjdelisle: there is probably some maven javadoc
plugin
configuration we could use for it
cjdelisle - (13:34): I don’t know that the javadoc would know where
the
files are hosted in svn, it sure would be nice
though to have a
docjar style
[source] button
abusenius - (13:35): (but maybe I saw it in doxygen, not sure)
cjdelisle - (13:36): I really like this format everything is linked
from
there.
http://maven.xwiki.org/site/xwiki-core-parent/xwiki-core/apidocs/index.html…
abusenius - (13:38):
http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/javadoc.html#…
cjdelisle - (13:39): abusenius: I see three tests
in error:
Blog/Publisher.xml Panels/CreatePanel.xml templates/createinline.vm
Do you
want to do something to them before putting the
tests in the tree?
abusenius - (13:40): let me see
cjdelisle - (13:40): Creates an HTML version of each source file
(with line
numbers) argh.. hate line numbers.
abusenius - (13:41): well, better than nothing
abusenius - (13:43): I could put those tests in error onto ignore
list
cjdelisle - (13:43): also I like the idea of
pointing to the actual
svn
server.
abusenius - (13:43): 2 of them fail because the xredirect is
properly
escaped, but my test string isn’t a URL
abusenius - (13:43): 1 fails with 409, no idea why
abusenius - (13:44): there are allready a dozen or so ignored tests
in
error
cjdelisle - (13:46): Hmm, you really ought to have commit access so
you can
work on this once it’s in the tree, unfortunately
it’s tough to get
a quorum
on anything right now.
florinciu joined #xwiki at 13:46
venkatna left at 13:47 (Quit: Leaving
abusenius - (13:48): can it be (sym)linked to sandbox?
cjdelisle - (13:50): I don’t know what svn does with symlinks.
abusenius - (13:51): I think on all decent operating systems it
works fine
:)
cjdelisle - (13:51): Websecurity is a pretty good DoS cannon, when I
ran it
locally, my wiki eventually just ceased up and
refused to serve
anything.
abusenius - (13:52): checkout on windows would
create a copy of the
directory
tmortagne - (13:53): i doubt svn will support sym links anyway
tmortagne - (13:53): especially svn 1.4
abusenius - (13:53): ok, if the svn server is 1.4 then we can forget
it
abusenius - (13:54): why is it 1.4 btw? it’s like
stone age...
tmortagne - (13:55): i agree
tmortagne - (13:55): i’m aking for an upgrade since ages
cjdelisle - (13:55): blah, hudson ceased up in wysiwyg test. Lets
see if I
can kill the build...
cjdelisle - (13:56): yay I did something.
cjdelisle - (13:58): last time the javadoc build ran out of swap
space (so
it says). I’ll try running it and see what
happens this time.
vmassol left at 13:58 (Quit: Leaving.
sburjan - (14:08): cjdelisle, : was the implementation hard ? I mean
..
understanding that technical paper and then
implementing
cjdelisle - (14:08): re scrypt?
sburjan - (14:08): We had to implement DES and AES from specs like
these..and it was HORRIBLE
sburjan - (14:08): yes
cjdelisle - (14:08): It wasn’t too bad because there was a
reference
implementation in c
sburjan - (14:09): oh, so you didn;t wrote if from scratch
cjdelisle - (14:09): It definitly is not AES.
sburjan - (14:09): it’s stronger than AES, right
sburjan - (14:09): AES is totally hard (at least for me)
cjdelisle - (14:09): It does something different.
sburjan - (14:09): yeah, I know
cjdelisle - (14:10): The point is that there is no way to go from
the
password to the key without using x amount of ram
for y cpu cycles
of time.
cjdelisle - (14:10): Fortunately it uses PBKCS2
which I could rip
from
bouncycastle.
sburjan - (14:10): but basically this is a much more complex hash
function,
right ?
cjdelisle - (14:11): yup.
sburjan - (14:11): md5 is birthday paradox vulnerable
sburjan - (14:11): I guess this isn;t :)
cjdelisle - (14:11): It uses PBKCS2, and it uses salsa20
cjdelisle - (14:11): ahh, PBKCS2(Sha-256) :)
cjdelisle - (14:12): yea md5 is bad.
sburjan - (14:12): oh :))
sburjan - (14:12): md5 is obsolete
sburjan - (14:12): intresting
sburjan - (14:12): I never understood properly the algebra behind
crypto
systems
sburjan - (14:13): although i wanted to :)
cjdelisle - (14:13): This isn’t really crypto.
cjdelisle - (14:13): It’s just designed to take a long time.
cjdelisle - (14:13): So it generates an absurd amount of data. Then
it
takes an int from 4 bytes of a hash output and
gets the data at the
location
of that int.
cjdelisle - (14:14): The idea is you can’t safely throw away any of
that
data because you might need it.
sburjan - (14:14): I see
sburjan - (14:14): so this happens for all the new passwords ?
sburjan - (14:14): new user accounts, etc ?
sburjan - (14:15): I nea this happens for every password
cjdelisle - (14:15): So it keeps seeding the hash with pieces of the
big
block of data, then it takes the output and feeds
it to PBKDF2
again.
sburjan - (14:15): *mean
cjdelisle - (14:16): No it it’s just a service at the moment, once
I
convince everyone to include it in the tree, then
we can think about
using
it for the user accounts.
sburjan - (14:16): so what do you hash with these service more
exactly ?
cjdelisle - (14:16): Passwords.
sburjan - (14:16): so only user passwords. or are there another type
of
passwords ?
sburjan - (14:17): that are used in xwiki
cjdelisle - (14:17): It is intended to be useable for the user
accounts, I
just want to put the code there before we even
talk about
implementing it
for user passwords.
cjdelisle - (14:17): Sure, any password can be handles by this.
sburjan - (14:17): I see
cjdelisle - (14:17): s/handles/handled/
abusenius - (14:17): btw, XWIKI-70 is the oldest bug (i.e. not
feature
request or task) atm
sburjan - (14:18): so it is collision free ? or you made it like
this in
order to take as far as possible advante of
collisions
Enygma` joined #xwiki at 14:18
cjdelisle - (14:18): It is as collision resistant as pbkdf2(sha256)
cjdelisle - (14:19): because the password is included in the final
hash.
sburjan - (14:19): yeah, but the time to find
another string that
hashes
the same... requires much more time due to y ram
and x cpu cycles,
right ?
cjdelisle - (14:20): Well the main attack vector
is password
guessing with
word lists.
cjdelisle - (14:20): so it’s not really a collision but the real
password
that is most likely to be found.
sburjan - (14:20): hmmm
sburjan - (14:21): dictionary attack ? :)
cjdelisle - (14:21): This makes it difficult because it occupies 1MB
of ram
for about 100milliseconds.
sburjan - (14:21): i see
cjdelisle - (14:21): These numbers are configurable.
sburjan - (14:21): but the actual auth mechanism is comparing the
hash from
db with the hash(typed password), right ?
cjdelisle - (14:21): The default scrypt takes 200MB for 5 seconds.
sburjan - (14:22): like md5 is still used
cjdelisle - (14:22): It’s a little more complicated than that, but
that’s
the idea.
sburjan - (14:22): I see
cjdelisle - (14:22): You have a PasswordVerificationFunction which
is
Serializable and includes all of the information
to recreate the
same output
given the same password.
cjdelisle - (14:23): that is the salt, the memory cost number, and
the
processor cost number.
sburjan - (14:23): yeah..
sburjan - (14:23): intresting
cjdelisle - (14:24): So you load the code from the database,
deserialize,
and feed it the password to validate.
cjdelisle - (14:24): If we decide in the future to change the
function, all
we need to do is create a new function and start
using it for all
new
passwords.
sburjan - (14:24): so each password is serialized in an object that
is
stored in the db ?
cjdelisle - (14:25): the ourtput from hashing the password is a
byte[] in
the object yes.
sburjan - (14:25): I see
sburjan - (14:25): pretty cool
cjdelisle - (14:26):
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/xwiki-crypto/src/main/ja…
sburjan - (14:26): and what is the memory and cpu
cost going in the
ecuation?
sburjan - (14:26): when "hashing" the inputed password in order to
compare
it from the serialized object ?
cjdelisle - (14:27): Configurable, but I have it set to 1Mb for
100ms by
default.
sburjan - (14:28): yeas, but what operation is slowed down
intensionally
with the ram and CPU thing ?
cjdelisle - (14:28): indeed, you can’t have everything :)
boscop_ is now known as boscop (~boscop(a)g227154161.adsl.alicedsl.de
sburjan - (14:30): no no .. where is the slow down come in place ?
sburjan - (14:30): this this slows down .. you wanted this.. cpu
cycles,
etc
cjdelisle - (14:31): ?
sburjan - (14:32): you force the system to work in time. to be
limited by
ram and CPU
sburjan - (14:32): not to take advance of the full computational
powers of
a possible attacker
cjdelisle - (14:32): If the system is under heavy load when the
user
registers, then their crypted password will be
weaker.
cjdelisle - (14:33): decrypting the password will always take the
same
amount of cpu cycles.
sburjan - (14:33): oh
sburjan - (14:33): so decrypting is the operation that takes
advantage of
the intentional slowness
sburjan - (14:33): got it
cjdelisle - (14:34): When crypting the password, It does a test run
to get
the desired number of cycles from the desired
time to crypt.
cjdelisle - (14:34): It’s not all that accurate but within 100%
according
to the tests.
sburjan - (14:35): I see
cjdelisle - (14:35): I noticed it usually takes a little more time
than it
is asked to take.
sburjan - (14:36): and isnt there a disk if someone tries a
dictionary
attack to block the server (DDOS) due to heavy
platform load in
order to
decrypt the passwd ?
sburjan - (14:36): *risk, not disk
cjdelisle - (14:37): Well if you’re trying to ddos the server then
you can
use infinite loops etc. if you are trying to
guess the password,
then you
want a graphics processor.
cjdelisle - (14:37): Anyway if you have a botnet (DDoS) then you can
get
thousands of windows boxes to try passwords
locally.
cjdelisle - (14:39): However I think you can cease up an xwiki
installation
just by trying to log in with a million threads
right now.
cjdelisle - (14:41): bbiab...
tmortagne left at 14:43 (Read error: Connection reset by peer
tmortagne joined #xwiki at 14:43
sburjan - (14:46): wait, you lost me :)
sburjan - (14:47): the decrypt function is GPU dependant ?
MartinCleaver joined #xwiki at 14:57
abusenius - (14:59): sburjan: he is talking about using GPGPU to
speedup
breaking hashes
sburjan - (15:01): so it uses graphics card to break hashes ?
abusenius - (15:01): the bad guys use them
sburjan - (15:01): I;m a little bit confused
sburjan - (15:01): yeah, the bad guys
abusenius - (15:01): yes, 1000 threads are better than 4
sburjan - (15:02): a gpu has 1000 threads ?
abusenius - (15:02): new ones yes
sburjan - (15:02): I see
abusenius - (15:02): light-weight threads
sburjan - (15:02): and the other thing I didn’t understand
sburjan - (15:02): Anyway if you have a botnet (DDoS) then you can
get
thousands of windows boxes to try passwords
locally.
sburjan - (15:03): but how do you get locally the serialized objects
that
contain the passwdz ?
abusenius - (15:03): well, assuming you have DB dump or something
sburjan - (15:03): but for that you already need privileges
abusenius - (15:03): sure
abusenius - (15:04): the idea is, if the attacker can get access to
the
server, he still can’t find out your password
abusenius - (15:05): otherwise you might as well just sleep(10) on
the
server side
abusenius - (15:06): having a password in cleartext is bad, because
people
reuse them for example
cjdelisle - (15:06): privileges lol. All you need for database dumps
is
bobby tables.
cjdelisle - (15:06): we’re better than some but never trust the db.
cjdelisle - (15:07): Actually, the password hashes are right in the
XWikiUsers object.
sburjan - (15:07): bobby tables ?
cjdelisle - (15:08):
http://xkcd.com/327/
cjdelisle - (15:09): It’s a dumb joke but it has sort of turned into
a
meme.
sburjan - (15:09): yea :))
sburjan - (15:09): but we’re still vulnerable to sql injection ?
cjdelisle - (15:10): hmmmmmmm yes.
mflorea left at 15:11 (Quit: Leaving.
lucaa left at 15:13 (Quit: Leaving.
cjdelisle - (15:13): We’re looking into a way to use encryption to
make it
so sql injection is pointless.
sburjan - (15:14): parameterization doesnt work in our case ?
cjdelisle - (15:14): If everything used it then it would work. I’m
talking
about cases where there is a registered user and
he has access to
searchDocuments etc.
sburjan - (15:15): and making them be used everywhere is hard ?
cjdelisle - (15:16): Well even if they are used everywhere all the
adversary has to do is register and write their own vulnerable
queries.
cjdelisle - (15:19): We have been talking about
having a root
"superadmin"
certificate stored in a file on the hard disk.
That cert signs the
admin’s
permissions and the admin signs the user
permissions.
cjdelisle - (15:20): you can dump (or alter) the database but all
you get
is certificates and password encrypted private
keys
cjdelisle - (15:20): change a cert, break the cert chain, change a
key,
then it doesn’t match the cert.
cjdelisle - (15:38): oh sburjan Cryptography (at least public key
RSA)
works because it’s fast to raise something to the
65537th power and
slow to
get the 65537th root.
cjdelisle - (15:39): that’s the "one way trap function"
sylviarusu left at 15:40 (Quit: Leaving.
sburjan - (15:43): I see
sburjan - (15:43): I started to read more about sql injection
sburjan - (15:43): too bad that htere isn;t a "training" site :)
sburjan - (15:43): so I can actually see it work
abusenius - (15:44): try
xwiki.org ^^
cjdelisle - (15:45): lol
sburjan - (15:45): i’m sure it’s not vulnerable :))
sburjan - (15:45): you guys fixed it
sburjan - (15:45): :D
sburjan - (15:45): at least the most vital places
cjdelisle - (15:45): actually yea, you’d just end up spamming zipe’s
logs
with your attempts.
cjdelisle - (15:45): *xipe
cjdelisle - (15:46): Do you have a local installation on your
computer?
sburjan - (15:46): of XWiki ?
cjdelisle - (15:46): yea.
sburjan - (15:46): of course
sburjan - (15:46): I’m writing automatic tests, so i have to test
them :P
cjdelisle - (15:47): Well you can play with that.
Try using
websecurity
against it, just run it over night and see what
you get
abusenius - (15:47): sburjan, there are training apps actually,
http://insecurewebapp.sourceforge.net/main/index.html
sburjan - (15:48): hmmm
sburjan - (15:48): I’ll take a look
cjdelisle - (15:49):
http://labs.oracle.com/projects/crypto/HowECCWorks-USLetter.pdf
cjdelisle - (15:50): McEllice is a bit more interesting because it
can’t be
parallelized (quantum computer proof) but it’s
also a lot more
complicated.
sburjan - (15:50): lots of math :)
sburjan - (15:50): so this is what your srypto implementation use ?
cjdelisle - (15:51): it doesn’t use any public key (not for
password
derivation.)
sburjan - (15:52): cjdelisle, : do you have some masters in
computer
security ? :)
sburjan - (15:52): I know abusenius has
cjdelisle - (15:52): xwiki-crypto does have a public key component,
it just
uses rsa.
cjdelisle - (15:52): haha masters in what?
sburjan - (15:52): information security :)
sburjan - (15:53): computer security
cjdelisle - (15:53): I took like 2 semesters of programming in
college.
abusenius - (15:53): there are no special
security degrees afaik
sburjan - (15:54): abusenius, : There are masters in all the europe
on
Information/Computer Security
abusenius - (15:54): not in my university :) one can just specialize
on
that
cjdelisle - (15:54): My professors were all ex-nsa, one recommended
I apply
there.
sburjan - (15:54): they teach you the algebra behind the
cryptosystems
abusenius - (15:54): it is still called
"computer science"
sburjan - (15:55): things like chinese remainder theorem
cjdelisle - (15:55): Yea, I read about it a little, I’m sure I’ll
learn it
sooner or later.
abusenius - (15:56): we got this in the introduction lecture to
crypto
sburjan - (15:56): abusenius, : but your
internship is in Security
here at
X, right ?
abusenius - (15:56): yes
cjdelisle - (15:57): hey, I have a masters in breakeology.
sburjan - (15:57): so you learned the security stuff all by yourself
?
abusenius - (15:57): me?
sburjan - (15:57): yes, you abusenius :)
cjdelisle - (15:57): breakeology, when you learn by breaking stuff.
sburjan - (15:57): breakeology is like .. sociology, antropology ?
:))
sburjan - (15:58): so you do have a masters in
that :D
abusenius - (15:58): no, I’ve learned everything I could find, but I
also
took all lectures on crypto/security we have
abusenius - (15:58): if you’re interested in something, it happens
naturally :)
sburjan - (15:59): true
sburjan - (15:59): but that math is pretty hard :))
sburjan - (15:59): all the modulo stuff
sburjan - (15:59): remainders, etc
cjdelisle - (15:59): I have 5 pdfs in my system tray.
sburjan - (15:59): about ?
sburjan - (16:00): security ?
cjdelisle - (16:00): How to get ips, DDoS defense, anycast,
conficker, and
ecc.
sburjan - (16:00): they should make a book on crypto. Computer
Security for
retards. and they should dedicate it to me :))
sburjan - (16:01): Well known idiot’s guide is too high level .. I
need
something lower
abusenius - (16:01): :D
cjdelisle - (16:01): hah, I noticed that the math all just looks
hard with
the weird symbols, read the implementation if you
want to
understand.
cjdelisle - (16:01): Look at this:
http://cr.yp.to/salsa20.html
abusenius - (16:02): I find probability theory harder, groups are
not that
bad
cjdelisle - (16:02): salsa20 is a full cipher implementation in 22
lines.
that is why Bernstein is full of win.
cjdelisle - (16:03): no stupid s-boxes, no obfuscation. it’s either
secure
or it’s not and that doesn’t really depend on how
hard it is to
understand.
abusenius - (16:04): thats just because it
doesn’t include the
implementation of the hash function ;)
cjdelisle - (16:04): yea well it’s actually a cipher. Converting it
to a
hash which is collision resistant and such is a
bigger task.
cjdelisle - (16:05): but that function placed well in the eurocrypt
contest.
abusenius - (16:09): in any case, understanding what you can do (and
what
not) with some type of encryption is more
important than
implementation
details
cjdelisle - (16:10): Yea, the devil really is in the details.
cjdelisle - (16:12): I remember reading that people were surprised
when
joanna rutkowska showed that a computer with full
disk encryption
can still
be attacked by putting malware in the mbr.
abusenius - (16:12): less related question, how can I change log4j
settings
of xwiki instance I use for escaping-tests/
abusenius - (16:12): ?
abusenius - (16:13): it seems to use debug logging level
cjdelisle - (16:14): take a look at start-wiki and
start-wiki-debug.sh
there might be something there about it.
abusenius - (16:15): hm, not really
cjdelisle - (16:16): I don’t know, you could google log4j "-D"
cjdelisle - (16:17): I’m sure there is a -Dsomething which will
change it.
abusenius - (16:18): googling...
mflorea joined #xwiki at 16:20
sburjan - (16:21): in java a char is 2 bytes, right ? so a 64 bytes
string
is actually a 32 char string ?
cjdelisle - (16:22): yes a char is two bytes :/
sburjan - (16:23): in the link you gave me , it says that it takes a
64
bytes strin. about salsa20
cjdelisle - (16:23): String has a few other components which occupy
some
space but you’re pretty much correct.
sburjan - (16:23): but if the input string is less than 64 bytes/32
chars ?
it’s getting padded ?
cjdelisle - (16:24): Well the function will run on much larger
pieces of
data by breaking them up, and yes it pads at the
end.
cjdelisle - (16:26): The neat thing about salsa is it’s auto
seeking. You
give it a key and say block 1000, then you input
1000 along with the
key and
salt, and it generates some output which you can
use to decrypt the
data.
cjdelisle - (16:27): salsa20 doesn’t actually
decrypt your data, it
generates psudorandom which you then xor against your data.
lucaa joined #xwiki at 16:28
sburjan - (16:28): hmmm
sburjan - (16:28): so it can be decrypted
sburjan - (16:29): afaik md5 is one way hash
sburjan - (16:29): alsa is reversible ?
cjdelisle - (16:29): yea.
cjdelisle - (16:29): Imagine you take a key and md5 it.
sburjan - (16:29): oh... big diffrence
cjdelisle - (16:30): Actually imagine you take a key, append a
number (0)
then md5 it.
cjdelisle - (16:30): then you take your plain text and xor it
against the
output from md5.
sburjan - (16:31): this is how you decrypt it ?
_______________________________________________
notifications mailing list
notifications(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/notifications
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs