论文部分内容阅读
提出了一种设计在CPU里的侦测和防止缓冲区溢出的硬件方法。在微结构中增加一个秘钥寄生器,用这个秘钥来加密子程序的返回地址。在子程序调用时,加密的返回地址被插入到堆栈帧之间。而明文的返回地址仍然按原操作压入堆栈。这样,返回地址在堆栈中就有了两个拷贝。在子程序返回时,加密明文返回地址并与密文返回地址相比较。如果比较结果不一致,就能确定发生缓冲区溢出,CPU立即触发缓冲区溢出中断来防止攻击。所有与存取加密返回地址相关的堆栈操作、加解密操作和比较操作等都通过在微结构中增加一执行单元来实现。这些操作和硬件改变对软件