# UCB CS161: Computer Security

## 课程简介

- 所属大学：UC Berkeley
- 先修要求：CS61A, CS61B, CS61C
- 编程语言：C, Go
- 课程难度：🌟🌟🌟🌟🌟
- 预计学时：150 小时

伯克利的计算机系统安全课程，课程内容分为5个部分：

- Security principles: how to design a secure system
- Memory safety: buffer overflow attack
- Cryptography: symmetric encryption, asymmetric encryption, MAC, digital signature .........
- Web: SQL-injection, XSS, XSRF .......
- Networking: attacks for each layer

这门课让我印象最为深刻的部分是 Project2，让你用 Go 语言设计和实现一个安全的文件分享系统。我花了整整三天才完成了这个非常虐的 Project，总代码量超过 3k 行。这样密集型的开发过程，能极大地锻炼你设计和实现一个安全系统的能力。

2020 年夏季学期的版本开源了课程录影，大家可以在下面的课程网站链接里找到。

## 课程资源

- 课程网站：<https://su20.cs161.org/>
- 课程视频：参见课程网站
- 课程教材：<https://textbook.cs161.org/>
- 课程作业：7 个在线 HW + 3 个 Lab + 3 个 Project

## 资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/UCB-CS161 - GitHub](https://github.com/PKUFlyingPig/UCB-CS161) 中。
