pastebin - collaborative debugging tool
ircv2.kpaste.net RSS


IRCv2 Chat Log
Posted by Anonymous on Tue 26th Apr 2011 14:24
raw | new post

  1. [02:44] <+Polynomial> heh, actually when I think about it an IRCd is probably more simple than an IRC client
  2. [02:44] <@T3ch> oh i see how it is. im so uncool no one notices
  3. [02:44] <+Polynomial> all you have to do is keep track of who is on what channel
  4. [02:44] <@bluechill> Polynomial, which is what I do
  5. [02:44] <+Polynomial> everything else is services
  6. [02:44] <@bluechill> :P
  7. [02:45] <@bluechill> I'm thinking about reimplementing plugin support
  8. [02:45] <@bluechill> not sure if thats such a good idea
  9. [02:45] <+Polynomial> I'd really like to see IRCv2
  10. [02:45] <@bluechill> IRCv2?
  11. [02:45] <+Polynomial> modern reimplementation of the IRC standard
  12. [02:45] <+Polynomial> as a new RFC
  13. [02:45] <@bluechill> where link?
  14. [02:46] <+Polynomial> it doesn't exist
  15. [02:46] <+Polynomial> a lot of people have discussed it though
  16. [02:46] <@bluechill> ah
  17. [02:46] <+Polynomial> IRC is designed based on the days of dialup and direct connections (no NAT)
  18. [02:46] <@bluechill> so? whats the difference with IRC v2?
  19. [02:46] <@bluechill> it gets around NAT?
  20. [02:46] <@bluechill> and allows servers through firewalls?
  21. [02:47] <+Polynomial> not really
  22. [02:47] <@bluechill> er routers
  23. [02:47] <@bluechill> :P
  24. [02:47] <@bluechill> then whats the difference?
  25. [02:47] <+Polynomial> better designed server-to-server communications
  26. [02:47] <+Polynomial> more capabilities related to user interaction
  27. [02:47] <+Polynomial> integrated and standardized services
  28. [02:47] <+Polynomial> improved channel control
  29. [02:47] <@bluechill> how hard would that be to implement?
  30. [02:47] <+Polynomial> not very
  31. [02:47] <@bluechill> hmmm
  32. [02:47] <@bluechill> I might do that then
  33. [02:48] <@bluechill> lol
  34. [02:48] <@bluechill> just for a fun weekend project
  35. [02:48] <+Polynomial> you'd need a custom client though
  36. [02:48] <@bluechill> yeah
  37. [02:48] <@bluechill> I know
  38. [02:48] <@bluechill> I could just use telnet though
  39. [02:48] <+Polynomial> true
  40. [02:48] <+Polynomial> you could even include PGP in the protocol
  41. [02:49] <@bluechill> that would be nice
  42. [02:49] <+Polynomial> as a message authentication protocol
  43. [02:49] <@bluechill> interesting
  44. [02:49] <@bluechill> I mean, encryption could also be the defacto standard for privmsg too
  45. [02:49] <+Polynomial> just use SSL
  46. [02:49] <@bluechill> eh
  47. [02:49] <@bluechill> SSL + blowfish
  48. [02:49] <@bluechill> or something like that
  49. [02:49] <+Polynomial> erm
  50. [02:50] <+Polynomial> SSL covers both crypto and authentication
  51. [02:50] <@bluechill> lol
  52. [02:50] <@bluechill> so?
  53. [02:50] <+Polynomial> so why blowfish if SSL includes AES?
  54. [02:50] <@bluechill> blowfish is one more layer
  55. [02:50] <+Polynomial> it's just extra bloat for no reason
  56. [02:50] <+Polynomial> with SSL you've already got a fully standardized and tested protocol
  57. [02:51] <@bluechill> yeah
  58. [02:51] * CrashOverron (Crash@hide-1C4A3969.cfl.res.rr.com) has joined #securityoverride
  59. [02:51] * ChanServ sets mode: +ao CrashOverron CrashOverron
  60. [02:51] <+Polynomial> plus you can treat the server as a CA
  61. [02:51] <@BBot> Welcome CrashOverron
  62. [02:51] * BBot sets mode: +v CrashOverron
  63. [02:51] <@bluechill> yeah
  64. [02:51] <&CrashOverron> yup
  65. [02:51] <@bluechill> Hello CrashOverron
  66. [02:51] <&CrashOverron> Hello bluechill
  67. [02:51] <@T3ch> hey CrashOverron
  68. [02:51] <+Polynomial> so all privmsg would be secure
  69. [02:51] <@bluechill> yeah
  70. [02:51] <+Polynomial> you could also have a channel mode for that
  71. [02:51] <+Polynomial> like +S
  72. [02:51] <@bluechill> mmm
  73. [02:51] <@bluechill> mhmmm
  74. [02:52] <+Polynomial> forces all messages that go in and out of the channel to be sent over SSL
  75. [02:52] <@bluechill> although that could cause problems but thats why it would be irc v2
  76. [02:52] <@bluechill> all clients have to support SSL
  77. [02:52] <+Polynomial> exactly
  78. [02:52] <@bluechill> and by default the server's cert is trusted
  79. [02:52] <@bluechill> that may be a bad thing though :P
  80. [02:52] <@bluechill> although just for that IRC connection wouldn't be so bad
  81. [02:53] <+Polynomial> you could make it configurable
  82. [02:53] <+Polynomial> either make it trusted by default
  83. [02:53] <@bluechill> true
  84. [02:53] <+Polynomial> or make it use a CA
  85. [02:53] <@bluechill> true
  86. [02:53] <+Polynomial> so you could sign the server cert with VeriSign or whatever
  87. [02:53] <@bluechill> That would be nice
  88. [02:53] <@bluechill> although, induvidual channel signing would be interesting
  89. [02:53] <@bluechill> wonder if that would be possible to create
  90. [02:53] <+Polynomial> yeah
  91. [02:54] <+Polynomial> hmm
  92. [02:54] <@bluechill> I mean, depending on how you implemented the server
  93. [02:54] <+Polynomial> you could base64 encode the cert
  94. [02:54] <@bluechill> in theory I would think yes
  95. [02:54] <+Polynomial> and have a command to upload it
  96. [02:54] <@bluechill> that might work
  97. [02:54] <+Polynomial> or just have the client do it
  98. [02:55] <+Polynomial> I'd probably use bencode or something for the protocol
  99. [02:55] <+Polynomial> since it's lightweight
  100. [02:55] <@bluechill> true
  101. [02:55] <@bluechill> as for server to server communication
  102. [02:55] <+Polynomial> and supports multiple datatypes
  103. [02:55] <+Polynomial> for server to server you'd have to force external CA
  104. [02:55] <@bluechill> yeah however
  105. [02:55] <+Polynomial> actually
  106. [02:55] <+Polynomial> do one better
  107. [02:56] <@bluechill> I think server to server communication could just be treated as special client communication
  108. [02:56] <@bluechill> with pgp key
  109. [02:56] <+Polynomial> exchange each other's certificates explicitly
  110. [02:56] <+Polynomial> external to the protocol
  111. [02:56] <+Polynomial> i.e. send each other it via email, or physical copy
  112. [02:56] <@T3ch> bbiab
  113. [02:56] <+Polynomial> both servers need each others certs installed
  114. [02:56] <@bluechill> why not just pgp sign a connection then send it?
  115. [02:57] <+Polynomial> because it needs to be authenticated and encrypted
  116. [02:57] <+Polynomial> all channel messages get duplicated across servers
  117. [02:57] <@bluechill> yeah :P
  118. [02:57] <+Polynomial> server to server needs to be 100% authenticated and encrypted
  119. [02:57] * @T3ch (T3ch@The.65536th.Port) Quit (Quit: bbl)
  120. [02:57] <+Polynomial> hence absolute trust
  121. [02:57] <@bluechill> yeah
  122. [02:58] <@bluechill> hmmm
  123. [02:58] <+Polynomial> physical copy or email copy certificates, pre-installed
  124. [02:58] <@bluechill> like you said, why not make it explicit.  So I mean, you have to locally add the cert to connect the servers
  125. [02:58] <@bluechill> that would deal with connection security
  126. [02:58] <+Polynomial> exactly, but only for server-server
  127. [02:58] <+Polynomial> not client-server
  128. [02:59] <+Polynomial> because for client-server that'd be way too much hassle
  129. [02:59] <@bluechill> yeah
  130. [02:59] <+Polynomial> it needs to be easy
  131. [02:59] <@bluechill> server to server should be 100% secure though
  132. [02:59] <+Polynomial> yup
  133. [02:59] <@bluechill> or at least 99.999999
  134. [02:59] <+Polynomial> it needs both certificate verification and password verification
  135. [02:59] <+Polynomial> something you have, something you know
  136. [02:59] <+Polynomial> two factor verification :)
  137. [02:59] <@bluechill> why not IP verification?
  138. [02:59] <@bluechill> as well
  139. [02:59] <+Polynomial> that too
  140. [02:59] <+Polynomial> 3 factor
  141. [02:59] <+Polynomial> but it can be spoofed
  142. [03:00] <@bluechill> all 3 not easily
  143. [03:00] <+Polynomial> exactly
  144. [03:00] <@bluechill> if one fails the connection is dropped
  145. [03:00] <+Polynomial> cert can't be spoofed without rooting one box or snooping the email
  146. [03:00] <@bluechill> even if other are valid
  147. [03:00] <+Polynomial> password can't be cracked easily
  148. [03:00] <+Polynomial> easy to fail2ban bruteforce
  149. [03:00] <@bluechill> and I mean, I think the password should have some minimum character and length requirements
  150. [03:00] <+Polynomial> yeah
  151. [03:00] <+Polynomial> minimum entropy
  152. [03:00] <@bluechill> like 512 min length.
  153. [03:00] <+Polynomial> nah
  154. [03:01] <@bluechill> ":P
  155. [03:01] <@bluechill> why entropy?
  156. [03:01] <@bluechill> thats thermodynamics :P
  157. [03:01] <+Polynomial> because entropy is a direct measure of password complexity
  158. [03:01] <@bluechill> this is software
  159. [03:01] <+Polynomial> shannon entropy
  160. [03:01] <@bluechill> eh
  161. [03:01] <@bluechill> oh
  162. [03:02] <@bluechill> yeah that sounds good
  163. [03:02] <@bluechill> I'll be right back.  Think of some more ideas.  This intrigues me.  IRC v2 would be rather interesting to implement
  164. [03:03] <@bluechill> 100% secure, easy to use
  165. [03:03] <@bluechill> etc.
  166. [03:03] <@bluechill> modern too
  167. [03:03] <+Polynomial> something like 2.5x10^12 minimum keyspace
  168. [03:03] <+Polynomial> 8 characters a-z 0-9 will cover that
  169. [03:04] <+Polynomial> I think more user information would be nice
  170. [03:04] <+Polynomial> like easily accessible stats
  171. [03:05] <+Polynomial> and info about when the user last spoke
  172. [03:05] <+Polynomial> maybe a small profile (name, website, email, etc)
  173. [03:06] <+Polynomial> one thing it'd need is full IPv6 compatibility
  174. [03:07] <+Polynomial> and configurable host masking (like how we have hide-11223344.server1.host.net)
  175. [03:09] <+Polynomial> except in this case probably make it a lot more configurable
  176. [03:09] <+Polynomial> better inbuilt ban management
  177. [03:09] <+Polynomial> like the ability to auto-remove after a while
  178. [03:10] <+Polynomial> also have registered channels cache their modes and configuration, unlike current IRC
  179. [03:11] <+Polynomial> there also needs to be a way to make a channel that can only be joined by a user list
  180. [03:12] <+Polynomial> like +b *!*@*, +e Polynomial!*@*
  181. [03:12] <+Polynomial> but configured in a better way
  182. [03:18] <@bluechill> yeah
  183. [03:18] <@bluechill> I mean, I think the mode system should be overhauled to a certain extent
  184. [03:18] <+Polynomial> yeah
  185. [03:18] <+Polynomial> I think the single character mode system is fine
  186. [03:18] <+Polynomial> it just needs overhauling with nicer formats
  187. [03:19] <+Polynomial> and a whole set of properly defined modes
  188. [03:19] <@bluechill> thats what I meant
  189. [03:19] <+Polynomial> possibly more mode options too
  190. [03:19] <+Polynomial> like private/secret are basically the same mode
  191. [03:19] <+Polynomial> the only difference is that one of them doesn't appear in the user channel list
  192. [03:19] <@bluechill> although channel modes should be easily distinguishable from user modes.
  193. [03:20] <@bluechill> and then there is the thing like
  194. [03:20] <@bluechill> /mode #channel +ooo BBot bluechill Polynomial
  195. [03:20] <@BBot> Hello, bluechill
  196. [03:20] <@bluechill> you should only have to do //mode #channel +o BBot bluechill Polynomial
  197. [03:20] <@BBot> Hello, bluechill
  198. [03:20] <@bluechill> and other stuff like
  199. [03:21] <@bluechill> /mode #channel +ov bluechill
  200. [03:21] <@bluechill> instead of /mode #channel +ov bluechill bluechill
  201. [03:21] <@bluechill> make management a little easier
  202. [03:22] <+Polynomial> hmm
  203. [03:22] <+Polynomial> yeah
  204. [03:22] <+Polynomial> if there's one user, apply all modes to that user
  205. [03:22] <@bluechill> yeah
  206. [03:22] <+Polynomial> if there's multiple users, require one user per mode
  207. [03:23] <+Polynomial> (like current)
  208. [03:23] <@bluechill> eh
  209. [03:23] <@bluechill> :P
  210. [03:23] <@bluechill> if it is all the same then no
  211. [03:23] <@bluechill> like +ooo
  212. [03:23] <@bluechill> only have to have +o
  213. [03:23] <@bluechill> however
  214. [03:23] <@bluechill> +ovv would be different
  215. [03:23] <@bluechill> make it a little simplier
  216. [03:23] <+Polynomial> yeah that too
  217. [03:24] <@bluechill> also, the symbles for denoting modes I think should be made clearer somehow :P
  218. [03:24] <+Polynomial> one mode, one user = set that mode on that user
  219. [03:24] <@bluechill> &, @, +, not clear :P
  220. [03:24] <@bluechill> etc.
  221. [03:24] <+Polynomial> one mode, multiple users = set that mode on those users
  222. [03:24] <@bluechill> yeah
  223. [03:24] <+Polynomial> multiple modes, one user = set those modes on that user
  224. [03:24] <@bluechill> I mean I think it should be more like this
  225. [03:24] <@bluechill> instead of @bluechill, bluechill +ov
  226. [03:25] <+Polynomial> multiple modes, multiple users = set those modes to those users in that order, requiring the same number of modes and users
  227. [03:25] <@bluechill> so the modes follow the user
  228. [03:25] <+Polynomial> hmm
  229. [03:25] <+Polynomial> I think the user prefix is fine
  230. [03:25] <+Polynomial> and well known
  231. [03:25] <@bluechill> well it's unclear :P
  232. [03:25] <@bluechill> I mean,
  233. [03:25] <+Polynomial> but I think we need better granularity
  234. [03:26] <@bluechill> /mode #channel +o bluechill <-- clear bluechill has operator.  @bluechill <-- not so much.  bluechill +ov <-- clearer
  235. [03:26] <+Polynomial> huh?
  236. [03:26] <+Polynomial> that makes no sense
  237. [03:26] <@bluechill> as in
  238. [03:26] <@bluechill> currently I have +o
  239. [03:26] <+Polynomial> the prefix is just to signify the usermode
  240. [03:26] <@bluechill> so my name has a an @ in front of it
  241. [03:26] <+Polynomial> yes
  242. [03:26] <@bluechill> however
  243. [03:27] * bluechill sets mode: -o bluechill
  244. [03:27] <+bluechill> now it has a +
  245. [03:27] * ChanServ sets mode: +o bluechill
  246. [03:27] <+Polynomial> yes, because you have +v set under it
  247. [03:27] <@bluechill> yeah
  248. [03:27] <@bluechill> well
  249. [03:27] <+Polynomial> I don't think that's an issue
  250. [03:27] <+Polynomial> I think it should be detectable
  251. [03:27] <@bluechill> I guess the current system is fine, because it shows the highest usermode
  252. [03:27] <@bluechill> :P
  253. [03:27] <+Polynomial> like if you select the nick and view info
  254. [03:27] <@bluechill> yeah
  255. [03:27] <+Polynomial> it should show all mdoes
  256. [03:28] <+Polynomial> but I think we need clearer privilege levels
  257. [03:28] <@bluechill> currently whois doesn't do that
  258. [03:28] <@bluechill> :P
  259. [03:28] <@bluechill> yeah
  260. [03:28] <@bluechill> also, I think there should be a destintion for bots
  261. [03:28] <+Polynomial> yeah, a bot prefix
  262. [03:28] <@bluechill> there currently isn't one
  263. [03:28] <+Polynomial> like $
  264. [03:28] <+Polynomial> $bot
  265. [03:28] <@bluechill> or something like that
  266. [03:28] <+Polynomial> or ^
  267. [03:28] <+Polynomial> ^ might be better, it looks kinda robotic
  268. [03:28] <+Polynomial> and it's lightweight
  269. [03:28] <@bluechill> lol
  270. [03:28] <+Polynomial> ^botname
  271. [03:28] <@bluechill> $ is in form with more usermodes though
  272. [03:29] <+Polynomial> yes, but it looks kinda like an S
  273. [03:29] <@bluechill> ^ is easy to miss whereas $ isn't
  274. [03:29] <@bluechill> eh
  275. [03:29] <@bluechill> ok
  276. [03:29] <+Polynomial> so it might be awkward
  277. [03:29] <@bluechill> howabout
  278. [03:29] <@bluechill> #
  279. [03:29] <@bluechill> oh wait
  280. [03:29] <+Polynomial> channel is #
  281. [03:29] <@bluechill> thats channel :P
  282. [03:29] <+Polynomial> * maybe
  283. [03:29] <@bluechill> * would be better
  284. [03:29] <@bluechill> ^ is easy to miss
  285. [03:29] <@bluechill> * not as much
  286. [03:29] <+Polynomial> yeah
  287. [03:30] <@bluechill> also, I think messages should be clearer
  288. [03:30] <@bluechill> so the servers shouldn't play ping-pong with the clients
  289. [03:30] <@bluechill> the clients should send a keep-alive message like in ftp
  290. [03:31] <@bluechill> and if they don't send one every 5 minutes or something then the server has to drop them
  291. [03:31] <+Polynomial> I think we should have fully granular channel control privileges for super-op level users
  292. [03:31] <@bluechill> elaborate, what do you mean?
  293. [03:31] <@bluechill> I have an idea
  294. [03:31] <+Polynomial> so ~ is owner/admin, which is forced to have all privileges
  295. [03:32] <@bluechill> but I want to know what your thinking for that
  296. [03:32] <@bluechill> Ya
  297. [03:32] <@bluechill> Ah
  298. [03:32] <@bluechill> ok
  299. [03:32] <+Polynomial> & is super-op, which is like an op but it has access to channel settings (like chanserv)
  300. [03:32] <+Polynomial> but those settings are entirely granular
  301. [03:32] <@bluechill> ok
  302. [03:32] <+Polynomial> grantable and such by admin
  303. [03:32] <+Polynomial> like how IPB does it
  304. [03:33] * bluevoid (bluechill@88E18C6B.8F1F0E24.E33B6120.IP) has joined #securityoverride
  305. [03:33] * ChanServ sets mode: +v bluevoid
  306. [03:33] <+bluevoid> Eg :P
  307. [03:33] * @bluechill (bluechill@bluechill.fbi.gov) Quit (NickServ (GHOST command used by bluevoid))
  308. [03:33] * bluevoid is now known as bluechill
  309. [03:33] <+Polynomial> lol
  310. [03:33] <+Polynomial> wb
  311. [03:33] <+bluechill> there
  312. [03:33] <+bluechill> iPhone now
  313. [03:33] <+bluechill> My Internet just died :P
  314. [03:33] <+bluechill> Damn comcast
  315. [03:34] <+Polynomial> like /grant #channel privilege_name user
  316. [03:34] <+Polynomial> /revoke #channel privilege_name user
  317. [03:34] * @BBot (BBot@hide-D8E8F540.hsd1.mi.comcast.net) Quit (Ping timeout)
  318. [03:34] <+bluechill> Anyways, yeah I mean granularity sounds fine however there should be a certain minimum distinction between usermodes.  +a can't have less privs than +o for example
  319. [03:35] <+bluechill> Like some minimum required permissions for usermodes
  320. [03:35] <+Polynomial> of course
  321. [03:35] <+bluechill> So not totally granular ;)
  322. [03:35] <+Polynomial> basically & would mean +o with grantable permissions for chanserv
  323. [03:35] <+bluechill> Yeah.  That works
  324. [03:36] <+bluechill> So minimum usermode below it in terms of permissions
  325. [03:36] <+Polynomial> and ~ means admin, which has all permissions
  326. [03:36] <+bluechill> And cannot be changed
  327. [03:36] <+bluechill> Has to have all
  328. [03:36] <+Polynomial> different & users could have different permissions
  329. [03:36] <+Polynomial> but there wouldn't be a need for anyone to see those differences publically
  330. [03:36] <+Polynomial> it's all internal
  331. [03:37] <+bluechill> yup.  Also, your logging this right? I'll want a copy of this later because I'm too lazy to rip the logs from colloquy off
  332. [03:37] <+bluechill> My iPhone
  333. [03:37] <+Polynomial> yes
  334. [03:37] <+Polynomial> I also think +v needs an overhaul
  335. [03:37] <+bluechill> Ok good and that sounds good.
  336. [03:37] <+bluechill> Yeah voice isn't so clear :P
  337. [03:37] <+Polynomial> right now it's only used to signify that the user isn't just a random user
  338. [03:37] <+Polynomial> and that it can get past +m
  339. [03:37] <+Polynomial> but that's not really that useful
  340. [03:37] <+bluechill> How about +r registered?
  341. [03:37] <+Polynomial> how do you mean?
  342. [03:38] <+Polynomial> I think +r on users is good, and +R for channel should mean "require user to be registered with NickServ"
  343. [03:38] <+bluechill> So if the user is registered then they have +r however that doesn't grant them voice in +m.  +v should still exist but only for being able to get around muted channels
  344. [03:38] <+Polynomial> just like it does now
  345. [03:39] <+bluechill> Separate voice from registered
  346. [03:39] <+Polynomial> ah, that should be configurable
  347. [03:39] <+bluechill> Yeah
  348. [03:39] <+bluechill> But minimum is just a thing to say "I'm registered"
  349. [03:39] <+Polynomial> so basically
  350. [03:39] <+Polynomial> +r means you're registered
  351. [03:40] <+Polynomial> I think when you set +m, it should (by default) give +v to any +r user
  352. [03:41] * bluevoid (bluechill@B8D629DD.11ED827A.E33B6120.IP) has joined #securityoverride
  353. [03:41] * ChanServ sets mode: +v bluevoid
  354. [03:41] <+Polynomial> wb again
  355. [03:41] <+bluevoid> This is why I don't like colloqy
  356. [03:41] <+bluevoid> It's unstable
  357. [03:41] <+bluevoid> What did you say after my last message?
  358. [03:41] <+Polynomial> I think there should be a channel option (not a mode) to have +v given to +r users when +m is enabled
  359. [03:42] <+bluevoid> Yeah
  360. [03:42] <+bluevoid> Although then there should be a mute mode for users
  361. [03:42] * +bluechill (bluechill@bluechill.fbi.gov) Quit (Ping timeout)
  362. [03:42] <+Polynomial> yes
  363. [03:42] <+Polynomial> definitely
  364. [03:42] * bluevoid is now known as bluechill
  365. [03:43] <+Polynomial> I think +q should be quiet
  366. [03:43] <+Polynomial> not channel owner
  367. [03:43] <+bluechill> Yeah.  That would work.
  368. [03:43] <+bluechill> +f? Channel owner?
  369. [03:43] <+bluechill> Founder
  370. [03:43] <+bluechill> Logical no?
  371. [03:43] <+Polynomial> I was thinking +a for admin, +s for super-op, +o for op, +h for half-op
  372. [03:43] <+bluechill> Ah
  373. [03:43] <+bluechill> That works
  374. [03:43] <+Polynomial> +v for voice, obviously
  375. [03:44] <+bluechill> ofc but that's a channel mode now
  376. [03:44] <+Polynomial> probably
  377. [03:44] <+Polynomial> but we'd redo channel modes
  378. [03:44] <+bluechill> +r for registered
  379. [03:44] <+Polynomial> like perhaps have lowercase for users
  380. [03:44] <+Polynomial> uppercase for channels
  381. [03:44] <+bluechill> Easy distinction
  382. [03:44] <+Polynomial> yup
  383. [03:44] <+bluechill> I like it
  384. [03:45] <+bluechill> Although, how about server modes?
  385. [03:45] <+Polynomial> I think we should gut those completely
  386. [03:45] <+Polynomial> and replace them with readable config flag names
  387. [03:46] <+bluechill> yeah
  388. [03:46] <+bluechill> That would be better
  389. [03:47] <+Polynomial> and lots of config for the server globally
  390. [03:47] <+bluechill> That's true
  391. [03:47] <+Polynomial> like a directive that says "you can only join channels if you're registered"
  392. [03:47] <+bluechill> Would be nice too
  393. [03:47] <+bluechill> Yeah.  Stuff like that would be nice
  394. [03:48] <+bluechill> Compared to what we currently have
  395. [03:48] <+Polynomial> yeah
  396. [03:48] <+bluechill> What else to change
  397. [03:51] <+bluechill> Oh services
  398. [03:51] <+bluechill> We could change those a little
  399. [03:51] <+Polynomial> I was thinking we should still have services in the traditional sense, but have them as modules of the IRCd
  400. [03:51] <+bluechill> Yeah
  401. [03:52] * VvCMDvV (webchat@hide-6621C7D6.rn.hr.cox.net) has joined #securityoverride
  402. [03:52] <+bluechill> Also they shouldnt be just like ChanServ and NickServ but like more General
  403. [03:52] * VvCMDvV (webchat@hide-6621C7D6.rn.hr.cox.net) has left #securityoverride
  404. [03:52] * VvCMDvV (webchat@hide-6621C7D6.rn.hr.cox.net) has joined #securityoverride
  405. [03:52] * ChanServ sets mode: +v VvCMDvV
  406. [03:52] <+Polynomial> I think they should still be ChanServ/NickServ
  407. [03:53] <+Polynomial> but we should probably have more functionality
  408. [03:53] <+Polynomial> and perhaps additional services
  409. [03:53] <+bluechill> I mean, that's what I meant
  410. [03:53] <+bluechill> More functionality
  411. [03:53] <+bluechill> And more true to their purpose
  412. [03:53] <+bluechill> So like NickServ becomes UserServ and would grant user modes instead of ChanServ
  413. [03:54] <+bluechill> And chanserv more channel stuff
  414. [03:54] <+Polynomial> hmm
  415. [03:54] <+Polynomial> possibly
  416. [03:54] <+Polynomial> they'd need some thought
  417. [03:54] <+bluechill> Yeah
  418. [03:54] <+Polynomial> UserServ makes more sense than NickServ though, yeah
  419. [03:54] <+bluechill> Their current form is good but could be improved
  420. [03:55] <+Polynomial> yeah
  421. [03:55] <+bluechill> I mean, another service could be BotServ which deals with bots and provides information about bots and deals with bots.  So they aren't treated as users
  422. [03:56] <+bluechill> But not as services either
  423. [03:56] <+Polynomial> perhaps even have CopServ for certain security things
  424. [03:56] <+bluechill> Yeah
  425. [03:57] <+bluechill> I mean, more functionality and more
  426. [03:57] <+bluechill> Sensical services
  427. [03:57] <+Polynomial> heh
  428. [03:58] <+bluechill> That would make the most sense
  429. [03:58] <+bluechill> Also, virtual hosts should be standard
  430. [03:58] <+bluechill> But
  431. [03:59] <+bluechill> Admins should have access to their real hostname and bans ban their real hostname however that should be customizable
  432. [03:59] <+Polynomial> of course
  433. [03:59] <+Polynomial> actually
  434. [03:59] <+bluechill> Hrmm
  435. [03:59] <+Polynomial> I think there should be a way to ban people with vhosts by their IP
  436. [04:00] <+Polynomial> in channels
  437. [04:00] <+bluechill> Yeah
  438. [04:00] <+Polynomial> but without seeing their hostname
  439. [04:00] <+bluechill> The server could handle that
  440. [04:00] <+Polynomial> yup
  441. [04:01] <+Polynomial> the command would be interesting though
  442. [04:01] <+bluechill> Eh
  443. [04:01] <+bluechill> From a servers perspective yes, client ni
  444. [04:03] <+bluechill> what else?
  445. [04:03] <+bluechill> I'm sure there's more
  446. [04:03] <+bluechill> Also, do you agree with me on the ping vs keep alive tjjing
  447. [04:04] <+bluechill> We could just have something of a modern game lol
  448. [04:04] <+bluechill> Instead of pong
  449. [04:04] <+bluechill> Lol
  450. [04:04] <+Polynomial> heh
  451. [04:04] <+Polynomial> well ping/pong is fine
  452. [04:05] <+Polynomial> the current system is PING :token / PONG :token
  453. [04:05] <+bluechill> Lol
  454. [04:05] <+bluechill> Yeah
  455. [04:05] <+bluechill> But keep alive makes more sense
  456. [04:05] <+bluechill> :P
  457. [04:05] <+Polynomial> howso?
  458. [04:05] <+Polynomial> ping/pong works fine
  459. [04:05] <+Polynomial> it does the job
  460. [04:05] <+bluechill> It does what it is intended to in a clear way
  461. [04:05] <+bluechill> And less work for the server
  462. [04:06] <+Polynomial> eh, ping/pong works fine
  463. [04:06] <+bluechill> Ping pong not so clear unless you understand irc protocol :P
  464. [04:06] <+Polynomial> notrly
  465. [04:06] <+Polynomial> it's used in loads of protocols
  466. [04:06] <+bluechill> Well
  467. [04:06] <+bluechill> Ok true
  468. [04:06] <+bluechill> :P
  469. [04:06] <+Polynomial> I think ping/pong doesn't need any more engineering
  470. [04:06] <+bluechill> You win there
  471. [04:07] <+bluechill> Maybe the server plays a board game with the client though?
  472. [04:07] <+bluechill> Lol
  473. [04:07] <+Polynomial> heh
  474. [04:07] <+bluechill> Monopoly?
  475. [04:07] <+Polynomial> the less CPU cycles the better
  476. [04:07] <+bluechill> I was joking lol
  477. [04:07] <+Polynomial> hehe
  478. [04:08] <+bluechill> You didnt think I was serious did you? :eye roll: ;)
  479. [04:08] <+Polynomial> hehe
  480. [04:09] <+Polynomial> automated spam and DoS mitigation should be a critical subsystem
  481. [04:09] <+bluechill> Yeah
  482. [04:09] <+bluechill> That is a need in this day and we
  483. [04:09] <+Polynomial> yup
  484. [04:09] <+bluechill> Era*
  485. [04:09] <+Polynomial> age*
  486. [04:09] <+Polynomial> :P
  487. [04:10] <+bluechill> Damn iPhone :P
  488. [04:10] <+Polynomial> ^.^
  489. [04:10] <+bluechill> Auto correct sucks on it
  490. [04:10] <+Polynomial> I know
  491. [04:10] <+Polynomial> but yeah anti-ddos and anti-spam
  492. [04:10] <+bluechill> Although, I mean, we should a system for how users are stored
  493. [04:10] <+bluechill> Like in an XML file
  494. [04:10] <+bluechill> Or something
  495. [04:10] <+Polynomial> nah, it needs to be indexed so it's scalable
  496. [04:11] <+bluechill> Something standardized
  497. [04:11] <+bluechill> Hm
  498. [04:11] <+Polynomial> could have it linked to MySQL?
  499. [04:11] <+bluechill> Yeah
  500. [04:11] <+bluechill> That might work
  501. [04:11] <+bluechill> Or SQL database
  502. [04:11] <+bluechill> So like most apps already do
  503. [04:11] <+bluechill> They have a minisql database for storage
  504. [04:11] <+Polynomial> or even better we could make it cross-endpoint compatible
  505. [04:12] <+Polynomial> use the standard DataTable interfaces
  506. [04:12] <+bluechill> That sounds nice
  507. [04:12] <+bluechill> Sounds nice
  508. [04:12] <+Polynomial> and have plugins so you can use MSSQL/MySQL/PosgreSQL
  509. [04:12] <+Polynomial> *postgresql
  510. [04:12] <+bluechill> That would work
  511. [04:12] <+Polynomial> part of the issue is replication
  512. [04:12] <+bluechill> True
  513. [04:12] <+Polynomial> especially if you're doing multi-server stuff
  514. [04:13] <+bluechill> Another issue though would be legacy clients :P
  515. [04:13] <+Polynomial> no
  516. [04:13] <+bluechill> Just drop them?
  517. [04:13] <+Polynomial> yes
  518. [04:13] <+Polynomial> drop
  519. [04:13] <+Polynomial> or rather show a message
  520. [04:13] <+Polynomial> and then dc
  521. [04:13] <+bluechill> Currently is there even a standard drop for irc?
  522. [04:13] <+Polynomial> yes
  523. [04:13] <+bluechill> I meant
  524. [04:14] <+Polynomial> you just send a server MOTD message and host disconnect
  525. [04:14] <+bluechill> Like k lining but the instance they connect
  526. [04:14] <+Polynomial> yeah, you just cut the connection
  527. [04:14] <+Polynomial> .Close();
  528. [04:14] <+Polynomial> :P
  529. [04:14] <+bluechill> Also, how to specify irc protocol version for servers :P just have it first thing or something?
  530. [04:14] <+bluechill> Lol
  531. [04:14] <+bluechill> True
  532. [04:14] <+Polynomial> protocol version?
  533. [04:14] <+Polynomial> oh
  534. [04:15] <+Polynomial> wouldn't matter
  535. [04:15] <+bluechill> Eh
  536. [04:15] <+bluechill> Might eventually
  537. [04:15] <+Polynomial> you could have a magic number
  538. [04:15] <+Polynomial> like how SSH does
  539. [04:15] <+Polynomial> so the first message would be "IRCv2 <ircd name> <ircd version>"
  540. [04:15] <+bluechill> 0xBADBEEF?
  541. [04:16] <+bluechill> Makes sense
  542. [04:16] <+Polynomial> IRCv2 as ASCII is a good enough magic number
  543. [04:16] <+bluechill> Although negotiating ssl though
  544. [04:16] <+Polynomial> SSL negotiation is transparent
  545. [04:16] <+bluechill> Before or after irc protocol?
  546. [04:16] <+Polynomial> before
  547. [04:16] <+bluechill> Ok
  548. [04:16] <+Polynomial> entire protocol should be encrypted
  549. [04:16] <+bluechill> Yeah
  550. [04:16] <+bluechill> Makes most sense
  551. [04:17] <+bluechill> Also
  552. [04:17] <+bluechill> Ddc should be updated
  553. [04:17] <+Polynomial> DCC*
  554. [04:17] <+bluechill> iPhone ;)
  555. [04:17] <+Polynomial> I think it should be removed
  556. [04:17] <+bluechill> Hard enough to type on this
  557. [04:17] <+bluechill> Eh
  558. [04:17] <+bluechill> Yeah
  559. [04:17] <+Polynomial> NAT makes it break
  560. [04:17] <+bluechill> Tre
  561. [04:17] <+Polynomial> it's only ever used for bots on file sharing IRCs
  562. [04:18] <+Polynomial> these days people just upload to sendspace
  563. [04:18] <+bluechill> And really the only point of it is to get around the server if the server dies but because nat breaks it it means you would have to go through the server which is the exact opposite you want
  564. [04:18] <+Polynomial> exactly
  565. [04:18] <+bluechill> Besides file sharing
  566. [04:19] <+bluechill> So yeah
  567. [04:19] <+Polynomial> though then again if we're going IPv6 enabled
  568. [04:19] <+bluechill> DDC gone
  569. [04:19] <+Polynomial> we should have an option for DCC
  570. [04:19] <+bluechill> Why?
  571. [04:19] <+Polynomial> NAT wouldn't be used for IPv6
  572. [04:19] <+bluechill> So?
  573. [04:19] <+Polynomial> everyone gets their own IP
  574. [04:19] <+bluechill> Do we even need it
  575. [04:19] <+Polynomial> DCC would be useful
  576. [04:19] <+bluechill> Eh ok
  577. [04:19] <+Polynomial> no, but why remove it if it's useful?
  578. [04:20] <+bluechill> However
  579. [04:20] <+Polynomial> all it has to do is swap IPs
  580. [04:20] <+bluechill> We aren't just ipv4
  581. [04:20] <+bluechill> 6*
  582. [04:20] <+Polynomial> ofc
  583. [04:20] <+bluechill> It's ipv4 too
  584. [04:20] <+Polynomial> indeed
  585. [04:20] <+bluechill> Which means it's still broken for that
  586. [04:20] <+Polynomial> obviously
  587. [04:20] <+Polynomial> I think it should be something the client has to advertise
  588. [04:20] <+bluechill> So would it just go through the server then or just not be attempted?
  589. [04:21] <+Polynomial> so like a CAPS command
  590. [04:21] <+bluechill> Ah ok
  591. [04:21] <+Polynomial> to tell the server your client capabilities
  592. [04:21] <+bluechill> That's probably best
  593. [04:21] <+bluechill> On initial connection it states capabilities
  594. [04:21] <+Polynomial> yes, or it can change caps over time
  595. [04:21] <+bluechill> True
  596. [04:21] <+Polynomial> so when you modify your config it updates via CAPS
  597. [04:22] <+bluechill> Ok
  598. [04:22] <+bluechill> Sounds good
  599. [04:22] <+Polynomial> caps can be stuff like DCC, GPG, SSL flags (does the user have a client certificate?)
  600. [04:23] <+bluechill> Ah
  601. [04:23] <+bluechill> Right
  602. [04:23] <+bluechill> That would work nicely
  603. [04:23] <+Polynomial> I also think MemoServ needs to be overhauled
  604. [04:23] <+bluechill> I forgot about MemoServ
  605. [04:23] <+Polynomial> so that there's an explicit memo inbox
  606. [04:23] <+bluechill> Yeah
  607. [04:23] <+bluechill> I mean
  608. [04:23] <+Polynomial> as a core part of the protocol
  609. [04:24] <+bluechill> Either that or it's handles by UserServ then
  610. [04:24] <+Polynomial> instead of the whole "one server window" paradigm
  611. [04:24] <+Polynomial> no, memos should be separate
  612. [04:24] <+Polynomial> userserv handles user account management
  613. [04:24] <+bluechill> Ok yeah
  614. [04:24] <+Polynomial> chanserv handles channel registration and management
  615. [04:24] <+Polynomial> memoserv handles memos (mail)
  616. [04:25] <+Polynomial> perhaps have CopServ as a background service that is configured only by ircops
  617. [04:25] <+bluechill> Hidden from public view?
  618. [04:25] <+Polynomial> so it can detect DDoS, floods, joinfloods, badwords, etc
  619. [04:25] <+Polynomial> no, it'd be visible
  620. [04:25] <+bluechill> Yeah
  621. [04:25] <+Polynomial> just no user commands
  622. [04:25] <+bluechill> Ok
  623. [04:26] <+Polynomial> only admin commands
  624. [04:26] <+Polynomial> so it would be responsible for bans
  625. [04:26] <+bluechill> Or it can atleast have a what is this command
  626. [04:26] <+Polynomial> as in automatic anti-abuse bans
  627. [04:26] <+bluechill> Yeah
  628. [04:26] <+Polynomial> maybe have copserv handle abuse reports
  629. [04:27] <+Polynomial> and appeals
  630. [04:27] <+bluechill> That works
  631. [04:28] <+bluechill> Also
  632. [04:28] <+Polynomial> oh, whois/whowas should be better too
  633. [04:28] <+bluechill> It should handle channel based encryption, encryption for a channel separetefrom ssl
  634. [04:28] <+bluechill> Right.  More detailed?
  635. [04:29] <+Polynomial> encryption is a core part of the IRCd, not handled by a service
  636. [04:29] <+bluechill> No
  637. [04:29] <+bluechill> I mean
  638. [04:29] <+bluechill> Like channel based encryption, encryption on an individual channel basis
  639. [04:29] <+Polynomial> whois should be able to see which nicks were used by a host
  640. [04:29] <+bluechill> That would be useful
  641. [04:29] <+Polynomial> yes, the encryption would be a channel mode set via ChanServ
  642. [04:29] <+Polynomial> and then the encryption would be performed by the IRCd core
  643. [04:30] <+bluechill> Ah ok
  644. [04:30] <+Polynomial> though tbh I think we should just enable SSL across the board
  645. [04:30] <+bluechill> I was thinking copserv would handle negociarions
  646. [04:30] <+bluechill> Yeah
  647. [04:30] <+Polynomial> there's no downside to it
  648. [04:30] <+Polynomial> messages are short
  649. [04:30] <+Polynomial> it's transparent and zero config
  650. [04:30] <+Polynomial> very little CPU overhead
  651. [04:31] <+bluechill> But we could add another layer of encryption on a per channel basis
  652. [04:31] <+Polynomial> why?
  653. [04:31] <+Polynomial> if it's covered by SSL already, there's no need
  654. [04:31] <+Polynomial> any further encryption would just be bloat
  655. [04:31] <+bluechill> True however, then we should add at least the possibility for per channel ssl veers
  656. [04:32] <+Polynomial> veers?
  657. [04:32] <+bluechill> Certs*
  658. [04:32] <+Polynomial> again, no need
  659. [04:32] <+Polynomial> if the server's cert is trusted, you've got the max security possible
  660. [04:32] <+Polynomial> having people manage individual certificates for channels becomes awkward and unwieldy
  661. [04:32] <+Polynomial> not to mention annoying for clients
  662. [04:33] <+bluechill> Eh righty
  663. [04:33] <+bluechill> Right*
  664. [04:33] <+Polynomial> I think SSL should be a 100% requirement though
  665. [04:33] <+bluechill> Yeah, IRCD is also already handling all other server certs too
  666. [04:33] <+bluechill> IFC
  667. [04:33] <+bluechill> Of course*
  668. [04:34] <+bluechill> I mean, there is practically no overhead so why not?  Doesn't hurt
  669. [04:34] <+bluechill> And just makes everything more secure
  670. [04:34] <+Polynomial> exactly
  671. [04:35] <+Polynomial> that way you can also explicitly provide a client certificate
  672. [04:35] <+bluechill> Big gain for little effort
  673. [04:35] <+bluechill> That works
  674. [04:36] <+Polynomial> so if you want to authenticate to UserServ or to the server as an ircop, you can do so based on a client certificate as well as or in leiu of a password
  675. [04:37] <+bluechill> How about the cert is used for authentication instead of passwords in general?
  676. [04:37] <+bluechill> Makes it practically impossible for cracking it
  677. [04:38] <+Polynomial> complex to set up for the client
  678. [04:38] <+Polynomial> for regular users a password is a better method
  679. [04:38] <+Polynomial> it's familiar, requires no extra knowledge or research
  680. [04:38] <+Polynomial> it should be something clients offer
  681. [04:38] <+Polynomial> I'm thinking bencode for each message, preceded by 2 bytes (ushort) to signify the length of the message
  682. [04:38] <+bluechill> Ok yeah but for authentication for things like server functions certs are a must
  683. [04:38] <+Polynomial> obviously
  684. [04:39] <+bluechill> Including authentication to op
  685. [04:39] <+bluechill> And above
  686. [04:39] <+bluechill> A little harder on the client but more secure
  687. [04:40] * ev0 (40861b40@hide-D2318732.mibbit.com) has joined #securityoverride
  688. [04:40] <+bluechill> However, there should also be a password for nick authentication not just one cert.  Cert only used for server level authentication
  689. [04:40] <+Polynomial> so like for bencode of privmsg it'd be \x00\x1atype:s7privmsgdata:s5Hello
  690. [04:41] <+bluechill> Something like that
  691. [04:41] <+Polynomial> I forget the exact bencode spec
  692. [04:41] <+bluechill> :P I'll google it tomorrow
  693. [04:41] <+Polynomial> hehe
  694. [04:42] <+Polynomial> or even something like...
  695. [04:42] <+bluechill> I think though that this will be something interesting to implement
  696. [04:42] <+bluechill> and very useful
  697. [04:42] <+Polynomial> ushort msgsize; entry[] entries;
  698. [04:42] <+bluechill> Although
  699. [04:43] <+Polynomial> where entry is struct { char datatype; ushort length; char* data }
  700. [04:43] <+bluechill> I think the ability to send priv msgs to users currently offline if you hVe permission would be useful
  701. [04:43] <+bluechill> Like admin to admin
  702. [04:43] <+bluechill> Or something
  703. [04:43] <+bluechill> And yeah
  704. [04:43] <+Polynomial> that's what MemoServ is for
  705. [04:43] <+Polynomial> if a user isn't on, you memo them
  706. [04:43] <+bluechill> No I mean
  707. [04:44] <+bluechill> I though memo serv was global?
  708. [04:44] <+Polynomial> no
  709. [04:44] <+Polynomial> memoserv is user to user
  710. [04:44] <+bluechill> Oh my bad
  711. [04:44] <+Polynomial> it's like email :P
  712. [04:44] <+bluechill> Right
  713. [04:44] <+Polynomial> when you +r it logs you into memoserv
  714. [04:44] <+bluechill> Anyways
  715. [04:44] <+Polynomial> and tells you what memos you have
  716. [04:44] <+bluechill> Yeah that would be a nice thing built into the protocol
  717. [04:45] <+Polynomial> well that's what memoserv does atm
  718. [04:45] <+Polynomial> but I'd want to make it more integrated
  719. [04:45] <+bluechill> ^ what I meant
  720. [04:45] <+Polynomial> so clients would be expected to have a dedicated memo window
  721. [04:45] <+bluechill> More integrated
  722. [04:45] <+Polynomial> instead of having them viewed directly by user command
  723. [04:46] <+bluechill> Yeah.  That would probably work
  724. [04:46] <+Polynomial> anyway
  725. [04:46] <+Polynomial> really late here
  726. [04:46] <+Polynomial> imma hit the hay
  727. [04:46] <+Polynomial> night .o/~
  728. [04:46] <+bluechill> Ok
  729. [04:46] <+bluechill> Night
  730. [04:46] <+Polynomial> I'll think more about this overnight
  731. [04:46] <+bluechill> \o
  732. [04:46] <+bluechill> Yeah same
  733. [04:46] <+bluechill> I do want to code this eventually though
  734. [04:47] <+bluechill> And isn't it like 5am there?
  735. [04:48] <+Polynomial> yup

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at