- vừa được xem lúc

Tại sao giữ bí mật thuật toán không làm tăng độ an toàn cho hệ thống?

0 0 1

Người đăng: noName

Theo Viblo Asia

" A cryptosystem should be secure even if everything about the system, except the key, is public knowledge." - Kerckhoffs’s principle

Định lý Kerckhoffs

Tháng 8/1883, Kerckhoffs có viết hai bài báo trên trang La Cryptographie Militaire , trong lần đầu tiên ông có nêu 6 nguyên tắc thiết kế cho mật mã quân sự, dịch từ tiếng Pháp sẽ như sau:

  1. The system must be practically, if not mathematically, indecipherable;
  2. It should not require secrecy, and it should not be a problem if it falls into enemy hands;
  3. It must be possible to communicate and remember the key without using written notes, and correspondents must be able to change or modify it at will;
  4. It must be applicable to telegraph communications;
  5. It must be portable, and should not require several persons to handle or operate;
  6. Lastly, given the circumstances in which it is to be used, the system must be easy to use and should not be stressful to use or require its users to know and comply with a long list of rules.

Trong 6 nguyên tắc này thì nguyên tắc số 2 cho đến hiện nay vẫn vô cùng quan trọng. Claude Shannon đã đơn giản hóa nguyên tắc của Kerckhoffs thành “the enemy knows the system“. Ý tưởng của Kerckhoffs là nếu bất kỳ phần nào của hệ thống mật mã (ngoại trừ khóa bí mật riêng lẻ) phải được giữ bí mật thì hệ thống mật mã đó là không an toàn. Thật vậy, một hệ thống phải đảm bảo an toàn ngay cả khi kẻ thù có thể biết được hệ thống hoạt động như thế nào. Tiêu chuẩn vàng cho bất kỳ hệ thống giữ bí mật nào là tất cả các chi tiết của nó sẽ có thể được công khai mà không ảnh hưởng đến an ninh của hệ thống. Bảo mật dựa vào chính hệ thống, chứ không phải bí mật của hệ thống.

Cho đến hiện nay nguyên tắc số 2 này vẫn được áp dụng. Chẳng hạn như giao thức HTTPS, SSL và các thuật toán mã hóa AES hay RSA,.. tính bảo mật của chúng dựa trên “sức mạnh” của thuật toán chứ không phải giữ bí mật thuật toán. Các thuật toán này là tiêu chuẩn được công bố chi tiết đã được tạo ra mà mọi người có thể xem qua. “Bí mật” duy nhất của nó là khóa được sử dụng khi bạn kết nối tới một trang web bảo mật (nó được sinh tự động và ngẫu nhiên và bởi trình duyệt và server) hay khi bạn mã hóa một văn bản sử dụng một chương trình giống như GPG (một phần mềm mã hóa dữ liệu).

Tại sao nên công khai thuật toán?

Thực chất, việc có giữ bí mật thuật toán hay không đều không có ý nghĩa, với sự phát triển của công nghệ thì chỉ là vấn đề thời gian để kẻ tấn công có thể có thể tìm ra được cách thức hoạt động của thuật toán mã hóa của bạn. Mặt khác, việc công khai thuật toán có xu hướng tạo dựng niềm tin để bất kỳ ai có thể tin tưởng vào thuật toán của bạn, nó cho phép xác minh các yêu cầu bảo mật liên quan.

Điều thứ hai, một thuật toán được triển khai bởi phần cứng và phần mềm được sử dụng rộng rãi giữa những người dùng sẽ giúp cho chi phí tạo và phân phối khóa đơn giản và ít tốn kém. Đối với thuật toán bí mật bí mật, khi bị lộ sẽ khiến cho chi phí khắc phục và tạo một thuật toán mới rất lớn và phức tạp.

Ngoài ra công khai thuật toán với người dùng sẽ giúp bạn có được các phản hồi những ý kiến quý giá giúp ích cho việc phát triển thuật toán tốt hơn và an toàn hơn.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Linux Hardening and System Auditing (P1)

. Ngày nay, các hệ thống Linux được sử dụng trong suốt quá trình tính toán, từ các hệ thống nhúng đến hầu như tất cả các siêu máy tính, đồng thời đảm bảo một vị trí quan trọng trong các hệ thống máy chủ trên toàn thế giới. Linux đem lại cho người dùng khả năng tùy biến cao, sự ổn định và độ tin cậy

0 0 62

- vừa được xem lúc

Tìm bug với Eyewitness

. Chào các bạn, trong bài này mình sẽ viết về tool Eyewitness. Eyewiteness có tính năng chính là chụp hình lại giao diện trang web sau đó tạo một report thông qua file .

0 0 52

- vừa được xem lúc

Tôi đã debug code PHP như nào!

. Nhân dịp đầu xuân năm mới, mình xin gửi lời chúc an lành tới tất cả thành viên của viblo.asia.

0 0 67

- vừa được xem lúc

OAuth 2.0 và vài vấn đề bảo mật liên quan (Phần 2)

III. Demo một số tấn công vào cơ chế OAuth. Trong phần này mình sẽ demo một số kiểu tấn công của OAuth dựa trên các bài lab được thiết kế bởi Portswigger. a.

0 0 122

- vừa được xem lúc

OAuth 2.0 và vài vấn đề bảo mật liên quan (Phần 1)

Trong thời đại công nghệ ngày nay, việc đăng nhập bằng các tài khoản của các nền tảng khác không phải điều gì xa lạ đối với mỗi người dùng chúng ta. Việc này khả thi nhờ một vài cơ chế khác nhau, một trong số đó là OAuth 2.

0 0 67

- vừa được xem lúc

Hành trình pass OSCP trong lần thi đầu tiên (2020)

Vào một chiều đông 17/12/2020, tôi nhận được cái email thông báo đã pass OSCP ngay lần thử đầu tiên. Sau đó, tôi bắt đầu tìm hiểu về Security và quyết định học cái gì đó cho riêng mình.

0 0 213