⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notes

📁 一个windows上的加解密程式 提供方便的介面让使用者操作
💻
字号:
 Notes on strategy, message format, algorithm, and future work:                                                                                Strategy:  Incoming messages:                                              The plugin intercepts incoming messages, and looks for the             CRYPT_HEADER at the beginning of the message.  Tagged messages         are either an incoming public key, a request to send a public          key, or an encrypted message.  Incoming keys are stored,               and encrypted messages are decrypted with your private key.            NEW:  when a key comes in, it looks through a list of all of the             protocols that it knows about, and sees which one wants to             claim the key.  That protocol is then "attached" to the key            and is used for all further encryptions with that key.                                                                                 Outgoing messages:                                                      are also intercepted, and if the user wants the message encrypted,     it is.  The message is then sent directly (not passed back to the      caller) and displayed directly, as otherwise the sender will see       the encrypted text.  This intercept is now done through                event_displayed_sent, so it should happen _after_ all other            plugins get their shot at the message.                                 Messages have CRYPT_HEADER pre-pended, and CRYPT_FOOTER appended.                                                                                                                                                Message format:                                                            Since CRYPT_HEADER is the start of an HTML block, and                  CRYPT_FOOTER is the end of it, a non-encrypted-plugin client           will see some text telling them to load their encryption plugin        rather than a block of garbage.                                        Encrypted blocks are sent Base64 encoded.                                                                        Algorithm:                                                                Uses Mozilla's NSS libraries to do RSA encryption.  All padding    on encryption is done with OAEP, all signatures are done with PSS.	 Signs the outgoing message with your private key, then	 encrypts with other user's public key.  This gives us both encryption	 and authentication (no man in the middle attacks, if our	 original key transmissions were not fooled with).	 	 Note: this isn't really the way that RSA is normally used.	   Usually, you only use RSA to send a session key across,	   then you use that session key with a symmetric cypher	   like Blowfish or AES.  There are a few reasons that folks	   do this:		1) Speed.  RSA is slow.  Symmetric cyphers are fast.		2) RSA has some weaknesses with chosen plaintext attacks.		   ie: if I can pick the text that you will sign with		   your private key, then from the result I can deduce		   your private key.  Bad!	   1) really isn't a problem here on a standard computer.	      if you want to send large files through IM, it might		  be a problem, though.	   2) As long as we don't allow someone else to specify the	      text we send, there can't be any chosen plaintext		  attacks.  Running an echo-bot on your encrypted link		  would be bad, but otherwise, we're ok.	   	   There are some small reasons for us _not_ to use the	   symmetric cypher approach:  Say the other party logs out,	   then logs back in.  A symmetric cypher approach needs to	   re-negotiate a session key; we don't.  Another way of putting	   it: without session keys, we are more stateless, which gives	   us some flexibility.	   	 Almost everything described below (for my old RSA algorithm)	 is done better by the OpenSSL crypto library.  It is faster,	 does its padding in a standard way (PKCS1_OAEP), and uses	 the hardware entropy in most OS'es.  In addition, it offers	 "blinding" to prevent timing attacks, although I suspect that	 a timing attack would be fairly difficult for a remote	 opponent to implement in most IM situations.		 Keys are saved into the user's .gaim directory.  Todo:     We should probably have a help button on the key accept dialogs     and on the config dialog, telling people what things mean.   Why:                                                                      Because I don't like sending root passwords to people in plain         text.                                                                  Plus, the startup I was with folded, and I had some free time :)                                                                              Bill Tompkins-  Email: bill(at)icarion.com, BillTompkins2 on AIM  								       								       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -