Hiển thị các bài đăng có nhãn IT_Cryptography. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn IT_Cryptography. Hiển thị tất cả bài đăng

Thứ Sáu, 18 tháng 4, 2014

Microsoft Key Management Service (KMS) at the University of Michigan (S4362)

http://www.itcs.umich.edu/itcsdocs/s4362/

Microsoft Key Management Service (KMS)
at the University of Michigan

S4362 • November 2009

This document provides information for system administrators on the Microsoft Key Management Service (KMS) and the university's KMS server.

Table of Contents


What Is KMS?

Beginning with Windows Vista and Windows Server 2008 products, Microsoft implemented the Key Management Service (KMS) for validating its Enterprise software. Future Enterprise products will also be KMS-capable.

KMS offers many advantages — especially to computer lab administrators — and must be used on any machine capable of connecting to a U-M KMS-served network. In the rare circumstances where this is not possible, system administrators may request a Multiple Activation Key (MAK). There is only one situation where you should use an MAK: the machine is located off-campus and is unlikely to connect to the campus network — even through a Virtual Private Network (VPN) — for at least 6 months.

KMS Server at U-M

A university-wide KMS server is available at no charge for university-owned workstations and servers. Co-hosted by Information and Technology Services (ITS) and the University Library, this secure service is reliable and redundant.

FOR UNIVERSITY-OWNED MACHINES ONLY: U-M policy prohibits using KMS on a personally-owned computer, even if it is used for university business and is running university-licensed software.

The server's addresses are:

  • mskms.umich.edu

  • 141.211.175.165      141.213.143.150      141.213.238.150

We highly recommend U-M system administrators use this service to manage KMS-capable Microsoft Enterprise products deployed on university-owned computers. You should only consider running a separate KMS server under very rare circumstances.

Activating Products

  • AUTOMATIC: Microsoft KMS-capable products will automatically find the university-wide KMS server under either of the following conditions:

    • the machine is within the UMROOT domain.

    • uses a DNS server that includes an SRV record for the to-be-activated workstation.

  • MANUAL: You can manually set up KMS activation if the machine:

    • has an IP address within a university-owned subnet, including Virtual Private Network (VPN) connections

    • is able to use in- and outbound TCP port 1688 to access mskms.umich.edu.
      FIREWALL? You only need to provide access to the U-M's network using either mskms.umich.edu, university subnets, or the KMS server's IP addresses. For those who use Virtual Firewall, you should be covered by a Global Rule, but please check with the service owners.

Additional Resources

Visit ITS's Information System to obtain ITS computing documentation and other resources. A list of relevant documents follows:

Microsoft Documentation

ITS's IT Staff section provides a variety of help resources for its products and services.

The ITS Service Center provides a variety of computing help resources.

For further help with this or any other topic, call 734-764-HELP [4357] or submit an online service request.




Appendix A: Manually Activating Machines

If the machine cannot be set up for automatic activation but meets the manual activation criteria noted in Activating Products, follow these steps:

  1. From the Start menu, select All Programs then Accessories.

  2. RIGHT-click Command Prompt and select Run as administrator.

  3. In the User Account Control window, click Continue.

  4. In the Command Prompt window, enter the commands appropriate for your product.
    NOTE: The first command points the activation to the U-M KMS server. The second command activates the workstation or server.

    • Windows Vista and Server 2008 up to R1:

      %windir%\system32\cscript slmgr.vbs -skms mskms.umich.edu
      %windir%\system32\cscript slmgr.vbs -ato

    • Windows 7 and Server 2008 R2 and later:

      %windir%\system32\cscript slmgr.vbs /skms mskms.umich.edu
      %windir%\system32\cscript slmgr.vbs /ato

Appendix B: Creating an SRV Record

NOTE: In order for auto-discovery to work, the DNS domain corresponding to one or both of the following must contain the KMS SRV record:

  • The primary DNS suffix of the computer

  • The DNS domain name assigned by DHCP

To create an SRV record:

  1. In the DNS server, open the Bind zone file.

  2. Enter a line (SRV record) in the form of

    _vlmcs._tcp.[your subdomain].umich.edu. 3600 IN SRV 0 100 1688 mskms.umich.edu

    replacing [your subdomain] with the correct subdomain without the brackets. For example, at the School of Public Health, the line would look like

    _vlmcs._tcp.sph.umich.edu. 3600 IN SRV 0 100 1688 mskms.umich.edu

Appendix C: Troubleshooting

You can fix most failed KMS activations by re-registering the software and then manually activating the machine.

  1. From the Start menu, select All Programs then Accessories.

  2. RIGHT-click Command Prompt and select Run as administrator.

  3. In the User Account Control window, click Continue.

  4. In the Command Prompt window, enter the command appropriate for your operating system.

  5. Proceed with step 4 of Appendix A: Manually Activating Machines.

REDUCED FUNCTIONALITY MODE: If the machine you're attempting to recover is already in Reduced Functionality Mode, you'll need to use Internet Explorer to access the Command Prompt.

  1. In Internet Explorer's Address Bar, enter C: and press the Enter key.

  2. If you receive an Internet Explorer Security dialog box, click Allow.

  3. In the Windows Explorer window, navigate to C:\Windows\System32.

  4. RIGHT-click the cmd file and select Run as administrator.

  5. Proceed to step 4 (Command Prompt) at the beginning of this troubleshooting section.

Microsoft maintains a Knowledgebase article on troubleshooting Volume Activation error codes that you might find helpful. However — for error code 0x800706BA: The RPC server is unavailable — the Microsoft-provided solution is incorrect. You should instead follow the re-registering the UPK and manually configuring steps at the beginning of this troubleshooting section.

Appendix D: Running Your Own KMS Server

The university provides — at no charge — a secure, reliable and redundant KMS server. We highly recommend you use this service.

In the following rare events, you may need to provide your own KMS server.

  1. The cluster you want to activate:

    1. is not located within the U-M networks.

    2. cannot use the university's VPN.

  2. A local firewall restricts access to mskms.umich.edu through in- and out-bound TCP port 1688.

CAVEATS

  • You must fully understand the terms and conditions of the university's Microsoft Enterprise Agreement.

  • Your KMS service must absolutely prevent machines and virtual machines not owned by the university to validate.

  • You must be prepared to accept personal legal liability and for that of U-M in the event your KMS service permits even one machine not owned by the university to illegally validate.

Appendix E: KMS-Capable Products with Universal Product Keys (UPK)

Windows 7  
Enterprise 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Enterprise N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Enterprise E C29WB-22CC8-VJ326-GHFJW-H9DH4
Professional FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Professional N MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Vista  
Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
Enterprise VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Enterprise N VTC42-BM838-43QHV-84HX6-XJXKV
Windows Server 2008 (see also R2 product keys)
Standard w/ Hyper-V TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Enterprise w/ Hyper-V YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Datacenter 7M67G-PC374-GR742-YH8V4-TCBY3
Datacenter w/ Hyper-V 22XQ2-VRXRG-P8D42-K34TD-G3QQC
for Itanium 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
Web Server WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 R2
Standard R2 YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Enterprise R2 489J6-VHDMP-X63PK-3K798-CPX3Y
Datacenter R2 74YFP-3QFB3-KQT8W-PMXWJ-7M648
R2 for Itanium GT63C-RJFQ3-4GMB6-BRFB9-CB83V
R2 HPC Edition FKJQ8-TMCVP-FRMR7-4WR42-3JCD7
Web Server R2 6TPJF-RBVHG-WBW2R-86QPH-6RTM4

Thứ Tư, 16 tháng 4, 2014

Hướng dẫn sử dụng BitLocker để mã hóa dữ liệu trong Win 7

http://vnreview.vn/tu-van-may-tinh/-/view_content/content/244779/huong-dan-su-dung-bitlocker-de-ma-hoa-du-lieu-trong-win-7

Hướng dẫn sử dụng BitLocker để mã hóa dữ liệu trong Win 7

Nếu bạn có một số dữ liệu quan trọng cần lưu trong ổ cứng máy tính hoặc ổ USB flash, Microsoft cung cấp cho bạn công cụ mã hóa BitLocker để đảm bảo dữ liệu của bạn được bảo vệ với mức cao nhất. VnReview hướng dẫn bạn cách thực hiện mã hóa dữ liệu bằng công cụ này trên Windows 7.

Bài liên quan:

Kích hoạt tính năng BitLocker bị lỗi

Bảo mật ổ đĩa bằng BitLocker trên WinXP

BitLocker Drive Encryption là gì?

Đây là chương trình được Microsoft tích hợp trên Win 7 phiên bản Enterprise, Win 7 Ultimate và Win Server 2008 nhằm giúp người sử dụng mã hóa ổ cứng và ổ USB flash để bảo vệ dữ liệu cá nhân. Lưu ý: các phiên bản Windows 7 khác không được hỗ trợ tính năng này.

Bật BitLocker mã hóa ổ USB flash (ổ cứng trong máy cũng tương tự)

1) Cắm USB muốn mã hóa vào máy

Vào Control Panel > System and Security > BitLocker Drive Encryption > mở ra bảng chứa các ổ cứng và ổ USB trên máy > chọn ổ USB muốn mã hóa > Turn On BitLocker

Cách khác: vào My computer > chuột phải vào ổ USB muốn mã hóa > chọn Turn On BitLocker

2) Hộp thoại mới hiện ra với hai lựa chọn để check vào:

Use a password to unlock the drive: Lựa chọn này cho phép bạn sử dụng mật khẩu để mở ổ mã hóa, bạn cần nhập chính xác mật khẩu vào hai ô trống bên dưới. Chú ý mật khẩu phải ít nhất có 7 ký tự và bạn cần bảo vệ mật khẩu của mình.

Use my smart card to unlock the drive: sử dụng thẻ thông minh để mở ổ mã hóa. Bạn cần cắm thẻ vào máy để xác nhận.

Sau khi lựa chọn phương thức sử dụng khẩu bạn nhấn Next để tiếp tục

3) Hộp thoại khác hiện ra yêu cầu bạn chọn "lưu giữ key phục hồi" hoặc "in key phục hồi" này để trong trường hợp bạn quên mật khẩu hoặc mất thẻ thông minh thì bạn dùng key này để truy xuất được vào ổ mã hóa. Bước này là bắt buộc nếu không nút Next sẽ không sáng lên. Sau đó ấn Next để tiếp tục.

4) Hộp thoại mới hiện ra hỏi bạn có sẵn sàng để mã hóa ổ này > bấm Start Encrypting để bắt đầu

5) Quá trình mã hóa

6) Mã hóa xong > ấn nút Close.

Sử dụng ổ đã được mã hóa

Khi cắm ổ USB đã được mã hóa vào máy tính (sử dụng Win 7) ta sẽ thấy trên ổ đĩa có biểu tượng một chiếc khóa màu đồng đang đóng. Kích vào để truy cập thì có một hộp thoại yêu cầu nhập mật khẩu hiện lên, nhập mật khẩu xong bấm Unlock (mở khóa) thì biểu tượng cái khóa lúc này thay đổi thành đã được mở, có màu xám và ta có thể làm việc với dữ liệu trong ổ.

Nếu đưa ổ USB này sang máy sử dụng WinXP thì không thấy có biểu tượng hình ổ khóa. Truy cập vào ổ này thấy hiện ra các file dữ liệu đã được mã hóa có đuôi .NG và những file cần thiết của chương trình BitLockerToGo đã được cài vào để giúp truy xuất dữ liệu ổ USB khi chạy trong WinXP. Bạn cần nhập chính xác mật khẩu (đã được đặt khi mã hóa) khi chương trình này hỏi, chú ý là ổ cứng lúc này vẫn ở dạng chỉ được đọc / copy dữ liệu ra chứ không được sửa hoặc thêm dữ liệu vào. Nếu muốn thêm bớt / chỉnh sửa dữ liệu thì bạn cần sử dụng trên Win 7.

Các file được mã hóa có đuôi .NG

Nếu muốn quản lý ổ đã được mã hóa, bạn bấm chuột phải vào ổ đó, chọn Manage BitLocker. Bảng hiện ra cho phép bạn thay đổi mật khẩu, xóa mật khẩu, thêm tính năng sử dụng thẻ thông minh để mở khóa, lưu hoặc in key khôi phục hoặc tự động mở khóa ổ đĩa đối với máy đang sử dụng.

Tắt BitLocker

1) Cắm ổ USB đã mã hóa vào máy

2) Nhập mật khẩu BitLocker rồi ấn Unlock

3) Vào Control Panel > System and Security > BitLocker Drive Encryption > mở ra bảng chứa các ổ cứng và ổ USB trên máy > chọn ổ USB trước đó đã Unlock > Turn Off BitLocker

4) Hộp thoại hiện ra xác nhận có bỏ mã hóa không:

5) Quá trình bỏ mã hóa

6) Ấn Close sau khi hoàn thành.

Khóa và bảo vệ dữ liệu với Bitlocker của Windows 7

http://dantri.com.vn/suc-manh-so/khoa-va-bao-ve-du-lieu-voi-bitlocker-cua-windows-7-335024.htm
Thứ Bẩy, 04/07/2009 - 08:06      

Khóa và bảo vệ dữ liệu với Bitlocker của Windows 7

(Dân trí)-USB là thiết bị hữu ích để mang dữ liệu bên mình đi bất cứ đâu. Tuy nhiên nhược điểm của nó là khá nhỏ, dễ rơi hoặc đánh cắp. Khi đó, có thể dữ liệu sẽ bị truy cập trái phép. Mã hóa và bảo vệ dữ liệu trên USB là vấn đề đáng lưu tâm.

Dữ liệu riêng tư và quan trọng luôn được người dùng quan tâm và tìm cách che giấu hòng tránh những sự truy cập trái phép. Dân trí đã từng giới thiệu "5 tiện ích miễn phí bảo vệ dữ liệu trên máy tính". USB là thiết bị ngày càng thông dụng đối với mọi người, và lẽ dĩ nhiên, dữ liệu quan trọng trên đó cũng cần phải mã hóa để đảm bảo rằng không bị rơi vào tay người khác trong trường hợp nó bị đánh cắp hoặc thất lạc.

 

Windows 7, sản phẩm mới nhất của Microsoft mang đến cho người dùng chức năng Bitlocker, cho phép bạn mã hóa để bảo vệ giữ liệu trên USB (chỉ phiên bản Ultimate và Enterprise là có chức năng này). Nếu chưa cài đặt Windows 7, bạn có thể thực hiện các bước để "cài đặt Windows 7 song song với hệ điều hành sẵn có" hoặc "nâng cấp từ hệ điều hành trước đó" đã được Dân trí giới thiệu trước đây.

 

Sau đây là các bước thực hiện để mã hóa USB:
 
- Bước 1: Đầu tiên, cắm USB vào hệ thống. Tiếp theo, click Start, chọn Control Panel, chọn tiếp System and Security -> Bitlocker Drive Encryption. Click vào tùy chọn Turn On Bitlocker tại phân vùng ổ đĩa đại diện cho USB của bạn. (Cụ thể ở đây là ổ đĩa F)
 



 

- Bước 2: tiếp theo, bạn sẽ được hỏi cách thức bạn muốn để mở khóa ổ đĩa (sau khi đã mã hóa). Tại đây có 2 cách thức để lựa chọn: Sử dụng Password (mật khẩu) hoặc Smart Card. Mật khẩu là cách thức dễ dàng thực hiện hơn, nhưng lại không mạnh bừng sử dụng Smart Card. Trong ví dụ này, chúng ta lựa chọn cách sử dụng Password.
 



 

- Bước 3: Sau khi thiết lập mật khẩu, bạn sẽ được cung cấp một "khóa khôi phục" (Recovery key), giúp bạn khôi phục lại mật khẩu trong trường hợp quên mất mật khẩu để giải mã. Bạn có thể chọn Print the Recovery key để  in "khóa khôi phục" này hoặc chọn Save the Recovery key to a file để nó lưu vào đâu đó trên ổ cứng.
 


 

- Tiếp theo, bạn nhấn Next để bắt đầu quá trình mã hóa ổ đĩa USB. Quá trình sẽ mất một khoản thời gian, tùy thuộc vào dung lượng cũng như dữ liệu chứa trên USB.
 



 

- Sau khi quá trình mã hóa kết thúc, một hộp thoại sẽ xuất hiện như bên dưới để thông báo cho bạn biết.
 



 

Để kiểm tra xem ổ đĩa USB của bạn đã thực sự được mã hóa hay chưa, bạn tiến hành rút và cắm USB lại vào hệ thống. Nếu quá trình mã hóa thành công, khi truy cập vào USB, một hộp thoại sẽ xuất hiện yêu cầu bạn điền mật khẩu đã thiết lập từ trước.
 



 

Nhấn vào I forgot Password ở hộp thoại này và sử dụng "khóa khôi phục" ở trên để khôi phục lại mật khẩu trong trường hợp bạn quên mất mật khẩu đã thiết lập.

 

Để gỡ bỏ chức năng mã hóa Bitlocker, bạn thực hiện lại bước 1 ở trên, nhưng thay vào đó, chọn Turn Off Bitlocker ở trên ổ đĩa tương ứng.
 



 

Ngoài chức năng mã hóa để bảo vệ dữ liệu trên USB, bạn cũng có thể tiến hành mã hóa để bảo vệ dữ liệu trên các phân vùng của ổ cứng để đảm bảo rằng không ai có thể truy cập và cài đặt trái phép dữ liệu trên ổ cứng của bạn.

Protect Your Files in Windows 7 Using BitLocker To Go – Part 2

http://blog.pluralsight.com/windows-7-bitlocker-to-go
February 11, 2010  				

Protect Your Files in Windows 7 Using BitLocker To Go – Part 2

By

BitLocker To Go is the mobile version of BitLocker Drive Encryption that allows you to do essentially the same thing as BitLocker, but on mobile drives such as External Hard Drives, Flash Drives and Thumb Drives.

BitLocker To Go provides a powerful method of encrypting all of your mobile media and documents.

Using BitLocker To Go

Using BitLocker To Go is an extremely straightforward process, and provides powerful encryption in very little time. Just connect your mobile drive, type in your password, and enjoy.

Remember, while you must be on a premium version of Windows 7 (Ultimate of Enterprise) to encrypt BitLocker drives, you can use any version of Windows to unlock the drive, including older generations like Windows Vista and Windows XP.

When a mobile drive is encrypted with BitLocker To Go, it is accessible using a password chosen during setup. This works on all versions of Windows 7. On Windows Vista and XP, you can use the BitLocker To Go Viewer to unlock the drive and view files within.

 

Setting Up BitLocker To Go in Windows 7

Setting up BitLocker To Go is also a fairly simple process. Just connect your mobile drive, for example, a flash drive, right click, and choose Turn On BitLocker… — then follow the setup steps, choose your password, and encrypt the drive.

While encryption speed greatly depends on the speed of the drive, encryption should take about 30 seconds for a standard 2GB flash drive, depending on how much data is on the drive. You can also choose to automatically unlock the drive when logged into your Windows account.

An important step to remember when setting up your BitLocker To Go encryption is the Recovery Key. You will be prompted to save a recovery key on your hard drive. It is important not to forget this step.

If you ever forget your password, you can use this file to unlock your drive and gain access to your files again. You are offered the option of either saving this key, or printing it. I would recommend doing both just in case.

 

Configuring BitLocker To Go

While there isn't much in the front end in terms of configuring BitLocker To Go, there are some great functions when editing Local Group Policies that can help enterprise management and security. Here is an overview of the settings which you can configure from within the Local Group Policy Editor.

First, navigate to the following from within the Local Group Policy Editor:

Local Computer Policy -> Computer Configuration -> Administrative Templates -> Windows Components -> BitLocker Drive Encryption -> Removable Data Drives

  • Control use of BitLocker on removable drives — Choose to allow users the ability to apply or suspend protection on BitLocker drives.
  • Configure use of smart cards on removable data drives — Choose to make the use of smart cards a requirement.
  • Deny write access to removable drives not protected by BitLocker — This is a great security measure. For example, if someone tried to copy over contents to their own personal unencrypted drive.
  • Allow access to BitLocker-protected removable data drives from earlier versions of Windows.
  • Configure use of passwords for removable data drives — this configuration is also very useful. You can add an extra layer of security by configuring the complexity and minimum password length for BitLocker To Go drives being set up.
  • Choose how BitLocker-protected removable drives can be protected — This allows you to choose how a user will be allowed to recover locked drives if they forget their passwords. Disabling these may lock users out of their drives, but adds a powerful layer of security.

 

Turning Off BitLocker To Go

You can turn off or temporarily suspend BitLocker To Go as quickly as setting it up.

To temporarily suspend BitLocker To Go, visit your Control Panel, search for and go to the BitLocker Drive Encryption page and click Suspend protection and then choose Yes. Your drive will be temporarily open for all usage, unprotected until you follow the same steps to unsuspend it.

To turn off BitLocker To Go completely, visit the BitLocker Drive Encryption page in your Control Panel and choose Turn Off Bitlocker. You will be prompted to decrypt your drive, continue and your drive will be completely unencrypted and open. To secure your drive again, just track back and follow the steps outlined above.

 

The Downside of BitLocker To Go

The main problem with BitLocker To Go, is while it is a great encryption solution for Windows 7, older generations of Windows like Vista and XP can only view files using the BitLocker To Go Viewer, and cannot add or edit files on the encrypted drive. You must use the BitLocker To Go Viewer to copy files to your desktop before being allowed to edit them.

I don't completely understand why BitLocker To Go, a native Microsoft program, does not work with older generations of Windows. Other solutions such as the encryption applications that come with some thumb drives work across all versions of Windows. I can only hope that in the future, Microsoft provides more support for older versions of Windows, especially in BitLocker To Go, considering thumb drives are made to be moved between many different computer systems.

I feel that this feature should have come standard with BitLocker To Go. While this is definitely a downside for standard use across multiple systems that include older generations of Windows, those who are using Windows 7 exclusively will find BitLocker To Go a valuable asset to their system and drives data security.

 

Is BitLocker To Go Right For You?

BitLocker To Go is an awesome choice for encrypting your mobile drives, but not in all circumstances. Its ease of use and powerful protection makes this a great choice for enterprise users running the Windows 7 operating system on all drives they plan to use the drive on.

However, for those who are looking to use their drive on computers with varying operating systems including older generations of Windows, BitLocker To Go may not be right for you.

About the Author

is a computer technician with over 8 years of experience in the IT field. He has completed training in CompTIA A+, Network+, Computer Business Applications (Microsoft Specialist), Web Page Design and Graphic Design, and is working on completing his CompTIA A+ and CCNA certifications. Mike has experience working as a computer technician for two local school districts, as well as freelance computer repair work with AlisalTech.com, which Mike owns. Music is another one of Mike's callings. Using his technical experience, Mike promotes local musicians in Salinas California through his website SalinasRadio.com where local musicians and businesses can gain promotion to a worldwide audience.

Author's Website: http://alisaltech.com

Chủ Nhật, 20 tháng 5, 2012

Mật mã hiện đại (1)

http://vnhacker.blogspot.com/2010/05/mat-ma-hien-ai-1.html

Mật mã hiện đại (1)


Tôi dự tính viết về đề tài này từ cả năm nay, mà mãi tới bây giờ mới có đủ động lực để viết. Có hai lý do khiến tôi bắt đầu.

Thứ nhất, số là tôi đang theo học mật mã, mà kinh nghiệm cho thấy cách học (và đọc sách) tốt nhất là viết, tóm tắt lại và giải thích rành mạch rõ ràng những gì vừa học được cho người khác. Chừng nào làm được như thế thì mới có thể xem là đã hiểu được vấn đề đang muốn học.

Thứ hai, hôm rồi tôi đọc một mẩu chuyện về Richard Feynman, trong đó có đoạn kể về lúc Feynman bị bệnh, gần đất xa trời, ông tâm sự rằng, "[I'm going to die but I'm not as sad as you think because] when you get as old as I am, you start to realize that you've told most of the good stuff you know to other people anyway". Đương nhiên những gì tôi biết làm sao mà "good" bằng những gì Feynman biết, nhưng dẫu sao thì tôi cũng sẽ học theo Feynman, có biết cái gì hay ho thì giải thích cho nhiều người khác cùng biết.

--*--

I. Mở đầu

1. Giới thiệu

Loạt bài này tôi sẽ giới thiệu về mật mã học hiện đại, tập trung vào giải thích cách thức hoạt động của các thành phần mật mã cơ sở (cryptographic primitive) và làm sao sử dụng chúng cho đúng cách.

Mật mã là công cụ rất mạnh mẽ làm nhiều người lầm tưởng rằng cứ sử dụng mật mã là an toàn, mà không biết rằng mật mã là con dao hai lưỡi. Bạn có thể xây dựng một hệ thống với đầy đủ các ý tưởng hay ho nhất của mật mã, nhưng nếu bạn không dùng mật mã đúng cách, hệ thống của bạn sẽ hoàn toàn thiếu an toàn.

Đã có rất nhiều ví dụ, mà tiêu biểu là các kết quả làm việc gần đây của tôi và đồng nghiệp (xem đây, đâyđây). Hoặc như gần đây, hệ thống bảo vệ máy PS3 của Sony bị phá vỡ hoàn toàn chỉ vì sử dụng sai mật mã. Không riêng gì Sony, mà rất nhiều hãng lớn trên thế giới, từ Oracle, Yahoo!, đến Microsoft, đã sử dụng sai mật mã và làm cho sản phẩm của họ thiếu an toàn.

Điều này cho thấy, chỉ biết mật mã giúp gì cho bạn là chưa đủ, mà bạn cần phải biết làm thế nào để sử dụng chúng đúng cách. Khi biết cách sử dụng đúng mật mã rồi, bạn sẽ có thể dùng mật mã để xây dựng các hệ thống an toàn hơn, và đồng thời có thể đánh giá được sản phẩm sử dụng mật mã của bên thứ ba.

Giáo trình mà tôi sử dụng là cuốn sách "Introduction To Modern Cryptography" của Jonathan Katz và Yehuda Lindell (từ đây về sau gọi là KL). Trong quá trình học mật mã, tôi cũng đã đọc thử nhiều sách khác nhau, nhưng cuốn KL này là thích hợp hơn nhất cho việc tìm hiểu mật mã học hiện đại. KL cũng được sử dụng làm giáo trình để dạy mật mã cho cấp đại học và cao học ở nhiều trường đại học trên thế giới. Bạn nào có điều kiện thì nên mua sách. Nếu là sinh viên thì có thể liên hệ với tôi (ở TP.HCM) để mượn sách mà đọc. 

Một cuốn sách miễn phí khác có thể dùng để thay thế KL là cuốn Handbook of Applied Cryptography. Kết thúc mỗi bài viết, tôi sẽ liệt kê trang nào trong KL hoặc HAC cần phải đọc.

Loạt bài được chia làm ba phần lớn. Phần đầu tiên nói về mã đối xứng, phần thứ hai nói về mã bất đối xứng, và phần thứ ba sẽ bàn về các đề tài nâng cao. Trong phần thứ nhất tôi sẽ giải quyết vấn đề: làm thế nào để chị A và anh B liên lạc với nhau an toàn, khi hai người đã có một khóa bí mật chung? Vấn đề của phần thứ hai sẽ là làm thế nào để chị A và anh B chưa quen biết nhau có thể tạo ra một khóa bí mật chung chỉ có hai anh chị biết mà thôi? Trong phần thứ ba, tùy vào tình hình mà tôi sẽ viết về các đề tài như tiền điện tử, bầu cử điện tử hay đấu giá điện tử.

Tôi cũng muốn lưu ý là nội dung loạt bài sẽ có những phần không nằm trong cuốn KL, và tôi sẽ cố gắng để người đọc hiểu được loạt bài này mà không cần phải tham khảo thêm tài liệu khác. Nghĩa là khi nào cần thì tôi sẽ cung cấp các kiến thức hỗ trợ, ví dụ như các kiến thức toán (bao gồm lý thuyết xác suất, lý thuyết số, đại số trừu tượng và một ít lý thuyết độ phức tạp tính toán). Tôi cũng không chắc là tôi làm được (tự vì tôi cũng đang học như bạn mà thôi!), nhưng mà tôi sẽ cố gắng. Mục tiêu của tôi là nếu bạn theo sát loạt bài viết này từ đầu, thì khi kết thúc, bạn sẽ hiểu mật mã học hiện đại hoạt động ra sao, và cách sử dụng chúng như thế nào cho đúng và an toàn.

2. Tại sao mật mã?

Trước khi đi vào nội dung chính của bài viết đầu tiên, tôi muốn dành ra ít phút để thuyết phục bạn là tại sao chúng ta cần phải học mật mã. Cá nhân tôi thấy có ba lý do chính.

Thứ nhất, mật mã là công cụ rất quan trọng, được sử dụng ở mọi nơi. Tôi đồ rằng nhiều bạn dùng mật mã hàng ngày mà lại không biết. Bạn có dùng GMail hoặc có bao giờ mua hàng trên Amazon không? Nếu có thì bạn đã dùng mật mã rồi đó.

Bạn có chú ý là khi bạn vào GMail hoặc Amazon, địa chỉ mà bạn sử dụng bắt đầu bằng HTTPS thay vì HTTP không? Chữ S trong HTTPS là viết tắt của Secure, hiểu nôm na rằng HTTPS là phiên bản an toàn hơn so với HTTP, và sự an toàn này là nhờ vào bộ giao thức mật mã mang tên Secure Socket Layer, phiên bản mới hơn gọi là Transport Layer Security. Nhờ có SSL/TLS mà bạn có thể an tâm giao dịch với Amazon mà không sợ thông tin giao dịch của bạn bị đánh cắp hoặc chỉnh sửa trong quá trình truyền từ máy tính của bạn lên đến máy chủ của Amazon. Nói cách khác, không có mật mã thì đã không có thương mại điện tử rồi!

SSL/TLS được dùng chủ yếu để bảo vệ thế giới web, mà Internet thì đâu chỉ có web. Mật mã còn có thể được sử dụng để đảm bảo an toàn cho email. Email có hai vấn đề cần phải giải quyết. Thứ nhất, làm thế nào để đảm bảo tính riêng tư, tỉ như chị A viết thư cho anh B, thì chỉ có anh B đọc được thư đó thôi, không ai khác đọc được cả. Thứ hai, làm thế nào để hiện thực hóa vấn đề chữ ký trong thư từ thông thường, nói cách khác làm sao để anh B biết chắc là thư đang đọc đến từ chị A, không bị ai sửa chữa giả mạo gì cả, và sau này chị A cũng không thể chối là chị không phải là tác giả của lá thư đó? Đây chính là yêu cầu bắt buộc của khái niệm chữ ký điện tử mà chúng ta thường nghe. Tương tự như SSL/TLS, PGP/OpenPGP là tiêu chuẩn phổ biến nhất để bảo vệ email thông qua các thành tựu của mật mã học.

Nếu bạn là lập trình viên, thì chắc chắn sẽ có lúc nào đó bạn gặp phải vấn đề xác thực người dùng, và lúc đó bạn sẽ cần phải sử dụng mật mã để xây dựng nên một cơ chế quản lý mật khẩu và xác thực người dùng một cách an toàn. Thay vì lưu mật mã trực tiếp xuống cơ sở dữ liệu, nhiều lập trình viên đã biết sử dụng các thuật toán băm một chiều để bảo vệ mật khẩu. Tuy vậy phần lớn trong số đó vẫn sử dụng sai mật mã, khiến cho mặc dù có dùng mật mã, nhưng hệ thống của họ vẫn không an toàn hơn là mấy. Thí dụ như nếu bạn chỉ băm mật khẩu xuyên qua MD5 một lần, thì bạn đã làm sai! Cách làm đúng là phải băm ít nhất 1000 lần, và còn nhiều tiểu tiết khác nữa!

Người ta còn dùng mật mã để bảo vệ các giao thức mạng không dây. Thầy tôi thường nói ông phải cảm ơn những người đã thiết kế ra tiêu chuẩn 802.11i, còn được biết đến là WEP, bởi WEP đã phạm phải mọi sai lầm từng được biết đến trong các sách giáo khoa về mật mã, nên mỗi lần cần đưa ra ví dụ về cách sử dụng sai mật mã, thầy tôi chỉ việc lấy một ví dụ từ WEP! Ông gọi WEP là một giao thức được "thiết kế sau những cánh cửa đóng", đi ngược lại hoàn toàn với tiêu chí mở trong mã hóa (tôi sẽ nói thêm về tiêu chí mở này ở bên dưới). Trong loạt bài này, bạn sẽ thấy ngoài WEP ra còn có rất nhiều giao thức, thuật toán mã hóa được "thiết kế sau những cánh cửa đóng", và tất cả đều không an toàn.

Ngoài những ứng dụng trực tiếp kể trên ra, mật mã còn được sử dụng trong nhiều lĩnh vực có vẻ không liên quan mấy, ví dụ như bầu cử, đấu giá, tiền điện tử hay bảo vệ bản quyền điện tử. Đây là những chủ đề mà bản thân tôi chưa có cơ hội tìm hiểu; dẫu vậy tôi có kế hoạch sẽ tìm hiểu chúng trong tương lai gần. Tóm lại, lý do thứ nhất cần phải học mật mã là vì mật mã rất mạnh mẽ và có thể giúp chúng ta giải quyết nhiều vấn đề tự nhiên đến từ cuộc sống.

Thứ hai, mật mã rất đẹp, đơn giản vì nó là sự giao thoa và ứng dụng của rất nhiều nhánh trong toán học, mà toán đẹp cỡ nào thì khỏi phải bàn rồi phải không? ;-).

Lâu nay không ít người cảm thấy thất vọng vì đã "uổng công" học Toán. Nghe người ta nói thì Toán học là "chìa khóa" cho mọi vấn đề, nhưng trên thực tế thì học sinh sau khi tốt nghiệp lại chẳng biết dùng kiến thức Toán đã học được trong nhà trường vào việc gì trong cuộc sống, nhất là những bài toán khó mà họ đã tốn bao công sức nhồi nhét trong các "lò luyện" đủ loại. Đây là một thực tế, xuất phát từ việc xác định nội dung và phương pháp dạy Toán không hợp lý trong các nhà trường hiện nay. Toán học đã bị biến thành một môn "đánh đố thuần túy", thay vì một bộ môn khoa học mang đầy chất thực tiễn. Tuy nhiên, còn một lý do khác khiến chúng ta không nhìn thấy được bóng dáng của Toán học trong thực tiễn thường ngày, đó là Toán học ngày nay không mấy khi trực tiếp đi được vào các ứng dụng trong thực tiễn mà thường phải "ẩn" sau các ngành khoa học khác: Sinh học, Môi trường, Tài chính, Kinh tế… và thậm chí ngay cả Công nghệ thông tin, một lĩnh vực có thể xem như là được sinh ra từ Toán học. Đã có những ý kiến nói về sự lãng phí của nguồn nhân lực đang làm Toán hiện nay và không ít người cũng đã tưởng là thật…

May mắn thay, khoa học Mật mã đã góp một phần quan trọng trong việc làm sáng tỏ cái "sự thật oan trái" này. Có thể nói rằng hiếm có lĩnh vực nào mà vai trò của các công cụ Toán học lại được thể hiện rõ ràng đến như vậy. Chính Toán học đã làm nên cuộc cách mạng trong công nghệ mật mã, trước hết là bằng sự hiện thực hóa các ý tưởng về mật mã khóa công khai mà các nhà mật mã chuyên nghiệp đã ấp ủ từ lâu, và sau đó là đưa một số kết quả của Toán học (thuộc loại trừu tượng vào bậc nhất) tiếp cận với các ứng dụng trong thực tiễn.

Bạn nào hồi phổ thông có học chuyên toán chắc hẳn sẽ nhớ đến định lý nhỏ (rất đẹp!) của Fermat phát biểu rằng: nếu là số nguyên tố, thì ta có: . Khi học mật mã, bạn sẽ thấy lại định lý này và nhiều ứng dụng tuyệt vời của nó! Tôi có thể bật mí sơ là hệ mã nổi tiếng RSA được xây dựng dựa trên kết quả của định lý đơn giản này!

Ngoài toán ra, mật mã học hiện đại còn được xây dựng dựa trên lý thuyết trung tâm của khoa học máy tính: lý thuyết độ phức tạp tính toán (mà thiệt ra cũng là toán thôi). Thành ra đối với những người học khoa học máy tính hoặc nói đơn giản là làm IT như chúng ta, tìm hiểu về mật mã là một cách để thưởng thức cái đẹp của khoa học máy tính.

Bạn nào học lý thuyết độ phức tạp tính toán rồi thì đều biết là có những bài toán mà chúng ta chưa biết khó cỡ nào, chỉ biết là sao bao nhiêu năm nghiên cứu, thế giới vẫn chưa tìm ra thuật toán "hiệu quả" để giải. Câu hỏi là có cách nào lợi dụng những bài toán khó đó để phục vụ cho lợi ích của con người? Nghe có vẻ hơi ngược đời đúng không, chưa tìm ra lời giải thì làm sao mà lợi với chả dụng? Thế mà những người tiên phong của mật mã hiện đại đã nghĩ ra cách sử dụng các bài toán khó như thế và chính những ứng dụng độc đáo sáng tạo như thế này làm nên vẻ đẹp của mật mã!

Lý do thứ ba? Tự bảo vệ những quyền con người cơ bản của chính chúng ta!

Ai cũng có quyền có bí mật, và ai cũng có quyền quyết định khi nào và như thế nào họ sẽ tiết lộ bí mật đó cho người khác. Chúng ta kết nối vào Internet để gửi email, đọc blog, mua một món hàng hay công bố một bài viết mới; mỗi một hành động như thế đều có thể được diễn dịch theo nhiều ngữ nghĩa khác nhau, mà mỗi cách diễn dịch đôi khi lại đem đến những thiệt hại không mong muốn cho chính chúng ta. Thành ra cách tốt nhất là hạn chế tiết lộ danh tính, và nếu ẩn danh được thì càng tốt (cá nhân tôi cho rằng, sở dĩ Internet phát triển như ngày nay một phần là vì bản chất ẩn danh của nó, dẫu đây chỉ là một sự ngộ nhận). Hơn nữa, không phải cái gì chúng ta nói, chúng ta viết đều là dành cho tất cả mọi người; đôi khi chúng ta muốn chỉ duy nhất một nhóm vài người có thể đọc và nghe được những ý kiến của chúng ta. Đây là quyền riêng tư. Mời bạn đọc thêm A Cypherpunk's Manifesto.

Ai cũng có quyền tự do ngôn luận, tự do thể hiện, tự do tí toáy, ở ngoài đời thật hoặc ở trên Internet. Chắc hắn không cần phải giải thích, tất cả chúng ta đều biết những quyền này quan trọng như thế nào đối với sự tự do của mỗi cá nhân. Vậy ai muốn xâm hại những quyền con người cơ bản của chúng ta? Tôi nghĩ câu hỏi này là thừa, bởi vì rõ ràng sự tự do của tất cả chúng ta đã, đang và sẽ bị xâm hại. Khi bạn không kết nối vào được Facebook, nghĩa là bạn đã không còn được tự do.

May mắn thay, những thành tựu trong vài chục năm vừa qua của mật mã có thể phần nào giúp tất cả chúng ta đảm bảo được tính riêng tư và sự tự do trong cuộc sống hàng ngày. Tôi hi vọng là qua loạt bài viết này, tất cả các bạn sẽ hiểu được sức mạnh của mật mã, rồi từ đó sử dụng chúng đúng cách để bảo vệ những quyền và lợi ích chính đáng của bản thân.

3. Nguyên lý Kerckhoff

Nguyên lý do ông Kerckhoff phát biểu vào thế kỷ 19 với nội dung như sau:

Một hệ thống mã hóa phải an toàn ngay cả khi tất cả thông tin về hệ thống đó đều đã được công bố ra ngoài. Bí mật duy nhất của hệ thống là một khóa ngắn.

Thực tế cho thấy tất cả các công nghệ mã hóa "thiết kế sau những cánh cửa đóng" đều bị phá vỡ nhanh chóng ngay khi một ai đó "reverse engineer" và công bố thiết kế của chúng. RC4 (dùng để mã hóa mạng không dây), A5/1 (dùng để mã hóa mạng điện thoại GSM), CSS (dùng để mã hóa đĩa DVD), Crypto-1 (dùng để mã hóa các thẻ thanh toán điện tử)... tất cả đều bị phá vỡ trong một thời gian ngắn, kể từ lúc thuật toán bị "reverse engineer".

Thành ra khi sử dụng mật mã, chúng ta sẽ tuyệt đối tuân thủ nguyên lý Kerckhoff này. Nói cách khác, chúng ta chỉ sử dụng những thuật toán, tiêu chuẩn, hệ thống mã hóa mở. May mắn là đã có sẵn rất nhiều thuật toán, tiêu chuẩn và hệ thống mã hóa mở, chúng ta chỉ việc chọn cái thích hợp mà dùng, không cần phải xây dựng lại từ đầu. Tuyệt đối không sử dụng những tiểu chuẩn, thuật toán, hệ thống đóng! Nói cách khác, tránh "security through obscurity".

Mật mã là sân chơi của những ông già bảo thủ ;-), những người luôn đặt ra những điều kiện khó nhất, và rồi cố gắng xây dựng một hệ thống an toàn trong những điều kiện đó. Điều thú vị là họ thành công!

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...