vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Private Messages Enhancements - PMCrypt - Private Message Encryption (https://vborg.vbsupport.ru/showthread.php?t=140064)

magnus 02-20-2007 10:00 PM

PMCrypt - Private Message Encryption
 
Keywords: Private, Message, PM, Encrypt, Encode, Security

Description:
Encrypts Private Messages within the MySQL database. Allows for on-the-fly decryption without the need for a shared key.


Details:
This hack will encrypt sent messages within your MySQL database. No longer will they be viewable in plaintext, thus affording your members a little more security with their private correspondance.

Please be aware that this is not a total security solution. This was devised with simplicity as well as security in mind -- such as that the encryption method used is NOT to be assumed "unbreakable" by any stretch of the imagination.

The messages are encrypted using a method developed and credited to AITOR SOLOZABAL MERIN by where text is encrypted/decrypted using a simple but powerful XOR method without a known key. Implicitly, the key is defined by the string itself in a character by character way. There are 4 items to compose the unknown key for the character in the algorithim:
  1. The ascii code of every character of the string itself
  2. The position in the string of the character to encrypt
  3. The length of the string that include the character
  4. Any special formula added by the programmer to the algorithm to calculate the key to use
This product does not explicitly rely on any vBulletin functions, thus there should not be any problems with future upgrades, etc.

This product was developed by request of FGENETICS and DOOGIE88.


Installation:
1. Download and import the product-pmcrypt1.1.0.xml file via the Product Manager.

2. Enable the product via the AdminCP (vBulletin Options > Private Message Encryption)

3. ???

4. Profit


Version History:
v1.0.0 - Initial Release
v1.0.1 - Fixed bug when replying to an encrypted message.
v1.1.0 - Fixed issue with reply and preview. Encapsulated encryption within base64_encode(); for storage. Smilies no longer run risk of breaking encryption.

* Once enabled, all PM's sent thereafter will be encrypted. This means that should you choose to disable and/or uninstall the product, said PM's will remain encrypted -- rendering them unreadable.

* Please note that this modification was developed on a forum with a userbase of 1 (myself). I've tested it for basic functionality but I cannot guarantee functionality or behavior on your forum. So, please -- make backups before installing this product!

magnus 02-21-2007 06:06 PM

Reserved.

Stoebi 02-21-2007 06:50 PM

Hi,

where is the file? ;)

Surviver 02-21-2007 06:51 PM

Wow, very nice :) I'll klick instal if you upload the file :P

projectego 02-21-2007 06:53 PM

Sounds very interesting. I'll also click install once the file has been uploaded. ;)

magnus 02-21-2007 07:40 PM

Durr.. it helps if actually upload the product. Woops!

/embarass

ZomgStuff 02-21-2007 10:08 PM

A lot of potential! Thanks!

Reserved!

Lionel 02-21-2007 10:25 PM

Nice! How does it work? Is it decipharable only by the recipient?

doogie88 02-21-2007 11:14 PM

Thank you very much.
One question though, is there anything that will notify me if it worked or not?
Because I enabled it, the Admin CP options are there, but I tested with a message, and it is just like a normal message.
Thanks.

** okay it seems to be working, because when you 'reply' you see the encrypted message.
However, the one downfall is when you reply, and the original sender gets the original message back, after the receiver read it, the original quoted message is encrypted.
Anyway to fix that?

magnus 02-21-2007 11:42 PM

I'll take a look at it, should be a simple fix.

magnus 02-22-2007 12:36 AM

Ok, updated. Fixed the reply bug, however I did run into an issue with smilies during replies. You may want to check the "disable smilies" when replying for the time being, I'll devise a fix for that tomorrow.

doogie88 02-22-2007 12:48 AM

What do I need to do to upgrade it? Uninstall it and re-install?

magnus 02-22-2007 01:35 AM

You can just install the new version over the old one, just select "Allow Overwrite" on the Product Import page.

doogie88 02-22-2007 02:40 AM

Very buggy, having a lot of problems with it.
Most messages aren't being decrypted.

magnus 02-22-2007 10:13 AM

If you encrypted messages with 1.0, uninstalled, then installed 1.1 -- that would happen. By uninstalling you remove the added 'encrypt' row to the 'pmtext' table. When you re-install, the 'encrypt' row is added but without the correct integer for the previously encrypted messages. So when viewing those earlier encrypted messages, the decryption engine doesn't know to decrypt them.

I've installed, upgraded, uninstalled, reinstalled, reupgraded, etc.. about a dozen times, and each time the encryption/decryption works fine. The only problem, that I'm aware of currently, is occasionally the encryption text will contain a smiley bbcode (ie. :) ), thus preventing the message from being DEcrypted.

So, until that bug is fixed I would recommend checking "Disable smilies" when sending PM's. Also, keep in mind that this is still Beta, as noted in the original post.

Once I get into my office this morning, I'll go through the code. It was late last night, so God knows.

doogie88 02-22-2007 01:22 PM

Hello
I tested a brand new message with the new version and it didn't encrypt, maybe it had to do with smilies though.

Snake 02-22-2007 02:14 PM

Oh my god! This is a great hack! :D

magnus 02-22-2007 04:02 PM

Ok, I've found the problem. I'm removing this for download until I upload the new version -- which should be in the next 20 minutes or so.

I would suggest deleting any encrypted PM's you've sent, as the new version will be unable to read them. I've had to wrap the encryption with base64_encode(); to allow for smoother storage within the SQL db.

OpikGer 02-22-2007 04:12 PM

hm, perhaps I'm too stupid, but if the boardsoft can decrypt the pm for the user - why
can't someone who has access to the db decrypt it?

magnus 02-22-2007 04:26 PM

Quote:

Originally Posted by OpikGer (Post 1188384)
hm, perhaps I'm too stupid, but if the boardsoft can decrypt the pm for the user - why
can't someone who has access to the db decrypt it?

As stated in the original post:

Quote:

Please be aware that this is not a total security solution. This was devised with simplicity as well as security in mind -- such as that the encryption method used is NOT to be assumed "unbreakable" by any stretch of the imagination.

magnus 02-22-2007 04:35 PM

Ok, [high]v1.1.0[/high] is available for download. This fixes all bugs listed so far:
  • PM's, replies and previews are working.
  • Smilies no longer have a chance of breaking encryption
  • Encrypted text is now encapsulated within base64_encode(); to allow for proper storage within MySQL database

*** Please note that messages encrypted with v1.0.0 - v1.0.1 will NOT be viewable with v1.1.0. The was an unfortunate but necessary change that needed to be made. I would suggest deleting all previously encrypted PM's before upgrading. ***


Enjoy!

magnus 02-22-2007 06:01 PM

Quote:

Originally Posted by valdet (Post 1188459)
what about when a PM has an attachment.

vBulletin does not natively support attachments within Private Messages. Currently, the only way to achieve this result is via modification.

I develop my hacks to work on a default vBulletin installation and I cannot make any assurances as to their functionality alongside other hacks.

That being said, PMCrypt encrypts only the $pm['message'] variable. I'd imagine the Private Messages Attachments modification stores the attachments within the default attachments table, which remains unaffected by PMCrypt.

tansu 02-22-2007 10:35 PM

Nice one, but how will user understand the encryption?

magnus 02-22-2007 10:51 PM

The user doesn't need to understand anything other than his or her Private Messages are no longer stored in plaintext within the MySQL database. This modification does not require any user interaction whatsoever.

tansu 02-23-2007 12:50 AM

Quote:

Originally Posted by magnus (Post 1188688)
his or her Private Messages are no longer stored in plaintext within the MySQL database.

OK, what I wanted to ask, how will they understand this?
Maybe a sign around the pm editor would be nice. "This message is encrypted" or something like that.
Because if you are a user who is suspicious about if admins are reading my pm's, my word of "your messages are encrypted" wont be enough..
Or I am completely misunderstanding somethings.. :)

magnus 02-23-2007 02:13 AM

Hrm, I see what you're saying. That's not a bad idea, I'll work up something visual for the end user.

Thanks for the suggestion.

TTG 02-23-2007 01:13 PM

This could be more useful if it could be used per usergroup rather than all PM's

Mr.T 02-23-2007 10:42 PM

Hi i have a Problem ... The Hack works fine but :

I see them with Already answered Message for the second time it is answered in the Quot only the encoded text.

Sorry for my bad Englisch but I'm a German ^^

THX

UltimateOreo! 02-23-2007 10:50 PM

Do private messages even need an encryption? As far as i know, it is not possible to "steal" or even intercept private messages. Anyway, good idea as far as peace of mind goes.

magnus 02-23-2007 11:06 PM

Quote:

Originally Posted by Mr.T (Post 1189410)
Hi i have a Problem ... The Hack works fine but :

I see them with Already answered Message for the second time it is answered in the Quot only the encoded text.

Sorry for my bad Englisch but I'm a German ^^

THX

I'm sorry, but I can't quite figure out what you're trying to describe. Would it be possible for you to take a screenshot of the problem?

magnus 02-23-2007 11:08 PM

Quote:

Originally Posted by UltimateOreo! (Post 1189412)
Do private messages even need an encryption? As far as i know, it is not possible to "steal" or even intercept private messages. Anyway, good idea as far as peace of mind goes.

From what I can tell, those who requested this hack were more concerned with assuring the members that the Admins themselves weren't reading their PMs.

Bubble #5 02-25-2007 02:27 PM

Great idea for a hack Magnus :) Thank you for taking the time to make it and sharing it with us. In this day and age it should be a default vb feature.

Mys 03-28-2007 04:51 PM

Very nice. Very timely.

If it is possible and not a big task, I would like to suggest the following:

- A user cp option (checkbox) permitting the member to enable/disable this function;

- A message level option (checkbox) permitting the member to elect this option on a message by message basis;

- Admin level options enabling or disabling each of the above;

Why? As pointed out, there is a degree of risk in using the encryption mod, i.e. if the mod is for whatever reason disabled, removed, broken, whatever - encrypted PMs are effectively lost. Therefore, I would like to put the burden of responsibility for using encryption at the member level. Inform them of the trade-offs and that they use at their option and own risk.

Thanks for the work you have done on this. Installed.

:D

fgenetics 04-12-2007 05:57 AM

u r the bomb! thanks much!!!! nominated and installed

Dream 04-12-2007 06:10 AM

I'll be sure to add a decoder for this in my Read PMs hack :O

/ducks and runs

magnus 04-12-2007 10:32 AM

Quote:

Originally Posted by Dream (Post 1225673)
I'll be sure to add a decoder for this in my Read PMs hack :O

/ducks and runs

The decoding routine is in the source. Enjoy. :p

SuperTaz 06-13-2007 05:16 AM

Installed...Great hack

sonichero 06-13-2007 05:18 AM

I would install this but it conflicts with my "read pms" hack...

Mrdby 07-13-2007 10:34 AM

anybody else?

magnus 07-13-2007 11:15 AM

Quote:

Originally Posted by sonichero (Post 1267431)
I would install this but it conflicts with my "read pms" hack...

Uh, that's kind of the point. The whole point of encrypting private messages is to provide some form of assurance to your users that neither you (nor anyone else) is easily reading them.


All times are GMT. The time now is 05:23 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01310 seconds
  • Memory Usage 1,819KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (8)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete