Security
Jinhill
信息安全专家,中国银联移动支付国家标准制定专家组成员
展开
-
DNS攻击代码
著名黑客HD Moore已经率先公布了可用代码.利用这段代码可以对DNS服务器进行投毒,将一条恶意纪录植入目标服务器,该服务器将随机发起域名查询,此时攻击者可以提供伪造的响应,将域名服务器中的纪录指向其特定站点.这个漏洞攻击可以默默的改变用户的升级服务下载恶意软件,IOActive研究者Dan Kaminsky很早发现漏洞并且无意中这周公布了漏洞使得开发出攻击代码.infoworld.com网站转载 2008-08-04 10:31:00 · 2895 阅读 · 0 评论 -
NT系统下木马进程的隐藏与检测
在WIN9X中,只需要将进程注册为系统服务就能够从进程查看器中隐形,可是这一切在WINNT中却完全不同,无论木马从端口、启动文件上如何巧妙地隐藏自己,始终都不能欺骗WINNT的任务管理器,以至于很多的朋友问我:在WINNT下难道木马真的再也无法隐藏自己的进程了?本文试图通过探讨WINNT中木马的几种常用隐藏进程手段,给大家揭示木马/后门程序在WINNT中进程隐藏的方法和查找的途径。 我们知道,在W原创 2009-08-07 10:07:00 · 1427 阅读 · 0 评论 -
分组对称加密模式:ECB/CBC/CFB/OFB
一般的加密通常都是块加密,如果要加密超过块大小的数据,就需要涉及填充和链加密模式,文中提到的ECB和CBC等就是指链加密模式。在C#组件中实现的很多算法和Java都不太兼容,至少我发现RSA和AES/ECB是如此。研究了AES/ECB时发现了这篇文档,图还画的不错,先记下。注意,还缺一种CTR的模式。 对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB) 一. AES对原创 2009-10-22 10:12:00 · 1614 阅读 · 0 评论 -
驱动级键盘记录器与安全密码框(能获取QQ密码)
<br />信息监控与隐私保护永远是一对矛盾,在对付各种信息窃取软件上,新技术总是层出不穷。本文介绍一种古老的键盘记录器技术,确实很古老,DOS时代人们就在用了,但是现在它仍然很有效,在键盘过滤驱动失效的情况下,它仍然可用。但是兼容性不佳是它的一个问题,特别是在Windows Vista操作系统上,我不能保证它是可用的。不过在可用的情况下,它能记录我所找到的各种带保护的密码框,包括QQ2008的密码框。<br /> 在此之前你还可以看看我以前的一篇帖子,上面介绍了一些Windows键盘响应机制的内容,地址转载 2010-06-12 17:48:00 · 12830 阅读 · 6 评论 -
PKCS#11与OpenSSL RSA加解密代码示例
<br />BOOL _ReadFile(LPCSTR FilePath, BYTE *FileContent, DWORD *FileLength) { FILE *stream = NULL; DWORD ContentLen = 0; DWORD ReadLen = 0; if ((FilePath == NULL) || (FileLength == NULL)) { return FALSE; }转载 2010-12-16 20:21:00 · 6146 阅读 · 5 评论 -
椭圆曲线ECC加密算法入门介绍
<br />前言<br /> 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前,国内详细介绍ECC的公开文献并不多(反正我没有找到)。有一些简介,也是泛泛而谈,看完后依然理解不了ECC的实质(可能我理解力太差)。前些天我从国外网站找到些材料,看完后对ECC似乎懵懂了。于是我想把我对ECC的认识整理一下,与大家分享。当然ECC博大精深,我的认识还很肤转载 2011-04-15 07:29:00 · 3388 阅读 · 0 评论 -
Java解析证书的例子(包括基本项目、扩展项目)
import java.io.*;import org.bouncycastle.asn1.*;import org.bouncycastle.asn1.util.*;import org.bouncycastle.asn1.x509.*;import org.bouncycastle.util.encoders.*;public class CertManager {转载 2011-06-22 18:09:00 · 9885 阅读 · 4 评论 -
PKCS1Padding
PKCS #1: RSA Encryption Version 1.5将数据D转换为EB的过程应该就是PKCS1的过程Encryption-block formatting A block type BT, a pad转载 2011-07-15 10:45:24 · 4660 阅读 · 1 评论 -
访问 IIS 7.0 SSL站点时报“HTTP 错误 403.16-禁止访问”的解决办法
终于才IIS+Tomcat+SSL站点搭建好,可一访问报“HTTP 错误 403.16 - Forbidden 您的客户证书不受信任或无效。” 经过查找MSDN,给出原因如下:因为证书颁发机构的根证书不是 IIS Web 服务器上受信任的根证书颁发机构证书存储区中,将发生原创 2011-08-04 19:22:54 · 8290 阅读 · 0 评论 -
利用ENGINE替换OPENSSL中的加解密算法
一:ENGINE的目的:ENGINE是OPENSSL预留的加载第三方加密库,主要包括了动态库加载的代码和加密函数指针管理的一系列接口。如果要使用Engine(假设你已经加载上该Engine了),那么首先要Load该Engine(比如ENGINE_load_XXXX),然后选择转载 2011-09-24 09:45:01 · 1691 阅读 · 0 评论 -
Openssl建立SSL双向认证连接源码
(作者:陈波,2011-11-16,转载请注明 Form:http://blog.csdn.net/jinhill/article/details/6979200) #include "stdio.h"#include "string.h"#include "openssl/ssl.h"#include "openssl/bio.h"#include "openssl/err.原创 2011-11-11 18:36:15 · 8375 阅读 · 2 评论 -
Java建立SSL双向认证连接源码
(作者:陈波,2011-11-11,转载请注明 Form:http://blog.csdn.net/jinhill/article/details/6960406) package com.jinhill.net;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream原创 2011-11-11 16:35:10 · 8548 阅读 · 1 评论 -
Tomcat6.0用第三方CA签发的证书作服务器证书的配置方法
1.生成一个自签名证书keytool -genkey -alias tomcat -keyalg RSA -keystore "C:/Documents and Settings/Administrator/.keystore"2.生成一个证书申请请求keytool -certreq -keyalg RSA -alias tomcat -file "c:/10.0.21.42.csr" -keys原创 2009-02-03 14:28:00 · 3952 阅读 · 0 评论 -
使用第三方CA证书实现智能卡登录
转载自:http://support.microsoft.com/kb/281245/zh-cn概要:您可以通过遵循本文中的准则来启用智能卡登录过程使用 Microsoft Windows 2000 和非 Microsoft 证书颁发机构 (CA)。如本文后面所述,没有为这种配置的有限的支持。 要求对 Active Directory 的智能卡身份验证要求该智能卡工作站、 活动的目录以及 Acti转载 2012-01-14 12:31:17 · 13905 阅读 · 0 评论 -
VC实现单向认证SSL连接POST数据源码
(作者:陈波,2012-03-05,转载请注明 Form:http://blog.csdn.net/jinhill/article/details/7321515) #include "StdAfx.h"#include CInternetSession *g_ISession;CHttpConnection *g_pHttpConn = NULL;CHttpFile *g_pHttpF原创 2012-03-05 16:40:21 · 6283 阅读 · 2 评论 -
用C/C++实现软件代码区的动态加解密(SMC)
摘要: 所谓SMC(Self Modifying Code)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具(比如一些常见的反汇编工具)对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解密,从而正常运行程序和访问数据。计算机病毒通常也会采用SMC技术动态修改内存中的可执行代码来达到变形或对代码加密的目的,从而躲过杀毒软件的查杀或者迷惑反病毒工作者对代码转载 2013-02-18 13:25:53 · 6251 阅读 · 1 评论 -
Java生成CSR创建证书
Java生成CSR,签发证书package com.jinhill.cert;import java.io.ByteArrayInputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;im原创 2013-12-27 15:12:37 · 21713 阅读 · 13 评论 -
openssl 生成CSR
将openssl如何生成CSR写了一上DEMO,支持扩展属性,同时增加了通过DN字符串转X509_NAME的方法。#include #include #include #pragma comment(lib, "libeay32.lib")/** subject is expected to be in the format /type0=value0/type1=value1/typ原创 2013-12-27 15:05:23 · 9674 阅读 · 1 评论 -
NT环境下进程隐藏的实现
在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的方法有很多种,比如说使用注册表插入DLL,使用windows挂钩等等。其中比较有代表性的是Jeffrey Richer在《windows核心编程》中介绍的LoadLibrary方法和罗云彬在《windows环境下32位汇编语言程序设计》中介绍的方法。两种方法的共同特点是:都采用远程线程,让自己的代码作为宿主进程的线程在宿主进程的地原创 2009-08-05 00:00:00 · 1062 阅读 · 0 评论 -
为XP的远程桌面连接增加网络身份验证功能
实际工作中,你可能会时常使用远程桌面连接,比较常见的一种情况是Windows XP与Windows Vista,默认设置下,Windows Vista的远程桌面连接是“只允许运行带网络级身份验证的远程桌面的计算机连接(更安全)”,也就是说在进行远程桌面连接之前先进行身份验证,这样可以让系统获得更安全的保障。 事实上,Windows XP在安装SP3补丁包之后,远程桌面已经可以实现网络身原创 2009-07-31 15:10:00 · 1075 阅读 · 0 评论 -
NXCOMPAT选项和数据执行保护DEP
概述 在安全编码实践一中我们谈到GS编译选项和缓存溢出。缓存溢出的直接后果就是可能导致恶意代码的远程执行。GS选项存在自身的局限,例如,有若干方法可以绕过GS选项的保护。 在这篇文章里,我们会介绍另外一个非常重要的安全特性:数据执行保护,即DEP-Data Execution Prevention,以及与之对应的NXCOMPAT选项。 在栈溢出程序例子中,我们看到原创 2009-04-27 16:19:00 · 3100 阅读 · 0 评论 -
用openssl命令生成证书
也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天。除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以......),还需生成必要的证书和私钥文件使双方能够成功验证对方。找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清原创 2008-06-21 21:17:00 · 20269 阅读 · 1 评论 -
IE中自动安装根数字证书
只自动导入根证书,在原有那篇文章的基础上不需要做什么改动,直接读出根证书内容即可实现。 即自动导入根证书,又要自动导入个人证书,这种情况下,创建证书请求的工作要交给IE控件完成。 微软的ICEnroll接口中提供了createPKCS10,acceptPKCS7方法来创建证书,安装证书功能。 在ICEnroll3接口中提供了InstallPKCS7,可以使用它来安装根证书。只自动导原创 2008-06-23 10:51:00 · 4809 阅读 · 0 评论 -
在Windows平台下使用openssl调用CSP
本文介绍一种方法使得通过RSA_private_decrypt函数可以使用CSP中的私钥来进行解密和通过RSA_sign函数可以使用CSP中的私钥来进行签名。 在openssl中RSA结构既可以表示公钥也可以表示私钥,它有一个类型为RSA_METHOD的域meth,该域包含一组实现RSA运算的函数指针。为了可以调用CSP,我们只需要实现一个特殊的RSA私钥,它包含有自己的RSA_METHO原创 2009-01-05 18:16:00 · 5214 阅读 · 3 评论 -
SSL连接建立过程分析(3)
2.12 SSL_accept SSL_accept()函数完成SSL协商的服务器端操作:/* ssl/ssl_lib.c */int SSL_accept(SSL *s) { if (s->handshake_func == 0) /* Not properly initialized yet */ SSL_set_accept_state(s); return(s->m原创 2009-01-08 09:32:00 · 5112 阅读 · 0 评论 -
SSL连接建立过程分析(4)
2.13 SSL_connect SSL_connect()这个函数完成SSL协商的客户端操作:/* ssl/ssl_lib.c */int SSL_connect(SSL *s) { if (s->handshake_func == 0) /* Not properly initialized yet */ SSL_set_connect_state(s); return原创 2009-01-08 09:45:00 · 3712 阅读 · 0 评论 -
SSL连接建立过程分析(2)
2.6 SSL_CTX_set_default_passwd_cb[_userdata]()这个函数比较简单,就是设置SSL要加载的证书的口令,如果不设置的话加载证书时会出提示符要求输入口令的,这样在程序中使用就比较麻烦,该函数就是预先将口令保存,在读证书时自动使用。实现该功能的有两个函数SSL_CTX_set_default_passwd_cb()和SSL_CTX_set_default原创 2009-01-08 09:31:00 · 6104 阅读 · 5 评论 -
SSL连接建立过程分析(6)
2.15 SSL_write SSL结构(struct ssl_st)中的s2,s3指针分别指向SSL2和SSL3的状态结构,这些状态结构中都有用于写的wbuf,写操作相对读操作要简单一些。SSL_write()实现向SSL通道中写数据,应用程序只需要向里写入明文数据,SSL通道自动对这些数据进行加密封装。/* ssl/ssl_lib.c */int SSL_write(SSL原创 2009-01-08 09:53:00 · 6196 阅读 · 0 评论 -
SSL连接建立过程分析(5)
2.14 SSL_readSSL结构(struct ssl_st)中的s2,s3指针分别指向SSL2和SSL3的状态结构,这些状态结构中都有用于读的rbuf,其中保存SSL会话接收到的原始数据,另外还有保存记录的rrec,用来保存解码后的数据。在SSL结构中有个指针packet是指向原始数据的。SSL_read()实现从SSL通道中读取数据,送到应用程序的数据是已经经过SSL解封装的了。原创 2009-01-08 09:52:00 · 4299 阅读 · 0 评论 -
网上银行“安全登录控件”分析
国内的一些银行的网上银行系统为了用户信息的安全,在登录页面上使用了名为“安全登录控件”的东西,取代了传统的 HTML 的输入控件(Input),下面就对用户量较大的招商银行和工商银行的登录界面及“安全登录控件”做一下对比。1、招商银行招商银行的网上银行系统做的比较早,用户也很大,深受大部分用户欢迎,其在安全控制手段上也一直比较严格。在进入正题之前,先来一点题外话:招商银行的有些安全控制转载 2009-01-21 14:21:00 · 2199 阅读 · 0 评论 -
keytool - 密钥和证书管理工具
管理由私钥和认证相关公钥的 X.509 证书链组成的密钥仓库(数据库)。还管理来自可信任实体的证书。结构keytool [ 命令 ]说明keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。 证书是来自一个实体(个人、公司等)的转载 2009-02-03 13:53:00 · 1024 阅读 · 0 评论 -
配置适用于正式使用环境下的Tomcat Web服务器双向SSL认证
关于如何使用Tomcat服务器实现双向SSL认证的文章很早就有了, 比较实用的文章可以看看 IBM developerWorks 中国网站 2002年5月 配置Tomcat 4使用SSL( http://www-900.ibm.com/developerWorks/cn/security/se-tcssl/index.shtml ), 使用 google 还可以搜索到很多类似的文章.但是现在看来转载 2009-02-03 13:58:00 · 1209 阅读 · 0 评论 -
关于SSL的漏洞
关于SSL,相信你一定听过,SSL也就是Secure Socket Layer,是一种在Web会话双方和客户间实现安全会话的通讯协议。可以帮助会话双方建立信任关系,实现安全会话。要做到这些还需要结合证书机制,所以会话双发首先要从CA申请数字证书,然后用数字证书中的公钥建立信任关系,再用密钥加密要传输的数据。浏览器与WEB服务器之间再SSL的基础上建立应用层会话,通信协议为HTTPS。由于使用HTT原创 2009-02-11 13:00:00 · 5406 阅读 · 1 评论 -
SSL连接建立过程分析(1)
Https协议:SSL建立过程分析web访问的两种方式:http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问.https协议(Hypertext Transfer Protocol over Secure Socket Layer),对于安全性要求比较高的情况,可以通过它访问web,比如工商银行https:/原创 2008-12-26 16:43:00 · 43713 阅读 · 7 评论 -
Signing Jar Files (converting pvk to p12)
We recently renewed our code signing certificate for signing java applets, this is the first year we have had to renew it, and the process is a bit different from when we generated it. When we first r原创 2009-04-07 11:43:00 · 1406 阅读 · 0 评论 -
使用java从证书中读取私钥
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.KeyStore; import java.security.KeyStore原创 2009-04-07 12:39:00 · 9143 阅读 · 7 评论 -
JAVA上加密算法的实现用例
第1章基础知识1.1. 单钥密码体制单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密。通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难。但是加密的安全性依靠密钥保管的安全性,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题,并且如果在多用户的情况下密钥的保管安全性也是一个问题。单钥密码体制的代表是美国的DES1.2. 消息摘要一个原创 2009-04-07 13:27:00 · 1071 阅读 · 0 评论 -
J2ME安全应用——SATSA API
1、前言随着移动商业应用程序从时髦的口号逐渐变成现实,对于移动用户和无线应用程序开发人员而言,安全性正在成为一个重要方面。在移动商业网络中,网络整体安全性的强度取决于客户端设备,无线信号的可截取本质以及大多数手持设备有限的内存和计算能力。这些使无线系统极易受到数据窃贼的攻击。对于如何有效地保护自己的无线应用程序及运行应用程序的网络而言,开发平台的选择将始终起到举足轻重的作用。将Java 平原创 2009-04-18 13:23:00 · 2453 阅读 · 0 评论 -
Openssl验证证书的有效性
好久没写博客了,直接上代码#include #include #include #include #include int LoadCert(unsigned char * szFilePath, unsigned char *pbCert, int size){ int len = 0; if(szFilePath == NULL || pbCert == NULL || siz原创 2015-02-27 17:46:10 · 11397 阅读 · 5 评论